在做小車之前,首先應該明確需要的器件,其次劃分功能模塊,一個模塊一個模塊的來,在完成一個模塊之后添加另一個能保證最終小車的穩定功能實現。有兩種思路:一,以實現功能為主,不考慮后期要加什么東西,實現以后再做優化。二,先將項目整體需要做的東西全部過一遍,再一步步做出成品。我是第一種,在搭建的過程中也遇到了一些問題,如:我把電機弄好以后,咦,驅動放哪?我把驅動固定在板上以后,呀,洞洞板這面有可能使驅動引腳導電,等各種問題。所以具體采用哪種思路還需要根據實際情況來看。功能模塊 從一個流水燈開始,依次加入電機、PWM、紅外、藍牙,完成最終調試。 實物圖
1.jpg (1.45 MB, 下載次數: 82)
下載附件
2018-12-13 03:28 上傳
代碼需要注意的問題:電機與驅動的接線及代碼中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)
2018-12-12 22:31 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|