找回密码
 立即注册

QQ登录

【Raspberry Pi 3 小车】6、自主碰撞

来源: 奥松-Neil 2016-12-1 13:02 显示全部楼层 |阅读模式
1、实验介绍
(1)实验目的:通过两个碰撞传感器实现 4WD 移动平台的自主碰撞运动
(2)实验环境
硬件环境:基于 Raspberry Pi 3 的 4WD 移动平台、碰撞传感器 * 2个
软件环境:Putty SSH 登录软件、FTP 传输工具、Notepad++ 文本编辑器
(3)使用接口分析
Raspberry Pi 电机驱动板要使用的接口:电机接口 A、电机接口 B
Raspberry Pi 控制器要使用到的 GPIO 接口:
  • A 口方向控制接口 GPIO25
  • A 口使能控制接口 GPIO17
  • B 口方向控制接口 GPIO4
  • B 口使能控制接口 GPIO10
  • SW1 接口对应 GPIO11 连接左侧碰撞传感器
  • SW2 接口对应 GPIO9 连接右侧碰撞传感器
  • LED1 接口对应 GPIO7,作为左侧是否有障碍的指示灯
  • LED2 接口对应 GPIO8,作为右侧是否有障碍的指示灯
(4)硬件安装
如图所示,将碰撞传感器安装到 4WD 平台上板和前端板位置
图片9.png
2、例子程序
在 Notepad++ 文本编辑器中输入下列程序,并保存为 robot6.py 文件
  1. import RPi.GPIO
  2. import time

  3. directionA = 25
  4. EA = 17
  5. directionB = 4
  6. EB = 10
  7. L = 11
  8. R = 9
  9. LED1 = 7
  10. LED2 = 8

  11. RPi.GPIO.setmode(RPi.GPIO.BCM)
  12. RPi.GPIO.setup(EA,RPi.GPIO.OUT)
  13. RPi.GPIO.setup(directionA,RPi.GPIO.OUT)
  14. RPi.GPIO.setup(EB,RPi.GPIO.OUT)
  15. RPi.GPIO.setup(directionB,RPi.GPIO.OUT)

  16. RPi.GPIO.setup(L,RPi.GPIO.IN)
  17. RPi.GPIO.setup(R,RPi.GPIO.IN)

  18. RPi.GPIO.setup(LED1,RPi.GPIO.OUT)
  19. RPi.GPIO.setup(LED2,RPi.GPIO.OUT)

  20. def back():
  21.         RPi.GPIO.output(EA,True)
  22.         RPi.GPIO.output(directionA,False)
  23.         RPi.GPIO.output(EB,True)
  24.         RPi.GPIO.output(directionB,False)

  25. def forward():
  26.         RPi.GPIO.output(EA,True)
  27.         RPi.GPIO.output(directionA,True)
  28.         RPi.GPIO.output(EB,True)
  29.         RPi.GPIO.output(directionB,True)
  30.         
  31. def right():
  32.         RPi.GPIO.output(EA,True)
  33.         RPi.GPIO.output(directionA,True)
  34.         RPi.GPIO.output(EB,True)
  35.         RPi.GPIO.output(directionB,False)

  36. def left():
  37.         RPi.GPIO.output(EA,True)
  38.         RPi.GPIO.output(directionA,False)
  39.         RPi.GPIO.output(EB,True)
  40.         RPi.GPIO.output(directionB,True)
  41.         
  42. def stop():
  43.         RPi.GPIO.output(EA,False)
  44.         RPi.GPIO.output(directionA,False)
  45.         RPi.GPIO.output(EB,False)
  46.         RPi.GPIO.output(directionB,False)
  47.         
  48. try:
  49.         while True:
  50.                 BL = RPi.GPIO.input(L)
  51.                 BR = RPi.GPIO.input(R)
  52.                 if BL == False and BR == False:
  53.                         RPi.GPIO.output(LED1,True)
  54.                         RPi.GPIO.output(LED2,True)
  55.                         forward()
  56.                 elif BL == True and BR == True:
  57.                         RPi.GPIO.output(LED1,False)
  58.                         RPi.GPIO.output(LED2,False)               
  59.                         back()
  60.                         time.sleep(0.6)
  61.                         right()
  62.                         time.sleep(1)
  63.                 elif BL == True and BR == False:
  64.                         RPi.GPIO.output(LED1,True)
  65.                         RPi.GPIO.output(LED2,False)
  66.                         back()
  67.                         time.sleep(0.6)
  68.                         right()
  69.                         time.sleep(1)
  70.                 elif BL == False and BR == True:
  71.                         RPi.GPIO.output(LED2,True)
  72.                         RPi.GPIO.output(LED1,False)
  73.                         back()
  74.                         time.sleep(0.6)
  75.                         left()
  76.                         time.sleep(1)
  77.                 else:
  78.                         stop()
  79.                         
  80. except KeyboardInterrupt:
  81.         pass
  82. RPi.GPIO.cleanup()
  83. RPi.GPIO.setmode(RPi.GPIO.BCM)
  84. RPi.GPIO.setup(EA,RPi.GPIO.OUT)
  85. RPi.GPIO.setup(EB,RPi.GPIO.OUT)
  86. RPi.GPIO.output(EA,False)
  87. RPi.GPIO.output(EB,False)
复制代码

3、程序执行
游客,如果您要查看本帖隐藏内容请回复




回复

使用道具 举报

大神点评12

wang11876 2017-2-12 10:09 显示全部楼层
学习一下学习
回复 支持 反对

使用道具 举报

caihuyang 2017-6-13 19:21 显示全部楼层
SDRTFYGBHNJMKDCFGHJK
回复 支持 反对

使用道具 举报

lqygood123 2017-10-2 11:14 显示全部楼层
学习一下学习
回复 支持 反对

使用道具 举报

pi@xuhai 2017-12-29 16:36 显示全部楼层
学学学学学
回复 支持 反对

使用道具 举报

hongsuogui 2018-5-14 11:22 显示全部楼层
look...............
回复

使用道具 举报

活久见 2018-7-4 14:06 显示全部楼层
学习学习 谢谢分享
回复 支持 反对

使用道具 举报

elkanchang 2018-8-21 10:32 显示全部楼层
继续学习,打造高级小车
回复 支持 反对

使用道具 举报

feimiao_888 2019-4-5 08:53 来自手机 显示全部楼层
学习 学习下
回复 支持 反对

使用道具 举报

您可能感兴趣的文章

您需要登录后才可以回帖 登录 | 立即注册

关注0

粉丝9

帖子147

发布主题
社区热门 MORE+
    社区热帖 MORE+