本文へスキップ

未来の科学技術を子供たちに託す。 ジュニロボ <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のモニター結果の関係図