该项目的最终结果如下:
请注意,面包板仅用于将电阻器连接到 HC-SR04 传感器的回波通道。只要使用 1.0 至 1.2 K-OHM 电阻器保护 BeagleBone,您就可以从项目中完全移除面包板。
该项目的封面图片显示了添加到EduMIP平台的超声波 HC-SR04 传感器。如果您的目标只是让距离传感器与 BeagleBone Blue 配合使用,您可能希望完全跳过最后的 EduMIP 部分。如果您想将距离传感器添加到现有的 BluPants 爪/抓爪机器人,请按照本教程“ BluPants 爪/抓爪机器人”部分的所有说明进行操作。
使用 6 针 JST 跳线并将其连接到 BeagleBone Blue 中的“GP0”插座。
使用 4 针 JST 跳线并将其连接到 BeagleBone 中的“Power out”插座。
请在下面找到 BeagleBone Blue 引脚图。尝试识别板上的“GP0”和“Power out”连接器时可能会有所帮助:
有关 BeagleBone Blue 引脚排列的更多详细信息,请参阅此链接:
https://groups.google.com/forum/#!category-topic/beagleboard/ZXSTPIcV4OU
正确连接 JST 电缆后,使用一些跳线将 HC-SR04 连接到 JST 母连接器。确保为您的回声跳线使用 1K-OHM 电阻(此项目的蓝线)。如有必要,请使用面包板:
完成接线后,您的项目应类似于下图:
请在 Github 上找到示例 Python3 模块hcsr04.py以测试您的项目:
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import Adafruit_BBIO.GPIO as GPIO
import time
# HC-SR04 connection
# red wire
vcc = "5V"
# white wire
trigger = "GPIO1_25"
# blue wire using resistor
echo = "P9_23" #echo = "GPIO1_17"
# black wire
gnd = "GND"
GPIO.cleanup()
time.sleep(2)
def distance_measurement(TRIG,ECHO):
GPIO.output(TRIG, True)
time.sleep(0.00001)
GPIO.output(TRIG, False)
pulseStart = time.time()
pulseEnd = time.time()
counter = 0
while GPIO.input(ECHO) == 0:
pulseStart = time.time()
counter += 1
while GPIO.input(ECHO) == 1:
pulseEnd = time.time()
pulseDuration = pulseEnd - pulseStart
distance = pulseDuration * 17150
distance = round(distance, 2)
return distance
# Configuration
print("trigger: [{}]".format(trigger))
GPIO.setup(trigger, GPIO.OUT) #Trigger
print("echo: [{}]".format(echo))
GPIO.setup(echo, GPIO.IN) #Echo
GPIO.output(trigger, False)
print("Setup completed!")
# Security
GPIO.output(trigger, False)
time.sleep(0.5)
distance = distance_measurement(trigger, echo)
while True:
print("Distance: [{}] cm.".format(distance))
time.sleep(2)
if distance <= 5:
print("Too close! Exiting...")
break
else:
distance = distance_measurement(trigger, echo)
GPIO.cleanup()
print("Done")
hcsr04.py模块将每 2 秒打印一次以厘米为单位的距离。如果物体离传感器太近(5厘米或更小),它将中断执行并退出。
组装机器人
我建议使用这两个教程来组装您的基础抓手机器人,这样您就可以将距离传感器安装在它的顶部:
准备好基爪机器人后,您可以向其添加距离传感器。你可以通过许多不同的方式来做到这一点。例如,您可以使用胶带将其连接到爪式伺服系统(就像我们为Raspberry Pi 机器人所做的那样),或者使用这样的支架:
所示的 HC-SR04 传感器固定在机器人的前部。未使用添加伺服器以平移传感器的部分。如果您希望能够平移距离传感器,可以随意添加它。
将 HC-SR04 连接到机器人后的最终结果应该与此类似:
另一个建议是使用迷你面包板来节省机箱上的空间,以便将来可能要添加的附加组件。
将距离传感器添加到 MVP 或爪式机器人后,您就可以使用BluPants Studio编写一些代码了。
组装机器人
我强烈推荐使用这个很棒的教程来组装你的 EduMIP:
EduMIP:使用 HC-SR04 传感器避开障碍物
如果您想让距离传感器与您的 EduMIP 一起工作,请在Github上找到此示例代码,以让您的机器人随机驾驶避开障碍物。它基于 BluPants 项目,可以安装到您现有的 BeagleBone Blue 映像中。有关更多详细信息,请参阅Github repo 上的说明。
或者,您可以简单地安装 BluPants映像,这样您就不必担心所有的软件依赖性。要安装 BluPants 映像,请从此链接下载blupants_beagleboneblue.img.xz 映像,然后根据 BeagleBone 官方入门指南中的文档将其刷入您的机器人。启动映像后,您需要在 Beaglebone 中编辑两个文件:
取消注释行:
/usr/bin/rc_balance_dstr -i dstr &
将 robot_id 设置为 1:
"robot_id": 1,
编辑文件后,重新启动 Beaglebone,或重新启动 BluPants 服务:
sudo service blupants 重启
一旦服务再次运行,您应该能够平衡您的机器人并使用基于 Blockly 的编程平台BluPants Studio来控制它。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !