今日推荐: 六足机器人(hexapod robot)控制板
功能要求
基于小脚丫FPGA板和树莓派设计六足机器人控制和驱动系统。
- 摄像头采集
- 避障
- 手机遥控
性能要求
- 运动流畅
- 电源能够保障持续工作20分钟以上
项目方案
方案综述:
- 1.控制电源模块:为Raspberry Pi、FPGA模块供电。
- 2.执行电源模块:为驱动模块供电,能满足驱动模块的总电流要求。
- 3.Raspberry Pi :控制中心。接收上位机的控制信息,控制FPGA输出正确的PWM波形。
- 4.FPGA:数据处理模块,控制驱动板。
- 5.驱动模块:驱动18个舵机使六足协调运动。
- 6.通讯:(模块间的通信协议)
- Pi–FPGA:uart/I2C
- Pi–PC:socket
购买清单:
关键元器件及参数:
- 电源:
- SN74LVC244A八路缓冲器(3个):
- SN74LVC244A具有三态输出的八路缓冲器或驱动器数据表: http://www.ti.com/lit/ds/symlink/sn74lvc244a.pdf
- FPGA:
- 舵机:LDX-218
- 自恢复电阻丝
- 铝质电解电容器-SMD
- 树莓派3b+
树莓派的硬件及配置 - 摄像头CSI摄像头
实施计划:
第一阶段:实现六足机器人的各个模块连接
- FPGA :
- PWM :测试 PWM波形测试(1.波形周期 2.最小步进距离)
- 确定与树莓派通信接口:Uart/I2C
- 数据分析 :通信数据格式
- Pi:
- Uart/I2C
- 摄像头
- 舵机:
- 0点的确定
- 特性
- 驱动电流
- 执行精度
- 电源:
- CKCY BUCK2+模块
- 原理图:
- 18路PWM产生模块
- 18路舵机驱动模块
第二阶段:实现项目任务的一部分
- FPGA:PWM+缓冲器或驱动器(做控制与驱动隔离)
- 电源:根据CKCY BUCK2+电源模块,自己设计电源模块
- 舵机:实现一条腿的控制
- 制板
第三阶段:实现传感器任务
- PI:加入摄像头和超声波功能
- FPGA:通过I2C挂载传感器
- 电源:根据LM2596电源模块,自己设计电源模块
- 舵机:实现简单的移动
- 制板
实体结构:
项目实施
原理图
PCB制造设计
PCB图
Raspberry_Pi-FPGA转接板:
电机驱动板:
BOM表
PCB焊接、调试
FPGA连接和Verilog编程
系统测试
- 出现的问题:机器人走直线时,出现向右的偏差。
- 问题解决:适当调节右边的前后舵机度数
项目报告
项目简要总结
项目完成情况
硬件方面
舵机选型
电池选型
舵机驱动板
- 原理图设计
- PCB设计、打板和焊接
Raspberry Pi与小脚丫FPGA扩展板
- 原理图设计
- PCB设计、打板和焊接
资源查找方面:
- ADI传感器www.analog.com
- wiki百科:en.wikipedia.org
- mouser.cn、TI官网、Ultra Librian、samacsys等。
实现了两套控制系统
- 六足机器人的步态固化在FPGA内部,树莓派只需要发送简单的命令就可以控制六足机器人前进、原地转动。
- 树莓派通过控制协议,让小脚丫FPGA针对某一个舵机进行控制。
- 实现了树莓派摄像头的web访问。
现在存在的问题
- 电路板上的标注不够详细,对焊接和调试造成了困难。
- 两套软件需要对小脚丫FPGA重新烧写程序才能切换。
- 六足机器人的舵机线未作整理。
- 超声波模块未增加到系统中。
遗憾:
- FPGA锁相环如何使用
- IP核如何移植
- FPGA的内部结构
- 未能自己设计电源
#### 项目达到的指标
- 系统工作20分钟
- 摄像头web访问
参考文献
Diamond安装及调试
- 官网获取许可证:http://www.latticesemi.com
- 软件安装教程:Diamond的安装及配置
-
- 调试中出现的问题1:✘不能识别USB串口
- 解决:安装下载USB驱动,重新编译,下载。
相关参考资料:
- 树莓派使用相关资料:
- Stackoverflow上关于Linux 串口编程
- FPGA使用相关资料:
- 六足机器人参考资料:
- 正在Crowdsupply上众筹的一种基于树莓派的开源的机器人和自动控制器,该产品的官方网站:https://roboticsmasters.co/pages/robo-hat-mm1/, Robo HAT MM1的资料
关于硬禾实战营研究生技能培训更多的实战项目信息,参见硬禾实战营研究生技能培训项目第一期