history

青木日記 RSS

<前の日 | この月 | 次の日>

2003-12-07

TD4

11/10 の日記にツッコミがあったので引用。

半田付け、セオリー的には、背の低いパーツから。裏返して机に
おくと、全部平べったく基板に押し付けられて高さがそろうから。
 
横置きの抵抗、ICソケット、コンデンサ、縦置きの抵抗、トラン
ジスタ類、コネクタ類の順。
 
友達がこのページ参考に組み立てようとしてるらしい。ばんがれー

このページを参考に……。それはまた難儀な。

しかしここはバカ正直に、 御期待にお応えして続きを書いてみようじゃないか!

TD4制作記 #4.1 クロックジェネレータとリセット回路

(注: この制作記はリアルタイムではありません。少しずらしてます。)

TD4 の製作は意外にも順調に進みます。 手動クロックができたので自動クロック (1Hz/10Hz) とリセット回路です。

何はともあれまずは現物を見てください。

IC の位置間違いが悲劇を生んだ表面

部品が実装面で立体交差してます。ある意味凄いです。 しかしもっと凄いのが裏面。

パトラッシュ、ぼくはもうだめだよな裏面

この調子で CPU とか RAM の配線ができるんだろうか? ちなみに黄色とオレンジの線がクロック信号とリセット信号です。

こんな感じで配線はかなり難航しましたが、 作業自体はひたすらハンダ付け→確認、 の繰り返しなので難易度は高くありません。 ハンダ初心者でもここまでは問題なく実装できると感じました。

そうだ、クロックジェネレータを作りはじめたあたりで 回路図の拡大コピーを使うようにしました。 本にのってるやつだと見づらいですし、 いちいちページをめくるのは面倒ですから。

TD4制作記 #4.2 動作確認

ここまで作ると初めて動作確認ができます (IC の回路を全部使わないと動かないから)。 まずは丁寧に配線チェック……しようかとも思ったんですが、 配線したらすぐにチェックしてきたのでかっとばします。

そしたら IC を刺さずに通電。大丈夫そうです。

次に IC を刺して通電。 部品が破裂したりはしてないので、大丈夫そうです。 本に書いてある通りにテスタで電圧をチェックしていきましょう。

最初はいきなりマイナスの電圧が出て何事かと思ったんですが、 思いきりテスタの使いかたを間違っていました。 +を 5V につないで、−のリードを測りたいところに当ててたんです。 −を GND にあてて、+を測りたいところに当てなきゃいけないのね。 本気であせりました。

あと、リセット回路の出力をテスタで測ると 3.3V と出たんですが、 これは p.287 にある通りテスタの内部抵抗の影響で見かけだけ 下がっているようです。

さて、計測した値は大丈夫そうなんですが、 テスタで測るだけではわかりにくいので、 LED も付けてみました。

わかりにくいと思いますが、右下のほうに緑色の LED が二つ出てます。 上がリセット信号で下がクロック信号です。 どうつなげたものかよくわからなかったのですが、 「クロック回路───LED───GND」のようにつなげています (この LED は最初から抵抗が入っているらしく、いきなりつなげば光る)。

リセット信号は通常 H (5V) なので、最初に少しだけ消えててあとは常時点灯します。 クロック信号は、手動クロックならボタンを押したときだけ点灯します。 1Hz の自動クロックなら 1 秒ごとに点いたり消えたりします。 いきなり無事に動いてしまいました。

TD4制作記 #4.3 その他

うねうね配線では苦労しましたが、 そのおかげで配線スキルはレベルアップしました。 もう一回やったらもっとすっきり配線できると思います (やらんけど)。

例えば写真の手前側の配線なんかは浮かす必要はないのに なぜか浮いてしまってます。これはよろしくありません。 こうなってしまった原因は、 「線は穴にさしてからハンダ付けするに違いない」 と思ってしまったことです。穴に刺してしまうと、 リード線が固くて曲がらないのでどうしても基板から浮いてしまうわけです。 もっとぴったり基板にはりつけて配線すればよかった。

tdiarygrep

tdiarygrep をさらに改造しました。

URL: http://i.loveruby.net/archive/d/tdiary-grep.rb.txt

CVS: cvs -d :pserver:anonymous@cvs.loveruby.net:/src co tdiarytools

