啓二さんに教えてもらったレシピで、毎週土曜、日曜の夕食 時計の仕様を決めよう
を作っている哲さん。今日は、何やらノートをもってきて、
本格的に料理を習うつもりのようです。マイコンに関連する
方は、大丈夫なのでしょうか。愛犬ロボの背中には、鶏卵の
パックが入った袋が。一体何をしようというのでしょう。
哲 :こんちは、今日は、卵持参できてしまった。 啓二:何だよ、料理教室に移るのか。 哲 :瑞希に、レパートリーを増やしてこいと言われてさ。 卵が食材として安いから、1パック買ってきたのさ。 卵焼きや目玉焼きでない調理の方法を教えてくれよ。 啓二:しかたないなあ。じゃあ、温泉卵、煮卵、茶碗蒸しあたり から教えるよ。オムレツは結構むずかしいし、専用フライ パンを用意した方がいいから、鍋を使ってできるのでいこう。 哲 :よろしく。でも、お前、どうしてそんなに料理ができるんだ。 啓二:一人で生活しているんだ。食事は自分で作らないとならない。 仕事をしながら、工夫しているのさ。そうそう、夜は、NHK 教育で「きょうの料理」を見ている。夕飯を食べながら。 哲 :で、今日は何をするんだ。 啓二:時計の仕様を決めてしまおう。 哲 :そんな、製品を作んじゃないんだからさ。 仕様書をかけっていうのか。 啓二:そんな大それたことをしないよ。でも、少なくとも、 回路図は作成しないと作れないだろう。プログラム するにしても、出力するピンと入力するピンが不明 だと、先に進めないだろうが。 哲 :それもそうだな。 啓二:まず、スイッチは、5個使う。3個タクトスイッチで、 残りがスライドスイッチだ。 哲 :スライドスイッチは、何に使うんだ。 啓二:時刻設定、タイマー設定の切り替えだ。 こんなような2個のスライドスイッチを利用すると 2の2乗で4通りの指定ができる。 OFF OFF 時計動作 OFF ON 時刻設定 ON OFF タイマー開始時刻設定 ON ON タイマー終了時刻設定 哲 :スライドスイッチでモードを読み込んで、タクト スイッチで動作を決定するのか。うまくいくかな。 啓二:うまくいくようにプログラムを作るの。できるかなあ ではなくて、できるようにする。この気構えが重要だ。 哲 :モードは、時刻設定、タイマー設定に関連する処理か。 啓二:タクトスイッチの使い方を決めよう。 4けたの中で、けた移動のために、1個利用する。 該当けたの数値を+1処理するために、1個利用。 残りは、確定のために利用する。 哲 :使い勝手の問題だが、確定のタクトスイッチを押して しまったならば、一度モードスイッチを切り替えない 限り、同じ処理をしないとするか。 啓二:少しわかりにくいなあ。 確定タクトスイッチを押して、一度確定しても、モード スイッチを切り替えない限り、同じ処理ができるように しよう。 哲 :そうだな。結局、時計動作にモードを切り替えると、 それでいいんだからなあ。 ところで、どのけたを扱っているのかを知らせる方法 は、どうすればいいかな。 啓二:該当するけたを、ブリンクすれば、充分だろう。 哲 :シフトレジスタを利用して、ブリンクをやるには、どう したらいいかな。プログラムが思い、浮かばない。 啓二:詳細は、全体を決めてから、詰めていくようにしよう。 細かい内容に入っても、方向が確定していなければ、無駄 になるから。 哲 :そうだな。見切り発車して、後で苦しむのは、いやだし。 啓二:で、今度は、ハードウエアの仕様だ。 電源電圧は、12Vだな。 哲 :+5Vじゃ駄目か。 啓二:バラのLEDで、1セグメントを5個にすると、順方向 電圧は合計10Vくらいになる。 だから、+5Vじゃ駄目。12Vはないとねえ。 哲 :そうか、そういうときにも、計算が必要なんだな。 啓二:そう。Windowsマシンのプログラムのように、作りながら 修正してなんてことをしていると、半田付けもやり直し、 プログラムもやり直しで時間がどんどん過ぎていく。 だから、最初に仕様をきっちりと決めるの。 哲 :電源が決まったなら、マイコンの方はどうするんだ。 12Vをそのまま接続したら、吹っ飛ぶだろう。 啓二:3端子レギュレータを利用して、5Vまで落として使う。 逆接続防止で、3端子レギュレータの入力にダイオード を入れる。 哲 :何だよ、それ。 啓二:簡易電源を作らせたときに、説明しただろう。 電源を逆に接続しても、マイコンや周辺回路が壊れない ようにするって。 哲 :ああ、そうだったなあ。でも、そこまでしなくても大丈夫 じゃないか。 啓二:念には念をとね。5Vは、マイコンの他にも、74HCシリーズ の電源になるから、逆接続防止ダイオードの容量は、1Aで充分。 哲 :電源が、正しく接続されていることを示す、表示器も必要じゃないか。 啓二:そうか。じゃ、LEDを使って電源のパイロットランプにするか。 哲 :時計が動いていることを示すような表示器もほしいなあ。 啓二:マイコンの1ピンを使って、LEDを2秒に1回程度光らせてやれば。 待てよ、これがあれば、電源表示パイロットランプは、不要だな。 哲 :どういうことだよ。 啓二:電源が正しく接続されていれば、マイコンが動く。 マイコンのプログラムが動けば、LEDが1秒ごとに ブリンクする。更に、時計を実現するためには、1秒 ごとにタイマー割込みが必要で、カウンタを+1すれば いい。 哲 :なるほど、兼用させるのか。 啓二:そう。リソースを限定して、その中でいろいろやると、バグ の存在範囲を狭められる。当然、不具合の原因になる個所も 限定できるってわけさ。 哲 :じゃあ、マイコンで利用するピンを確認するか。 スイッチ入力は、スライドスイッチ2ピン、タクトスイッチ 3ピンの合計5ピン。時計出力部7セグメントLED4けた に4ピン、動作表示LEDに1ピン、タイマー制御出力の1 ピンで、合計6ピン。全部で、11ピンだ。 啓二:手持ちの78kは、20ピンだから、どう割り当てるかだな。 LEDを駆動できるピンは、P20からP23の4ピン。 ホワイトボードに描いてみるか。 哲 :まだ、ピンは残っているのかな。 啓二:P43、P44が残っている。この2ピンは、シリアル関連 のピンなので、ハードウエアデバッグ用にモニタプログラム を入れ、利用できるようにしておこう。 哲 :どうやら、外部が固まったなあ。 これで半田付けをするするのか。 啓二:いや、一度ラフなプログラムを書いてみて、不具合がないか をチェックした方がいいなあ。 Appliletを動かすと、このピンは入力にしか使えないだとか、 出力だけだとかを、教えてくれるから、それを利用する。 哲 :Appliletって、そういう風に使うのか。 啓二:人それぞれだけれど、ハードウエアマニュアルをひっくり 返して調べなくてもいいところは、もろ使わせてもらう。 哲 :時計だから、タイマー割込みを使うのだろうけれど、この 78kには、何個タイマーがあるんだよ。 啓二:16ビットが1個、8ビットが2個、ウオッチドッグが 1個かな。時計くらいならば、8ビットタイマー1個で 何とかなるさ。今日は、ここまでだな。 おっと、レシピだ、レシピ。 (料理のレシピ その3) A 食材の用意 納豆:50g1パック 大根:2cmほど B 料理方法 おろし金で、小鉢に、大根おろしをつくる。 納豆を、1パック分よくこねて、糸を引かせる。 小鉢に、納豆を入れて、少しまぜる。 C 盛り付け 小鉢の大根おろし納豆に、醤油をかける