【Robomaster】电控入门手册

2023-05-16

文章目录

  • 0 电控介绍
      • 0.1 电控学习内容
      • 0.2 物资准备
  • 1 C语言学习
      • 1.1 学习资料
      • 1.2 学习规划
          • 1.2.1 基础
          • 1.2.2 函数
          • 1.2.3 数组
          • 1.2.4 进阶
  • 2 Arduino培养方案
      • 2.1 Arduino简介
      • 2.2 学习资料
      • 2.3 学习规划
          • 2.3.1 点灯
          • 2.3.2 中断
          • 2.3.3 PWM/模拟输入
          • 2.3.4 串口通讯
  • 3 STM32培养方案
      • 3.1 STM32简介
      • 3.2 学习资料
      • 3.3 安装教程
          • 3.3.1 CubeMX
          • 3.3.2 Keil MDK5
      • 3.4 学习规划
          • 3.4.1 点灯/中断
          • 3.4.2 定时器/PWM
          • 3.4.3 串口通讯
          • 3.4.4 (拓展)I2C
          • 3.4.5 (拓展)SPI
          • 3.4.6 (拓展)CAN
  • 4 (拓展)RM电控入门

0 电控介绍

0.1 电控学习内容

电控组主要负责的是机器人的控制,包括嵌入式开发、通信、电机选型与驱动以及控制算法等。目前我队主要使用的主控芯片型号是STM32F4系列,编程语言为C,硬件外设为HAL库。
在这里插入图片描述

0.2 物资准备

预备物资:
可以自行购买,薪火培训时也会发放。
在这里插入图片描述

1 C语言学习

1.1 学习资料

C语言是理工科的大学必修课,也是电控方向的基础,因为目前C语言是基于单片机的嵌入式开发的主要语言。
IDE:Dev C++(仅作C/C++学习使用,后期开发会更换IDE)。
慕课链接
https://www.imooc.com/learn/249
博客链接
https://blog.csdn.net/qq_23079443/article/details/81108901
在这里插入图片描述
在这里插入图片描述

以上给出的博客是和慕课配套的,我们在”1.2 学习规划“中,对整篇博客进行了参考性的分解,每一个Step大约可用3天完成,按照计划同步学习慕课和博客,完成相关练习,C语言的基础入门就差不多完成了。
补充资料:强烈推荐浙江大学翁恺老师的《C语言程序设计》和《C语言程序设计进阶》,讲解清晰细致,习题量和难度也适中,在中国大学mooc、网易云课堂等主流中文mooc网站均能找到。

1.2 学习规划

1.2.1 基础
  1. C语言概览。重点看规范文档,掌握各种语句数据类型(第1~2章)。
  2. 了解各种运算符(第3章)。
  3. 学习顺序、选择、循环 3种基本程序结构,掌握if-else、for、while、do-while、switch-case、break、continue等语句的用法,goto有所了解即可(第4章)。
1.2.2 函数
  1. 自创函数+参数类型+返回值(5.1~5.6章节)。
  2. 局部与全局变量+变量存储类型+递归函数+内外部函数(5.7~5.13章节)。
  3. 多做练习,熟练使用函数简化程序,降低模块耦合度。
1.2.3 数组
  1. 学习遍历数组并实现简单应用(6.1~6.5章节)。
  2. 字符串与数组处理(6.6~6.8章节)。
  3. 多维数组应用和练习(6.9~6.12章节)。
1.2.4 进阶
  1. 了解指针及其应用。
  2. 了解结构体、链表等结构。
  3. 如有余力,可以学习一点点数据结构与算法

2 Arduino培养方案

2.1 Arduino简介

Arduino是一款便捷灵活、方便上手的开源电子原型平台。有同名的开发环境Arduino,库函数丰富且实用,不必完全了解原理也可以快速上手做项目,非常适合新手入门单片机。我们希望通过短期的教程,让大家掌握点灯、流水灯、呼吸灯、模拟输入、中断、串口通信等基本操作,以及PWM等基本原理,体验开发过程。

2.2 学习资料

本方案”2.3 学习规划“中主要使用https://www.cirmall.com/circuit/2937#/details这套Arduino入门教程,目录如下图所示。
在这里插入图片描述
补充资料

  1. w3cschoo的arduino教程,文档风格的目录,博客风格的叙述,合适入门:https://www.w3cschool.cn/arduino/
  2. Arduino中文社区:https://www.arduino.cn/forum.php
  3. CSDN,中文IT技术社区,干货不少,不仅仅是arduino,遇到各种技术问题都可以试着搜索一下:https://www.csdn.net/
  4. 与非网:https://www.eefocus.com/?utm_campaign=dianzixinxigang&utm_medium=navi&utm_source=cirmall&utm_content=eefocus&utm_term=eefocus
  5. 百度、谷歌、b站(视频教程)、有道词典(看文档/代码时查单词)等工具,熟练使用搜索引擎是非常重要的技能。

