看到社区有几位朋友讲到在 LPD 上使用板载 Arduino Leonardo 会有问题,看了一下描述,似乎是和 udev 设备规则没有正确设置有关,之前为 96boards-Hikey 烧录系统时遇见过类似的现象。关于 udev 的更多信息可以查看 ArchWiki。本文我们来安装 Arduino IDE 试试。
软件环境:
- Ubuntu MATE 18.04
- Arduino IDE 1.8.13
- Python 3.6.9
StandardFirmata sketch
pyFirmataTest to test Firmata communication
下载安装 Arduino IDE
由于 Ubuntu 18.04 软件仓库自带的 Arduino IDE 版本太过老旧,大家可以通过 PPA源 安装新版,或者至官网下载页面下载安装包,当前是 Arduino IDE 1.8.13 Linux 64bits 。以后者为例进行安装,假设下载的安装包目录为 ~/Downloads ,打开终端,输入以下命令:
cd ~/Downloads
# 解压到 /opt 文件夹,如果提示权限问题,前面增加 sudo
tar -xvf arduino-1.8.*-linux64.tar.xz -C /opt
# 安装 Arduino IDE,并创建桌面快捷方式
cd /opt/arduino-1.8.* && sudo ./install.sh
# 发现目录下还有一个 `arduino-linux-setup.sh`,一并执行之,注意不需要管理员权限运行
arduino-linux-setup.sh $USER
从名称看 arduino-linux-setup.sh 肯定是要安装的,搜索可知其项目主页在 https://github.com/artynet/arduino-linux-setup,`Simple bash script to configure your Arduino IDE under Linux OS`,主要作用是设置 udev 规则,添加相关上传权限,设置用户组等。没有这些步骤就会出现各种奇怪的问题。
测试 Firmata
之前的文章 『LattePanda 之深入学习 Firmata通讯』里讲到的Firmata官方提供的 firmata_test 功能测试小程序已经年久失修,在 Linux 上运行不能(一个库不再默认提供,Windows 上还是ok的),找到另一个简单测试软件:pyFirmataTest,使用起来很简单,首先运行 Arduino IDE,烧录 StandardFirmata 示例,然后运行以下命令:
cd ~/Projects && git clone https://github.com/rollingstarky/pyFirmataTest && cd pyFirmataTest
pip install pyfirmata -i https://mirrors.aliyun.com/pypi/simple
python3 firmata-test.py
连接正确的 Ports:/dev/ttyACM0 ,选择 Pin13 ,即可通过点选 LOW/HIGH 控制板载 D13 LED(蓝色开机指示灯旁边的红色灯)的开关,如果没反应可以按下 Ard_RST 重置一下 Arduino。
拓展
目前最新的 Firmata Protocol 版本为 v2.3.6。
从两方面来讲:
- 常用的 pyFirmata 库简单好上手,但是目前仅支持到 Firmata 2.1
——> pymata4 库支持新版的 Firmata 协议,功能更多,但是代码繁琐一些。
FirmataExpress sketch 功能更强大,可以取代 StandardaFirmata sketch,但是测试不支持 pyFirmata 库。
FirmataExpress adds support for:
- HC-SR04 Ultrasonic Distance Sensors.
- DHT Humidity/Temperature Sensors.
- Stepper Motors.
- Piezo Tone Generation.
- Baud rate of 115200
简介如上,欢迎指正交流。
|