Lattepanda:Python编程控制Arduino

Lattepanda:Python编程控制Arduino

在Lattepanda上利用Python编程控制Arduino有两种方式:传统的串口通讯和基于Firmata 协议方式。

  1. 传统的串口通讯

这种方式下Lattepanda板上的MPU和Arduino利用串口方式进行通讯,与传统的Arduino的开发没有差异,等效于下图的开发模式。



串口通讯下首先在Arduino上写入程序(以Blink为例),程序反复读取串口的数值,如果为字符h则点亮LED灯,如果是字符1则熄灭LED灯。



然后在Lattepanda上利用Python开发工具编写程序,该程序通过串口(与Arduino中设置的串口号对应)写入控制字符。



这里设置了两个按钮,按下ON按钮触发on事件,Python向串口写入h字符,Arduino接受到该字符后将LED灯点亮。按下OFF按钮触发off事件,Python向串口写入1字符,Arduino接受到该字符后将LED灯熄灭。


2. 基于Firmata 协议

Firmata是一个连接嵌入式系统和上位机的中间协议,协议通道默认使用串口。Arduino平台是Firmata的标准参考实现,各种Arduino 支持Firmata协议。因此Lattepanda上基于Firmata 协议控制的方式本质上是对传统的串口通讯的封装。

Firmata协议方式实施较为简单,首先安装pyfirmata包



然后在python程序中直接创建Arduino对象(串口号与Arduino中设置的串口号对应)。通过Arduino对象直接调用对应的方法即可,比如Arduino中的digitalWrite对应的调用方式为board.digital[13].write(0),这里Arduino板上的数字端口13成为python程序中的一个对象,digitalWrite成为该对象的一个方法write()。


编辑于 2021-09-22 07:50