2.3 学习规划

以下每个模块大约用3天时间可以完成,主要参考”2.2 学习资料“中给出的《Arduino入门教程》。

2.3.1 点灯
  1. 安装软件。
  2. 阅读以下材料,了解基础知识。
    Arduino 菜鸟通俗版解读系列(1)数字接口/模拟接口
    https://www.jianshu.com/p/839e8f58335c
    Arduino菜鸟通俗版解读系列(2)数字接口/模拟接口
    https://www.jianshu.com/p/db31d92689af
    Arduino菜鸟通俗版解读系列(3)库
    https://www.jianshu.com/p/9ea91a63181f
    《Arduino程序设计基础》函数参考文档(简要浏览即可,不需要完全记住)
    http://wiki.arduino.cn/?file=home-首页
    Arduino各开发板的比较
    https://www.arduino.cn/thread-42417-1-1.html
  3. 阅读《Arduino入门教程》中的(1)~(3)篇,并完成这3个实验。
2.3.2 中断
  1. 按键开关控制:阅读《Arduino入门教程(4)》,完成互动交通信号灯。
  2. 体验外部中断:阅读博客《各种Arduino外部中断程序》,链接为https://blog.csdn.net/qq_35576988/article/details/55001384,并完成博客中的示例。
  3. 体验定时器中断:阅读博客《Arduino定时器中断 外部中断》,链接为https://blog.csdn.net/qq_39591322/article/details/89155079。
