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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于CW32的遙控循跡小車

CW32生態(tài)社區(qū) ? 來(lái)源:CW32生態(tài)社區(qū) ? 作者:CW32生態(tài)社區(qū) ? 2023-11-17 17:46 ? 次閱讀

例程資料鏈接如下(群文件也可下載):

BD網(wǎng)盤(pán)鏈接:

https://pan.baidu.com/s/187ePq84u2QjE1bsVPM6i3g?pwd=9jvv

提取碼:9jvv

一、實(shí)驗(yàn)簡(jiǎn)介

本實(shí)驗(yàn)是使用CW32單片機(jī)制作一個(gè)入門(mén)的遙控循跡小車。遙控采用藍(lán)牙配合手機(jī)APP進(jìn)行遙控。循跡使用一個(gè)5路的循跡模塊。使用OLED模塊進(jìn)行顯示當(dāng)前小車狀態(tài)。

二、實(shí)驗(yàn)器材

本實(shí)驗(yàn)使用到了CW32F030C8小藍(lán)板、智能小車底板、電機(jī)驅(qū)動(dòng)模塊、OLED模塊、DX-BT04-E藍(lán)牙模塊、Wch-Link下載調(diào)試器、Keil5開(kāi)發(fā)環(huán)境。

圖片

二、接線圖
image.png
image.png
image.png

實(shí)驗(yàn)完整接線圖:

圖片

四、用到的外設(shè)

1.串口2:

串口2用于藍(lán)牙模塊,使手機(jī)和單片機(jī)通過(guò)藍(lán)牙模塊進(jìn)行串口透?jìng)?,?而進(jìn)行點(diǎn)對(duì)點(diǎn)通信

2.高級(jí)定時(shí)器ATIM:

初始化高級(jí)定時(shí)器CH1B和CH2B進(jìn)行PWM波輸出,從而達(dá)到電機(jī)調(diào)速目的。

3.基本定時(shí)器BTIM1:

初始化基本定時(shí)器1,在基本定時(shí)器中斷服務(wù)函數(shù)中對(duì)循跡模塊進(jìn)行掃描。將掃描的結(jié)果保存,以便在循跡模式中使用。

4.IIC1:

IIC1用于外掛OLED顯示模塊。

五、核心代碼

// 基本定時(shí)器中斷回調(diào)函數(shù)
// 在回調(diào)函數(shù)中對(duì)循跡模塊進(jìn)行掃描,將循跡模塊的狀態(tài)保存進(jìn)sensor_data中
void BTIM1_IRQHandler(void)
{
    if (BTIM_GetITStatus(CW_BTIM1, BTIM_IT_OV)) // 判斷是否是通道1中斷
    {


        BTIM_ClearITPendingBit(CW_BTIM1, BTIM_IT_OV); // 清除中斷標(biāo)志位


        char t = 0x00; // 設(shè)置零時(shí)變量保存灰度傳感器的值


        // 保存灰度傳感器的值
        // 采用或運(yùn)算,檢測(cè)到黑線將相應(yīng)的位設(shè)置為1
        if (!GPIO_ReadPin(TRACKING_GPIOA, TRACKING_1))
        {
            t |= 0x08; // 00001000 左邊數(shù)第一個(gè)
        }
        if (!GPIO_ReadPin(TRACKING_GPIOA, TRACKING_2))
        {
            t |= 0x04; // 00000100 左邊數(shù)第二個(gè)
        }
        if (!GPIO_ReadPin(TRACKING_GPIOA, TRACKING_3))
        {
            t |= 0x02; // 00000010 左邊數(shù)以三個(gè)
        }
        if (!GPIO_ReadPin(TRACKING_GPIOA, TRACKING_4))
        {
            t |= 0x01; // 00000001 左邊數(shù)第4個(gè)
        }
        if (!GPIO_ReadPin(TRACKING_GPIOC, TRACKING_5))
        {
            t |= 0x10; // 00010000 左邊數(shù)第5個(gè)
        }
        sensor_data = t; // 將灰度傳感器的值賦值給sensor_data
    }
}


