2014年7月25日金曜日

14.07.25 温度計付の振子時計






先月、振子時計を作ったが、振子がなにもせずに行ったり来たりしてるだけなのがもったいなくなり、残像で温度を表示するように改造した。また、単2電池が1か月弱しか持たないことが判明したので、電源アダプタを取り付けた。


温度センサを秋月で探してみたところ、温度と湿度を測定してディジタルで出力するものと、温度だけを測定しアナログで出力するものを見つけた。とりあえず両方調達してみたが、今回はシンプルに温度だけでトランジスタ型のLM61CIZを使うことにした。
表示用の基板は残像表示時計のものでも良かったが、20ピンのPIC18F14K50を使ってみたくなり、新規作成した。ユニバーサル基板を使って組み立てたので、LEDが基板の中央に並ぶようにした。ところがPIC18F14K50はいつも使っているPICKit3では直接はデバッグできないことが判明。プログラムの書き込みはできるので、デバッグはLEDに状態を表示しながら行った。


表示の同期をとるための信号は、時計のLEDを点灯させる信号をそのまま温度計基板にもらうことにした。時計の駆動調整のときは、残像表示の一番下のLEDを使って駆動状態を表示する。温度の測定は1分毎に行うことにした。


温度の表示は、少数なしの「25℃」と少数付の「25.0」の2種類を切り替えできる。温度範囲は、センサーは100度まで測定できるが、PICのAD変換の精度を高めるために±40℃に抑えた。



1つのリモコンで時計と温度計の両方を調整する。動作モードを4つ用意し、0,1は温度計、2,3は時計の調整と使い分けている。
温度計の表示は、温度表示の他、「ものづくり・ダビンチ・キッズ」、「おはよう・こんにちは・こんばんは」のメッセージに切り替えできる。


ものづくり仲間の古い電気カミソリ用の5V1AのACアダプタが余っている、ということで使わせていただくことにした。3端子レギュレータのLM317Tを振子時計の基板に実装し、3Vで使っている。
時計基板から温度計基板には、電源とLED表示信号の合計4本のケーブルをつなぐ。


2014年7月24日木曜日

14.07.24 電車の運転シミュレータ


山仲間から古いHOゲージの機関車とレールを渡された。電源とコントローラはない。動かそうとしてみたが、機関車が古くモーターの動きが良くないこと、HOゲージのモーターは12V仕様で自分には扱いにくいこと、レールを広げておくスペースを確保できないこと、などの理由でHOゲージの機関車とレールは別の仲間に引き継いでもらった。


この機関車を受け取った時に、路面電車の運転と同じ作法で電車を動かすシミュレータを作る、というアイデアが出ていたので、本気の鉄道ファンが見るとあきれるようなものだが、このシミュレータをいつもの環境で作ってみた。


電車の代わりにレゴのモータで動く三輪車を使う。レールは600*450mmの板に黒いテープを長円形に貼ったもの。三輪車はフォトインタラプタでライントレースしてレールに沿って走る。少しは電車らしく見えるよう、後に飾りの車輪をつけておいた。

 PICの基板は残像表示四輪車で使ったもので、モータードライバーは古いLB1639なので、モーターをショートしてブレーキをかけることができない。ライントレースでカーブさせるとき、内側の車輪のモーターを止めるだけだと回り切れないので、内側の車輪を軽く逆回転させて曲がるようにした。センサーは迷路探索と同じ反射式のフォトインタラプタ。


運転の作法は古い路面電車の真似をする。コントローラの左側にモーターを制御するレバーがあり、右側にブレーキのエアを制御するハンドルがある。三輪車なので前進だけとした。
速度とエアの圧力をLEDで8段階で表示する。速度は右が速く、圧力は右が高い。
コントローラから赤外線を定期的(250ms毎)に発信し、三輪車はそれを受けてモーターの速度を決める。
 
 モーターのレバーを右に回すと回転が速くなり、左に回すと遅くなる。モーターの駆動を止めても電車は惰性で走るようにしてあり、徐々に速度が遅くなっていく。
エアのハンドルは中央の位置で現在の圧力を保持し、ハンドルを左側に動かすとエアが抜けて圧力が下がり、右に動かすとエアが補充されて圧力が高くなる。


シミュレータから音は出ないので、モーターのレバーを動かすときの「ガチャガチャ」という音やエアを抜くときの「プシュー」という音などは口真似でやるしかない。
かなり手抜きのシミュレータなので、きちんと停車位置に停めるのはけっこう難しく、何度も練習してやっと狙ったところに停まった。