*プログラミング② [#z24decaf] Chapter2.3 プログラミング①で距離センサの値を表示するところまで書きました。 いよいよブザーを鳴らして完成させます。 **条件分岐 [#g83f7d2f] フローチャートを見て下さい。次はセンサ値とある閾値を比較するというところです。前章でセンサ値の範囲は0~255である事を確認しました。閾値はとりあえず100にします。後で必要に応じて調節して下さい。~ #ref(Warning_pp1.png,100%) もしセンサ値が100以下なら何もしない、100より大きければブザーを鳴らすという条件分岐です。条件分岐はif関数を使います(if関数の詳細はこちらを参照して下さい)。~ センサ値表示の後ろに if(ReadData > 100) { } と入力して下さい。~ もしReadDataが100より大きければ{}内を実行するという事になります。~ {}内にブザーを鳴らすというプログラムを書きます。 **ブザーを鳴らす [#p70478d1] #ref(Warning_pp2.png,100%) AX-S1のブザーを鳴らします。ブザーはAX-S1に音階と音を鳴らす長さを指定することで鳴ります。if関数の{}内に fd_DXWriteByteData (100, 40, 10); fd_DXWriteByteData (100, 41, 10); と入力して下さい。 fd_DXWriteByteDataはAX-S1やAX-12+に1バイトのデータを書き込むための関数です。 #ref(Warning_pp3.png,100%) fd_DXWriteByteDataは関数名です~ ''第1引数''はDynamixelのIDです(IDについて詳しくはこちらを参照して下さい)。AX-S1のIDは100です。~ ''第2引数''は、コントロールテーブルのアドレスです。AX-S1コントロールマップを見て下さい。アドレス40は音階、アドレス41は音の長さです。~ ''第3引数''書き込むデータです。ここでは適当にそれぞれ10を入れました。ソの音を10秒鳴らすことになります~ **警報器を動かす [#ybaa88fa] #ref(Warning_pp2.png,100%) プログラムが完成しました。隙間を含んでもたったの16行です。如何でしょうか?~ 意外と簡単だと感じられたでしょうか?~ それではプログラムを書き込んで動かしてみましょう。~ ここでは書き込み方法を簡単に説明します。詳細は[[Chapter1.3 動作確認>FDIII-HC Starter Kit Guid Chapter1.3]]を参照して下さい。~ -FDIIIの電源スイッチをOFFにし、プッシュボタンを押しながらUSBケーブルを差し込みます。 -メニューの「コンパイル」->「ビルド」をクリックします。 -コンパイルが成功したらOKをクリックし、SIMPLE TERMが起動します。 -SIMPLE TERMのメニューの「通信」->「ポートオープン」をクリックします。 -SIMPLE TERM上に --< FDIII Ver1.0 by BestTechnology >-- と表示される事を確認してから、走る人マークをクリックします。 -<SUCCESS>と表示されたらキーボードで「g」を入力しプログラムを実行します。 -FDIII-HCの電源スイッチをONにします。 ---- #ref(Warning_pp4.png,100%) AX-S1の前方センサに手を近づけて行き、センサ値が100を超えるとブザーが鳴るはずです。~ これを泥棒が入ってきそうな場所に設置しておけば、泥棒が来てもビックリして帰って行くかもしれません。~ [[次のチャプターへ>FDIII-HC Starter Kit Guid Chapter2.5]]~ [[FDIII-HC Starter Kit Guid]]へ戻る
(This host) = https://www.besttechnology.co.jp