0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于CW32的遥控循迹小车

CW32生态社区 ? 来源:CW32生态社区 ? 作者:CW32生态社区 ? 2023-11-17 17:46 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

例程资料链接如下(群文件也可下载):

BD网盘链接:

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

提取码:9jvv

一、实验简介

本实验是使用CW32单片机制作一个入门的遥控循迹小车。遥控采用蓝牙配合手机APP进行遥控。循迹使用一个5路的循迹模块。使用OLED模块进行显示当前小车状态。

二、实验器材

本实验使用到了CW32F030C8小蓝板、智能小车底板、电机驱动模块、OLED模块、DX-BT04-E蓝牙模块、Wch-Link下载调试器、Keil5开发环境。

图片

二、接线图
image.png
image.png
image.png

实验完整接线图:

图片

四、用到的外设

1.串口2:

串口2用于蓝牙模块,使手机和单片机通过蓝牙模块进行串口透传,从 而进行点对点通信

2.高级定时器ATIM:

初始化高级定时器CH1B和CH2B进行PWM波输出,从而达到电机调速目的。

3.基本定时器BTIM1:

初始化基本定时器1,在基本定时器中断服务函数中对循迹模块进行扫描。将扫描的结果保存,以便在循迹模式中使用。

4.IIC1:

IIC1用于外挂OLED显示模块。

五、核心代码

// 基本定时器中断回调函数
// 在回调函数中对循迹模块进行扫描,将循迹模块的状态保存进sensor_data中
void BTIM1_IRQHandler(void)
{
    if (BTIM_GetITStatus(CW_BTIM1, BTIM_IT_OV)) // 判断是否是通道1中断
    {


        BTIM_ClearITPendingBit(CW_BTIM1, BTIM_IT_OV); // 清除中断标志位


        char t = 0x00; // 设置零时变量保存灰度传感器的值


        // 保存灰度传感器的值
        // 采用或运算,检测到黑线将相应的位设置为1
        if (!GPIO_ReadPin(TRACKING_GPIOA, TRACKING_1))
        {
            t |= 0x08; // 00001000 左边数第一个
        }
        if (!GPIO_ReadPin(TRACKING_GPIOA, TRACKING_2))
        {
            t |= 0x04; // 00000100 左边数第二个
        }
        if (!GPIO_ReadPin(TRACKING_GPIOA, TRACKING_3))
        {
            t |= 0x02; // 00000010 左边数以三个
        }
        if (!GPIO_ReadPin(TRACKING_GPIOA, TRACKING_4))
        {
            t |= 0x01; // 00000001 左边数第4个
        }
        if (!GPIO_ReadPin(TRACKING_GPIOC, TRACKING_5))
        {
            t |= 0x10; // 00010000 左边数第5个
        }
        sensor_data = t; // 将灰度传感器的值赋值给sensor_data
    }
}


