
呆萌小车
简介
一个呆萌麦克纳姆轮小车,有表情,可遥控,可跟随
简介:一个呆萌麦克纳姆轮小车,有表情,可遥控,可跟随开源协议
:GPL 3.0
描述
去年我用py32做了一套遥控器和瓦力(已开源),发现遥控器的可玩性还是挺高的,前段时间逛b站,发现一个up主设计了一个麦克纳姆轮小车,觉得挺好玩的,于是就决定仿制一个。
去年做的遥控接收机上主要控制的是舵机,直流电机只能接两个,但麦克纳姆轮小车需要同时控制4个小直流电机,所以又重新设计了一个板子。
一、项目主要功能
1.可显示表情
目前设计了6个表情和动作:普通表情、微笑、生气、左看、右看、眨眼
开机先笑一个:

2.可遥控
遥控器还是用的我上次设计的遥控器,主要实现小车的前进、后退、左右转弯、左右平移和表情显示
3.跟随
没有遥控时通过左右两个测距传感器实现与前方物品保持一定距离并跟随前方物体一起运动
二、简单原理和软件说明
本次硬件主控芯片是PY32F030E18M6TU(价格便宜,量又足),两个电机控制芯片:YX-1818AM,遥控接收芯片:CI24R1,另外还使用了两个VL53L0X测距传感器
软件模拟了两路I2C,使用管脚如下:
#define I2C1_SCL_PIN GPIO_PIN_0
#define I2C1_SDA_PIN GPIO_PIN_12
#define I2C1_SCL_PORT GPIOF
#define I2C1_SDA_PORT GPIOA
#define I2C2_SCL_PIN GPIO_PIN_7
#define I2C2_SDA_PIN GPIO_PIN_1
#define I2C2_SCL_PORT GPIOA
#define I2C2_SDA_PORT GPIOF
模拟两路I2C的主要原因是VL53L0X的I2C地址不方便修改,所以干脆直接多模拟一路来使用。
1.显示表情
使用一个0.96寸4线oled屏显示。使用软件画两个带圆角的正方形代表眼睛,通过控制方块的位置和形状来显示表情和动作。具体实现过程见附件程序中oled_display.c
2.遥控控制
右摇杆控制前后、左右,左摇杆的控制左右横移,左,右两个按键控制表情,详见主程序
3.跟随控制
通过小车左右两个距离传感器测出的距离判断障碍物在哪个方向,从而实现转向障碍物方向,用pid控制,实现小车保持在距障碍物20cm左右。
原理很简单,但实现起来有很多坑,最大的一个坑就是这个传感器在超过30厘米后有概率测出的距离为0,左右测距不准从而造成小车乱动,用了卡尔曼滤波都没办法,pid根本没法调,为了避免这个现象我直接限制了测量距离,把大于20cm和小于2cm的数据全部强制为20cm。限制测量距离后就取消了卡尔曼滤波。
三、其他说明
1.老规矩,编程很烂,大家轻拍;pid的调控目标是两个传感器测出的距离都是20cm,但pid调的不是很好,大家根据自己的实际情况再调调。
2.3d文件、程序文件放附件,我都是给的完整原始文件,可自行修改。电机是n20减速马达,我这个马达好像转速有点快,可以适当选减速比稍微大一点的,速度好控制。3d软件是开源软件FreeCAD,麦克纳姆轮设计的可能不是很好装配,每个内轮要套一个6*8mm的硅胶管来防滑(小车文件里的轮子只是示意,轮子文件是另一个单独文件);车厢我画了两个,一个大的一个小的,我用的是小的那个,但是空间太挤了,建议使用那个大的。看下图多拥挤

底盘和轮子(好像有点不雅):

底盘:

3.遥控器部分请参考我的另一个开源项目。
演示视频在这儿:
设计图
未生成预览图,请在编辑器重新保存一次BOM
暂无BOM
克隆工程知识产权声明&复刻说明
本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。
请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。


评论