本篇博客将讲解平衡小车的系统结构以及硬件设计。 首先是小车的系统结构: 以下是小车各个模块的原理介绍。 1、首先是STM32F103C8T6,这是我很喜欢用的一款小核心板,尺寸小、便宜、性能优越。 以下是核心板的引脚图: 2、MPU6050 DMP数字运动处理器 ,方便的实现姿态解算,使用IIC与MCU连接,第二IIC可以连接一个磁力传感器,内置的DMP可以轻松准确的完成姿态解算,我本次用的就是内置DMP,并没有使用额外的姿态解算算法。 3、TB6612 该模块相对于传统的L298N效率上提高很多,体积上也大幅度减少,在额定范围内,芯片基本不发热。 TB6612FNG每通道输出最高1.2 A的连续驱动电流,启动峰值电流达2A/3.2 A(连续脉冲/单脉冲); 4种电机控制模式:正转/反转/制动/停止; PWM支持频率高达100 kHz; 待机状态; 片内低压检测电路与热停机保护电路; 4、带编码盘的直流减速电机 为了进行PID调节,平衡小车要选用带编码盘的直流减速电机,编码盘是霍尔磁力传感器,编码器有霍尔磁力编码器以及光电编码器,霍尔磁力编码器是通过测定磁场的变化来测速,而光电编码器则是有空槽的编码盘转动来测速,光电编码器价格会高些,但是精确度会好很多,但是对于平衡小车来说,用霍尔磁力编码器就足够了。 单片机通过四倍频的方式来读取编码器的信号,A、B俩相是俩个相位不同的正弦波,设置跳沿中断,在俩正弦波的上升沿和下降沿都产生中断,就可由此读取角度或者角速度信息。在32等单片机上,定时器就有编码器模式,可以通过硬件技术自动四分频,我们只需要设置一些寄存器的位即可。 5、OLED 我通过模拟SPI来驱动OLED,只需要三根线就能驱动OLED来显示,代码简单,OLED一般都很小,大的OLED屏成本很高,所以说如果是需要大屏一般还是用LCD屏,LCD屏比起OLED刷新慢、一般使用FSMC接口需要的引脚也多,但是平衡小车的显示只是显示一些运行状态,OLED完全能胜任。 6、降压模块,我使用的是LM2596稳压模块,最高输入电压可达40V,而且成本低,性能也还可以。 7、HC-05 蓝牙2.0,串口收发,速率对于控制来说完全是足够的,而且驱动简单。 8、HCSR-04 这是一个超声波测距模块,通过输入捕获的方式通过测量发送到接收电平的时间间隔来测量距离,以前在做智能小车时就使用过,缺点是不能目标的面积太小,否则超声波会扩散,而且测距也不是十分精准,当然有优点就是简单便宜了。 以上就是所有用到的模块,因为上次小车走线乱的很所以我这次使用了洞洞板,相当于是做了一个底板吧,当然画板的话效果更好,但是打样的价格还是不便宜的,所以这次就手焊了,以下是底板的成品图以及整个小车的图片。