本日のまとめ
- Server Arduino "/dev/tty.usbserial-A7006TAw"
- Client Arduino "/dev/tty.usbserial-A6008ca8"
- processingのnetworkライブラリを使ってClientからServerへint型を送信出来た
- ServerでClientからのデータをしきい値でモータのオン、オフにするところが出来ていない
以下ソース
Server Arduino
#define GO_VIBRATION 0 #define STOP_VIBRATION 1 int val; int vibrationPower = 200; boolean isVibration = false; void setup() { Serial.begin(9600); pinMode(1,OUTPUT); pinMode(2,OUTPUT); stopVibration(); } void loop() { if(isVibration){ analogWrite(3, vibrationPower); } if(Serial.available() > 0){ Serial.print(0); val = Serial.read(); switch(val){ case GO_VIBRATION: goVibration(); break; case STOP_VIBRATION: stopVibration(); break; } } } void goVibration() { digitalWrite(1,HIGH); digitalWrite(2,LOW); analogWrite(3, vibrationPower); isVibration = true; } void stopVibration() { digitalWrite(1,LOW); digitalWrite(2,LOW); analogWrite(3, 0); isVibration = false; }
Server Processing
import processing.serial.*; import processing.net.*; Serial port; Server s; Client c; int input; int data[]; void setup() { size(450, 255); background(100); frameRate(10); port=new Serial(this, "/dev/tty.usbserial-A7006TAw", 9600); s = new Server(this, 12345); } void draw() { c = s.available(); if (c != null) { input = c.read(); println(input); } } void keyPressed() { port.write(1); } void mousePressed() { port.write(0); }
Client Arduino
#define ENABLE_INPUT_NUMBER 1 int val; //読み取り値の変数を用意 byte mask = B11111111; void setup(){ Serial.begin(9600); } void loop(){ if(Serial.available() > 0){ Serial.read(); for(int i=0; i<ENABLE_INPUT_NUMBER; i++){ val=analogRead(i); Serial.print(val >> 8, BYTE); Serial.print(val & mask, BYTE); } } }
Client Processing
import processing.serial.*; import processing.net.*; Serial port; Client client; int low=0; int high=0; void setup() { size(255,100); frameRate(10); //シリアルポートの設定 port=new Serial(this,"/dev/tty.usbserial-A6008ca8",9600); client = new Client(this, "127.0.0.1", 12345); } void draw() { port.write(1); background(100); } void serialEvent(Serial p) { //データ数が0個より多いとき if(port.available()>1){ //Arduinoからの合図用データを //読み込んでバッファを空にする high = port.read(); low = port.read(); } client.write(high * 255 + low); }
卒業制作のまとめ、明日もう少し進めたいです。
明日を円滑に進めるために今日のメモ