在板上安装Arduino的Raspberry Pi扩展模块

hackspace中我们有许多不同的Raspberry Pi,我们可以用它们教会孩子用python编程,制作机器人和各种有用的小工具。当然,我们在Arduino上做同样的事情。在这三年的生命中,在这些截然不同的平台上,从灵魂到灵魂,我们在考虑每个铁件的优缺点的基础上,提出了一些如何使训练机器人更正确的想法。所有这些想法在新设备中得以实现,稍后将进行讨论。



本质上,我们为RPi设计了一个Arduino兼容的扩展模块,其中包含引擎驱动器和功率调节器。显然,该模块是教育机器人的一个自给自足的控制器,但正是RPi + Arduino三明治证明了从意识形态上来说,创建机器人的正确方法。继续看一下这东西的外观,它的特征以及在哪里可以应用。




自从Raspberry Pi Model B系列发布以来已经有4年的历史了,一次是因为RPi的炒作部分促使我们创建了我们的hackspace。毕竟,我们首先要做的就是在RPi上教儿童机器人技术。在N.N.Krasovsky乌拉尔计算机学校的基础上与高中生进行了第一堂课之后,我们想到了我们的车间实验室,向所有受难者开放。

我们的课程已发展成为一门基础课程,后来被改编成Arduino。本课程的继续被认为是特定的项目,孩子们可以在其中应用从微控制器和各种有用组件的操作中获得的知识。在Raspberry Pi和Arduino的基础上,我们将此类培训项目的整个类别专门用于创建移动机器人。

我们的第一个基于RPi的机器人是作为与学生合作的手册而专门创建的。这是一个两轮机器人,伙计们在上面练习与发动机和各种传感器一起工作,同时为比赛做准备。作为底盘,使用了田宫齿轮电动机。引擎驱动程序是TI的drv8833。在LineFollower机器人的版本中,有两个自制的反射传感器。在机器人的上层板上安装了400点无焊面包板。



事实证明,该机器人非常出色,因此随着时间的推移,该平台尝试使用其他套件。除了LineFollower(我们以自己的方式称其为跟踪器)之外,机器人还配备了光学反射传感器,超声波测距仪,并用毡尖笔画在纸上,最后通过wifi进行控制,从网络摄像头传输图像。

随着时间的流逝,很明显,齿轮电动机并不是最受欢迎的,但也很嘈杂。机器人的身体不能容纳所有的愿望清单,并且与普通设计师不兼容。最重要的是,提出了为RPi制作扩展模块的想法,这将使机器人避免不必要的“常规”通信和设备。因此,开始了代号MR-K-1和MR-K-2的轮式机器人项目。从一开始,我们就开始为两个平台都提供落地孔,下面介绍了带有Arduino的机器人模型。



这是对战斗的一种修改,其中,通过蓝牙控制机器人的学生往往会爆破安装在敌方机器上的气球。扩大了车架,用普通的中国黄色(有时是白色)发动机代替了齿轮马达。该案例适用于multiplo构造函数,因此现在覆盖了方孔。这一切花了几个星期。但是扩展模块的工作有些延迟。问题不仅仅在于实现的复杂性,还在于缺乏时间,完美主义加剧了

这一问题:) RPiDuino扩展

模块Alexander Vasiliev(领先的极为有用的博客alex-exe.ru)成为该模块的主要开发者。在项目开始时,他已经在开发引擎驱动器,功率稳定器以及许多其他对机器人技术感兴趣的设备方面拥有丰富的经验。该板之所以被称为RPiDuino,是因为它可以提供Raspberry Pi和Arduino的共生关系。

因此,我们决定将其放置在董事会上。

该模块必须直接控制电机驱动器,伺服和传感器。所有这些都需要一个微控制器。而且由于我们正在制造教育机器人,并且该控制器应该易于学生闪动,因此选择时选择了著名的atmega328,其上装有arduino引导程序。 atmega的存在使该模块成为用于控制小型训练机器人的独立控制器。



由于atmega出现在板上,因此还需要一个USB-UART桥接器,为此我们设置了CP2102。 Arduino兼容性的另一个标志是板子两侧熟悉的连接器,使您可以将扩展模块推到顶部。

