【发布时间】:2017-03-19 13:14:48
【问题描述】:
我试图使用 USB 和 pySerial 库在 Arduino 和树莓派之间进行交流。我想让多个传感器发送数据和从 pi 端发送的几个命令。我尝试使用数组发送数据并在 python(接收)端使用索引来访问单个数据通道,是否有另一种方法来完成此任务,我尝试了解“data.split(':')”,我似乎不明白它是如何工作的。有人可以告诉我一种来回传输数据的合法方法吗?
Arduino 代码:
int data[100];
int val2 = A0;
int val1 = A1;
void setup(){
pinMode(val1, INPUT);
pinMode(val2, INPUT);
Serial.begin(9600);
}
void loop(){
// individual channels of data transmitted, delya = 60 for 6 channels, f = 1/50
while(1){
data[0] = analogRead(val2);
data[1] = analogRead(val1);
data[2] = analogRead(A2);
data[4] = analogRead(A3);
data[5] = analogRead(A4);
Serial.print(data[0]);
Serial.print(":");
Serial.print(data[1]);
Serial.print(":");
Serial.print(data[2]);
Serial.print(":");
Serial.print(data[3]);
Serial.print(":");
Serial.print(data[4]);
Serial.print(":");
Serial.print(data[5]);
Serial.println();
delay(60);
}
}
Python 端:
import serial
from Tkinter import *
import time
data = []
newData = []
next = []
root = Tk()
while True:
ardu = serial.Serial('/dev/ttyACM0', 9600, timeout = 0.1)
data =ardu.readline()
print data[0:25]
【问题讨论】: