前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何建立您的第一个机器人

如何建立您的第一个机器人

作者头像
刘盼
发布2018-03-16 11:29:02
1.7K0
发布2018-03-16 11:29:02
举报
文章被收录于专栏:人人都是极客人人都是极客

如果您是Raspberry Pi的初学者,并且正在寻找一个简单的硬件项目,那么不就对了。本教程将向您展示开发一种基于python的机器人,避免障碍物和自由导航。 障碍避免机器人是相当普遍和容易。在这里,您可以使用该项目将对象避免功能添加到您的机器人。或者只是使用它来开始混淆Python和Raspberry Pi上的硬件外设。该系统使用IR模块来检测物体,但是稍后我们将进入技术方面。所以,如果你有一个raspberry pi,并希望建立一个基于硬件使用它的东西,只需向下滚动,玩得开心:)。查看底部的视频,看看树莓pi机器人的工作原理。如果你是一个真正的初学者,你可以随时使用我们的免费电子书在Raspberry Pi和Arduino从第0步开始。您还可以阅读本教程的基本Linux命令,以熟悉Raspberry Pi终端。

所需材料

  1. Raspberry Pi B / B +或2及基本外设:SD卡,键盘,鼠标等
  2. 红外传感器模块。
  3. 齿轮直流电机。
  4. L293D驱动板。
  5. 机器人底盘和轮子。
  6. 脚轮。
  7. 面包板和双面胶带。
  8. 男,男/女,男跳。
  9. 9V电池和连接器。
  10. 按钮和220R电阻。

Raspberry Pi机器人组件

它是如何工作的?

这个机器人的整个工作真的很简单,没有什么可汗的:)整个系统避免碰撞到障碍,由于其机载传感器。在这里,该机器人使用两个红外传感器模块,可以检测5-6厘米范围内的物体。当传感器内部存在物体时,该传感器输出数字低电平(0V)信号。并输出数字高(5V)信号。

红外传感器在树莓pi机器人

那么这些红外传感器如何工作?红外线代表红外线,这是人眼不可见的光线波长(但可以通过我们的智能手机相机查看)。这些模块由一对接收器和发射器IR LED组成。当物体在IR传感器前面时,物体的表面将IR光线的一部分反射回接收器。因此,接收器然后输出通知物体在传感器前面的LOW信号。

覆盆子Pi机器人

这些传感器连接到覆盆子pi的GPIO输入引脚。pi然后使用python脚本检查连接到IR传感器模块的GPIO引脚是否变为低电平。如果低电平,则指示直流电机首先向相反方向移动,然后转动。此外,当我们按下面包板上的按钮时,该机器人最初被激活,然后,Raspberry pi命令直流电机通过L293D驱动板向前移动。您可以在此页面的底部查看演示视频,了解此机器人的工作原理。

连接Raspberry Pi机器人的红外线传感器

Raspberry Pi GPIO引脚

首先,您需要在连接到显示器,键盘等之后打开您的raspberry pi,然后我们需要检查红外传感器模块。要做到这一点,将IR模块连接到您的树莓pi,如下图所示。通过从树莓pi提供5V(+针),GND( - 针)来为传感器供电。并将传感器上的B针连接到Raspberry pi的GPIO引脚3和16.您可以按照这里的引脚图检查出Raspberry pi GPIO引脚。我们使用GPIO.BOARD配置,这意味着引脚根据板上的正常顺序(1,2,3,..)进行编号。读取传感器模块上的引脚配置并相应连接。

连接图 - Raspberry Pi红外传感器

接下来,您需要复制并粘贴以下代码并将其另存为python file- irtest.py:

import RPi.GPIO as GPIO import time GPIO.setwarnings(False) GPIO.setmode(GPIO.BOARD) GPIO.setup(3, GPIO.IN) #Right sensor connection GPIO.setup(16, GPIO.IN, pull_up_down=GPIO.PUD_UP) #Left sensor connection while True: i=GPIO.input(3) #Reading output of right IR sensor j=GPIO.input(16) #Reading output of left IR sensor if i==0: #Right IR sensor detects an object print "Obstacle detected on Left",i time.sleep(0.1) elif j==0: #Left IR sensor detects an object print "Obstacle detected on Right",j time.sleep(0.1)

