功能介紹放開(kāi)頭, 使用便捷無(wú)需愁
這是全網(wǎng)最詳細(xì)、性?xún)r(jià)比最高的STM32實(shí)戰(zhàn)項(xiàng)目入門(mén)教程,通過(guò)合理的硬件設(shè)計(jì)和詳細(xì)的視頻筆記介紹,硬件使用STM32F103主控資料多方便學(xué)習(xí),通過(guò)3萬(wàn)字筆記、12多個(gè)小時(shí)視頻、20多章節(jié)代碼手把手教會(huì)你如何開(kāi)發(fā)和調(diào)試。讓你更快掌握嵌入式系統(tǒng)開(kāi)發(fā)。
**V3.3.0-STM32智能小車(chē) **
**視頻: **[https://www.bilibili.com/video/BV16x4y1M7EN/?spm_id_from=333.337.search-card.all.click]
**V3:HAL庫(kù)開(kāi)發(fā)、功能:PID速度控制、PID循跡、PID跟隨、遙控、避障、PID角度控制、視覺(jué)控制、電磁循跡、RTOS等功能。 **
本文講解手機(jī)藍(lán)牙如何遙控小車(chē),如何編寫(xiě)串口通信指令
第14章-手機(jī)遙控功能
我們要實(shí)現(xiàn)藍(lán)牙遙控功能,藍(lán)牙遙控功能要使用:1.單片機(jī)的串口、2.藍(lán)牙通信模塊
所以我們先調(diào)試好:單片機(jī)的串口->藍(lán)牙模塊->接到一起聯(lián)調(diào)
14.1-電腦控制小車(chē)
完成功能:電腦連接單片機(jī)串口三 控制小車(chē)前進(jìn)后退
先看原理圖
通過(guò)原理圖可以看出這是使用的串口3 在使用的時(shí)候注意把跳線(xiàn)帽,跳線(xiàn)到藍(lán)牙通信位置
打開(kāi)初始化軟件

生成代碼
在main 定義全局變量
uint8_t g_ucUsart3ReceiveData; //保存串口三接收的數(shù)據(jù)
開(kāi)啟串口三中斷接收
HAL_UART_Receive_IT(&huart3,&g_ucUsart3ReceiveData,1); //串口三接收數(shù)據(jù)
在****usart.c 重新實(shí)現(xiàn)串口中斷回調(diào)函數(shù)**
**
然后我們可以在中斷回調(diào)函數(shù)里面中編寫(xiě)遙控命令控制邏輯了
//串口接收回調(diào)函數(shù)
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
if( huart == &huart3)//判斷中斷源
{
if(g_ucUsart3ReceiveData == 'A') motorPidSetSpeed(1,1);//前運(yùn)動(dòng)
if(g_ucUsart3ReceiveData == 'B') motorPidSetSpeed(-1,-1);//后運(yùn)動(dòng)
if(g_ucUsart3ReceiveData == 'C') motorPidSetSpeed(0,0);//停止
if(g_ucUsart3ReceiveData == 'D') motorPidSetSpeed(1,2);//右邊運(yùn)動(dòng)
if(g_ucUsart3ReceiveData == 'E') motorPidSetSpeed(2,1);//左邊運(yùn)動(dòng)
if(g_ucUsart3ReceiveData == 'F') motorPidSpeedUp();//加速
if(g_ucUsart3ReceiveData == 'G') motorPidSpeedCut();//減速
HAL_UART_Receive_IT( &huart3, &g_ucUsart3ReceiveData, 1);//繼續(xù)進(jìn)行中斷接收
}
}
?
在usart.c中聲明外部變量
extern uint8_t g_ucUsart3ReceiveData; //保存串口三接收的數(shù)據(jù)
然后我們更改一下 主函數(shù)內(nèi)容,把PID紅外循跡代碼注釋掉,然后我們?cè)黾哟谌妮敵觯员阄覀兒竺嬗^(guān)察數(shù)據(jù)。
串口不定長(zhǎng)輸出
我們把轉(zhuǎn)速等信息都可以顯示在OLED上,那么如何通過(guò)串口輸出那?
sprintf((char *)Usart3String,"V1:%.2fV2:%.2frn",Motor1Speed,Motor2Speed);//顯示兩個(gè)電機(jī)轉(zhuǎn)速 單位:轉(zhuǎn)/秒
HAL_UART_Transmit(&huart3,( uint8_t *)Usart3String,strlen(( const char *)Usart3String),50);//阻塞式發(fā)送通過(guò)串口三輸出字符 strlen:計(jì)算字符串大小
sprintf((char *)Usart3String,"Mileage%.2frn",Mileage);//計(jì)算小車(chē)?yán)锍?單位cm
HAL_UART_Transmit(&huart3,( uint8_t *)Usart3String,strlen(( const char *)Usart3String),50);//阻塞式發(fā)送通過(guò)串口三輸出字符 strlen:計(jì)算字符串大小
sprintf((char *)Usart3String,"U:%.2fVrn",adcGetBatteryVoltage());//顯示電池電壓
HAL_UART_Transmit(&huart3,( uint8_t *)Usart3String,strlen(( const char *)Usart3String),50);//阻塞式發(fā)送通過(guò)串口三輸出字符 strlen:計(jì)算字符串大小
HAL_Delay(5);
把之前PID初始化時(shí)候速度PID目標(biāo)值改成0
然后我們測(cè)試
硬件連接
我們現(xiàn)在使用USB-TTL連接串口三,單片機(jī)串口三與電腦通信(底板不需要插入藍(lán)牙 )**
**
然后打開(kāi)軟件
發(fā)送指令小車(chē)就會(huì)對(duì)應(yīng)運(yùn)動(dòng)
在電腦串口軟件查看輸出信息、發(fā)送 指令控制小車(chē)運(yùn)動(dòng)
14.2-手機(jī)藍(lán)牙控制小車(chē)
功能:藍(lán)牙遙控小車(chē)前進(jìn)、后退、停止、左右轉(zhuǎn)、加速、減速、手機(jī)顯示數(shù)據(jù)
藍(lán)牙模塊和電腦通信
藍(lán)牙模塊-硬件介紹
**使用:HC-05 主從機(jī)一體藍(lán)牙串口透?jìng)髂K **
注意: 供電3.6V-6V(最好5V)
引腳順序 VCC GND TXD RXD



