Raspberry Pi和Arduino是电子社区中两个最受欢迎的开源板。由于它们的易用性和简单性,它们不仅在电子工程师中,而且在中学生和业余爱好者中都很受欢迎。甚至有些人因为Raspberry Pi和Arduino而开始喜欢电子产品。这些电路板功能强大,只需几个简单的步骤和很少的编程就可以构建非常复杂的Hi-fi项目。
我们已经创建了许多Arduino项目和教程,从非常简单的项目到复杂的项目。我们还创建了Raspberry Pi教程系列,任何人都可以从那里开始学习“从零开始”。从我们这对电子社区而言,这是一个很小的贡献,这个门户网站已证明自己是电子学习的绝佳资源。因此,今天我们通过Arduino与Raspberry Pi的接口将这两个伟大的电路板整合在一起。
在本教程中,我们将在Raspberry Pi和Arduino Uno之间建立串行通信。 PI仅具有26个GPIO引脚和零个ADC通道,因此当我们进行3D打印机之类的项目时,PI不能单独完成所有交互。因此,我们需要更多的输出引脚和其他功能,要向PI添加更多功能,我们需要在PI和UNO之间建立通信。这样,我们可以使用UNO的所有功能,因为它们是PI的功能。
Arduino是一个用于项目开发的大型平台,拥有许多板,例如Arduino Uno,Arduino Pro mini,Arduino Due等。它们是基于ATMEGA控制器的板,专为电子工程师和业余爱好者设计。尽管Arduino平台上有很多板子,但是Arduino Uno因其易于执行项目而获得了很多赞赏。与其他程序相比,基于Arduino的程序开发环境是编写程序的简便方法。
所需组件:
在这里,我们将 Raspberry Pi 2 Model B 与Raspbian Jessie OS和Arduino Uno一起使用。前面已经讨论了有关Raspberry Pi的所有基本硬件和软件要求,您可以在Raspberry Pi简介中查找,除了我们需要的以外:
- 连接销
- 220Ω或1KΩ电阻器(2个)
- LED
- 纽扣
电路说明:
如上面的电路图所示,我们将使用USB电缆将UNO连接到PI USB端口。有四个用于PI的USB端口。您可以将其连接到其中任何一个。连接了一个按钮以初始化串行通信,并且LED(闪烁)指示正在发送数据。
工作和编程说明:
Arduino Uno部分:
首先让我们对UNO进行编程,
首先将UNO连接到PC,然后在Arduino IDE软件中编写程序(下面的“检查代码”部分),然后将程序上传到UNO。然后从计算机上断开UNO。编程后将UNO连接到PI,并将LED和按钮连接到UNO,如电路图所示。
现在,这里的程序将初始化UNO的串行通信。当我们按下连接到UNO的按钮时,UNO通过USB端口向PI连续发送几个字符。PI上的LED闪烁以指示正在发送的字符。
Raspberry Pi部分:
之后,我们必须编写一个PI程序(下面的“检查代码”部分),以接收UNO发送的数据。为此,我们需要了解以下一些命令。
我们将从库中导入串行文件,此功能使我们能够串行或通过USB端口发送或接收数据。
导入序列
现在,我们需要说明设备端口和PI的比特率,以便PI可以毫无错误地从UNO接收数据。以下命令指出,我们正在ACM0端口上启用每秒9600位的串行通信。
ser = serial.Serial('/ dev / ttyACM0',9600)
要查找UNO所连接的端口,请转到PI的终端并输入
ls / dev / tty *
您将拥有PI上所有已连接设备的列表。现在,使用USB电缆将Arduino Uno连接到Raspberry Pi,然后再次输入命令。您可以从显示的列表中轻松识别UNO连接的端口。
下面的命令用作永远循环,使用此命令,该循环内的语句将连续执行。
虽然1:
串行接收数据后,我们将在PI屏幕上显示字符。
打印(ser.readline())
因此,按下附加到UNO的按钮后,我们将看到在PI屏幕上打印的字符。因此,我们在Raspberry Pi和Arduino之间建立了基本的通信握手。