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

    文章

    285

    浏览量

    57478
  • 循迹小车
    +关注

    关注

    42

    文章

    65

    浏览量

    68692
  • CW32
    +关注

    关注

    1

    文章

    218

    浏览量

    729
收藏 人收藏

    评论

    相关推荐

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

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

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

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

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

    第13章-循迹功能 循迹小车讲解 原理分析 STM32智能小车循迹教程 红外对管使用 PID循迹
    的头像 发表于 08-21 16:27 1829次阅读
    第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 849次阅读
    第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 1012次阅读
    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 510次阅读
    20.0-电磁杆的组装和实物介绍“这个是就是你想要的“-智能车电磁组 电磁<b class='flag-5'>循迹</b><b class='flag-5'>小车</b>

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

    20.3-使用两个通道进行电磁循迹 智能车竞赛 电磁杆原理图 电磁循迹小车 智能车电磁组 STM32电磁小车 电磁循迹
    的头像 发表于 08-20 10:56 922次阅读
    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>算法

    【项目展示】基于CW32遥控循迹小车

    CW32循迹小车.zip_免费高速下载|百度网盘-分享无限制  一、概述 CW32循迹遥控
    的头像 发表于 05-31 17:33 1408次阅读
    【项目展示】基于<b class='flag-5'>CW32</b>的<b class='flag-5'>遥控</b><b class='flag-5'>循迹</b><b class='flag-5'>小车</b>

    基于CW32的有刷直流电机控制实验三:直流电机闭环位置和速度控制实验

    硬件接线说明 实验使用的模块主要有6个:小车主控板(黑色)、CW32F030小蓝板、OLED屏幕、TB6612电机驱动模块、直流减速电机、DAP-Link下载器。 安装好后的图片如下: 如果
    的头像 发表于 05-31 17:01 657次阅读
    基于<b class='flag-5'>CW32</b>的有刷直流电机控制实验三:直流电机闭环位置和速度控制实验

    基于STM32的智能循迹小车

    初学者的智能小车
    的头像 发表于 05-08 14:43 4082次阅读
    基于STM32的智能<b class='flag-5'>循迹</b><b class='flag-5'>小车</b>

    芯源半导体首个CW32嵌入式创新实验室揭牌

    武汉芯源半导体,一家知名的MCU(微控制器)厂商,近日携手上海科学技术职业学院,共同揭牌了“CW32嵌入式创新实验室”。此次合作旨在搭建起企业与高校之间的紧密桥梁,实现资源共享和优势互补。
    的头像 发表于 05-08 10:37 487次阅读

    产教融合,校企合作——武汉芯源半导体首个CW32嵌入式创新实验室顺利揭牌!

    2024年4月24日上午,武汉芯源半导体有限公司与上海科学技术职业学院共同举办的“CW32嵌入式创新实验室揭牌仪式”在上海科学技术职业学院第二会议室隆重举行。活动现场,武汉芯源半导体与上海
    的头像 发表于 05-06 13:42 479次阅读
    产教融合,校企合作——武汉芯源半导体首个<b class='flag-5'>CW32</b>嵌入式创新实验室顺利揭牌!

    CW32量产烧录工具

    本节主要介绍CW32微控制器的烧录器CW-Writer,以及与之配合的软件CW-Programmer的使用方法。烧录器CW-Writer通过ISP协议,可实现对
    的头像 发表于 04-25 15:22 1496次阅读
    <b class='flag-5'>CW32</b>量产烧录工具

    CW32快速开发入门

    CW32快速开发入门
    的头像 发表于 04-24 18:56 2126次阅读
    <b class='flag-5'>CW32</b>快速开发入门

    CW32F003E4芯片入门学习:器件包安装

    安装CW32的pack包,可以从武汉芯源官网下载固件库
    的头像 发表于 04-02 14:25 687次阅读
    <b class='flag-5'>CW</b>32F003E4芯片入门学习:器件包安装