如何将 python 与 Mac 上的 Arduino Uno 的串行输出接口?
How can I interface python with the serial output from an Arduino Uno on a Mac?
我正在尝试结合我的 Arduino 和 mac 来制作乐器。到目前为止,我已将此编程到我的 Arduino 中:
void setup() {
Serial.begin(9600);
pinMode(2, INPUT);
pinMode(3, INPUT);
pinMode(4, INPUT);
pinMode(5, INPUT);
pinMode(6, INPUT);
pinMode(7, INPUT);
pinMode(8, INPUT);
pinMode(9, INPUT);
pinMode(10, INPUT);
pinMode(11, INPUT);
}
void loop() {
for (int var = 2; var <= 11; var++) {
if (digitalRead(var) == HIGH) {
Serial.println(var);
}
}
delay(1);
}
它基本上是 returns 建立连接时基于哪个引脚建立连接的数字。我真的希望能够将这些数据读取到 python 中,这样我就可以播放声音等等。请记住,我有一个 mac。我尝试下载 pyserial 到没有 avail.I 有 python 3.4.3(这可以更改)
如果您已成功安装,接口将非常简单pyserial. The Arduino Playground 为您提供了如何通过 pyserial 向 arduino 读取和写入数据的示例。
阅读
>>> import serial
>>> ser = serial.Serial('/dev/tty.usbserial', 9600)
>>> while True:
... print ser.readline()
'1 Hello world!\r\n'
'2 Hello world!\r\n'
'3 Hello world!\r\n'
写入
>>> import serial # if you have not already done so
>>> ser = serial.Serial('/dev/tty.usbserial', 9600)
>>> ser.write('5')
为Python3.x
>>> ser.write(b'5') # prefix b is required for Python 3.x, optional for Python 2.x
我正在尝试结合我的 Arduino 和 mac 来制作乐器。到目前为止,我已将此编程到我的 Arduino 中:
void setup() {
Serial.begin(9600);
pinMode(2, INPUT);
pinMode(3, INPUT);
pinMode(4, INPUT);
pinMode(5, INPUT);
pinMode(6, INPUT);
pinMode(7, INPUT);
pinMode(8, INPUT);
pinMode(9, INPUT);
pinMode(10, INPUT);
pinMode(11, INPUT);
}
void loop() {
for (int var = 2; var <= 11; var++) {
if (digitalRead(var) == HIGH) {
Serial.println(var);
}
}
delay(1);
}
它基本上是 returns 建立连接时基于哪个引脚建立连接的数字。我真的希望能够将这些数据读取到 python 中,这样我就可以播放声音等等。请记住,我有一个 mac。我尝试下载 pyserial 到没有 avail.I 有 python 3.4.3(这可以更改)
如果您已成功安装,接口将非常简单pyserial. The Arduino Playground 为您提供了如何通过 pyserial 向 arduino 读取和写入数据的示例。
阅读
>>> import serial
>>> ser = serial.Serial('/dev/tty.usbserial', 9600)
>>> while True:
... print ser.readline()
'1 Hello world!\r\n'
'2 Hello world!\r\n'
'3 Hello world!\r\n'
写入
>>> import serial # if you have not already done so
>>> ser = serial.Serial('/dev/tty.usbserial', 9600)
>>> ser.write('5')
为Python3.x
>>> ser.write(b'5') # prefix b is required for Python 3.x, optional for Python 2.x