変更点

  • 複数の記述フォーマットに対応

フォーマットは日ごとに変えられるので、 Format: ヘッダを見て分割方法を決めることにしました。 対応フォーマットは tDiary, Wiki, RD。 RD を tDiary で使うときのフォーマットって知らんのだけど、 セクション開始は「=」でいいのかな。

  • テーマを使えるようにした

nokada さんの CGI パラメータでテーマを指定する方式は何か起こりそうなんで不採用。 その代わり、テーマを使うかどうかだけを指定できるようにしました。 theme=on を渡すとテーマを使います。

<form method="post" action="grep.rb" class="grepform">
<p>% grep '<input type="text" name="q" size="20" value="">' *.td2 <input type="submit" value="Return"></p>
<input type="hidden" name="theme" value="on">
</form>

テーマは tdiary.conf の @theme から自動判別します。 ただし @css は不可。@theme のみ。@alt_themes の自動設定にも対応しません。 そこまで設定したければファイルに ALT_THEMES を直接書いてください。

とにかく、細かいパラメータを設定したければハードコーディングする。 設定を固定したいときもハードコーディングする。 ファイル中にパラメータを書いた場合は常にそちらを優先します。

んで、theme=off がデフォルトなのは単なる趣味です。だってこれ grep だし。

とか言いつつ AND 検索が実装されていたりするあたりは基準が謎っぽい。

  • ファイルがちょっとでかくなった

erb 使ったのと、テーマあり・なしのテンプレートを両方入れたのが原因かな。 その代わり、見ための変更はテンプレートをいじるだけで全部できるようになったはず。

  • 例外処理を厳しくした

てきとーに例外を捕まえていたのをやめて、 予想外の例外は全てバグとみなすことにしました。

stat(朝食)

  • 米 (期限内)
  • 味噌 (期限内)
  • たまねぎ (たぶん大丈夫)
  • ちくわ (賞味期限 + 6 日)
  • とんかつ (出来合いゆえ問題なしと思うのは甘い、買ったのが昨日なので賞味期限 + 1)

こないだの大根は切ったのを冷蔵庫にしばらく放置してたので 全面茶色になってました。なんか手触りもふにょふにょしてたし……。 でも一ヶ月はたってないと思います。きっと。

本日のツッコミ(全6件) [ツッコミを入れる]
arton (2003-12-07 09:37)

それは割干大根とか切干大根になってしまったのでは>全面茶色

さんちゃん (2004-01-23 22:31)

TD4制作記、おもしろく読ませていただきました。実は、私もTD4を自作しまして(あおき様の記事を大変参考にさせていただきました)、ラーメンタイマーを1Hzモードで走らせたところ、3分15秒でブザーが鳴るはずが、3分40秒もかかったのです。
74HC14シュミットトリガの誤差だと思うのですが、あおき様のTD4はラーメンタイマーのプログラムは何分かかりますか?
URL:http://www.bea.hi-ho.ne.jp/m-okaniwa/cpu.htm

さんちゃん (2004-01-24 10:00)

すみません。最後まで読んでいなかったので。あおき様のTD4はまだ制作途中なのですね。
それでは、現段階で1Hzモードで1分間にLEDが何回点滅するかお教えくださいますでしょうか?
私の場合、1分間にだいたい53回から54回です。
1Hzになっていません。

青木 (2004-01-24 17:25)

初めまして。もう完成したのですか。すばらしいですね。
こちらは 58Hz でした。やっぱり微妙にずれています。
ちなみに IC は 74HC14AP (JAPAN 03 29 H と書いてある)
を使ってます。秋葉原の千石通商で買いました。

青木 (2004-01-24 17:37)

あああ、間違えた。
「58Hz」ではなく、60 秒で 58 クロックです。

さんちゃん (2004-01-24 21:37)

さんちゃんです。
あおきさんのTD4は、約0.97Hzということですね。
このくらいの精度ですとほぼ渡波先生の本のとおりって
感じですね。ラーメンタイマーも3分20秒ぐらいで、
カップラーメンもおいしくできそう。いいなぁ・・・
やはり製品によって誤差にある程度の幅があるようですね。
お仕事でお忙しいところを本当にありがとうございました。
制作の続きを期待してます!

名前
メールアドレス

<前の日 | この月 | 次の日>
2002|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|