一、安装相应的python包1.windows下:2.linux下:- sudo apt-get install python-serial
复制代码若是linux且不使用arduino IDE条件下则需要修改端口,比如:
ser = serial.Serial('/dev/ttyUSB0', 9600,timeout=1); b.arduino的代码:- int a=0;
-
- void setup() {
- Serial.begin(9600);
- }
-
- void loop() {
- if(Serial.available()){
- a = Serial.parseInt();
- if(a == 1){
- Serial.println("收到来自python的信号");
- }
- }
- }
复制代码 2.arduino向python发送消息:a.python的代码: - import serial # 导入模块
-
- ser = serial.Serial('COM3',9600,timeout=1)
- # serial.Serial 的三个形参 分别对应 Arduino的串口 波特率 连接超时时间
- print(ser)
- while 1:
- val = ser.readline().decode('utf-8')
- # ser.readline() 读取窗串口中的数据以二进制的形式展示需要使用.decode('utf-8')进行解码
- if val == 1:
- print("收到来自arduino的信号")
-
复制代码 b.arduino的代码:
- int a = 1;
-
- void setup() {
- // put your setup code here, to run once:
- Serial.begin(9600);
- }
- void loop() {
- Serial.print(a);
- delay(1000);
- }
复制代码 四、python使用pyfirmate包控制arduino实现Blink环境配置:1.arduino代码:打开arduino IDE的 文件->示例->Firmate->StandardFirmate 编译成功后上传,报错的大概率是arduino的型号没对上,端口搞错了,建议再次到arduino IDE的工具那一栏进行确认。 2.python代码:- from pyfirmata import Arduino, util
- import time
-
- # Arduino所在串口是COM3,这是windows下的表示
- def test1():
- board = Arduino('COM3')
- while 1:
- board.digital[13].write(0) # 向端口13写入0 0代表灭灯
- time.sleep(1)
- board.digital[13].write(1) # 向端口13写入1 1代表亮灯
- time.sleep(1)
-
-
- test1()
复制代码 运行python文件后,arduino自带的LED灯会闪烁。
|