描述

接下来的两篇文章将介绍磁条机器人的算法开发部分。
这一篇主要介绍机器人主控的配置及部分算法思路

主控

这次机器人的主控芯片,我们选择的型号是STM32F103RCT6,这是意法半导体比较便宜的一款产品了,但用做我们这次的开发是足够的。在网上我们买了这个芯片的一个开发版,如图。

为了便于进行传感器的插入,我们配合这个开发版,还做了一块拓展版,这里就不贴出图片了。

管脚配置

为了使这块主控起到磁条机器人核心的作用,我们自然要对他进行管脚配置,使得这些管脚分别对应不同的传感器。

这里说明一下,管脚配置是根据拓展板的设计走的,因此以下配置是专属于我的配置。不过整体的思路都可以被参考

这里简述一下步骤哈

  1. 打开CubeMX软件,选择左上角的“File”——“New Project”,建造一个新的工程
  2. 选择你的芯片类型,我的是STM32F103RCT6,双击确定
  3. 上一个操作后会进入芯片编辑界面,界面的最右侧是我们的芯片。我们设置所有的管脚如下
    PA0—TIM2_CH1(左电机)
    PA1—TIM2_CH2(左电机)
    PA2—USART2_TX (磁传感器)
    PA3—USART2_RX(磁传感器)
    PA6—TIM3_CH1(右电机)
    PA7—TIM3_CH2(右电机)
    PA9—USART1_TX(上位机控制命令)
    PA10—USART1_RX(上位机控制命令)
    PB6—TIM4_CH1(状态灯)
    PB10—USART3_TX(RFID模块)
    PB11—USART3_RX(RFID模块)
    PC10—UART4_TX(左超声传感器)
    PC11—UART4_RX(左超声传感器)
    PC12—UART5_TX(左右超声传感器)
    PD2—UART5_RX(右超声传感器)

    这些管脚设置后,如图

  4. 在左侧的小菜单中选择“Timers”中,将TIM2、TIM3和TIM4进行设置。全部的修改我都截图了,如下。



    唯一有些特殊的就是状态灯的TIM4,需要额外的一项操作。可以参考我之前的这篇文章《stm32 CubeMX控制WS2812灯带(二)(Develop文章4.2)》,这里截出这项特殊的操作,请照做。

    执行完定时器的设定,我们可以看到这些管脚在右图变为了绿色,完成了设置。

  5. 对USART1、USART2、USART3、UART4和UART5进行设置,下面贴出了UART4和UART5的设置图片。实际上需要注意的就是,USART1和USART2的波特率为115200,USART3、UART4和UART5的波特率是9600,将他们NVC Settings中的global interrupt的enable打钩,并将这几个的RX的GPIO Settings中的推挽模式设置为No pull-up and no pull-down。





  6. 将系统的时钟图更改,如下图
  7. 对项目文件进行两项配置后,生成代码。

项目配置

我们通过CubeMX的generate code按钮已经生成了全部的工程,生成后的工程文件树如下

在keil软件中点击菜单栏的“魔法棒”,将Debug中的编译器更改为“CMSIS-DAP Debugger”

点击编译,由于是CubeMX生成的,整个项目是不会报错的

总结

这篇文章介绍了主控的管脚配置和项目,下一篇将介绍算法及代码

写的不容易,欢迎各位朋友点赞并加关注,谢谢!