0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

第14章-藍牙遙控小車 藍牙串口通訊講解藍牙APP遙控小車 藍牙串口通訊講解

dfhjgfg ? 來源:dfhjgfg ? 作者:dfhjgfg ? 2024-08-21 16:24 ? 次閱讀

功能介紹放開頭, 使用便捷無需愁

這是全網最詳細、性價比最高的STM32實戰(zhàn)項目入門教程,通過合理的硬件設計和詳細的視頻筆記介紹,硬件使用STM32F103主控資料多方便學習,通過3萬字筆記、12多個小時視頻、20多章節(jié)代碼手把手教會你如何開發(fā)和調試。讓你更快掌握嵌入式系統(tǒng)開發(fā)。

**V3.3.0-STM32智能小車 **

**視頻: **[https://www.bilibili.com/video/BV16x4y1M7EN/?spm_id_from=333.337.search-card.all.click]

**V3:HAL庫開發(fā)、功能:PID速度控制、PID循跡、PID跟隨、遙控、避障、PID角度控制、視覺控制、電磁循跡、RTOS等功能。 **

本文講解手機藍牙如何遙控小車,如何編寫串口通信指令

第14章-手機遙控功能

我們要實現藍牙遙控功能,藍牙遙控功能要使用:1.單片機的串口、2.藍牙通信模塊

所以我們先調試好:單片機的串口->藍牙模塊->接到一起聯(lián)調
在這里插入圖片描述

14.1-電腦控制小車

完成功能:電腦連接單片機串口三 控制小車前進后退

先看原理圖

通過原理圖可以看出這是使用的串口3 在使用的時候注意把跳線帽,跳線到藍牙通信位置
在這里插入圖片描述
打開初始化軟件
在這里插入圖片描述
在這里插入圖片描述

生成代碼

在main 定義全局變量

uint8_t g_ucUsart3ReceiveData;  //保存串口三接收的數據

開啟串口三中斷接收
在這里插入圖片描述

HAL_UART_Receive_IT(&huart3,&g_ucUsart3ReceiveData,1);  //串口三接收數據

在****usart.c 重新實現串口中斷回調函數**
**在這里插入圖片描述
然后我們可以在中斷回調函數里面中編寫遙控命令控制邏輯了
在這里插入圖片描述

//串口接收回調函數
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
if( huart == &huart3)//判斷中斷源
{
if(g_ucUsart3ReceiveData == 'A') motorPidSetSpeed(1,1);//前運動
if(g_ucUsart3ReceiveData == 'B') motorPidSetSpeed(-1,-1);//后運動
if(g_ucUsart3ReceiveData == 'C') motorPidSetSpeed(0,0);//停止
if(g_ucUsart3ReceiveData == 'D') motorPidSetSpeed(1,2);//右邊運動
if(g_ucUsart3ReceiveData == 'E') motorPidSetSpeed(2,1);//左邊運動
if(g_ucUsart3ReceiveData == 'F') motorPidSpeedUp();//加速
if(g_ucUsart3ReceiveData == 'G') motorPidSpeedCut();//減速

HAL_UART_Receive_IT( &huart3, &g_ucUsart3ReceiveData, 1);//繼續(xù)進行中斷接收
}
}
?

在usart.c中聲明外部變量

extern uint8_t g_ucUsart3ReceiveData;  //保存串口三接收的數據

然后我們更改一下 主函數內容,把PID紅外循跡代碼注釋掉,然后我們增加串口三的輸出,以便我們后面觀察數據。
串口不定長輸出
我們把轉速等信息都可以顯示在OLED上,那么如何通過串口輸出那?
在這里插入圖片描述

sprintf((char *)Usart3String,"V1:%.2fV2:%.2frn",Motor1Speed,Motor2Speed);//顯示兩個電機轉速 單位:轉/秒
HAL_UART_Transmit(&huart3,( uint8_t *)Usart3String,strlen(( const  char  *)Usart3String),50);//阻塞式發(fā)送通過串口三輸出字符 strlen:計算字符串大小

