1バイトデータの送信。
今回はプログラミングのみ。ここのサイトを参考にしました。
建築発明工作ゼミ2008: Arduino-Processing シリアル通信1
Arduino側
/* Arduino */ /* Serial sample1*/ int val; //読み取り値の変数を用意 void setup(){ Serial.begin(9600); } void loop(){ //アナログ入力0番ピンの値を読み取り(0~1023) //4で割った値を変数valに入れる(0~255) for(val=0;val<255;val=val+2){ //シリアルでvalを送信 Serial.write(val); //1秒間に20回ループ(0.05sec)とする delay(50); } }
processing側
/* processing */ /* Serial 1*/ import processing.serial.*; Serial myPort; int x=0; void setup(){ size(256,256); println(Serial.list()); String arduinoPort = Serial.list()[11]; myPort = new Serial(this, arduinoPort, 9600); // Arduino } void draw(){ delay(10); //背景色を白に設定 background(255); //XY座標を(x,100)に設定し、 //幅50、高さ50の円を描画 ellipse(x,x,50,50); } void serialEvent(Serial p){ delay(10); //変数xにシリアル通信で読み込んだ値を代入 x=myPort.read(); }
- Serial.list()[11]; の箇所はひとによって変わります。arduinoを接続した状態で、
スケッチのツール→シリアルポートを選択し、自分のシリアルポートを確認します。
次にprintln(Serial.list());で表示されたリストの中から選んだポートが何番目なのかを見ます。
僕の場合は12番目なので[11]。
list()[]の要素番号は0から始まるので注意してください。
実行。
Arduinoを動かしてからprocessingを実行します。
丸が動きます。
たのしい。
次は複数バイトのシリアル通信をやります。
Making Things Talk ―Arduinoで作る「会話」するモノたち (Make:PROJECTS)
- 作者: Tom Igoe,小林茂(監訳),水原文
- 出版社/メーカー: オライリージャパン
- 発売日: 2008/11/17
- メディア: 大型本
- 購入: 3人 クリック: 134回
- この商品を含むブログ (30件) を見る