尽管就其应用程序和结构而言,Raspberry Pi和Arduino是两种不同的硬件,但是它们都被认为是两个相互竞争的开源硬件平台。他们都有非常强大的社区和支持。今天,我们将稍作更改,并向您展示如何利用两者。如果您同时拥有Arduino和Raspberry pi板,本文将向您展示如何使用Raspberry pi和Python控制Arduino。
我们将使用PyFirmata固件通过Raspberry Pi python脚本向Arduino发送命令。PyFirmata基本上是python程序的预构建库包,可以将其安装在Arduino中,以允许任何计算机上的python脚本与Arduino之间进行串行通信。这个python包可以访问Arduino上的任何引脚。因此,这里我们将使用Raspberry pi在Arduino上运行python程序。
因此,在本教程中,我们将利用该库,并在Arduino开发板中使用它来通过Raspberry Pi控制Arduino。
要求
- 已安装Raspbian OS的Raspberry Pi
- Arduino Uno或任何其他Arduino开发板
- Arduino USB线
- LED
在本教程中,我将通过HDMI电缆使用外部监视器与Raspberry Pi连接。如果没有监视器,则可以使用SSH客户端(Putty)或VNC服务器使用笔记本电脑或计算机连接到Raspberry pi。如果您发现任何困难,请遵循我们的《 Raspberry Pi入门指南》。
使用Raspberry Pi在Arduino中安装PyFirmata
要在Arduino中上传PyFirmata固件,我们必须在Raspberry Pi中安装Arduino IDE。请按照以下步骤进行安装:
步骤1:-将Raspberry Pi连接到互联网。打开命令终端并键入以下命令,然后按Enter
执行sudo容易-让 - Ÿ 安装Arduino的蟒蛇-串行善变
等待几分钟,这将需要一些时间。该命令将在您的Raspberry Pi中安装Arduino IDE。
步骤2:- 现在,我们将使用给定的github安装pyFirmata文件:
git clone https://github.com/tino/pyFirmata
然后运行以下命令:
cd pyFirmata sudo python setup.py安装
步骤3:- 我们已经安装了所有必需的文件和设置。
现在,使用USB电缆将Arduino开发板与Raspberry Pi连接,然后在终端窗口中键入 arduino 启动Arduino IDE 。
步骤4:- 然后键入 lsusb 命令以检查Arduino是否与树莓派连接。
在Arduino IDE中,转到工具,然后选择板子和串行端口。
第5步:- 通过单击文件->示例->固件->标准固件,然后单击上载按钮,在Arduino上上传PyFirmata固件 。如下所示。
我们已在Arduino板上成功安装了pyFirmata固件。现在,我们可以使用Raspberry Pi控制Arduino。
为了演示,我们将通过在Raspberry Pi中编写python代码来使Arduino上的LED闪烁并使其褪色。
代码说明
对于编码部分,您应该阅读pyFirmata文档以获得更好的理解。我们将使用pyFirmata函数编写代码。您可以通过以下链接找到pyFirmata文档。
因此,让我们开始编写代码
在Raspberry Pi上打开您喜欢的文本编辑器,然后导入pyFirmata库。
进口pyfirmata
在Arduino上定义引脚以连接LED
led_pin = 9
现在,我们必须使用pyfirmata.Arduino()函数编写连接Arduino板的串行端口名称,然后通过在 板 变量中分配端口来创建实例。
开发板= pyfirmata.Arduino(“ / dev / ttyACM0”) 打印“代码正在运行”
在 同时 循环,使采用LED引脚的高低电平 board.digital.write() 函数和使用给予延迟 board.pass_time() 函数。
而True: board.digital.write(0) board.pass_time(1) board.digital.write(1) board.pass_time(1)
我们的代码已经准备好,通过将 .py 扩展名添加到文件名来保存该代码。
打开命令终端,然后键入 python blink.py 以在Arduino板上运行代码。确保使用USB电缆将Arduino开发板与Raspberry Pi开发板连接。
现在,您可以在Arduino板上看到LED闪烁。
最后给出了使用pyFirmata使LED闪烁的完整代码。
使用pyFirmata在Arduino上使LED褪色
现在,我们将编写用于使LED褪色的代码,以使您更加熟悉pyFirmata函数。此代码与上一个代码一样简单。您必须使用两个 for 循环,一个用于增加亮度,而另一个用于降低亮度。
在此代码中,我们以不同的方式定义了引脚,例如led = board.get_pin('d:9:p'),其中d表示数字引脚。这是pyFirmata库的功能。阅读文档以获取更多详细信息。
最后给出了使用pyFirmata的衰落LED的完整代码。
现在,您可以在系统中添加更多传感器并使它更酷,请检查我们的其他Arduino项目,并尝试使用Raspberry pi和python脚本构建它们。