備忘録

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告

RaspberryPiから、Arudinoを制御 Doragon Remote Control版

ものをいじる時間がない・・・
wiringPiの本家Gordons Projectsを見ていたら、Doragon Remote Control(DRC)という
Arduinoをシリアル通信でつないで、コマンドをつかった会話で操作するようなものがあるみたい
http://projects.drogon.net/drogon-remote-control/drc-protocol-arduino/


同じようなものにFirmataというものがあります
http://firmata.org/wiki/Main_Page

折角なので、このDRC protocolに関しても
確認しておこうと思います。
ちなみに、DRCの実物は、↓にあります
http://projects.drogon.net/drogon-remote-control/drc-downloads/

DRC Protocol – Arduino

Arduino DueやUnoと会話をする時のシリアル通信プロトコルのドキュメントです。
また似たような、シリアル通信(USBホストを通して接続された)でつながるデバイスの為のドキュメントです。

シリアル通信は、ボーレート115200 ,data 8bit, 1stop bit,no parityの設定します。

次からのコマンドには、バイナリにてピン番号を示します。
そのため、もしminicomを通してコマンドを送るのなら、ピン番号3をコマンドを、文字"C"として入力します。
すべてのコマンドコードは、小文字です。

・Set pin mode:

デジタルピンには3つのモードがあります。
'o'(0x6F) を設定すると出力
'i'(0x69) を設定すると入力
'p'(0x71) を設定するとPWM出力 となります。
この後に、ピン番号が続きます。このため、3pinを出力に設定するためには、"0x6F 0x03"と2Byteを送ります。
コマンドのACK(応答)はありません

・DigitalWrite:
文字'0'(0x30)と'1'(0x31)はそれぞれロジックのLOWとHIGHを示し、これのあとにpin番号と続きます。
そのため、5pinをHIGHにしたい場合は、"0x31 0x05"と2Byteを送ります
13pinをLOWに設定したい場合は、"0x30 0x0D"とします

・PwmWrite

# 英文にはないですがPWM出力ピンの設定です
文字'v'(0x76)+pin番号と入れて、さらに3番目に0~255を表す値を示します。
9pinにディーティーサイクル50%を設定する場合は、"0x76 0x09 0x80"を送信します

・DigitalRead
文字'r'(0x72)+pin番号と入れて送信↓場合、そのピンの状態を読み取ることができます
pinのロジックレベルが、1Byteの'0'、'1'のどちらかで返されます
12pinを読みたい時は、"0x72 0x0C"と送信し、
ロジックれbるを示す'0'(0x30)か'1'(0x31)のどちらかが返信されてくることを期待できます

・AnalogRead:
文字'a'(0x61)+pin番号を送信することで、でアナログ値を読み取ることができます
アナログ値、2Byteが返信されてきますが、そのうち1番目のByteが上位バイトになります
例えば、4pinのアナログ値を読む場合、"0x61 0x04"を送信し、2Byteを返信されてきます。
もしデバイス側から0x10、0x5Cの順番で返信がきたら、"0x015C"で10進数384を示す値になります

・Ping:

基本的な命令テストとして、pingコマンドを送信することができます。
'@'か"0x40"にて、それを行うことができます。
リモートデバイスは、1Byteの'@'(0x40)を返信してきます。
シリアル通信の入力バッファをflushを必要なときは、デバイスとの接続確立のために何回か送信する

minicomなどのターミナルからテストをしたとき、2つの追加コマンドがあります。
'A':スペースキーが押されるまで、アナログポートの読み込みと表示を行います。
'X':スペースキーが押されるまで、デジタル入力の読み込みと表示を行います。
これらのコマンドは、ホストからプログラムをによる接続をしなくても、
ターゲットデバイスのテストに利用でき
機能をテストを可能にします。
Arduinoスケッチは後日にしますが、
DRCは非常にシンプルな構成で書かれています。

このスケッチをベースとして、コマンドメッセージの追加や、
簡易な測定値処理などを追加して、遊べるのでないかと思います。

スポンサーサイト

テーマ:プログラミング - ジャンル:コンピュータ

  1. 2013/05/10(金) 23:55:40|
  2. Arduino
  3. | トラックバック:0
  4. | コメント:0
<<Rasppbbery Pi でI2C通信(シェルで実動作) | ホーム | Raspberry PiでSPI通信>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://nanicananica.blog.fc2.com/tb.php/20-b2c5b260
この記事にトラックバックする(FC2ブログユーザー)
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。