
「Getting Started with Arduino
Arduinoの本「Getting Started with Arduino
その他、Arduino関連の本であれば、主に以下のようなものがあります。
・「Making Things Talk
・「Physical Computing: Sensing and Controlling the Physical World with Computers
四谷アートステュディウム・建築発明工作ゼミ(2008年度)の授業サブノート
主にProcessingやArduinoについて記載しています。
$$$
ST,100
SU,96
D
***Settings***
BTA=00066600D39A
BTName=FireFly-D39A
Baudrt=9600
Parity=None
Mode =Slav
Authen=0
Encryp=0
PinCod=1234
Bonded=0
Rem=NONE SET
---
void setup(){
//シリアル通信開始
Serial.begin(9600);
}
void loop(){
//変数を用意し、二つの読取り値を合成して代入
int val=analogRead(0)+analogRead(1);
//合図用データが届いたら
if(Serial.available()>0){
//合成した値を文字列(改行コード付き)で送信
Serial.println(val,DEC);
//バッファを空にしておく
Serial.read();
}
}
//シリアル通信ライブラリを取り込む
import processing.serial.*;
//ポートのインスタンス
Serial port;
//X座標用の変数(小数)
float x;
void setup(){
//横長の画面に設定
size(600,200);
//シリアルポート設定(Bluetoothのポート)
port=new Serial(this,"/dev/tty.FireFly-D39A-SPP-1",9600);
//「10」(ラインフィード:改行コード)が来る度に
//serialEvent()を呼び出す
port.bufferUntil(10);
}
void draw(){
//背景
background(100);
//矩形描画
rect(x,100,20,20);
}
void serialEvent(Serial p){
//文字列の変数stringDataを用意し、
//「10」(ラインフィード:改行コード)が来るまで読み込む
String stringData=port.readStringUntil(10);
//文字列データが空ではないとき
if(stringData!=null){
//文字列データに含まれる改行記号を取り除き整数にする
int val=int(trim(stringData));
//値のオフセット、最小値、最大値を設定しxに代入
x=map(val,500,1500,0,600);
//合図用データ送信
port.write('A');
}
}
//マウスをクリックしたらシリアル通信開始
void mousePressed(){
//通信開始用データ送信
port.write('A');
}
void setup(){ Serial.begin(9600); } void loop(){ //可変抵抗器の読み取り int val=analogRead(0); //シリアル通信処理 if(Serial.available()>0){//合図用データが一つ来たら //合図用データを読み込んでバッファを空にする Serial.read(); //読取値を4で割り、バイトで送信 Serial.print(val/4,BYTE); } }
//シリアル通信ライブラリを取り込む import processing.serial.*; //二つのポートのインスタンス Serial portA; Serial portB; //二つの読取値の変数 int valA=100,valB=100; //ボ−ル座標用変数 int x=100,y=100; //ボールの動きの向きの変数(1:正の向き、-1:負の向き) int dirX=1,dirY=1; void setup(){ //画面サイズ設定 size(300,256); //二つのシリアルポート設定 portA = new Serial(this, "/dev/tty.usbserial-A50019vD", 9600); portB = new Serial(this, "/dev/tty.usbserial-A40014iU", 9600); //図形外形線なし noStroke(); //塗り色(白) fill(255); //矩形描画位置を中央に設定 rectMode(CENTER); } void draw(){ //背景(黒) background(0); //左ラケット描画(valAをY座標に代入) rect(20,valA,10,30); //右ラケット描画(valBをY座標に代入) rect(280,valB,10,30); //ボール描画 rect(x,y,10,10); //ボールX座標の動き x+=dirX;//X軸方向に+1または-1ずつ進める //ラケットAに当たった時のはね返り if(x==30 && y>valA-15 && y<valA+15){ dirX*=-1;//向きを反転する } //ラケットBに当たった時のはね返り if(x==270 && y>valB-15 && y<valB+15){ dirX*=-1;//向きを反転する } //画面左端からはみ出た場合 if(x<0){ x=270;//右側に戻る } //画面右端からはみ出た場合 if(x>width){ x=30;//画面左側に戻る } //ボールY座標の動き y+=dirY;//Y軸方向に+1または-1ずつ進める //画面上下位置でのはね返り if(y<5 || y>251){ dirY*=-1;//向きを反転する } } //キーを押した場合 void keyPressed(){ //「s」キーでシリアル通信開始 if(key=='s'){ //二つのポートへ開始用データ送信 portA.write(65); portB.write(65); } } //シリアル通信処理 void serialEvent(Serial p){ //portAの場合 if(p==portA){ if(p.available()>0){ //値を読み込みvalAに代入 valA=p.read(); //合図用データ送信 portA.write(65); } } //portBの場合 if(p==portB){ if(p.available()>0){ //値を読み込みvalBに代入 valB=p.read(); //合図用データ送信 portB.write(65); } } }
void setup(){ //シリアル通信開始 Serial.begin(9600); } void loop(){ Serial.print('H');//「H」を送信(点灯) delay(1000); //1秒待つ Serial.print('L');//「L」を送信(消灯) delay(1000); //1秒待つ }
int val;//受信データ用の変数を用意 void setup(){ //シリアル通信開始 Serial.begin(9600); //13ピンをデジタル出力に設定 pinMode(13,OUTPUT); } void loop(){ if(Serial.available()>0){ //データが来たら val=Serial.read(); //データを読み込み、valへ代入 } if(val=='H'){ //valが「H」の場合 digitalWrite(13,HIGH);//点灯 }else{ //valが「L」の場合 digitalWrite(13,LOW); //消灯 } }
import processing.serial.*; println(Serial.list());
//シリアル通信ライブラリを取り入れる import processing.serial.*; //ポートのインスタンス Serial port; void setup(){ //「XBee Explorer USB」のシリアルポート設定 port=new Serial(this,"/dev/tty.usbserial-A8003VXd",9600); } void draw(){ //特になし } void mousePressed(){//マウスボタンを押したら port.write('H'); //「H」を送信(点灯) } void mouseReleased(){//マウスボタンを放したら port.write('L'); //「L」を送信(消灯) }
+++
OK
ATID(リターンキーを押して送信)
3332
ATBD(リターンキーを押して送信)
3
0:1200 bps 1:2400 bps 2:4800 bps 3:9600 bps 4:19200 bps 5:38400 bps 6:57600 bps 7:115200 bps
ATBD4(リターンキーを押して送信)
ATBD(リターンキーを押して送信)
ATWR(リターンキーを押して送信)
ATBD4,WR(リターンキーを押して送信)
ATRE(リターンキーを押して送信)
ATRE,WR(リターンキーを押して送信)
ATCN(リターンキーを押して送信)
ID:3332(ネットワークID) CH:0x0C(チャンネル) MY:0(そのモジュールのアドレス) SH: (シリアルナンバー上位32ビット/モジュールごとに異なる) SL: (シリアルナンバー下位32ビット/モジュールごとに異なる) DH:0(送信先アドレス上位32ビット) DL:0(送信先アドレス下位32ビット) BD:3(通信速度:9600 bps)
ATMY1111,WR(リターンキーを押して送信) OK OK(Xbeeからの返信)
ATDL2222,DH0,WR(リターンキーを押して送信) OK OK OK(Xbeeからの返信)
ATMY2222,DL1111,DH0,WR(リターンキーを押して送信) OK OK OK OK(Xbeeからの返信)