|
一覧
検索
最新
ページへ戻る
履歴
FDIII-HC Starter Kit Guide/Chapter2.4
のバックアップソース(No.4)
knowledge
:
FDIII-HC Starter Kit Guide
/
Chapter2.4
のバックアップソース(No.4)
差分
を表示
現在との差分
を表示
FDIII-HC Starter Kit Guide/Chapter2.4
へ行く。
« Prev
Next »
TITLE:警報装置のプログラミング2 *プログラミング2 [#q16666ad] [[Chapter2.3 プログラミング1>FDIIICHAPTER2.3]]で赤外線反射センサの値を表示するところまでプログラムを書きました。 いよいよブザーを鳴らして完成させます。 **条件分岐 [#v85bf440] [[処理の流れ>FDIIICHAPTER2.3#x60b5360]]を描いた図を見て下さい。次はセンサ値とある閾値を比較するというところです。センサ値の範囲は0~255である事を確認しました。閾値は例として100にします。後で必要に応じて調節して下さい。~ #html{{ <pre class="brush:c"> #include <fd.h> void main (void) { uint8_t ReadData; fd_SetBeepCondition (FD_BEEP_MMI | FD_BEEP_PACKETERR | FD_BEEP_LOWVOLTAGE | FD_BEEP_BOOTUP); fd_SetUVThreshold (7.4); DX_ChangeBaudrate (1000000); while (true) { DX_ReadByteData (100, 27, &ReadData, 10, NULL); fd_printf ("%3d\r", ReadData); if (ReadData > 100) { } fd_Wait (10); } } </pre> }} もしセンサ値が100より大きければ{ }内を実行するという条件分岐です。条件分岐は[[if文>FDIIICHAPTER1.4#c6144380]]を使います。~ ~ 今回は{ }内にブザーを鳴らすプログラムを書きます。 **ブザーを鳴らす [#v999f03d] #html{{ <pre class="brush:c"> #include <fd.h> void main (void) { uint8_t ReadData; fd_SetBeepCondition (FD_BEEP_MMI | FD_BEEP_PACKETERR | FD_BEEP_LOWVOLTAGE | FD_BEEP_BOOTUP); fd_SetUVThreshold (7.4); DX_ChangeBaudrate (1000000); while (true) { DX_ReadByteData (100, 27, &ReadData, 10, NULL); fd_printf ("%3d\r", ReadData); if (ReadData > 100) { DX_WriteByteData (100, 40, 10, 10, NULL); DX_WriteByteData (100, 41, 10, 10, NULL); } fd_Wait (10); } } </pre> }} AX-S1のブザーを鳴らす為、[[DX_WriteByteData>FDIIILIB#pb95f8ec]]関数で音階と音の長さを指定しています。~ DX_WriteByteDataはDynamixel製品へ値を直接設定し、制御するための関数です。 ''第1引数''は、Dynamixelの[[ID>FDIIICHAPTER1.1#s7a3f1f6]]です。AX-S1のIDは100です。~ ''第2引数''は、[[AX-S1コントロールテーブル>FDIIICHAPTER1.1#ye0e23e2]]のアドレスです。アドレス40は音階、アドレス41は音の長さです。~ ''第3引数''は、書き込む値です。ここでは例としてそれぞれ10を入力しました。ソの音を1秒(10×0.1秒)鳴らすことになります。~ ''第4引数''は、タイムアウト時間(ms)です。ここではタイムアウト時間を10msに設定しています。タイムアウトが頻発して正しくデータが設定できない場合はタイムアウト時間を延長して下さい。 ''第5引数''には本来、エラーの戻り値を入れるための変数のアドレスを指定しますが、今回はエラーの内容を見ないため、NULLを指定しています。 AX-S1のアドレス40はブザーの音階です。詳細は[[AX-S1コントロールテーブルのBuzzer Data 0>AXS1CNTLTBL#h7380696]]を参照して下さい。 AX-S1のアドレス41はブザーの音の長さです。0.1秒単位で音の長さを調節します。詳細は[[AX-S1コントロールテーブルのBuzzer Data 1>AXS1CNTLTBL#jdce8043]]を参照して下さい。 **警報器を動かす [#l7fb3993] プログラムが完成しました。空行を含めてもたったの18行です。如何ですか?~ 意外と簡単だと感じられたでしょうか?~ それではプログラムを書き込んで動かしてみましょう。~ ここでは書き込み方法を簡単に説明します。詳細は[[Chapter1.3の動作確認>FDIIICHAPTER1.3]]を参照して下さい。~ -USBケーブルをFDII-HCから取り外します。 -FDIIIの電源スイッチをOFFにし、プッシュボタンを押しながらUSBケーブルを差し込みます。 -メニューの「コンパイル」→「ビルド」をクリックします。 -コンパイルが成功したらOKをクリックし、SIMPLE TERMが起動します。 -SIMPLE TERMのメニューの「通信」→「ポートオープン」をクリックします。 -[[プログラムの転送>FDIIICHAPTER1.3#aaed87f4]]を行います。 -<SUCCESS>と表示されたらキーボードで「g」を入力しプログラムを実行します。 -FDIII-HCの電源スイッチをONにします。 ---- #ref(Warning_pp4.png,100%) AX-S1の前方センサに手を近づけて行き、センサ値が100を超えるとブザーが鳴るはずです。~ これを泥棒が入ってきそうな場所に設置しておけば、泥棒が来てもビックリして帰って行くかもしれません。~ [[次のチャプターへ>FDIIICHAPTER2.5]]~ [[FDIII-HC Starter Kit Guide>LEARNINGGUIDE]]へ戻る
« Prev
Next »
FDIII-HC Starter Kit Guide/Chapter2.4 のバックアップ一覧
FDIII-HC Starter Kit Guide/Chapter2.4 のバックアップソース(No. All)
1: 2011-07-04 (月) 12:00:35
yoshida
2: 2011-07-04 (月) 12:49:01
yoshida
3: 2011-07-11 (月) 12:18:58
yoshida
4: 2011-07-11 (月) 20:40:05
yoshida
現: 2011-07-12 (火) 12:33:42
yoshida
Copyright© 1989,2024 BestTechnology Co.,Ltd.
メニュー
トップ
ニュース
お知らせ
新商品情報
更新情報
マニュアル類
技術情報
チュートリアル
FAQ
お問合せ
技術的なお問合せ
その他お問合せ
お見積り
ブログ
会社案内
ショッピング
ご利用案内
検索
カテゴリ 一覧
ロボットキット
Dynamixelシリーズ
マイコンボード
相撲ロボット
センサ
通信機器
お客様ページ