本文へスキップ
未来の科学技術を子供たちに託す。 ジュニロボ <JRO>
けいはんなジュニアロボットクラブ
〒619-0237 京都府相楽郡精華町光台8丁目
TEL.
070-5263-2200
jun@kinet-tv.ne.jp
Arduino プログラム【 スケッチ 】
RECRUI
前回までで、ハードウエアが出来、ソフトウエアの仕様も決まったので、いよいよプログラム(スケッチ)を作成して行きます。
【コメント】
最初は、コメントを入れています。
コメントは、プログラム本体とは直接関係しませんが、後から見直す
時の参考になるので、適宜コメントを挿入する癖を付けましょう。
どれだけコメントを入れても、実行ファイルのサイズには影響しません。
AVRのピンアサイメントと信号の関係を覚えとして書いています。
(前ページで仕様書を参照)
【 include define 】
#include <MsTimer2.h>で、Arduino で準備されているタイマーを
使用する為に、インクルードします。
後は、数値に意味(名前)を持たせる為に、#define で設定しています。
例えば、プログラム中で「OFF」と書いていれば、実際は「0」と同等の
意味合いになります。
「0」と書いても何を意味しているのかわかりにくいですが、「OFF」と
すれば、電気を切断するような行為であると理解できます。
【 volatile & 関数宣言 】
コンパイル時の最適化禁止変数の宣言
使用関数のプリ宣言
【 setup 】
セットアップ関数部
【 loop 】
MAINルーチン部
【 send_dac_primitive 】
DACチップの制御部
【 send_dac 】
DACへのデータ書き込み処理
【 send_led 】
動作確認用LED点滅制御部
【 send_trg 】
PINGへのトリガー信号処理部
【 get_duration 】
PINGからの距離に比例したパルス幅計測
【 convertv 】
距離に比例したパルス幅を実距離に計算・変換処理
【 update_trigger 】
トリガー制御とLED点滅処理
【 calcx 】
TJ3Bのアナログ入力レンジ幅とDAC出力との整合処理
開発風景<PING4個の入力とアナログ出力4ポートの波形、計測結果の確認>
上記開発基板を、正規の基板に起こしたものです。<左のコネクタ部はPING入力、右のコネクタ部はTJ3Bへの出力部>
開発完了後の正規の基板を搭載したロボット
PINGを4個搭載したロボット<前方にPSDも見える>
PINGと障害物の距離に対するTJ3Bのモニター結果の関係図
このページ