爱板网论坛

查看: 1084|回复: 0

[大赛作品提交] 基于树莓派的迎宾机器人

[复制链接]

主题

好友

444

积分

秀才

  • TA的每日心情
    难过
    2018-9-3 17:34
  • 签到天数: 24 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    发表于 2018-1-10 11:02:33 |显示全部楼层
    本帖最后由 ky123 于 2018-1-31 14:04 编辑

    基于树莓派的迎宾机器人

    首先感谢e络盟的基金支持。
    原理介绍:
    树莓派作为中心控制器
    使用摄像头获取图像,借助openCV技术进行图像处理,包括人脸识别,人流计数,自动跟随等
    使用HC-SR04 超声波测距模块进行距离探测实现人体跟随保持
    首先展示下树莓派的引脚图,非常丰富。
    树莓派全脚图.png

    1.整体原理图
    迎宾机器人硬件模块示意图 (1).png

    通过麦克风阵列采集声音,摄像头采集图像信号,超声波定位模块提供距离数据,红外对管实现避障,使用L9110驱动马达实现移动及位置调整

    2.人像识别及数据处理系统
    图像采集部分使用摄像头模块实现,左右方向调整通过舵机旋转底部调整轮实现。
    树莓派可以使用USB接口摄像头,也可以使用预留的CSI接口的摄像头。本方案选用CSI接口的摄像头,响应速度回更快。

    硬件连线图:
    QQ截图20180111175734.jpg


    摄像头排线的金属片一侧朝向HDMI接口方向
    整体控制逻辑图:
    迎宾机器人-人像识别及人脸跟随.png
    视频效果演示:

    3.  超声波距离保持系统
    测距功能使用的是HC-SR04 超声波模块。
    采购到的模块如下图所示
    超声波.png


    Vcc 电源供电接口,连接树莓派的5V输出引脚
    GND 连接树莓派的 GND引脚
    Trig 引脚用来接收树莓派的控制信号。接任意 GPIO 口
    Echo 引脚用来向树莓派返回测距信息。接任意 GPIO 口
    参数.png

    实物连线图如下:
    连线图.png

    测距原理图:
    QQ截图20180109202838.png

    主要代码:
    1. import RPi.GPIO as GPIO
    2. import time

    3. Trig=20
    4. Echo=21
    5. GPIO.setmode(GPIO.BCM)
    6. GPIO.setup(Trig,GPIO.OUT,initial=GPIO.LOW)
    7. GPIO.setup(Echo,GPIO.IN)

    8. def checkdist():
    9.         
    10.         #发出触发信号
    11.         GPIO.output(Trig,GPIO.HIGH)
    12.         #保持10us以上(我选择15us)
    13.         time.sleep(0.000015)
    14.         GPIO.output(Trig,GPIO.LOW)
    15.         while not GPIO.input(Echo):
    16.                 pass
    17.         #发现高电平时开时计时
    18.         t1 = time.time()

    19.         t3=t1
    20.         while GPIO.input(Echo):
    21.                 #超时判断,只需要探测大约3米范围,取100毫秒足够
    22.                 if  time.time()-t3>100:
    23.                         return 100000
    24.                 pass
    25.         #高电平结束停止计时
    26.         t2 = time.time()
    27.         #返回距离,单位为cm
    28.         return (t2-t1)*340*100/2


    29. time.sleep(2)
    30. try:
    31.         while True:
    32.                 #获取距离,设定保持距离为50cm,如果大于50,向前走;小于50向后走
    33.                 lenth=checkdist()
    34.                 tmpdiff=lenth
    35.                 if tmpdiff>100:
    36.                         tmpdiff=100
    37.                 #计算转动方向和角度 ,速度范围10%-90%,正数向前,负数向后。 移动速度与距离换算:V =L*1.5+10     
    38.                 chengV=0
    39.                 if tmpdiff>60:
    40.                         chengV=(tmpdiff-50)*1.5+10
    41.                 if tmpdiff<40:
    42.                         chengV=(tmpdiff-50)*1.5-10               

    43.                 print 'Dis: %0.2fcm, V:%d ' %(lenth,chengV)
    44.                 time.sleep(0.5)
    复制代码
    视频效果:


    4. 移动系统部分
    采用L911s驱动芯片驱动马达实现动力。
    芯片参数
    QQ图片20180116160748.png

    芯片原理图
    QQ截图20180116160936.jpg

    电路连线示意图
    QQ截图20180116160948.jpg

    主要代码:
    1. #电机控制
    2. def setpwm(lef,rig,tim):
    3.                 #设置gpio口的模式               
    4.                 GPIO.setmode(GPIO.BCM)
    5.                 #定义信号接口gpio口
    6.                 #左侧
    7.                 LFT1 = 21
    8.                 LFT2 = 20
    9.                 #右侧
    10.                 RIG1 = 13
    11.                 RIG2 = 15

    12.                 #设置gpio口为输出
    13.                 GPIO.setup(LFT1,GPIO.OUT)
    14.                 GPIO.setup(LFT2,GPIO.OUT)
    15.                 GPIO.setup(RIG1,GPIO.OUT)
    16.                 GPIO.setup(RIG2,GPIO.OUT)

    17.                 LFTPWM=GPIO.PWM(LFT2, 10)
    18.                 RIGPWM=GPIO.PWM(RIG2, 10)

    19.                 LFTPWM.start(0)
    20. RIGPWM.start(1)

    21. #正转
    22.                 GPIO.output(LFT1,GPIO.LOW)
    23. GPIO.output(RIG1,GPIO.LOW)

    24. LFTPWM.ChangeDutyCycle(lef)
    25. RIGPWM.ChangeDutyCycle(rig)
    26. #end 正转

    27.                 #根据控制时间控制延时,单位毫秒
    28.                 time.sleep(tim/1000)
    29.                 LFTPWM.stop()
    30.                 RIGPWM.stop()
    31.                 GPIO.cleanup()
    复制代码
    实物展示:
    QQ截图201711251444371.jpg


    微信图片_20180121205213.jpg
    回复

    使用道具 举报

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

    关闭

    站长推荐上一条 /3 下一条

    手机版|爱板网

    GMT+8, 2018-9-19 19:46 , Processed in 0.192974 second(s), 13 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-5   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001056号

    Powered by Discuz!

    返回顶部