该模块必须控制电动机,因此出现了相应的驱动程序。现代驱动器的尺寸已经变得完全微观,因此它们可以轻松安装在板上,而不会损坏相邻组件。他们选择了Pololu的DRV8833,因为他们已有一定的经验。驱动器为两通道,通道的工作电流为1A。



最后,仅在板上需要一个稳压器。最初,它应该为计算部分和伺服器提供单独的电源,但是我们在布局方面遇到了一些小问题。因此,只有一个LM2596稳定器,可以为RPi,微控制器,引擎驱动器和传感器的逻辑部分提供动力。



同样,电源开关按钮和蜂鸣器在板上找到了位置,在后者的帮助下,机器人抱怨其问题。



与所有类似的模块一样,RPiDuino插入Raspberry Pi的GPIO插槽。Atmega328和RPi通过UART通信。



GPIO的其余支路直接拉入,因此您可以自行决定使用它们。

RPiDuino主要功能表

营养学
电源电压7.5-24 ( )
7.5-10.5 ( )
0,5 4, , ,
5
: //1.5/2/3
1%
5.52.1
2,7-10,5
/1/2
50
855622
855633 ( RaspberryPi)
49


基于RPi + RPiDuino的远程控制机器人远程控制机器人

很好地展示了RPi的功能。它可以显示RPi和Arduino的协调工作,其中较旧的平台用于视频处理和用户界面,第二个平台执行其常规的机器人任务。



现在,机器人有了一个网络摄像头,该摄像头具有对mjpg压缩的硬件支持,并通过USB连接到Raspberry。机器人通过TL-WN722N USB路由器紧贴WiFi。引擎采用1:120的比例进行加固。车轮很大,用柔软的橡胶粘在我们的hackspace的油毡上。发动机上的编码器有助于消除发动机推力的变化。它滋生全2个锂离子电池尺寸18650的

它是如何工作

在RPiDuino上,正在旋转一个程序,该程序侦听来自UART的运动命令,然后将一些遥测发送回去。在我的项目中,我使用为第一个直升机编写SerialFlowRPiDuino的程序代码也可以在github上找到。

在Raspberry Pi方面,情况要复杂一些。首先,机器人是通过Web界面控制的,所以我不得不用python搭建一个小型Web服务器。控制屏幕上有用于设置移动方向的箭头,速度调节器,遥测和用于显示来自网络摄像头的流的窗口。要广播视频,我通常使用mjpg-streamer。

如果要在机器人上重复类似的操作,安装算法如下。
1)安装mjpg-streamer,并配置视频流到http的传输。
2)安装pyserial软件包。
3)使用控制程序的服务器部分下载存档并解压缩。
4)我们填写RPIDuino控制草图。
5)在RPi上配置wifi。
6)在RPi上配置控制程序的自动运行。



RPiDuino和ROS

我们需要此扩展模块的另一个原因是能够向学生展示正确的机器人概念。现在听起来像是这样:“伙计们,机器人有一台可以管理复杂计算的计算机。它可以识别图像,使用激光雷达和SLAM绘制地图。所有这些都从他身上夺走了很多资源,因此他不再能够灵敏地控制地面机器人的轮子,上帝禁止,从而稳定了飞行中的直升机。对于这些在脊髓层面上的操作,还有另一台计算机专门处理特定的简单任务,并且不会分散其他任何精力。 “这两台计算机通过数据总线连接,通过它们彼此之间以及与其他模块进行通信。”

这就是ROS概念出现的地方。在这种情况下,系统的核心是在RPi上旋转,而RPiDuino是ROS节点。顺便说一下,我们已经制作了一个用于通过ROS管理RPIDuino的小程序包。不久,我们将针对该主题发表另一篇文章。

接下来是什么?

该模块的beta版本证明是值得的。现在,可以在我们的黑客空间中获取少量的板子,以感兴趣的人的身份写。我们计划使用新的引擎驱动程序,其他指示器和其他一些优点来创建下一个版本。董事会的源代码肯定会发布。我们将很高兴收到任何批评和参与!

Source: https://habr.com/ru/post/zh-CN393947/


All Articles