保存此文件并运行它:“sudo python irtest.py”。您将注意到,当您用手挡住传感器时,屏幕上会显示以下输出信息:

红外传感器从python输出

用L293D连接电机

测试红外传感器模块后,接下来需要连接并测试L293D模块和电机。通过将板的+和 - 引脚连接到9V电池为L293D模块供电。另外,将板的“ - ”连接到树莓pi的GND。您可以参考此处的连接图来完成连接:

Raspberry Pi机器人连接图

接下来,您必须向板提供输入。来自树莓pi的四个输出GPIO引脚控制两个电机的旋转方向。然后将电机的两个端子连接到电路板的4个输出端子。然后,电机根据来自覆盆子pi的命令由9V电池供电。从树莓pi控制电机的逻辑如下:

L293D树莓Pi控制逻辑

此处,HIGH表示5V信号或数字1,LOW为0V信号或数字0.例如:GPIO.output(5,1),该命令向raspberry pi上的5号针脚发送HIGH信号(数字1)。因此,可以通过从树莓pi的两个GPIO引脚写入高/低信号来控制每个电机的方向。

接下来,您需要将按钮连接到覆盆子pi,如上图所示。此按钮用于激活和停用机器人。机器人接线后,需要安装车轮。使用双面胶带将零件固定在机器人机箱上。之后,您将有一个几乎看起来像这样的设置:

树莓Pi机器人装配

连接电机后,您需要检查它们。使用下面的代码检查电机和L293D。确保已经为驱动器板(L293D)供电,并按照上图给出了连接。之后,复制下面的代码并将其保存为python文件:您的raspberry pi上的motor.py。然后使用以下命令运行:sudo python motor.py。您将注意到,两个电机都是先沿一个方向旋转,然后在相反的方向旋转一秒钟。这个过程重复,直到你中断它。

import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BOARD) GPIO.setup(5,GPIO.OUT) #Left motor input A GPIO.setup(7,GPIO.OUT) #Left motor input B GPIO.setup(11,GPIO.OUT) #Right motor input A GPIO.setup(13,GPIO.OUT) #Right motor input B GPIO.setwarnings(False) while True: print "Rotating both motors in clockwise direction" GPIO.output(5,1) GPIO.output(7,0) GPIO.output(11,1) GPIO.output(13,0) time.sleep(1) #One second delay print "Rotating both motors in anticlockwise direction" GPIO.output(5,0) GPIO.output(7,1) GPIO.output(11,0) GPIO.output(13,1) time.sleep(1) #一秒延迟

上传树莓Pi机器人的代码

完成所有的硬件设置后,您需要下载并复制这个python程序 到您的Raspberry Pi。该程序调用:robot.py,当使用此命令执行时:sudo python robot.py将为您的机器人带来生命,并在按下按钮时开始移动。你会注意到它如何避免传感器前面的物体和自由导航。

Pi机器人

这个程序真的很简单。当用户按下按钮时,机器人被激活,之后机器人向前移动并检查是否有障碍物出现在其前方。每当您的IR模块检测到其前面5cm内的一个物体时,它会告诉树莓pi一个物体在它附近(发送数字低信号)。然后,pi向电机发送命令,使其沿相反方向移动,然后右/左转,机器人通过躲避物体向前移动。再次按下按钮时,机器人将被停用。

将代码复制到您的raspberry pi后,您可以通过使用智能手机电池组来为其提供真正的无线功能。和一个USB wifi加密狗与它通信。您可以通过VNC服务器和LAN电缆扩展笔记本电脑的显示器。或使用SSH从终端无线连接远程连接到您的Pi。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-10-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 人人都是极客 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 所需材料
  • 它是如何工作的?
  • 连接Raspberry Pi机器人的红外线传感器
  • 用L293D连接电机
  • 上传树莓Pi机器人的代码
相关产品与服务
腾讯云代码分析
腾讯云代码分析(内部代号CodeDog)是集众多代码分析工具的云原生、分布式、高性能的代码综合分析跟踪管理平台,其主要功能是持续跟踪分析代码,观测项目代码质量,支撑团队传承代码文化。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档