基于CW32的K210二维舵机视觉跟踪物体

本文介绍了如何使用国产MCU CW32和K210芯片构建一个物体跟踪系统。通过K210的视觉识别功能获取目标坐标,并通过串口将数据传输给CW32,利用PID算法控制舵机进行跟踪。具体步骤包括CW32的时钟和串口配置,以及K210的坐标数据解析。
摘要由CSDN通过智能技术生成

前言
最近想要做一个项目是涉及用国产MCU--CW32配合K210控制舵机实现跟踪物体的目的,我想要实现一个功能就是识别到目标并且把目标的坐标信息通过串口传输给单片机,单片机控制舵机进行控制,那么视觉方面目前我认为最好的选择就是使用k210了,它不仅成本低,性能好,而且基于MicroPython的开发极易上手,单片机选用的是武汉芯源半导体公司的国产芯片CW32.

什么是CW32

CW32是武汉芯源半导体推出的基于Cortex-M0+内核的32位微控制器:CW32系列MCU,该系列MCU在多项指标上大幅领先于其他品牌同类产品,可以满足通用、低成本、超低功耗以及高性能等不同应用市场的MCU需求。

什么是k210:
K210 是嘉楠(Cannaan)科技的一款集成机器视觉与机器听觉能力的系统级芯片 (RSIC-V CPU)。使用台积电 (TSMC) 超低功耗的 28 纳米先进制程,具有双核 64 位处理器,拥有较好的功耗性能,稳定性与可靠性。该方案力求零门槛开发,可在最短时效部署于用户的产品中,赋予产品人工智能(AI)。 可以说是集性能强劲与高性价比于一身。
 

 一、CW32根据K210串口传回来的数据输出PWM控制舵机进行跟踪

    CW32F030x6/x8 是基于 eFlash 的单芯片微控制器,集成了主频高达 64MHz 的 ARM® Cortex®-M0+ 内核、高速嵌入式存储器(多至 64K 字节 FLASH 和多至 8K 字节 SRAM)以及一系列全面的增强型外设和 I/O 口。
所有型号都提供全套的通信接口(三路 UART、两路 SPI 和两路 I2C)、12 位高速 ADC、七组通用和基本定时器以及一组高级控制 PWM 定时器。
CW32F030x6/x8 可以在 -40° C 到 105° C 的温度范围内工作,供电电压宽达 1.65V ~ 5.5V。支持 Sleep 和DeepSleep 两种低功耗工作模式。

通用异步收发器 (UART) 支持异步全双工、同步半双工和单线半双工模式,支持硬件数据流控和多机通信;可编程数据帧结构;可以通过小数波特率发生器提供宽范围的波特率选择。
UART 控制器工作在双时钟域下,允许在深度休眠模式下进行数据的接收,接收完成中断可以唤醒 MCU 回到运行模式
本例程中选用的串口1

详细代码如下

1.配置系统时钟

void RCC_Configuration(void)
{
    // 1. HSE 使能&校准,外部晶振频率=8MHz
    RCC_HSE_Enable(RCC_HSE_MODE_OSC,8000000, RCC_HSE_DRIVER_NORMAL, RCC_HSE_FLT_CLOSE);
    
    // 2. 设置 HCLK&PCLK的 分频系数
    RCC_HCLKPRS_Config(RCC_HCLK_DIV1);
    RCC_PCLKPRS_Config(RCC_PCLK_DIV1);
    
    // 3. 使能 PLL,6倍频至 48MHz
    RCC_PLL_Enable(RCC_PLLSOURCE_HSEOSC, 8000000, 6);
    RCC_PLL_OUT();
    
    // 4. 设置 Flash读等待周期:48M≥时钟源HCLK>24M,为 2cycle;时钟源HCLK>48M,为 3cycle
    __RCC_FLASH_CLK_ENABLE();
    FLASH_SetLatency(FLASH_Latency_2);
    
    // 5. 切换时钟至 PLL
    RCC_SysClk_Switch(RCC_SYSCLKSRC_PLL);
    RCC_SystemCoreClockUpdate(48000000); //48000000
}


2.初始化IO口

  void GPIO_Configuration(void)
{
    // 使能 GPIOB时钟:因为使用了 PB06(M4电机)& PB07(M3电机)引脚
    __RCC_GPIOB_CLK_ENABLE();
    
    // 使能 GPIOA时钟:因为使用了 PA08(M1电机)& PA11(M2电机)引脚
    __RCC_GPIOA_CLK_ENABLE();
    
    
 
    
    // 配置 计时器:GTIM3_CH4(PA12引脚)
    PA12_AFx_GTIM3CH4();
    PA12_DIGTAL_ENABLE(); // 使能 数字方式
    PA12_DIR_OUTPUT(); // 输出
    PA12_PUSHPULL_ENABLE(); // 模式:推挽输出

  • 4
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值