概述
文章目录
- 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 基础
- C语言概览。重点看规范文档,掌握各种语句和数据类型(第1~2章)。
- 了解各种运算符(第3章)。
- 学习顺序、选择、循环 3种基本程序结构,掌握if-else、for、while、do-while、switch-case、break、continue等语句的用法,goto有所了解即可(第4章)。
1.2.2 函数
- 自创函数+参数类型+返回值(5.1~5.6章节)。
- 局部与全局变量+变量存储类型+递归函数+内外部函数(5.7~5.13章节)。
- 多做练习,熟练使用函数简化程序,降低模块耦合度。
1.2.3 数组
- 学习遍历数组并实现简单应用(6.1~6.5章节)。
- 字符串与数组处理(6.6~6.8章节)。
- 多维数组应用和练习(6.9~6.12章节)。
1.2.4 进阶
- 了解指针及其应用。
- 了解结构体、链表等结构。
- 如有余力,可以学习一点点数据结构与算法。
2 Arduino培养方案
2.1 Arduino简介
Arduino是一款便捷灵活、方便上手的开源电子原型平台。有同名的开发环境Arduino,库函数丰富且实用,不必完全了解原理也可以快速上手做项目,非常适合新手入门单片机。我们希望通过短期的教程,让大家掌握点灯、流水灯、呼吸灯、模拟输入、中断、串口通信等基本操作,以及PWM等基本原理,体验开发过程。
2.2 学习资料
本方案”2.3 学习规划“中主要使用https://www.cirmall.com/circuit/2937#/details这套Arduino入门教程,目录如下图所示。
补充资料:
- w3cschoo的arduino教程,文档风格的目录,博客风格的叙述,合适入门:https://www.w3cschool.cn/arduino/
- Arduino中文社区:https://www.arduino.cn/forum.php
- CSDN,中文IT技术社区,干货不少,不仅仅是arduino,遇到各种技术问题都可以试着搜索一下:https://www.csdn.net/
- 与非网:https://www.eefocus.com/?utm_campaign=dianzixinxigang&utm_medium=navi&utm_source=cirmall&utm_content=eefocus&utm_term=eefocus
- 百度、谷歌、b站(视频教程)、有道词典(看文档/代码时查单词)等工具,熟练使用搜索引擎是非常重要的技能。
2.3 学习规划
以下每个模块大约用3天时间可以完成,主要参考”2.2 学习资料“中给出的《Arduino入门教程》。
2.3.1 点灯
- 安装软件。
- 阅读以下材料,了解基础知识。
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 - 阅读《Arduino入门教程》中的(1)~(3)篇,并完成这3个实验。
2.3.2 中断
- 按键开关控制:阅读《Arduino入门教程(4)》,完成互动交通信号灯。
- 体验外部中断:阅读博客《各种Arduino外部中断程序》,链接为https://blog.csdn.net/qq_35576988/article/details/55001384,并完成博客中的示例。
- 体验定时器中断:阅读博客《Arduino定时器中断 外部中断》,链接为https://blog.csdn.net/qq_39591322/article/details/89155079。
2.3.3 PWM/模拟输入
- 体验PWM:阅读《Arduino入门教程(5)》,完成呼吸灯实验。
- 了解PWM原理:阅读以下博客。
Arduino笔记3·PWM的原理和效果
https://www.orgleaf.com/3137.html
Arduino系列教程之 – PWM的秘密
https://blog.csdn.net/xuanyuanlei1020/article/details/49902779 - 学习模拟输入:阅读以下资料,并按步骤完成实验。
Arduino笔记2:模拟信号输入及实例(关于SerialChart的部分可以不看)
https://www.orgleaf.com/3049.html
Arduino内置教程-模拟-模拟输入(原理图不作要求https://www.ncnynl.com/archives/201607/336.html)
2.3.4 串口通讯
- 阅读以下材料并完成实验,了解一些关于通信的基础知识。
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
请按如下顺序安装:
- 安装MDK-523.exe
- 安装Keil.STM32F1xx_DFP.1.1.0.pack和Keil.STM32F4xx_DFP.2.12.0.pack
- 使用破解机破解keil
- 安装STLINK驱动
- 安装JLINK驱动(即文件Setup_JLink_V496.exe)
3.4 学习规划
以下每个模块大约可用3天时间完成。
3.4.1 点灯/中断
- 阅读以下内容,学习嵌入式开发所需的c语言基础。
关于嵌入式开发的C语言基础总结
https://blog.csdn.net/m0_37697335/article/details/79515389
洋桃视频前6步,链接在”3.2 学习资料“中给出。 - 点亮第一盏灯,可参考以下视频(视频来源于某位不愿透露姓名的dalao扬神)。
https://www.bilibili.com/video/av26331717 - 体验按键的外部中断:
(1)基础任务:使用按键的外部中断控制LED灯,使得按一下按键https://blog.csdn.net/huazhen1234/article/details/44985071LED灯亮灭3次;
(2)进阶任务:在面包板和LED灯的外设下,做一个依次亮灭的流水灯。
可参考以下资料:
微雪课堂的GPIO和外部中断篇(重点看CubeMX的配置和生成代码,对于优先级、寄存器参数、汇编底层可以只有个大概的了解,链接在”3.2 学习资料“中给出)
硬石开发手册(浏览相关内容即可)
3.4.2 定时器/PWM
- 阅读微雪课堂的基本定时器篇,并按步骤完成实验,通过定时器中断控制LED灯闪烁,间隔1s。
- 硬件生成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 串口通讯
- 了解串口通信,利用之前的按键中断发送中断信号,并将收到的信息通过串口发送给电脑,可参考以下资料。
STM32 USART同步异步串行通讯
https://wenku.baidu.com/view/5cc4dc75e87101f69e3195f1.html?tdsourcetag=s_pcqq_aiomsg&qq-pf-to=pcqq.c2c
微雪课堂的串行通信篇(按照教程操作即可,主要熟悉串口的发送接收函数,以及中断函数)
3.4.4 (拓展)I2C
- 了解STM32 io口模式。
STM328种IO口模式区别
https://blog.csdn.net/li707414287/article/details/104579505 - 了解I2C通讯协议。
I2C通讯协议介绍
https://blog.csdn.net/weixin_34044273/article/details/92024131 - 直观上了解读写流程。
I2C总线和SPI总线
https://blog.csdn.net/u010667082/article/details/47039951 - 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
- 可参考微雪课堂、开发手册,以及以下博客。
【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
- 可参考微雪课堂、开发手册,以及以下博客。
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
最后
以上就是淡定宝马为你收集整理的【Robomaster】电控入门手册0 电控介绍1 C语言学习2 Arduino培养方案3 STM32培养方案4 (拓展)RM电控入门的全部内容,希望文章能够帮你解决【Robomaster】电控入门手册0 电控介绍1 C语言学习2 Arduino培养方案3 STM32培养方案4 (拓展)RM电控入门所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复