AD変換の値をProcessingでPC上のウィンドウに表示します. AD変換とシリアル送信にはArduinoを使う. Arduinoは繰り返しAD変換を行い,バイトデータとしてシリアル送信する. AD変換の入力には可変抵抗の値やセンサの出力をつなげる. PCでは,Processingを使い,シリアル送信データで,ウィンドウにオブジェクトを表示する. 図のy座標にシリアル送信データを使う. データの変化により,オブジェクトが上下する. Arduinoのプログラム void setup(){ Serial.begin(9600); } void loop(){ Serial.write(analogRead(0)>>2);//10bits to 8bits delay(20);//wait 20 ms } Processingのプログラム import processing.serial.*; Serial myPort; int y; void setup(){ size(300,300);//window size myPort =new Serial(this,Serial.list()[0],9600);//set Serial } void draw(){ background(255,255,255);//white fill(255,0,0);//red rect(150,y,10,10); } void serialEvent(Serial p){ y=myPort.read(); } 2チャンネルの送信 void setup(){ Serial.begin(9600); } void loop(){ Serial.write(255); Serial.write(analogRead(0)>>2);//10bits to 8bits Serial.write(analogRead(1)>>2);//10bits to 8bits delay(20);//wait 20 ms } 受信データを縦横の値として表示 import processing.serial.*; Serial myPort; int i=0,d,x,y; void setup(){ size(500,500);//window size myPort =new Serial(this,Serial.list()[0],9600);//set Serial } void draw(){ background(255,255,255);//white fill(255,0,0);//red rect(x*2,y*2,10,10); } void serialEvent(Serial p){ d=myPort.read(); if(d==255){i=1;} else if(i==1){x=d;i++;} else if(i==2){y=d;} }
ATMELのAT-Tiny26,ATmega,R8Cなどのワンチップマイコン,C言語,JAVAなどのプログラミング言語の入門のためのページです.サンプルプログラムを中心に紹介します.他にもLinixや数学ソフトなどの紹介も行います.