おまけ,タイム自動計測
マイクロマウスのタイム自動計測用回路を作製します.始めに,シリアル通信の実験.
可能な限り簡単にシリアル通信で外部基板からPCに信号を取り込みたいと思って PICを使ったシリアル通信をやってみました.
使用したのは,PIC16F84A,USARTは付いてません. なので,シリアル通信のパターンをプログラムで作成して送信します.
回路図は,こんな感じ.
レベル変換用のMAX232などは使用せず,トランジスタと抵抗分割で, 0±約5V(電源電圧に依存)の信号をつくりましたが,PC側がうまく受信して くれました.(なぜなら,手持ちが無かったし安くすませたいから)
回路をブレッドボードで作成したところ.
信号の波形例
PCに接続して,ターミナルアプリを起動します.
通信速度は,19200bps,バイナリモードで信号を取り込むとこのように, スイッチのON-OFFで読み込まれるデータが変化しました.
プログラムはこの位です. MPLAB上でC言語による開発,コンパイラはPICC-LITEです.
マイクロマウス大会の時間計測に使うのですが,PCでストップウォッチのプロ グラムを組んで,シリアルポートからスタート・ストップの信号を取り込むとして, どの位の精度で計測できるのか・・・?
やってみないとわからないので,とりあえずやってみます.
赤外線センサの実験
次は赤外線センサの実験. 指向性のある赤外線フォトダイオードとフォトトランジスタでは 長距離まで検出可能なようですが,調整が難しそうなので, 指向性があまりないフォトダイオードを使ってみました.最初は感度調整のボリュームを入れていましたが,固定倍率でも ON-OFFだけなら検出できそうです. 別に迷路をライトで照らすつもりもないですし.
あとは,ON-OFFを昨日作ったシリアル通信でPCに送って, VBでプログラムを組めば,低コストで自動計測ができそうです. 問題は,応答速度と時間の確度ですが,相対的に不公平がなければ 問題ないのでは,と思っています.
たぶん,人がストップウォッチで測るよりはましでしょう.
センサを支柱に仕込みます. こんな感じで支柱の加工とセンサ取り付けをしました. 注文した卓上ボール盤がくるまでは,手回しドリルでがんばります.
横から穴を開けて,
下からも穴を開けて,
こんな風に配線を通して,
先に赤外線LEDを取り付けます.
表面の赤外LED.
裏面は紙を貼って穴を塞ぎ,
赤外線フォトトランジスタも仕込んでワンペア完成.
3ペア作っておけば,スタートとゴール2箇所はセンスできます.
心配なのは,赤外LEDの光軸の広がりと裏からのわずかな漏れがマウスの走行に 悪影響を与えないか?
回路の製作
とりあえずテスト用に,9V電池とセンサ1ペアを直付け.シリアル信号が出ていることを確認.
光を受けると1ビット分反転してます.
プログラム
こんな感じでプログラムを組んでみました. あと2日くらいかければ完成しそうです.持ち時間内で5回走行して,タイムを記録し,ランキングを出すプログラム.
その後いろいろ手直しして動作しました. あとは,迷路の組み込んで,プログラムの作り込みと, 計測に失敗したときの対処をすれば完成.
最後まで行かないうちに本業の論文の修正を要求されたので, 次はそっちにかかりっきりになりそうです...
初期画面
スタートセンサを横切ったところ.
ゴールセンサを横切ったところ.
一度スタート・ゴールしたら,また自動計測を再セットしないといけないように つくってあります.
動画はこちら
ESP32 Wifi Bluetooth開発ボード |
Arduino Nano Every |
Raspberry Pi pico |
FPGA XILINX Artix-7 |