f:id:clayfish:20090207113154g:image:right

こんな arduino 言語のプログラムを書いて実験してみました.

void setup() {
  Serial.begin(9600);
  Serial.println("HELO");
}

void loop() {
  int i = 0;    
  for (; i < Serial.available(); i++)
    Serial.print(Serial.read(), BYTE);
  if (i != 0)
    Serial.println();
}

やってることはこんな感じです. エコーサーバみたいな動作を期待しています.

  • arduino 上で受信できていれば受信データを送信する. これを受信バイト数回繰り返す.
  • 受信できてるときだけ最後に改行を送信する.

期待してたのは「PC から送信した単位で受信する」だったのですが, arduino 上の処理が速いため?か, 以下のように細切れになりました.

HELO
E
L
O
h
o
geh
og
e

本当に arduino 上の処理が速いのかさらに実験. ボーレートを 115200 にして再チャレンジ. ソース変更点は以下だけ.

void setup() {
  Serial.begin(115200);
  Serial.println("HELO");
}

結果は以下のとおりで変化なし. 「PC から送信した単位で受信する」を実現するには, ちゃんとバッファを実装しないとだめみたいです.

HELO
h
o
g
e
h
o
geh
og
e

Making Things Talk ―Arduinoで作る「会話」するモノたち (Make:PROJECTS) 買いました

arduino といえばこの本を買わないとなーってことで買ってしまいました. そしてブレッドボードとか各種電子部品とかを 7000 円分くらい 共立エレショップ で購入. 明日届く予定で楽しみです!

Making Things Talk ―Arduinoで作る「会話」するモノたち (Make:PROJECTS)

Making Things Talk ―Arduinoで作る「会話」するモノたち (Make:PROJECTS)

参考リンク

arduino についていろいろ調べてます. 以下のページがすごく参考になったり楽しかったりでおすすめです.