sprintf((char *)Usart3String,"Mileage%.2frn",Mileage);//計算小車里程 單位cm
HAL_UART_Transmit(&huart3,( uint8_t *)Usart3String,strlen(( const  char  *)Usart3String),50);//阻塞式發(fā)送通過串口三輸出字符 strlen:計算字符串大小

sprintf((char *)Usart3String,"U:%.2fVrn",adcGetBatteryVoltage());//顯示電池電壓
HAL_UART_Transmit(&huart3,( uint8_t *)Usart3String,strlen(( const  char  *)Usart3String),50);//阻塞式發(fā)送通過串口三輸出字符 strlen:計算字符串大小
HAL_Delay(5);

把之前PID初始化時候速度PID目標值改成0
在這里插入圖片描述
然后我們測試

硬件連接

我們現在使用USB-TTL連接串口三,單片機串口三與電腦通信(底板不需要插入藍牙 )**
**在這里插入圖片描述
然后打開軟件

發(fā)送指令小車就會對應運動

在電腦串口軟件查看輸出信息、發(fā)送 指令控制小車運動
在這里插入圖片描述

14.2-手機藍牙控制小車

功能:藍牙遙控小車前進、后退、停止、左右轉、加速、減速、手機顯示數據

藍牙模塊和電腦通信

藍牙模塊-硬件介紹

**使用:HC-05 主從機一體藍牙串口透傳模塊 **

注意: 供電3.6V-6V(最好5V)

引腳順序 VCC GND TXD RXD
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
先調試藍牙模塊-設置波特率

如圖先把藍牙模塊通過USB-TTL模塊相連接,然后
在這里插入圖片描述
如果反復測試不能進入AT模式,可能是新版藍牙模塊,
在這里插入圖片描述

  1. 先連接好藍牙模塊的幾根線,然后按住藍牙模塊的按鍵
  2. 然后連接電腦,然后幾秒后藍牙小燈慢閃,說明進入AT模式
  3. 然后串口助手通過38400發(fā)送設置指令:AT+UART=115200,0,0
  4. 然后收到OK數據,說明設置成功。

這個是設置波特率截圖
在這里插入圖片描述

  1. 然后重新拔插藍牙模塊(不用按按鍵)
  2. 在手機系統(tǒng)藍牙配對HC-50 密碼1234
  3. 串口助手設置波特率115200,然后打開手機APP發(fā)送任意內容測試

這個是后面通信測試截圖
在這里插入圖片描述

  1. 設置按鍵-按照代碼設置按下發(fā)送的數據
    9.在這里插入圖片描述
    在這里插入圖片描述

藍牙模塊連接單片機

把藍牙插入到底板、跳線帽選擇藍牙通信
在這里插入圖片描述
按下不同按鈕小車會對應控制

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • STM32
    +關注

    關注

    2262

    文章

    10846

    瀏覽量

    353676
  • 串口通訊
    +關注

    關注

    1

    文章

    257

    瀏覽量

    24785
  • 遙控小車
    +關注

    關注

    2

    文章

    30

    瀏覽量

    18324
  • 藍牙串口
    +關注

    關注

    1

    文章

    11

    瀏覽量

    7237
