在做小车之前,首先应该明确需要的器件,其次划分功能模块,一个模块一个模块的来,在完成一个模块之后添加另一个能保证最终小车的稳定功能实现。有两种思路:一,以实现功能为主,不考虑后期要加什么东西,实现以后再做优化。二,先将项目整体需要做的东西全部过一遍,再一步步做出成品。我是第一种,在搭建的过程中也遇到了一些问题,如:我把电机弄好以后,咦,驱动放哪?我把驱动固定在板上以后,呀,洞洞板这面有可能使驱动引脚导电,等各种问题。所以具体采用哪种思路还需要根据实际情况来看。功能模块 从一个流水灯开始,依次加入电机、PWM、红外、蓝牙,完成最终调试。 实物图
代码需要注意的问题:电机与驱动的接线及代码中GPIO口的初始化要能对应上,具体怎么接具体测试。 - #include "sys.h"
- #include "usart.h"
- #include "delay.h"
- #include "led.h"
- #include "key.h"
- #include "motor.h"
- #include "detector.h"
- #include "usart2.h"
- #include "hc05.h"
- #include "string.h"
- void xunji(void);
- int main(void)
- {
- u8 sendbuf[20];
- u8 reclen=0;
-
- Stm32_Clock_Init(9);
- delay_init(72);
-
- LED_Init();
- KEY_Init();
- PWM_Init(899,0);//pwm频率=72000/(899+1)=80Khz ??why先不管
- detectorInit();
-
- uart_init(72,9600); //串口1初始化为9600
- HC05_Init(); //初始化ATK-HC05模块
-
- while(1){
-
- if(USART2_RX_STA&0X8000) //接收到一次数据了
- {
- reclen=USART2_RX_STA&0X7FFF; //得到数据长度
- USART2_RX_BUF[reclen]=0; //加入结束符
-
- if(strcmp((const char*)USART2_RX_BUF,"X")==0){
- xunji();
- }
- if(strcmp((const char*)USART2_RX_BUF,"F")==0)
- { LED1=~LED1;
- carStraight(450,899);
-
- }
- if(strcmp((const char*)USART2_RX_BUF,"B")==0)
- { LED1=~LED1;
- carBack(500,899);
- }
- if(strcmp((const char*)USART2_RX_BUF,"L")==0)
- {
- LED1=~LED1; //打开LED1
- carLeft(300,899);
- }
- if(strcmp((const char*)USART2_RX_BUF,"R")==0)
- { LED1=~LED1;
- carRight(400,300);
- }
- if(strcmp((const char*)USART2_RX_BUF,"S")==0)
- { LED1=~LED1;
- carStop();
- }
- USART2_RX_STA=0;
- }
- }
- }
- /*循迹代码
- */
- void xunji(){
-
- u8 sendbuf[20];
- u8 reclen=0;
- while(1){
-
- if(USART2_RX_STA&0X8000) //接收到一次数据了
- {
- reclen=USART2_RX_STA&0X7FFF; //得到数据长度
- USART2_RX_BUF[reclen]=0; //加入结束符
-
- if(strcmp((const char*)USART2_RX_BUF,"O")==0){
- //xunji();
- break;
- }
- USART2_RX_STA=0;
- }
- //如果左边检测到黑线
- //有黑线是高电平
- if(LEFT_DETECTOR == 1 && RIGHT_DETECTOR == 0){
- carLeft(100,899);
- delay_ms(500);
- //右边检测到黑线
- }else if(RIGHT_DETECTOR == 1 && LEFT_DETECTOR == 0){
- carRight(600,300);
- delay_ms(500);
- }else{
- carStraight(400,600);
- }
- }
- }
复制代码
全部资料51hei下载地址:
BlueTooth-and-detector-Car-master.zip
(180.29 KB, 下载次数: 83)
|