// 串口1中断处理函数
void UART1_IRQHandler(void)
{
    unsigned char TxRxBuffer;
    if (USART_GetITStatus(CW_UART1, USART_IT_RC) != RESET)
    {
        USART_ClearITPendingBit(CW_UART1, USART_IT_RC); // 清除中断标志位
        TxRxBuffer = USART_ReceiveData_8bit(CW_UART1);  // 将接收到的数据放入TxRxBuffer


        USART_RX_BUF[rxIndex] = TxRxBuffer; // 将接收到的数据放入缓冲区


        if (rxIndex < USART_REC_LEN - 1) // 做数据长度的限制,留一个字节用于结束字符或者溢出检测
        {
            // 接收到的字符包含 n 或者 r 结束接收
            if (USART_RX_BUF[rxIndex - 1] == 'n' || USART_RX_BUF[rxIndex - 1] == 'r')
            {
                USART_RX_BUF[rxIndex] = '?'; // 在最后一个字节加上空字符,表示字符串结束
            }
            else
            {
                rxIndex++;
            }
        }
        rxIndex = 0; // 清除数据标志
        flag = 1;    // 清除
    }

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 遥控
    +关注

    关注

    11

    文章

    290

    浏览量

    58001
  • 循迹小车
    +关注

    关注

    42

    文章

    65

    浏览量

    69139
  • CW32
    +关注

    关注

    1

    文章

    256

    浏览量

    1286
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    如何使用新版本J-Flash编程CW32 MCU?

    CW32 MCU器件支持包JlinkDevices_WHXY.rar解压到新建的JlinkDevices子目录即可。 4、运行JFlash.exe,通过Jlink连接CW32 MCU测试板,进行编程测试
    的头像 发表于 07-01 15:05 ?183次阅读
    如何使用新版本J-Flash编程<b class='flag-5'>CW32</b> MCU?

    祝贺武汉芯源半导体CW32生态社区荣获立创开源硬件平台&amp;quot;优质合作社区&amp;quot;荣誉!

    5月24日,武汉芯源半导体有限公司CW32生态社区在第三届立创开源星火会上荣获立创开源硬件平台"优质合作社区"荣誉。这一荣誉不仅是对CW32生态社区致力于国产MCU技术发展
    的头像 发表于 05-27 10:39 ?714次阅读
    祝贺武汉芯源半导体<b class='flag-5'>CW32</b>生态社区荣获立创开源硬件平台&amp;quot;优质合作社区&amp;quot;荣誉!

    【硬核项目】STM32F103 智能小车全栈开发:红外循迹 / 避障算法 + WiFi 远程控制,附原理图与代码

    今天为大家推荐一款功能强大的STM32多功能智能小车——华清远见STM32F103智能云控小车。这款小车集红外遥控、远程物联控制、智能循迹
    的头像 发表于 05-16 17:11 ?986次阅读
    【硬核项目】STM32F103 智能<b class='flag-5'>小车</b>全栈开发:红外<b class='flag-5'>循迹</b> / 避障算法 + WiFi 远程控制,附原理图与代码

    蓝牙无线遥控小车

    蓝牙无线遥控小车? ?各种无线遥控都有各自的优缺点和用途,我们稍做对比:1.红外遥控,需要固定方向,不能有物体遮挡,遥控距离一般在8米以内,
    发表于 04-19 17:08 ?3次下载

    代码+案例+生态:武汉芯源半导体CW32嵌入式开发实战正式出版

    尊敬的各位电子工程师、嵌入式开发爱好者们:大家好!今天,我们怀着无比激动与自豪的心情,向大家宣布一个重大喜讯——武汉芯源半导体的单片机CW32正式出书啦!《基于ARMCortex-M0+的CW32
    的头像 发表于 03-03 15:15 ?721次阅读
    代码+案例+生态:武汉芯源半导体<b class='flag-5'>CW32</b>嵌入式开发实战正式出版

    代码+案例+生态:武汉芯源半导体CW32嵌入式开发实战正式出版

    尊敬的各位电子工程师、嵌入式开发爱好者们: 大家好!今天,我们怀着无比激动与自豪的心情,向大家宣布一个重大喜讯——武汉芯源半导体的单片机CW32正式出书啦!《基于ARM Cortex-M0+
    发表于 03-03 15:14

    武汉芯源半导体CW32芯片重庆地区线下技术交流会成功举办

    2024年10月19日,武汉芯源半导体授权CW32生态社区主办的“CW32芯片-重庆地区技术交流会”在重庆市科技工作者众创之家成功举办。此次交流会汇聚重庆地区的嵌入式开发工程师和电子信息类企业代表,共同探讨CW32芯片在仪器仪表
    的头像 发表于 10-24 10:55 ?1010次阅读

    CW32模块使用 红外循迹传感器

    红外循迹传感器采用TCRT5000红外反射传感器,一种集发射与接收于一体的光电传感器,它由一个红外发光二极管和一个NPN红外光电三极管组成。检测反射距离1mm-25mm适用,传感器特设M3固定安装孔
    的头像 发表于 09-18 14:31 ?1027次阅读
    <b class='flag-5'>CW32</b>模块使用 红外<b class='flag-5'>循迹</b>传感器

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

    第13章-循迹功能 循迹小车讲解 原理分析 STM32智能小车循迹教程 红外对管使用 PID循迹
    的头像 发表于 08-21 16:27 ?4048次阅读
    第13章-<b class='flag-5'>循迹</b>功能 STM32智能<b class='flag-5'>小车</b><b class='flag-5'>循迹</b>教程 PID<b class='flag-5'>循迹</b>算法分析

    第14章-蓝牙遥控小车 蓝牙串口通讯讲解蓝牙APP遥控小车 蓝牙串口通讯讲解

    第14章-蓝牙遥控小车 手把手做蓝牙APP遥控小车 蓝牙串口通讯讲解
    的头像 发表于 08-21 16:24 ?1414次阅读
    第14章-蓝牙<b class='flag-5'>遥控</b><b class='flag-5'>小车</b> 蓝牙串口通讯讲解蓝牙APP<b class='flag-5'>遥控</b><b class='flag-5'>小车</b> 蓝牙串口通讯讲解

    19.3-星曈科技 openmv Hopenmv发送五个uchar Openmv+STM32F103C8T6视觉巡线小车 STM32循迹小车系列教程

    19.3-【星曈科技】openmv Hopenmv发送五个uchar Openmv+STM32F103C8T6视觉巡线小车 STM32循迹小车系列教程 使用OpenMV循迹 openM
    的头像 发表于 08-20 11:32 ?1761次阅读
    19.3-星曈科技 openmv Hopenmv发送五个uchar Openmv+STM32F103C8T6视觉巡线<b class='flag-5'>小车</b> STM32<b class='flag-5'>循迹</b><b class='flag-5'>小车</b>系列教程

    20.0-电磁杆的组装和实物介绍“这个是就是你想要的“-智能车电磁组 电磁循迹小车

    电子设计大赛20.0-电磁杆的组装和实物介绍“这个是就是你想要的“-智能车电磁组 电磁循迹小车 电磁循迹 电磁循迹小车代码 电磁杆的制作 电
    的头像 发表于 08-20 11:07 ?905次阅读
    20.0-电磁杆的组装和实物介绍“这个是就是你想要的“-智能车电磁组 电磁<b class='flag-5'>循迹</b><b class='flag-5'>小车</b>

    20.3-使用两个通道进行电磁循迹 智能车竞赛 电磁杆原理图 电磁循迹小车 STM32电磁小车 电磁循迹算法

    20.3-使用两个通道进行电磁循迹 智能车竞赛 电磁杆原理图 电磁循迹小车 智能车电磁组 STM32电磁小车 电磁循迹
    的头像 发表于 08-20 10:56 ?1476次阅读
    20.3-使用两个通道进行电磁<b class='flag-5'>循迹</b> 智能车竞赛 电磁杆原理图 电磁<b class='flag-5'>循迹</b><b class='flag-5'>小车</b> STM32电磁<b class='flag-5'>小车</b> 电磁<b class='flag-5'>循迹</b>算法

    20.2-电磁杆在磁轨道的测试 零基础入门智能车竞赛 STM32电磁小车

    20.2-电磁杆在磁轨道的测试 零基础入门智能车竞赛 智能车竞赛 电磁杆原理图 电磁循迹小车 智能车电磁组 STM32电磁小车 电磁循迹小车
    的头像 发表于 08-20 10:52 ?1185次阅读
    20.2-电磁杆在磁轨道的测试 零基础入门智能车竞赛 STM32电磁<b class='flag-5'>小车</b>

    第六章-V1.5 STM32 ADC读取电压 ADC采样电压 STM32f103c8t6adc采集电压

    STM32智能小车 库函数开发。功能:循迹、避障、跟随、遥控、电池电压显示等。
    的头像 发表于 08-15 16:23 ?2003次阅读
    第六章-V1.5 STM32 ADC读取电压 ADC采样电压 STM32f103c8t6adc采集电压