收藏 人收藏

    評論

    相關推薦

    DIY 制作藍牙遙控小車

    `大學畢業(yè)后,就利用業(yè)余時間做一個藍牙遙控小車,就在網上找資料及購買配件。用STC89S52單片機控制小車, LN298電機驅動模塊驅動小車
    發(fā)表于 05-05 22:53

    基于STM32藍牙遙控小車

    經常在論壇里看別人發(fā)的作品,今天也發(fā)一下自己做的藍牙遙控小車~主控STM32R8,電機驅動TB6612,藍牙模塊,底板自己手工制作:菲林片打印腐蝕后直接保留了感光膜沒有脫模(因為沒阻焊
    發(fā)表于 10-13 19:37

    STM32藍牙遙控

    STM32 藍牙遙控一.藍牙簡述二.藍牙遙控一.藍牙簡述我這次把
    發(fā)表于 08-03 07:44

    HC05藍牙模塊對小車藍牙遙控

    現在最常見的藍牙模塊為HC05,對小車藍牙遙控本質上是通過串口的收發(fā)信息進行控制。需要提前下載一個藍牙
    發(fā)表于 11-22 07:10

    最簡單DIY的51藍牙遙控小車設計方案是什么

    51單片機物聯(lián)網智能小車系列文章目錄第一篇:最簡單DIY的51藍牙遙控小車設計方案文章目錄51單片機物聯(lián)網智能小車系列文章目錄前言一、最簡單
    發(fā)表于 12-01 08:13

    51藍牙遙控小車簡介

    51藍牙遙控小車簡介:通過手機上的藍牙調試器APP與51藍牙
    發(fā)表于 01-05 07:15

    講解藍牙小車的程序部分

    上次給大家講解藍牙小車的硬件部分,這次給大家講解藍牙小車的程序部分。這里說的程序部分指的是單片
    發(fā)表于 01-05 06:55

    如何通過手機APP藍牙模塊實現對平衡小車的控制

    ??大家好,我是小政。本篇文章我將針對藍牙遙控平衡小車進行詳細的講解,讓每位小伙伴能夠通過手機APP
    發(fā)表于 01-21 10:14

    藍牙遙控小車教程

    遙控小車教程,你可以點擊打開學習,有程序,藍牙控制。
    發(fā)表于 06-03 16:16 ?0次下載

    藍牙遙控小車程序

    藍牙遙控小車程序
    發(fā)表于 03-31 17:42 ?32次下載

    基于單片機的藍牙小車藍牙遙控的程序

    基于單片機的藍牙小車藍牙遙控
    發(fā)表于 06-05 10:00 ?95次下載
    基于單片機的<b class='flag-5'>藍牙</b><b class='flag-5'>小車</b>帶<b class='flag-5'>藍牙</b><b class='flag-5'>遙控</b>的程序

    【制作】基于51單片機的藍牙遙控小車方案

    ,哈哈~系統(tǒng)原理51單片機藍牙遙控小車的系統(tǒng)框圖大致如下:這是經典的自制藍牙遙控車系統(tǒng)方案,整個系統(tǒng)分為手機跟
    發(fā)表于 11-11 11:36 ?35次下載
    【制作】基于51單片機的<b class='flag-5'>藍牙</b><b class='flag-5'>遙控</b><b class='flag-5'>小車</b>方案

    最簡單DIY的51藍牙遙控小車設計方案

    51單片機物聯(lián)網智能小車系列文章目錄第一篇:最簡單DIY的51藍牙遙控小車設計方案文章目錄51單片機物聯(lián)網智能小車系列文章目錄前言一、最簡單
    發(fā)表于 11-23 16:22 ?41次下載
    最簡單DIY的51<b class='flag-5'>藍牙</b><b class='flag-5'>遙控</b><b class='flag-5'>小車</b>設計方案

    基于STC89C52的智能小車——藍牙遙控

    藍牙遙控是依靠單片機的串口通訊來實現的功能。這周我主要學習的內容是串口通訊。在完成學習后我用之前
    發(fā)表于 11-23 17:21 ?20次下載
    基于STC89C52的智能<b class='flag-5'>小車</b>——<b class='flag-5'>藍牙</b><b class='flag-5'>遙控</b>篇

    STM32F103RCT6 實驗代碼之舵機+超聲波避障小車(三)藍牙遙控

    STM32 藍牙遙控一.藍牙簡述二.藍牙遙控一.藍牙簡述我這次把
    發(fā)表于 12-14 19:03 ?9次下載
    STM32F103RCT6 實驗代碼之舵機+超聲波避障<b class='flag-5'>小車</b>(三)<b class='flag-5'>藍牙</b><b class='flag-5'>遙控</b>