2.3.3 PWM/模拟输入
  1. 体验PWM:阅读《Arduino入门教程(5)》,完成呼吸灯实验。
  2. 了解PWM原理:阅读以下博客。
    Arduino笔记3·PWM的原理和效果
    https://www.orgleaf.com/3137.html
    Arduino系列教程之 – PWM的秘密
    https://blog.csdn.net/xuanyuanlei1020/article/details/49902779
  3. 学习模拟输入:阅读以下资料,并按步骤完成实验。
    Arduino笔记2:模拟信号输入及实例(关于SerialChart的部分可以不看)
    https://www.orgleaf.com/3049.html
    Arduino内置教程-模拟-模拟输入(原理图不作要求https://www.ncnynl.com/archives/201607/336.html)
2.3.4 串口通讯
  1. 阅读以下材料并完成实验,了解一些关于通信的基础知识。
    Arduino基础入门篇23—串口通讯
    https://blog.csdn.net/TonyIOT/article/details/82848062
    Arduino菜鸟通俗版解读系列(4)串口通信—USART
    https://www.jianshu.com/p/28ad2e68d7be
    Arduino菜鸟通俗版解读系列(7)串行通信,串口通信,波特率
    https://www.jianshu.com/p/d805edf60815

3 STM32培养方案

3.1 STM32简介

STM32是加入机器人队后主要使用的开发板,它拥有比Arduino更强大的性能。STM32的学习是本次培训计划的重点和难点,之前C语言和Arduino的学习即是为STM32的学习作铺垫。

3.2 学习资料

前期主要依靠”微雪课堂“、洋桃视频等,后期更多依赖开发手册和CSDN论坛。
微雪课堂STM32CubeMX系列教程:
https://www.waveshare.net/study/article-629-1.html
洋桃电子:
https://www.bilibili.com/video/BV1MW411q7Jn?from=search&seid=8564727660527860260
硬石开发手册:
https://download.csdn.net/download/weixin_45839498/12350816?utm_source=bbsseo
补充资料:b站搜索正点原子、野火的stm32视频教程。

3.3 安装教程

3.3.1 CubeMX

我们会先用CubeMX生成基础的工程,并在此基础上编写自己的代码。CubeMX安装教程可查看链接:https://blog.csdn.net/ybhuangfugui/article/details/52225736

3.3.2 Keil MDK5

请按如下顺序安装:

  1. 安装MDK-523.exe
  2. 安装Keil.STM32F1xx_DFP.1.1.0.pack和Keil.STM32F4xx_DFP.2.12.0.pack
  3. 使用破解机破解keil
  4. 安装STLINK驱动
  5. 安装JLINK驱动(即文件Setup_JLink_V496.exe)

3.4 学习规划

以下每个模块大约可用3天时间完成。

3.4.1 点灯/中断
  1. 阅读以下内容,学习嵌入式开发所需的c语言基础。
    关于嵌入式开发的C语言基础总结
    https://blog.csdn.net/m0_37697335/article/details/79515389
    洋桃视频前6步,链接在”3.2 学习资料“中给出。
  2. 点亮第一盏灯,可参考以下视频(视频来源于某位不愿透露姓名的dalao扬神)。
    https://www.bilibili.com/video/av26331717
  3. 体验按键的外部中断:
    (1)基础任务:使用按键的外部中断控制LED灯,使得按一下按键https://blog.csdn.net/huazhen1234/article/details/44985071LED灯亮灭3次;
    (2)进阶任务:在面包板和LED灯的外设下,做一个依次亮灭的流水灯。
    可参考以下资料:
    微雪课堂的GPIO和外部中断篇(重点看CubeMX的配置和生成代码,对于优先级、寄存器参数、汇编底层可以只有个大概的了解,链接在”3.2 学习资料“中给出)
    硬石开发手册(浏览相关内容即可)
3.4.2 定时器/PWM
  1. 阅读微雪课堂的基本定时器篇,并按步骤完成实验,通过定时器中断控制LED灯闪烁,间隔1s。
  2. 硬件生成PWM呼吸灯:
    (1)基础任务:使LED灯每3秒呼吸一次;
    (2)进阶任务:完成依次亮灭的流水灯,但以呼吸灯的形式亮灭。
    可参考以下资料:
    微雪课堂的PWM篇(重点看配置和代码)
    扬神的示例视频
    https://www.bilibili.com/video/av29353267/?p=2
    补充资料:定时器模拟产生PWM也可以实现呼吸灯,可参考下面这篇博客。
    STM32学习笔记一(LED,跑马灯,呼吸灯)https://blog.csdn.net/huazhen1234/article/details/44985071
3.4.3 串口通讯
  1. 了解串口通信,利用之前的按键中断发送中断信号,并将收到的信息通过串口发送给电脑,可参考以下资料。
    STM32 USART同步异步串行通讯
    https://wenku.baidu.com/view/5cc4dc75e87101f69e3195f1.html?tdsourcetag=s_pcqq_aiomsg&qq-pf-to=pcqq.c2c
    微雪课堂的串行通信篇(按照教程操作即可,主要熟悉串口的发送接收函数,以及中断函数)
3.4.4 (拓展)I2C
  1. 了解STM32 io口模式。
    STM328种IO口模式区别
    https://blog.csdn.net/li707414287/article/details/104579505
  2. 了解I2C通讯协议。
    I2C通讯协议介绍
    https://blog.csdn.net/weixin_34044273/article/details/92024131
  3. 直观上了解读写流程。
    I2C总线和SPI总线
    https://blog.csdn.net/u010667082/article/details/47039951
  4. I2C不但可以用硬件生成,也可以用软件模拟。尝试用I2C读取MPU6050的数据,并利用串口将数据发送给电脑,可参考以下资料:
    微雪课堂的I2C篇(硬件生成参考)
    IIC协议解释(软件模拟参考)
    https://blog.csdn.net/cheerk/article/details/80542332
    STM32 IO口模拟I2C+驱动MPU6050
    https://blog.csdn.net/Zach_z/article/details/75331275
3.4.5 (拓展)SPI
  1. 可参考微雪课堂、开发手册,以及以下博客。
    【STM32】SPI的基本原理、库函数(SPI一般步骤)
    https://blog.csdn.net/qq_38410730/article/details/80318821
    STM32—cubeMX+HAL库的SPI接口使用
    https://blog.csdn.net/u014470361/article/details/79015712
3.4.6 (拓展)CAN
  1. 可参考微雪课堂、开发手册,以及以下博客。
    CAN通信详解
    https://blog.csdn.net/hanchaoman/article/details/70059072
    stm32的can总线理解及应用——程序对应stm32f103系列
    https://blog.csdn.net/qq_29413829/article/details/53230716
    使用STM32F103做CAN的收发通信
    https://blog.csdn.net/qq_36355662/article/details/80607453
    STM32 CAN总线说明
    https://blog.csdn.net/windows260/article/details/51138072
    CAN通讯总结-基于STM32
    https://blog.csdn.net/u010183728/article/details/80857127
    STM32 CAN 过滤器、滤波屏蔽器配置总结
    https://blog.csdn.net/u012587637/article/details/52032630

4 (拓展)RM电控入门

可参考扬神的Robomaster电控入门系列博客。
https://www.cnblogs.com/sasasatori/p/11582006.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Robomaster】电控入门手册 的相关文章

随机推荐