【立创开发板】麦克纳姆轮小车 - 嘉立创EDA开源硬件平台

编辑器版本 ×
标准版 Standard

1、简单易用,可快速上手

2、流畅支持300个器件或1000个焊盘以下的设计规模

3、支持简单的电路仿真

4、面向学生、老师、创客

专业版 professional

1、全新的交互和界面

2、流畅支持超过3w器件或10w焊盘的设计规模,支持面板和外壳设计

3、更严谨的设计约束,更规范的流程

4、面向企业、更专业的用户

专业版 【立创开发板】麦克纳姆轮小车

简介:基于GD32F470ZGT6芯片的梁山派开发版,制作一辆具有蓝牙控制、循迹、避障功能的小车,由两节锂电池串联7.4V供电,内置电机驱动芯片,可实现四个轮全驱。

开源协议: GPL 3.0

(未经作者授权,禁止转载)

创建时间: 2023-01-04 22:12:35
更新时间: 2023-02-24 21:02:43
描述
# 1、功能描述 1. 蓝牙控制:利用蓝牙模块连接手机,接收数据,实现小车的前后左右移动,调速功能。 2. 电池容量检测:单片机ADC功能采集电池电压,计算出电池剩余电量。 3. 五路红外循迹:采用5个红外对管,检测地面的黑线并且寻路运动。 4. 超声波避障:通过超声波模块检测前方障碍物。 5. 蜂鸣器报警提醒:检测到障碍物或者电量不足进行鸣笛提醒。 6. 独立按键:可切换小车行驶控制模式。 ~~7. WiFi控制:通过WiFi模块手机连接网络,连接网络控制小车运动。(未实现)~~ ~~8. 摄像头:实时显示摄像头画面。(未实现)~~ # 2、原理图 原理图基本上与官方一致,主要因为之前都是用的stc比较多,这次的梁山派还是首次使用32位之类单片机,还有官方教程可以参考,趁此机会可以好好学习。下面说说主要改动的地方。 * 降压芯片 原官方使用的是HE6250MPR这款ldo,但在用锂电池使用时,单片机会经常的复位。一开始我想到的是锂电池的问题,因为这款芯片最高支持15v输入,但是换了后仍是这样现象,我翻了翻库存正好有78m05,可是封装不一样,无奈之下,使出了灵魂飞线大法,最后问题解决了。 ![image.png](//image.lceda.cn/pullimage/uq8fv4etoW4oODV2ShcJbZUtBnRpJ154LsrJonW3.png) * 蓝牙模块 这里主要改动是原来的3.3V供电改成了5V,并且在电源旁加了个电容滤波。我买的是带底板宽电压的模块,商家写着3.2~6V输入,实际用3.3V时是用不了的,狠狠踩了个坑。 ![image.png](//image.lceda.cn/pullimage/qqYUitriS75ClRQGbcIGvjYjYH1Y9bhK9cG9Z7Gp.png) * 循迹模块 这里我单独画了一块电路板板,是想将尺寸压缩在10*10内,主要贯彻中华民族传统美德——节约,绝对不是想拼版(狗头),结果最后还是没拼成。还有一个目的就是方便调试,用双联排针侧焊即可。 ![image.png](//image.lceda.cn/pullimage/EKNbKUQvXlUUyTscydyj9khJ7HHNTrlk23geatwD.png) # 3、程序 * 麦克拉姆轮 原理就是利用麦轮的特殊性,分别改变4个轮子不同的转向,在普通轮子的基础上实现平移、倾斜移动。 详情可以参考网站:[麦克拉姆轮原理](https://blog.csdn.net/weixin_64064747/article/details/128693337) ![C67I0JJ(C_CFL7XM0R{%Y.png](//image.lceda.cn/pullimage/Cdm7S4UDKMeK2upghgvQGAk08nJkuwkh8PQ0kQ1Z.png) ``` /************************************************ 函数名称 : car_front 功 能 : 小车前进 参 数 : speed 速度 返 回 值 : 无 *************************************************/ void car_front(uint16_t speed) { motor_LQ_front(speed); motor_LH_front(speed); motor_RQ_front(speed); motor_RH_front(speed); } /************************************************ 函数名称 : car_back 功 能 : 小车后退 参 数 : speed 速度 返 回 值 : 无 *************************************************/ void car_back(uint16_t speed) { motor_LQ_back(speed); motor_LH_back(speed); motor_RQ_back(speed); motor_RH_back(speed); } /************************************************ 函数名称 : car_left_run 功 能 : 小车左移 参 数 : speed 速度 返 回 值 : 无 *************************************************/ void car_left_run(uint16_t speed) { motor_LQ_back(speed); motor_LH_front(speed); motor_RQ_front(speed); motor_RH_back(speed); } /************************************************ 函数名称 : car_right_run 功 能 : 小车右移 参 数 : speed 速度 返 回 值 : 无 *************************************************/ void car_right_run(uint16_t speed) { motor_LQ_front(speed); motor_LH_back(speed); motor_RQ_back(speed); motor_RH_front(speed); } /************************************************ 函数名称 : car_left 功 能 : 小车原地左转 参 数 : speed 速度 返 回 值 : 无 *************************************************/ void car_left(uint16_t speed) { motor_LQ_back(speed); motor_LH_back(speed); motor_RQ_front(speed); motor_RH_front(speed); } /************************************************ 函数名称 : car_right 功 能 : 小车原地右转 参 数 : speed 速度 返 回 值 : 无 *************************************************/ void car_right(uint16_t speed) { motor_LQ_front(speed); motor_LH_front(speed); motor_RQ_back(speed); motor_RH_back(speed); } /************************************************ 函数名称 : car_left_front 功 能 : 小车左前 参 数 : speed 速度 返 回 值 : 无 *************************************************/ void car_left_front(uint16_t speed) { motor_LQ_front(1); motor_LH_front(speed); motor_RQ_front(speed); motor_RH_front(1); } /************************************************ 函数名称 : car_right_front 功 能 : 小车右前 参 数 : speed 速度 返 回 值 : 无 *************************************************/ void car_right_front(uint16_t speed) { motor_LQ_front(speed); motor_LH_front(1); motor_RQ_front(1); motor_RH_front(speed); } /************************************************ 函数名称 : car_left_back 功 能 : 小车左后 参 数 : speed 速度 返 回 值 : 无 *************************************************/ void car_left_back(uint16_t speed) { motor_LQ_back(speed); motor_LH_back(1); motor_RQ_back(1); motor_RH_back(speed); } /************************************************ 函数名称 : car_right_back 功 能 : 小车右后 参 数 : speed 速度 返 回 值 : 无 *************************************************/ void car_right_back(uint16_t speed) { motor_LQ_back(1); motor_LH_back(speed); motor_RQ_back(speed); motor_RH_back(1); } ``` 真值表↓ ![4%49BW)S6U~VE9J9F0DDB1B.png](//image.lceda.cn/pullimage/UTX2Fi3fCkTncVqYdbDV9gpATnfPpfdIlH5cwM2x.png) # 4、其他 * 麦轮连轴器 我的麦轮和电机是在淘宝上买到的,可是找了很久都找不到合适的联轴器,所以干脆自己画一个,然后3d打印,文件放在了下面。 如果少量打样的话,我在网上对比过几间厂家,还是在咱嘉立创的三维猴里打印性价比高。 ![image.png](//image.lceda.cn/pullimage/R2RFuP6wVN1ta0aJjKcYHXleliPChrUU2bUDk4Ue.png) * 改进 还是有很多改进的地方,比如电机位置摆放的时候,没有考虑上减速箱的长度,导致最后小车比较臃肿,没有符合我最初的设想。 另外还有这次电源滤波没有做足,很多模块都没放电容。还可以内置锂电充电电路,就不用来回的插拔电池。
设计图
原理图
1 /
PCB
1 /
未生成预览图,请在编辑器重新保存一次
工程视频/附件
工程成员
侵权投诉
相关工程
换一批
加载中...
添加到专辑 ×

加载中...

温馨提示 ×

是否需要添加此工程到专辑?

温馨提示
动态内容涉嫌违规
内容:
  • 153 6159 2675

服务时间

周一至周五 9:00~18:00
  • 技术支持

support
  • 开源平台公众号

MP