最近想要应用学过的STM32知识,于是想做个小项目,作为一个真正的鳗,决定做个小车,这样有意思一些,而且之前机器人课也学了一些PID控制循迹什么的,所以这里开个头,记录一下目前为止的所有内容,后面1000%会添加新的功能。
1、L298N驱动:因为使用麦轮,所以四轮需各自自由转动,故使用2个L298N驱动模块实现。
2、PWM调速:配置TIM2(输出比较)实现了调速功能,要调速,只需设置CCR寄存器的值、因为ARR的值为1000,所以CCR:0~1000。
3、HCSR04测距:自己根据原理配置时使用While(GPIO_ReadInputDataBit(GPIOx,Pinx)== 0)来获得echo的输出的高电平然后用TIM3开始记时,再While(GPIO_ReadInputDataBit(GPIOx,Pinx)== 1)等待低电平跳出循环,结束计时,结果大失败。首先是如果收不到会死循环,再设置超时跳出函数后,意识到仍始终无法捕获echo输出。遂上网发现有人使用EXTI中断来捕获上升沿和下降沿,实现了echo信号的精确接收,大喜,改之。
4、MPU6050:编写了软件I2C通信实现,因为得知硬件I2C不可靠。
5、esp8266:采用AP2模式来产生一个局域网“ESPX”,移动端(电脑、手机)需接入局域网,然后作为TCP/IP客户端,接入对应IPV4的对应端口下,从而实现了与esp8266模块的数据互发。esp8266通过串口3与STM32通信,将移动端数据发给STM32,通过比较识别指令,控制小车运动、调速、各模块的开启等。