我们用ESP32-Wrover-Kit做自平衡小车犯过的坑

因为一门叫做“智能系统设计”的课程,我们团队做了好几个礼拜的自平衡小车,由于是第一次做这种嵌入式开发,用的又是完全不熟悉的开发板和开发环境,确实是犯了好多的错误不过也成长了很多!

特别感谢,有很多大神或者前辈的一些经验分享给我们这种理论不扎实又脱离实际的大学生很多很多的帮助,所以一是为了记录我们的心路历程,二是也要为后人做一些正向的反馈,我们也在忙碌之中写下——我们用ESP32-Wrover-Kit做自平衡小车犯过的坑。

关于ESP32(Wrover-Kit)本身的一些tips

1.谨慎地使用GPIO引脚,不同的引脚可能有不同的属性,例如有的引脚只有输入功能没有输出功能,或者有的引脚是有固定作用的。一定要小心!这里你可以看这篇同样是的博客文章

2.ESP32默认I2C的SDA,SCL引脚是21和22,这个可以去它库中一个关于pin的头文件里找到,不过藏的很深,对新手来说不太友好。这里你可以看这篇同样是的博客文章

3.不同的ESP32晶振大小各不相同,在烧写代码和可能遇到的计算中要注意,像大家常用的DeviKit是80MHz,而我们的Wrover Kit是40MHz的。

4.ESP32的定时中断也是有库的,网上资料很少,导致我们一直不会写,直到有其他团队问了乐鑫公司工程师才得以解决。

关于智能(自平衡)小车的一些tips

不局限于ESP32本身,我们还把做自平衡小车过程中遇到的问题记录在这里。

1.MPU6050如果可以的话就按照它的要求摆放X, Y, Z轴,否则你在进行卡尔曼滤波的时候会出现你意向不到的错误,这个问题主要当然是我们对卡尔曼滤波的原理理解的不是很清楚,所以在调用的时候传入参数出现了点问题,不过既然可以通过简单的摆放位置解决的问题就不要复杂化,能解决问题就好。

2.在购买电机的时候一定要注意一下质量…比如我们在某宝著名平衡车店家就买到了一款次品,左右轮差巨大的同时,前向后向转速也有巨大差异,读取编码器读数的时候也非常神奇,我们一度以为我们的I2C接线引脚有问题,好在后来因为种种原因又买了一组电机惊奇地解决了所有问题。

3.MPU6050在固定时把一个电容弄掉了,结果导致输出的angle值出现了-90度的偏差,研究了很久最终发现问题居然出在这里非常的绝望…


经验分享 程序员 微信小程序 职场和发展