第一次培训笔记

一·电控软件

在电控软件的工作中,我们需要成为一个机器控制算法工程师和嵌或入式系统工程师。
其中机器人控制理论主要学习

  1. 线性代数:向量空间、矩阵运算规则,熟悉线性计算
  2. 信号与系统:线性系统、卷积原理和拉普拉斯变换
  3. 自动控制原理:传递函数法、频域分析法。(频域SISO系统)
  4. 计算机控制系统: 系统离散化,离散域控制器设计。(乙域)
  5. 现代控制理论:状态空间法,状态反馈控制器(MIMO系统)状态估计,稳定性分析,李雅普诺夫控制方程
  6. 机器人学:齐次变换矩阵,逆运动学,动力学
  7. 优化控制理论:凸优化、HJB方程,动态规划、二次规划

嵌入式开发系统主要学习

  1. C语言:语法机制,多文件编译,项目工程开发
  2. 微机原理:单片机运行机制,常见的总线和通信协议
  3. 计算机组成原理:交叉编译原理,反码补码等计知识(推荐B站“「合集110分钟速成课:计算机科学”)
  4. 操作系统:RTOS、内存池、进程线程、互斥锁等概念

二·C语言嵌入式的应用

嵌入式的应用从逻辑上可以抽象为三个部分:

1). 数据的输入(如传感器,信号,接口输入),

2). 数据的处理(如协议的解码和封包,AD采样值的转换等)

3). 数据的输出(GUI的显示,输出的引脚状态,DA的输出控制电压,PWM波的占空比等)

三·单片机

1.什么是单片机

单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。
stm32c8t6单片机最小系统板

而开发板较为全面,但实际工程应用一般需要自己设计合适的系统板。

2.单片机开发

开发环境: MDK Keil

开发软件库: STM32Fxxx_StdPeriph_Lib_VX.X.X
库函数作为对硬件部分的支持库 协助用户代码的开发

程序的烧录有两种方式.分别是ST-Link , J-Link,根据情况选择是否需要在线调试的下载方法

简单的外设:

1.输入输出端口(GPIO):

单片机最基本的、与外部交互的端口。可以输出特定电平时序或者读出端口电平。并结合定时器可以实现 输出比较、输入捕获、PWM输出、编码器电平检测等多种功能.。

2.串口+直接内存访问 : USART + DMA

串口是基本全双工串行通信协议,可以实现单片机系统与其他终端(上位机,下位机)的数据交换。信号线较为简单,不要求信号同步但需要进行数据校验。(USB 串口下载助手)但是USART本身数据传输需要占用单片机内核的运行空间,使用DMA(直接内存访问)绕过内核直接建立外部数据与内部数据的连接。

3.定时器:TIM

定时器可以定时并产生中断,并结合GPIO实现 输出比较、输入捕获、PWM输出、编码器电平检测等多种功能。
集成电路总线 :IIC
使用IIC协议主要是为了实现总线上主从设备的数据交换。常见应用可以将外部陀螺仪、气压计等单片机内部不具备的设备与单片机进行连接,实现功能拓展,但IIC波特率较低(400k左右)。

4.集成电路总线 :IIC

使用IIC协议主要是为了实现总线上主从设备的数据交换。常见应用可以将外部陀螺仪、气压计等单片机内部不具备的设备与单片机进行连接,实现功能拓展,但IIC波特率较低(400k左右)。

3.stm32

stm32内部结构
上图Cortex-M3是处理器核,其余是外设。通过总线与外设通讯,形成系统。其中,寄存器作为整个系统的操作接口。

时钟树线路(AHB,APB总线)对晶振时钟进行倍频分频处理后将时钟信号传导给各个外设(如USART ADC TIM RTC SPI IIC GPIO CAN 等等)。
同时有其他总线进行数据传输(ICode总线绕过总线矩阵直接连接Flash去获取内核指令 DCode总线连接内核与外设 SRAM作为数据区,其大小遵循CPU寻址原则

在STM32中,有五个时钟源,为HSI、HSE、LSI、LSE、PLL。
①HSI是高速内部时钟,RC振荡器,频率为8MHz。
②HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz。
③LSI是低速内部时钟,RC振荡器,频率为40kHz。
④LSE是低速外部时钟,接频率为32.768kHz的石英晶体。
⑤PLL为锁相环倍频输出,其时钟输入源可选择为HSI/2、HSE或者HSE/2。倍频可选择为2~16倍,但是其输出频率最大不得超过72MHz。
用户可通过多个预分频器配置AHB总线、高速APB2总线和低速APB1总线的频率,并最终传递到总线所挂载的外设上。

四·软件组工具

STM32CubaMx:代码底层配置生成软件,配置定时器、中断优先级等硬件参数以及芯片各引脚对应功能,生成HAL库底层代码,能减少代码工作量
KeilMDK:代码工程编写编译软件,连接无线调试器可对机器人进行实时debug调试,通过打断点等操作可实时显示代码工程各参数变化
Git:Git代码仓库,实验室各兵种机器人代码工程集中存储管理,可自由上传及下拉其他队员代码。还可对各版本代码进行迭代合并或版本回退

五·代码构架

通信配置

比如与比赛服务器,视觉,上位机等都用串口通信。而与电机使用CAN通信

库函数

系统库(HAL库,标准库)自带函数
如有定时器回调函数

数据拼接

在这里插入图片描述
当接收机和发射机建立连接后,接收机每隔7ms通过DBUS发送一帧18字节的数据,每个通道有11位,可通过以下代码对每个通道拼接
原理只可意会不可言传。
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值