亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

简单的 Pi 机器人

Simple Pi Robot旨在以简单的形式实现机器人控制。

Simple Pi Robot旨在以简单的形式实现机器人控制。

零件清单

(1) Raspberry pi(任何型号)但最近推出的 pizero 或 pi 2 应该是一个不错的选择,我目前的型号采用 B+。

(2) 40 针 GPIO 电缆(如果使用 pi B+ 或 pi 2)。

(3) 面包板(用于快速组装各种传感器)。

(4) 2wd 底盘。

(5) 距离传感器(Ultrasonic HC SR04)。

(6) 移动电源(用于给pi供电)。

(7) 充电电池AA(最好是2100毫安时)。

(8) 跳线,公母型,电阻器。

(9) WiFi 适配器(EDUP/EDIMAX 用于与 pi 进行无线通信)。

(10) 存储卡(4GB 及以上用于在 pi 上运行操作系统)。

(11) 电机驱动器 (L298)。

(12)伺服电机。

(13) 杂项 – 扎线带(用于绑跳线)和泡沫胶带(用于固定伺服系统或任何其他无法使用螺钉组件的传感器)。

第 1 步:选择电机驱动护罩

目前用于树莓派的电机驱动屏蔽很少,仅举几例:-

(1) RTK 电机控制器屏蔽

(2) 用于 Raspberry Pi 的 Pololu DRV8835 双电机驱动器套件

(3) Adafruit DC 和 Stepper Motor HAT for Raspberry Pi

(4) Adafruit 制作的 Raspirobot 板

和最近像 ZEROBORG 一样不发达

构建任何机器人最常见的问题之一是最大限度地减少布线需求,并且可以通过使用屏蔽/帽子来实现这一点。我尝试构建我的机器人,首先使用一个与制造商 ALSROBOT 的 Raspirobot 相当的盾牌。套件从中国发货,但问题是我无法增加电机输入电压。最大值小于 5 伏,电压之间有轻微的不平衡,仍然可以检查以下链接 – ALSROBOT – PI Motor driver shield

无论如何,在我当前的教程中,我使用了廉价且多功能的 L298 电机驱动器 - L298。

上述板的优点除了价格便宜外,还有5V稳压输出可用。

我用L298板驱动了2个直流电机和1个伺服电机。

第 2 步:L298 电机驱动器

我在机箱底部安装了 L298 电机驱动器,现在连接直流电机和伺服电机连接

(i) 直流电机 -A 到输出 -A (+ &-).

(ii) 直流电机 -B 到输出 -B (+ &-).

(iii) 伺服电机+ve to L298 Board的+5V稳压电源&伺服电机-ve to L298 Board的GND。

保持启用引脚跳线不变,如果您不想要速度控制,否则请移除跳线。跳线到位确保+5V 电源以启用引脚,进而以额定速度驱动电机。

现在将 4 个 nos 跳线连接到控制输入,将跳线的另一端连接到下一步指定的 GPIO 引脚。

对于伺服电机连接一号。用于控制GPIO引脚的跳线,如下一步

第 3 步:伺服电机

伺服有 3 线连接:电源、接地和控制。必须不断地施加电源。

控制信号是脉冲宽度调制 (PWM),但这里正向脉冲的持续时间决定了伺服轴的位置。例如,一个 1.520 毫秒的脉冲是 Futaba S148 伺服的中心位置。较长的脉冲使舵机转向中心顺时针位置,较短的脉冲使舵机转向中心逆时针位置。

我使用过 Futuba s3003 伺服——连接非常简单,“+”和“-”连接到前面提到的 L298 板。看舵机的工作电压很重要(在我的例子中是 4.8 - 6 V,见上图),信号线要连接到 GPIO 输出,通常是白色或橙色。

在 raspberry pi 中控制伺服电机可能会很棘手,但是有一个非常强大的库托管@ RPIO.PWM,要在 pi 上安装它,请使用以下代码。

sudo apt-get install python-setuptoolssudo easy_install -U RPIO 

要了解有关 RPIO.PWM 和使用的 DMA 的更多信息,请参阅链接 https://pythonhosted.org/RPIO/pwm_py.html

第 4 步:机器人底盘

我用过带2wd的Ellipzo Robot底盘,2wd简单易控。

该套件随附直流电机、用于伺服电机的平底锅套件以及组装该套件所需的所有硬件。

详细链接位于 – Ellipzo Robot Chasis kit。

Pl。参考视频组装树莓派,以及L298电机驱动器、分线板、摄像头模块和移动电源。

第 5 步:距离传感器

集成距离传感器很容易,我们只需要 1k 电阻器和跳线。将 VCC &GND 分别连接到 pi +5Volts &GND。

其他两个引脚 TRIG 和 ECHO 将按照前面的步骤连接到 GPIO 引脚。记得按图片连接电阻。

测量距离的Python代码包含在最后一步。

第 6 步:Raspberry Pi -camera – 使用 VLC 播放器的视频流

这里我使用了 Pi 摄像头模块,设置非常简单,您可以参考链接:Raspberry pi Camera setup

对于视频流,使用 VLC 从在树莓派上安装 VLC 开始

sudo apt-get install vlc 

