本日のまとめ

  • 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);
}

卒業制作のまとめ、明日もう少し進めたいです。
明日を円滑に進めるために今日のメモ