先調(diào)試藍(lán)牙模塊-設(shè)置波特率
如圖先把藍(lán)牙模塊通過(guò)USB-TTL模塊相連接,然后
如果反復(fù)測(cè)試不能進(jìn)入AT模式,可能是新版藍(lán)牙模塊,
- 先連接好藍(lán)牙模塊的幾根線(xiàn),然后按住藍(lán)牙模塊的按鍵
- 然后連接電腦,然后幾秒后藍(lán)牙小燈慢閃,說(shuō)明進(jìn)入AT模式
- 然后串口助手通過(guò)38400發(fā)送設(shè)置指令:AT+UART=115200,0,0
- 然后收到OK數(shù)據(jù),說(shuō)明設(shè)置成功。
這個(gè)是設(shè)置波特率截圖
- 然后重新拔插藍(lán)牙模塊(不用按按鍵)
- 在手機(jī)系統(tǒng)藍(lán)牙配對(duì)HC-50 密碼1234
- 串口助手設(shè)置波特率115200,然后打開(kāi)手機(jī)APP發(fā)送任意內(nèi)容測(cè)試
這個(gè)是后面通信測(cè)試截圖
- 設(shè)置按鍵-按照代碼設(shè)置按下發(fā)送的數(shù)據(jù)
9.

藍(lán)牙模塊連接單片機(jī)
把藍(lán)牙插入到底板、跳線(xiàn)帽選擇藍(lán)牙通信
按下不同按鈕小車(chē)會(huì)對(duì)應(yīng)控制
審核編輯 黃宇
-
STM32
+關(guān)注
關(guān)注
2305文章
11118瀏覽量
370885 -
串口通訊
+關(guān)注
關(guān)注
2文章
266瀏覽量
26201 -
遙控小車(chē)
+關(guān)注
關(guān)注
2文章
30瀏覽量
18957 -
藍(lán)牙串口
+關(guān)注
關(guān)注
1文章
14瀏覽量
7708
發(fā)布評(píng)論請(qǐng)先 登錄
DIY 制作藍(lán)牙遙控小車(chē)
基于STM32藍(lán)牙遙控小車(chē)
HC05藍(lán)牙模塊對(duì)小車(chē)的藍(lán)牙遙控
最簡(jiǎn)單DIY的51藍(lán)牙遙控小車(chē)設(shè)計(jì)方案是什么
51藍(lán)牙遙控小車(chē)簡(jiǎn)介
講解藍(lán)牙小車(chē)的程序部分
如何通過(guò)手機(jī)APP和藍(lán)牙模塊實(shí)現(xiàn)對(duì)平衡小車(chē)的控制
藍(lán)牙遙控小車(chē)教程
【制作】基于51單片機(jī)的藍(lán)牙遙控小車(chē)方案
最簡(jiǎn)單DIY的51藍(lán)牙遙控小車(chē)設(shè)計(jì)方案
基于STC89C52的智能小車(chē)——藍(lán)牙遙控篇
STM32F103RCT6 實(shí)驗(yàn)代碼之舵機(jī)+超聲波避障小車(chē)(三)藍(lán)牙遙控

第14章-藍(lán)牙遙控小車(chē) 藍(lán)牙串口通訊講解藍(lán)牙APP遙控小車(chē) 藍(lán)牙串口通訊講解
評(píng)論