要使用 RTSP 开始流式传输摄像机视频,请输入以下内容

raspivid -o - -t 0 -n | cvlc -vvv 流:///dev/stdin --sout '#rtp{sdp=rtsp://:8554/}' :demux=h264 

或具有适当的宽度和高度使用以下代码

raspivid -o - -t 0 -n -w 600 -h 400 -fps 12 | cvlc -vvv 流:///dev/stdin --sout '#rtp{sdp=rtsp://:8554/}' :demux=h264 

现在要通过 VLC 播放器查看流,请在远程系统上打开 VLC,而不是使用

打开网络流

rtsp://###.###.###.###:8554/

其中###.###.###.### 是网络路由器提供的 pi 地址。

现在,当 pi 在您家中移动时,您可以在远程系统上看到视频流。

第7步:树莓派引脚和python代码

第 8 步:一些组装图像

代码

from RPIO import PWMimport RPi.GPIO as GPIOfrom RPIO import PWMimport RPi.GPIO as GPIOimport timefrom time import sleepfrom subprocess import callGPIO.setmode(GPIO.BCM)GPIO.setup(19,GPIO) .OUT)GPIO.setup(26,GPIO.OUT)GPIO.setup(16,GPIO.OUT)GPIO.setup(20,GPIO.OUT)GPIO.setup(21,GPIO.IN)GPIO.setup(8,GPIO.OUT) .OUT)GPIO.setup(27,GPIO.OUT)GPIO.setup(9,GPIO.OUT)TRIG=18ECHO=17print"controls"print"1:向前移动"print"2:向后移动"print"3:停止机器人“打印”4:使用自定义名称拍照“打印”5:速度控制前进“打印”6:旋转机器人“打印”7:转动机器人“打印”8:伺服控制请“打印” 11:欢迎使用自主控制"print"press enter to send command"def takestillpic(inp):print"请输入照片字符" inp =raw_input() call ( ["raspistill -vf -hf -o " + str(inp) + ".jpg" ],shell=True ) def fwd():GPIO.output(19,True) GPIO.output(26,False) GPIO.output(16,True) GPIO.output(20,False)def rev ():GPIO.output(19,False) GPI O.output(26,True) GPIO.output(16,False) GPIO.output(20,True)def stop():GPIO.output(19,False) GPIO.output(26,False) GPIO.output(16) ,False) GPIO.output(20,False)def distmeas():打印“正在进行距离测量” GPIO.setup(TRIG,GPIO.OUT) GPIO.setup(ECHO,GPIO.IN) GPIO.output(TRIG,False) ) 打印“请等待传感器稳定” time.sleep(2) GPIO.output(TRIG,True) time.sleep(0.00001) GPIO.output(TRIG,False) 而 GPIO.input(ECHO)==0:pulse_start =time.time() while GPIO.input(ECHO)==1:pulse_end=time.time() pulse_duration =pulse_end - pulse_start distance =pulse_duration * 17150 distance =round(distance,2) 打印“距离”,距离,“ cm" if distance <50 :GPIO.output(19,False) GPIO.output(26,False) GPIO.output(16,False) GPIO.output(20,False) time.sleep(1) 打印“机器人停止为距离更小”打印“现在机器人倒退” GPIO.output(19,False) GPIO.output(26,True) GPIO.output(16,False) GPIO.output(20,True) time.sleep(1) GPIO .output(19,False) GPIO.output(26,False) G PIO.output(16,False) GPIO.output(20,False) TLr() time.sleep(4) fwd() distmeas() else:distmeas() def TL():GPIO.output(19,True) GPIO .output(26,False) GPIO.output(16,False) GPIO.output(20,False)def TLr():GPIO.output(19,True) GPIO.output(26,False) time.sleep(0.75) GPIO.output(19,False) GPIO.output(26,False)while True:inp=raw_input() if inp =="1":fwd() 打印"机器人正向移动" elif inp =="2" :rev() 打印“机器人向 rev 方向移动” elif inp==“3”:stop() 打印“机器人停止” elif inp ==“4”:takestillpic(inp) 打印“请拍照” elif inp ==” 5":GPIO.output(7,False) GPIO.output(8,False) elif inp =="6":TL() elif inp =="7":TLr() elif inp =="8":伺服=PWM.Servo()servo.set_servo(27,1000)time.sleep(2)servo.stop_servo(27)elif inp ==“9”:伺服=PWM.Servo()servo.set_servo(27,1500)时间.sleep(2)servo.stop_servo(27)elif inp ==“10”:伺服=PWM.Servo()servo.set_servo(27,2000)time.sleep(2)servo.stop_servo(27)elif inp ==“11”:fwd() distmeas() GPIO.c倾斜()

来源:简单派机器人


制造工艺

  1. 发那科伺服电机维修专家
  2. 西门子伺服电机维修专家
  3. 伺服电机维修和故障排除提示
  4. 带伺服电机的机器人避障
  5. Joy Robot (Robô Da Alegria)
  6. 线跟随机器人
  7. 超酷室内导航机器人
  8. 伺服运动改善机器人操作
  9. 伺服电机行星齿轮箱之美
  10. 什么是伺服电机?
  11. 什么是伺服电机减速器?
  12. 将减速机与伺服电机配对