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

如果您是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。

本文分享自微信公众号 - 人人都是极客(rrgeek)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-10-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏AI科技评论

​大牛的《深度学习》笔记,60分钟带你学完Deep Learning(下)

导读:昨天我们为大家带来了大牛Zouxy学习深度学习的笔记的上篇。今天我们继续为大家带来教程的下篇,让我们看看这位大牛在深度学习领域还有什么独到的理解~ |六、...

38860
来自专栏人工智能快报

自动调优数据科学:新研究使机器学习流线化

一个新的自动化机器学习系统比它的人类同行表现得更好,并且工作速度提高了100倍。 数据科学既是一门学科又是一个应用程序。它最近的飞速发展可以部分归因于其强大的问...

41170
来自专栏人工智能快报

麻省理工科研人员开发出新型人脸识别算法

美国麻省理工学院网站发布消息称,该校科研人员开发出了一种新的人脸识别算法,这是一种新的基于人脑面部识别机制的计算模型,似乎能够捕获被现有模型忽略的一些人类神经学...

41080
来自专栏决胜机器学习

卷积神经网络(一)——卷积、边缘化与池化层

卷积神经网络(一) ——卷积、边缘化与池化层 (原创内容,转载请注明来源,谢谢) 一、概述 卷积神经网络网络(Convolutional Neural Netw...

759110
来自专栏WeaponZhi

轻松初探Python(六)—函数

这是「AI 学习之路」的第 6 篇,「Python 学习」的第 6 篇 题外话 这周工作日 5 天,我并没有更新文章,但大家并不要以为小之懒惰了。正好相反,自从...

38370
来自专栏AI科技评论

人工智能公司Next IT公司总裁Rick Collins:理解人工智能在企业中的角色

过去几个月,机器人程序一直是在互联网上热议的话题。 微软、Facebook等科技业大公司都在向开发者开放了自己的人工智能平台。这些开放的工具和平台意味着,业界向...

391150
来自专栏决胜机器学习

深层神经网络参数调优(五) ——超参数调试、batch归一化、softmax回归

深层神经网络参数调优(五) ——超参数调试、batch归一化、softmax回归 (原创内容,转载请注明来源,谢谢) 一、超参数调试 1、超参数 超参数是不直...

51580
来自专栏人工智能快报

人工智能帮助NASA发现新行星

最近,科学家借助人工智能技术发现了环绕开普勒-90星系(一个类太阳系,距离地球2545光年)的第八颗行星,至此,我们的太阳系与围绕单个恒星周围的大多数行星都有联...

386130
来自专栏人工智能快报

美情报机构投2800万美元研发高级机器学习算法

据美国哈佛大学网站2016年1月26日报道,哈佛大学工程与应用科学学院(SEAS)、脑科学中心(CBS)、分子和细胞生物系共同获得美国高级情报研究计划局(IAR...

373120
来自专栏人工智能快报

机器学习算法可帮助政府对信息进行保密分类

美国麻省理工学院《技术评论》杂志发表文章称机器学习算法可以帮助政府完成保密信息的分类工作。 美国国务院每年产生的电子邮件约20亿封,其中很大一部分含有敏感或机密...

36580

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励