六足机器人(hexapod robot)控制板 --- 项目参与人员及分工: * [[page_hankun.zhang|张瀚坤]] * [[page_haoqian.li|李豪乾]] * [[page_jiwei.ren|任继伟]] ### 项目需求 --- #### 功能要求 基于小脚丫FPGA板和树莓派设计六足机器人控制和驱动系统。 - 摄像头采集 - 避障 - 手机遥控 #### 性能要求 - 运动流畅 - 电源能够保障持续工作20分钟以上 #### 资源要求 #### 进度要求 #### 成本要求 #### 其它要求 ### 项目方案 --- #### 方案综述: {{ :绘图1.png |}} * 1.控制电源模块:为Raspberry Pi、FPGA模块供电。 * 2.执行电源模块:为驱动模块供电,能满足驱动模块的总电流要求。 * 3.Raspberry Pi :控制中心。接收上位机的控制信息,控制FPGA输出正确的PWM波形。 * 4.FPGA:数据处理模块,控制驱动板。 * 5.驱动模块:驱动18个舵机使六足协调运动。 * 6.通讯:(模块间的通信协议) * Pi--FPGA:uart/I2C * Pi--PC:socket #### 关键元器件: ##### 电源: * 控制电源模块:LM2596 {{ :lm2596.png |}} {{ :lm2596属性.png |}} * 执行电源模块:LM2596(过流保护:自恢复保险丝)同上 * 电源 对比 :L298N {{ :l298n.png |}} {{ :l298n参数.png |}} * 降压模块:Lobot  降压模块 {{ :lobot_降压模块.png |}} {{ :lobot_降压模块参数.png |}} ##### 隔离 光耦隔离:PC817 PC817C 光隔离器/C档/光耦 SOP-4 {{ :光耦.png |}} {{ :光耦参数.png |}} ##### FPGA: {{ :小脚丫.png |}} ##### 舵机:LDX-218 {{ :舵机.png |}} {{ :产品参数1.png |}} {{ :产品参数2.png |}} #### 实施计划: ##### 第一阶段:实现六足机器人的各个模块连接 * FPGA : * PWM :测试 PWM波形测试(1.波形周期 2.最小步进距离) * 确定与树莓派通信接口:Uart/I2C * 数据分析 :通信数据格式 * Pi: * Uart/I2C * 摄像头 * 超声波 * 舵机: * 0点的确定 * 特性 * 驱动电流 * 执行精度 * 电源: * LM2596模块 * 原理图: * 18路PWM产生模块 * 18路舵机驱动模块 ##### 第二阶段:实现项目任务的一部分 * FPGA:PWM+光耦隔离(做控制与驱动隔离) * 电源:根据LM2596电源模块,自己设计电源模块 * 舵机:实现一条腿的控制 * 制板 ##### 第三阶段:实现传感器任务 * PI:加入摄像头和超声波功能 * FPGA:通过I2C挂载传感器 * 电源:根据LM2596电源模块,自己设计电源模块 * 舵机:实现简单的移动 * 制板 ##### 目前任务: * 了解舵机特性 * 学习FPGA: * PWM如何生成 * Uart/I2C如何做 * 定义与树莓派通信的数据格式 * 买材料 * 舵机及架子 价格:1600元 * 电源 LM2596 价格:15元 ##### 实体结构: 简单模块化设计 * 模块设计 {{ ::ph_des.png |}} {{ :驱动板简图.png |}} * 安装方式 {{ ::ph_des2.png |}} ### 项目实施 --- #### PCB设计 #### PCB制造 #### PCB焊接、调试 #### FPGA连接和Verilog编程 #### 系统测试 ### 项目报告 --- #### 项目简要总结 #### 项目达到的指标 #### 项目改进及相应的方案 #### 参考文献 ##### Diamond安装及调试 * 官网获取许可证:http://www.latticesemi.com * 软件安装教程:[[http://www.stepfpga.com/doc/%E8%BD%AF%E4%BB%B6%E5%AE%89%E8%A3%85%E5%8F%8A%E9%85%8D%E7%BD%AE|Diamond的安装及配置]] * [[http://www.stepfpga.com/doc/lattice_diamond%E7%9A%84%E4%BD%BF%E7%94%A8|lattice_diamond的使用:跑马灯的简单例程]] *调试中出现的问题1:✘不能识别USB串口 *解决:安装下载USB驱动,重新编译,下载。 * [[http://www.stepfpga.com/doc/|FPGA的学习教程]] ---- * 树莓派资料:http://www.eetree.io/doc/%E9%80%82%E9%85%8D%E6%9D%BF_%E6%A0%91%E8%8E%93%E6%B4%BE * 树莓派+usb摄像头:https://www.raspberrypi.org/documentation/usage/webcams/ * 树莓派+hc-sr04超声波测距:https://tutorials-raspberrypi.com/raspberry-pi-ultrasonic-sensor-hc-sr04/ * fpga产生pwm波资料1:https://www.fpga4student.com/2017/08/verilog-code-for-pwm-generator.html * fpga产生pwm波资料2:https://www.allaboutcircuits.com/projects/a-pwm-driver-for-fpga-and-soc-design-using-verilog-hdl/ * fpga生成pwm波资料3:http://referencedesigner.com/tutorials/verilogexamples/verilog_ex_09.php * 小脚丫脉宽调制例程:http://www.stepfpga.com/doc/9._%E5%91%BC%E5%90%B8%E7%81%AF * 基于树莓派的六足机器人:https://medium.com/@mithi/a-raspberry-pi-hexy-transcript-62533c69a566 * 六足机器人资料1:https://www.robotshop.com/community/robots/show/hexpi-a-robopi-raspberry-pi-based-hexapod-robot * 六足机器人资料2:https://blog.hackster.io/modifying-a-cheap-hexapod-robot-toy-to-run-on-a-raspberry-pi-479e181daf78 * 小脚丫fpga 串口:http://www.stepfpga.com/doc/uart%E4%B8%B2%E5%8F%A3%E6%A8%A1%E5%9D%97 * Linux tcp/ip编程:https://www.thecrazyprogrammer.com/2017/06/socket-programming.html * Linux 串口编程:https://stackoverflow.com/questions/6947413/how-to-open-read-and-write-from-serial-port-in-c * 六足机器人舵机:https://item.taobao.com/item.htm?spm=a230r.1.14.11.252d28628nHb60&id=19653902949&ns=1&abbucket=18#detail * PWM风扇控制设计文档以及PWM风扇控制设计源代码:http://www.stepfpga.com/doc/fpga_start * FPGA相关视频: https://www.moore8.com/courses/list/?cid=3 * 树莓派的c语言编程:https://raspberry-projects.com/pi/programming-in-c/i2c/using-the-i2c-interface * 树莓派写iic:https://raspberry-projects.com/pi/programming-in-c/i2c/using-the-i2c-interface