【PsychoPy】Arduinoとシリアル通信をさせる。
Adruino(Galileoとのシリアル通信)をBuilder modeでする。
作成したもの
- PsychoPy側から、文字列(一行)を送信
- Arduino側で受け取ったら、その値をPC側に送信
- PsychoPyのプログラムにて、表示
コード
Arduino側
#define num 30//一度に送れる文字数 void setup() { Serial.begin(9600);//シリアル通信開始 } void loop() { char incomingByte = 0; // 受信データ用 char sended_value[num] = {0}; int i = 0; //シリアル通信 while(1){ if(Serial.available() > 0){ incomingByte = Serial.read(); // 受信データを読み込む if(incomingByte > 47 && incomingByte < 59 ){ //アスキーコード10進数(47~59がきたら読み込み) sended_value[i] = incomingByte;//配列に入れる Serial.print(sended_value[i]); i++; } if(incomingByte == '.'){Serial.print(".");} if(incomingByte == ';'){Serial.println(";");break;}//;が来たらwhile文終了。 } else{break;} } }
※ 注意
本Arduino Programはパソコン側から「0,1,2,3,4,5,6,7,8,9」「",",";"」しか受信をせず
。「;」を受信するとそこまでが1行とみなされる。
一回に受信できるコードは一行まで。