众所周知,Raspberry Pi是一个很棒的基于ARM微处理器的开发平台。凭借其强大的计算能力和开发选项,它可以解决电子爱好者或学生手中的奇迹。要了解有关Raspberry Pi及其工作原理的更多信息,让我们尝试使用Raspberry Pi构建Line Follower机器人。
如果您对机器人技术感兴趣,那么您应该对“ Line Follower Robot ”这个名称非常熟悉。只需使用一对传感器和电机,该机器人就可以跟随一条线。使用像Raspberry Pi这样的功能强大的微处理器来构建简单的机器人,听起来可能并不高效。但是,该机器人为您提供了无限发展的空间,例如Kiva(亚马逊仓库机器人)等机器人就是一个例子。您还可以检查我们的其他Line Follower机器人:
- 使用8051单片机的线跟随机器人
- 使用Arduino的Line Follower机器人
所需材料:
- Raspberry Pi 3(任何型号都可以使用)
- 红外传感器(2个)
- 直流减速电机(2Nos)
- L293D电机驱动器
- 躺椅(您也可以使用硬纸板建造自己的躺椅)
- 行动电源(任何可用的电源)
线路跟随器的概念
Line Follower Robot能够借助IR传感器跟踪一条线路。该传感器具有红外发射器和红外接收器。红外发射器(IR LED)发射光,接收器(光电二极管)等待发射的光返回。红外光仅在被表面反射时才会返回。鉴于所有表面都不能反射红外光,只有彩色表面可以完全反射它们,而黑色表面可以完全观察到它们,如下图所示。在此处了解有关红外传感器模块的更多信息。
现在,我们将使用两个红外传感器来检查机器人是否与生产线在一条直线上,并使用两个电动机来校正机器人是否移出了轨道。这些电动机需要大电流,并且应该是双向的。因此,我们使用L293D之类的电机驱动器模块。我们还需要像Raspberry Pi这样的计算设备,根据红外传感器的值来指示电动机。下面是其简化框图。
这两个红外传感器将被放置在生产线的任一侧。如果所有传感器均未检测到黑线,则PI会指示电动机向前移动,如下所示
如果左传感器在黑线上,则PI会指示机器人通过单独旋转右轮来向左转。
如果右传感器在黑线上,则PI会指示机器人通过单独旋转左轮来向右转。
如果两个传感器都在黑线上,则机器人将停止。
这样,机器人将能够沿线行驶而不会脱离轨道。现在让我们看看电路和代码的外观。
Raspberry Pi线路跟随器机器人电路图和说明:
该Raspberry Pi线路跟随机器人的完整电路图如下所示
如您所见,该电路包含两个连接到Raspberry pi的红外传感器和一对电机。整个电路由移动电源供电(在上面的电路中以AAA电池表示)。
由于Raspberry Pi上未提及引脚的详细信息,因此我们需要使用下图验证引脚
如图所示,PI的左上角引脚为+ 5V引脚,我们使用该+ 5V引脚为IR传感器供电,如电路图所示(红色连线)。然后,我们使用黑线将接地引脚连接到红外传感器和电机驱动器模块的接地。的黄线用于将传感器1和2到GPIO引脚和3的输出引脚分别接。
要驱动电机,我们需要四个引脚(A,B,A,B)。这四个引脚分别从GPIO14、4、17和18连接。橙色和白色电线共同构成一台电动机的连接。因此,对于两个电机,我们有两个这样的对。
如图所示,电动机已连接到L293D电动机驱动器模块,并且驱动器模块由移动电源供电。确保移动电源的接地端已连接到Raspberry Pi的接地端,只有这样,您的连接才能正常工作。
编程Raspberry PI:
完成装配和连接后,机器人应该看起来像这样。
现在,该对我们的机器人进行编程并使其运行了。该机器人的完整代码可以在本教程的底部找到。在此处了解有关在Raspberry Pi中编程和运行代码的更多信息。重要内容如下
我们将从库中导入GPIO文件,以下功能使我们能够对PI的GPIO引脚进行编程。我们还将“ GPIO”重命名为“ IO”,因此在程序中,每当要引用GPIO引脚时,我们都将使用“ IO”一词。
导入RPi.GPIO作为IO
有时,当我们尝试使用的GPIO引脚可能正在执行其他一些功能时。在这种情况下,我们将在执行程序时收到警告。下面的命令告诉PI忽略警告并继续执行程序。
IO.setwarnings(False)
我们可以通过板上的引脚编号或功能编号来引用PI的GPIO引脚。像板上的“ PIN 29”一样,是“ GPIO5”。因此,我们在这里告诉我们将在此处用“ 29”或“ 5”表示图钉。
IO.setmode(IO.BCM)
我们将6个引脚设置为输入/输出引脚。前两个引脚是读取红外传感器的输入引脚。接下来的四个是输出引脚,其中前两个用于控制右马达,接下来的两个用于左马达。
IO.setup(2,IO.IN)#GPIO 2->左IR输出IO.setup(3,IO.IN)#GPIO 3->右IR out IO.setup(4,IO.OUT)#GPIO 4- >电动机1端子A IO.setup(14,IO.OUT)#GPIO 14->电动机1端子B IO.setup(17,IO.OUT)#GPIO 17->电动机左端子A IO.setup(18,IO.OUT)#GPIO 18->电动机左端子B
如果红外传感器在白色表面上,则输出“ True”。因此,只要两个传感器都说“真”,我们就可以前进。
if(IO.input(2)== True和IO.input(3)== True):#两个都向前移动IO.output(4,True)#1A + IO.output(14,False)#1B- IO.output(17,真)#2A + IO.output(18,假)#2B-
如果第一个红外传感器越过黑线,我们必须右转。这是通过读取红外传感器来完成的,如果满足条件,我们将停止右电动机并单独旋转左电动机,如下代码所示
elif(IO.input(2)== False和IO.input(3)== True):#向右转IO.output(4,True)#1A + IO.output(14,True)#1B- IO.output (17,真)#2A + IO。输出(18,假)#2B-
如果第二个红外传感器越过黑线,我们必须左转。这是通过读取红外线传感器来完成的,如果满足条件,我们将停止左电动机并单独旋转右电动机,如下代码所示
elif(IO.input(2)== True和IO.input(3)== False):#向左转IO.output(4,True)#1A + IO.output(14,False)#1B- IO.output (17,真)#2A + IO。输出(18,真)#2B-
如果两个传感器都越过黑线,则表示机器人必须停止。可以通过使电动机的两个端子都正确,如下面的代码所示,来完成此操作
else:#保持静止IO.output(4,True)#1A + IO.output(14,True)#1B- IO.output(17,True)#2A + IO.output(18,True)#2B-
Raspberry Pi Line追随者在行动:
将行跟随器的python代码上传到您的Raspberry Pi并运行它。我们需要一个便携式电源,在这种情况下,移动电源变得很方便,因此我已经使用了它。我正在使用的一个带有两个USB端口,因此我已经为PI供电,而另一个则为Power Motor Driver供电,如下图所示。
现在,您要做的就是设置自己的黑色轨道,并在其上释放机器人。我已使用黑色绝缘胶带创建了可以使用任何黑色材料的轨道,但请确保您的底色不是深色。
该机器人的完整工作原理可以在下面的视频中找到。希望您理解该项目并喜欢建造一个。如果您有任何问题,请在下面的评论部分中发布。