杰杰开发,早就看到你催贴了,多谢期待,整理了一下料子,好给大家一起参考分享一下吧 首先感谢两位朋友的支持和鼓励,哈哈@21ic小喇叭@caijie001 ,大家有问题或是建议可以直接问我,欢迎骚扰! 继续上料子, 进度:正在为实现自平衡一直努力着!打算这一两天先把蓝牙和四路寻迹给做了,然后实在不行老师走起一波! 现在主体程序已经差不多了(有参考了相关的网上的一些例子),就是经过PID 计算的值怎么通过PWM 来调节电机这一块还有点欠缺,小车就是会这样一直摇摆
如何充电: 虽然楼主加了两节18650电池在他的两侧,但鉴于这种车十分会吃电池,然后这辆车又打算永久使用,所以加了一个TP4056电池充电模块(焊在小车上,又要考虑外观,还是有点难度的,焊了我几天)上原理图(字有点丑,图有点乱,忽略~-~),下次一起上整图,好有个期待,卖个关子,哈哈!
更新MPU6050细节:GY521MPU6050是I2C元件,需要用I2C时序才能读写,关于I2C时序的话内容较多,楼主这里就不多介绍了,如果有需求的话楼主可以贴出来。这边提一下关键要点, 1 配置SCL和SDA引脚,需要单片机有此复用功的引脚,注意开漏输出 2 初始化时主要配置MPU6050里面的这几个寄存器: 电源管理 陀螺仪采样率 低通滤波频率 陀螺仪自检及测量范围 加速计自检、测量范围及高通滤波频率 关于这几个寄存器地址及作用可参考MPU6050手册(网上大把,大多为英文版) 3 在对MPU6050读/写时,需要加入EV事件检测,如:主机发送启始信号后,会产生事件“EV5”,并会对 SR1 寄存器的“SB”位置 1,表示起始信号已经发送 更新编程心得:楼主从开始拿到F103到现在,可以说到网上查了不少资料,发现大多关于F103的程序前面都有 Stm32_Clock_Init(9);和delay_init(72); 而且一些论坛或是其他的博客很多对这两个解释不是很具体,在这里用最简单的话来解释一二 Stm32_Clock_Init(9);//系统时钟设置为外部晶振,9即9倍频得到72MHz //寄存器版的存在此函数,作用倍频时钟,而库函数版就没有(如f4的SystemInit) delay_init(72);//系统SysTick初始化,72为当前为72MHz环境 //在后面调用delay_ms(u32Nms);delay_us(u32 Nus);就可以得到很准确的延时 料子上到这里,难得周末,楼主今天还要加班加点先把四路寻迹和蓝牙给做了,其他的一些细节楼主后续再更新!希望大家继续支持! |