// 串口1中斷處理函數(shù)
void UART1_IRQHandler(void)
{
    unsigned char TxRxBuffer;
    if (USART_GetITStatus(CW_UART1, USART_IT_RC) != RESET)
    {
        USART_ClearITPendingBit(CW_UART1, USART_IT_RC); // 清除中斷標(biāo)志位
        TxRxBuffer = USART_ReceiveData_8bit(CW_UART1);  // 將接收到的數(shù)據(jù)放入TxRxBuffer


        USART_RX_BUF[rxIndex] = TxRxBuffer; // 將接收到的數(shù)據(jù)放入緩沖區(qū)


        if (rxIndex < USART_REC_LEN - 1) // 做數(shù)據(jù)長(zhǎng)度的限制,留一個(gè)字節(jié)用于結(jié)束字符或者溢出檢測(cè)
        {
            // 接收到的字符包含 n 或者 r 結(jié)束接收
            if (USART_RX_BUF[rxIndex - 1] == 'n' || USART_RX_BUF[rxIndex - 1] == 'r')
            {
                USART_RX_BUF[rxIndex] = '?'; // 在最后一個(gè)字節(jié)加上空字符,表示字符串結(jié)束
            }
            else
            {
                rxIndex++;
            }
        }
        rxIndex = 0; // 清除數(shù)據(jù)標(biāo)志
        flag = 1;    // 清除
    }

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 遙控
    +關(guān)注

    關(guān)注

    11

    文章

    281

    瀏覽量

    57196
  • 循跡小車
    +關(guān)注

    關(guān)注

    42

    文章

    65

    瀏覽量

    68476
  • CW32
    +關(guān)注

    關(guān)注

    1

    文章

    168

    瀏覽量

    500
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    第13章-循跡功能 STM32智能小車循跡教程 PID循跡算法分析

    第13章-循跡功能 循跡小車講解 原理分析 STM32智能小車循跡教程 紅外對(duì)管使用 PID循跡
    的頭像 發(fā)表于 08-21 16:27 ?543次閱讀
    第13章-<b class='flag-5'>循跡</b>功能 STM32智能<b class='flag-5'>小車</b><b class='flag-5'>循跡</b>教程 PID<b class='flag-5'>循跡</b>算法分析

    【項(xiàng)目展示】基于CW32遙控循跡小車

    CW32循跡小車.zip_免費(fèi)高速下載|百度網(wǎng)盤(pán)-分享無(wú)限制? 一、概述 CW32循跡遙控
    的頭像 發(fā)表于 05-31 17:33 ?1028次閱讀
    【項(xiàng)目展示】基于<b class='flag-5'>CW32</b>的<b class='flag-5'>遙控</b><b class='flag-5'>循跡</b><b class='flag-5'>小車</b>

    CW32快速開(kāi)發(fā)入門(mén)

    CW32快速開(kāi)發(fā)入門(mén)
    的頭像 發(fā)表于 04-24 18:56 ?1680次閱讀
    <b class='flag-5'>CW32</b>快速開(kāi)發(fā)入門(mén)

    Arduino制作循跡小車教程

    Arduino制作循跡小車完全教程
    發(fā)表于 01-05 11:09 ?3次下載

    基于CW32的門(mén)禁綜合系統(tǒng)

    基于CW32單片機(jī)的門(mén)禁綜合系統(tǒng)是一款功能強(qiáng)大的智能門(mén)禁解決方案,它提供了三種開(kāi)鎖方式:密碼開(kāi)鎖、指紋開(kāi)鎖和刷卡開(kāi)鎖,為用戶提供方便、安全的門(mén)禁控制。該系統(tǒng)的核心控制器采用了CW32單片機(jī),具備
    的頭像 發(fā)表于 12-28 11:43 ?1543次閱讀
    基于<b class='flag-5'>CW32</b>的門(mén)禁綜合系統(tǒng)

    基于CW32的智能語(yǔ)音分類垃圾桶設(shè)計(jì)

    基于CW32的智能語(yǔ)音分類垃圾桶設(shè)計(jì)
    的頭像 發(fā)表于 11-06 16:51 ?888次閱讀
    基于<b class='flag-5'>CW32</b>的智能語(yǔ)音分類垃圾桶設(shè)計(jì)

    基于CW32的無(wú)刷水泵方案

    基于CW32的無(wú)刷水泵方案
    的頭像 發(fā)表于 11-03 17:28 ?680次閱讀
    基于<b class='flag-5'>CW32</b>的無(wú)刷水泵方案

    基于CW32的物聯(lián)網(wǎng)應(yīng)用

    CW32】基于CW32的物聯(lián)網(wǎng)應(yīng)用
    的頭像 發(fā)表于 11-02 15:55 ?605次閱讀
    基于<b class='flag-5'>CW32</b>的物聯(lián)網(wǎng)應(yīng)用

    基于CW32的RC522刷卡模塊的應(yīng)用

    基于CW32的RC522刷卡模塊的應(yīng)用
    的頭像 發(fā)表于 11-02 14:53 ?871次閱讀
    基于<b class='flag-5'>CW32</b>的RC522刷卡模塊的應(yīng)用

    2023電賽A題國(guó)獎(jiǎng)CW32 開(kāi)源分享

    電賽A題開(kāi)源分享,主控為CW32
    的頭像 發(fā)表于 11-02 10:16 ?2045次閱讀
    2023電賽A題國(guó)獎(jiǎng)<b class='flag-5'>CW32</b> 開(kāi)源分享

    CW32通用輸入輸出端口詳解

    CW32通用輸入輸出端口詳解
    的頭像 發(fā)表于 10-30 17:33 ?878次閱讀
    <b class='flag-5'>CW32</b>通用輸入輸出端口詳解

    基于CW32熱敏電阻采集溫度應(yīng)用

    基于CW32熱敏電阻采集溫度應(yīng)用
    的頭像 發(fā)表于 10-25 16:45 ?428次閱讀
    基于<b class='flag-5'>CW32</b>熱敏電阻采集溫度應(yīng)用

    CW32 電容式觸摸按鍵設(shè)計(jì)指南

    CW32 電容式觸摸按鍵設(shè)計(jì)指南
    的頭像 發(fā)表于 10-25 16:36 ?865次閱讀
    <b class='flag-5'>CW32</b> 電容式觸摸按鍵設(shè)計(jì)指南

    CW32實(shí)時(shí)時(shí)鐘(RTC)介紹

    CW32實(shí)時(shí)時(shí)鐘(RTC)介紹
    的頭像 發(fā)表于 10-24 15:36 ?924次閱讀
    <b class='flag-5'>CW32</b>實(shí)時(shí)時(shí)鐘(RTC)介紹

    CW32 PWM輸出功能介紹

    CW32 PWM輸出功能介紹
    的頭像 發(fā)表于 09-27 16:12 ?647次閱讀
    <b class='flag-5'>CW32</b> PWM輸出功能介紹