怎样制作BeagleBone和Arduino进行通信

电子说

1.3w人已加入

描述

步骤1:对Ardunio进行编程

首先,我们将在Ardunio上编写一个简单的测试程序。该测试程序(附带)非常简单,但是通过pin13 LED提供了一些视觉反馈,因此我们知道它正在工作。此示例程序使用了一个串行读取功能,该功能最多支持20个字符串,因此它不仅仅可以用于测试。

基本逻辑是:

-在setup()中,打开LED等待2秒钟,这会给我们一些警告,以防尚未准备好串行数据。

-在串行端口上写一个“ A”

-打开LED持续0.2秒钟

-读取串行端口,如果它读到“ A”,请打开LED 1秒钟。

以您惯用的任何方法对Arduino进行编程。编程并打开电源后,LED应该每秒闪烁约5次。

第2步:对BeagleBone编程

名为PyBBIO的工具包。它为python添加了一个非常类似于Arduino/Wiring的框架,但仍然可以让您轻松使用所需的任何python库和功能。 github页面上有一些很好的说明,尽管如果您使用的不是Angstrom发行版,则python包名称可能会有所不同。

我只是按原样使用PyBBIO串行回显示例,它只接收Serial2接收的任何内容,将其打印并发送回去。这应该给我们的Arduino程序发回它发送的“ A”,这将使其打开LED 1秒钟。如果有任何不良的接线或外部噪声破坏信号,则Arduino不会看到“ A”。

您还可以使用所需的任何语言编写自己的串行回显脚本。

步骤3:全部连接!

BeagleBone

Sparkfun电平转换器具有低压侧和高压侧,并支持2个通道数据的。一个简单的分压器将无法工作,因为它不是双向的,我们需要将3.3v TX数据在Arduino上提高到5V。我们将仅使用一个渠道进行此演示。它需要从LV侧的BB 3.3v和HV侧的Arduino 5V供电。 BB和Arduino之间也需要建立公共的地线连接,否则数据可能会在线路上损坏。我将面包板的蓝色导轨用作公共接地,并且两个导轨都连接在一起。我在两个红色电源轨上也都有5V电压,因为最小的Arduino需要它。

我包括了Fritzing,显示了普通Arduino的状态。

首先关闭所有电源,以防万一。 》首先,让电平转换器通电:

-将两个GND引脚接地,

-将HV引脚连接到面包板5V导轨

-LV引脚将连接到BB稍后,

下一步,将BeagleBone连接:

-P9引脚1(GND)到面包板接地轨

-P9引脚3(3.3v)到电平转换器LV引脚

-P9引脚21(将Serial2 TX)接到电平转换器低侧TX引脚之一(TXI)-P9引脚22(Serial2 RX)接到电平转换器低侧RX引脚之一(RXO)-在照片中,忽略电线连接到Arduno的重置引脚,供以后的Instructible使用。

最后,连接Ardunio。我们正在PC领域制造所谓的“零调制解调器电缆”。 BB的TX数据需要最终在Arduino的RX引脚上:

-D0(RX)至电平转换器高端TX引脚(TXO)。

-D1(TX)到电平转换器高端RX引脚(RXI)

-引脚13上的LED像往常一样

注意:如果您有3.3V Arduino,则可以连接BB和Ardunio注意:我发现,如果RX和TX线像这样相互缠绕在一起,通信将更加可靠。扭曲会减少EMF干扰。

打开Arduino的电源,LED应该像以前一样开始闪烁。

启动BB并进入下一步

步骤4:就这样

现在,打开一个终端(ssh,usb串行或本地GUI)并找到serial_echo.py脚本并使用python运行它。

您应该看到收到“ A”,Arduino应该更改为短眨眼-长眨眼模式。如果不是这样,则说明布线有些问题。确保RX和TX正确,如果向后倾斜则不会造成任何伤害,只是不要在任何地方将Ardunio的5V和BeagleBone骨骼直接连接在一起,因为这会损坏BeagleBone。在本演示中,只能直接连接GND。

下一步是什么?

创建一个框架来回获取您的数据!如果您是从头开始工作,则Ardunio SerCommand库非常易于使用。

检查我的后续Instructible,它将使用该复位线从BeageBone对Ardunio进行编程!在笨拙的安装中不再需要拉芯片或连接FTDI。
        责任编辑:wv 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分