Linuxボードとの通信確認
年末から上手くいってなかった、KONDOサーボの通信規格でのLinuxボードとArduinoの接続確認ですが、年が明けて、やっと繋がりました。今回、レベル変換などは、KONDOのICS変換基盤を使用しました。3.3Vに直結できるし、一つのUARTしか使わないから自作よりも部品点数(面積)が少なくなるのですよね。上手くいかなかった理由は、いろいろあるのですが、スケッチの参考になったサイトはここです。それと、Adafruit ItsyBitsy M0 Expressですが、USBシリアルと、0番1番ピンのシリアルが同時に使えます。USBシリアルが、Serial(無印)、0番1番シリアルが、Serial1です。動作確認したときのスケッチを以下に示します。unsigned char a[3];int i = 0;void setup() { // put your setup code here, to run once: Serial1.begin(115200,SERIAL_8E1); // 偶数パリティ pinMode(7,OUTPUT); // 送受信切り替えピン digitalWrite(7,LOW);}void loop() { // put your main code here, to run repeatedly: if ( Serial1.available() > 0 ) { // 受信確認 switch ( i ) { case 0: a[i] = Serial1.read( ); if ( a[i] == (0x80 + 31) ) i++; break; case 1: a[i] = Serial1.read( ); i++; break; case 2: a[i] = Serial1.read( ); digitalWrite(7,HIGH); a[0] = 0x7f & a[0]; a[1] = 0x3a; a[2] = 0x4c; Serial1.write(a,3); Serial1.flush(); // 送信完了確認 digitalWrite(7,LOW); i = 0; break; } } }