![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
《如何从头搭建机器人电控系统》
文章平均质量分 87
以STM32为基础,从电源、控制器、传感器、电机展开对单片机、通信协议、项目规划的学习,持续更新
Jacob_Jagger
return n+0.01
展开
-
搭建机器人电控系统——器件选型——如何选择机器人系统电源?
电源的参数一般来说,一款电池的参数主要如下图所示。其中的电压V、容量MAH、持续放电电流A是我们主要的选型依据,接口端子和重量尺寸也是需要考虑的因素。如何选择电源?对于机器人控制而言,目前常用的电池是锂电池,锂电池重量轻、能量大、能量密度高且不含有毒物质。目前采用能量密度高且最容易买到的18650可充电锂电池如下图(其中18表示直径为18mm,65表示长度为65mm,0表示为圆柱形电池)。锂电池的参数:锂电池标准电压为3.7V,最低电压为3.2V(一般不能低于最低电压),满电电压为4.2V(一般原创 2022-01-27 20:56:39 · 2061 阅读 · 2 评论 -
搭建机器人电控系统——什么是单片机MCU?如何选择单片机?
什么是单片机(MCU)?ARM?STM32?STM32F103ZET6?①单片机MCU: 一种集成电路芯片,将具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能,可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路集成到一块硅片上构成的一个小而完善的微型计算机系统。(上述功能描述听起来比较模糊,这部分会在2.3节原理图部分详细讲述),通常在我们获得一款单片机(如下图左/右圈内)后需要对其外设(下图右红圈外部分)进行硬件上原创 2022-01-27 21:04:50 · 3210 阅读 · 0 评论 -
搭建机器人电控系统——如何从零画一块主控板?——认识芯片、搭建元件图库
如何画好一块主控?我们通常使用AD或者EDA去画一块电路板,它的整体思路是:选择芯片搭建元件图库(包括原理图库和封装库)搭建最小系统电路原理图搭建外设电路原理图PCB布局连线生成相关信息(BOM表、原理图、PCB交给厂家打印)测试芯片稳定性认识芯片当你决定去画一块主控板时,你首先要选择的就是某款型号的单片机MCU,根据2.2.2节主控的选择,我们最好使用STM32系列作为入门和学习的单片机。当然在这里我分别给出了AT89C52单片机原理图、AVR系列ATmega328P-AU单片机原原创 2022-01-27 21:12:03 · 908 阅读 · 0 评论 -
搭建机器人电控系统——如何从零画一块主控板?——搭建最小系统电路原理图
如何画好一块主控?我们通常使用AD或者EDA去画一块电路板,它的整体思路是:选择芯片、搭建元件图库搭建最小系统电路原理图搭建外设电路原理图PCB布局连线生成相关信息(BOM表、原理图、PCB交给厂家打印)测试芯片稳定性搭建最小系统电路原理图在有了库之后你就可以开始着手画板子了,我们首先要搭建的是围绕选择芯片的一个最小电路系统,这个系统能保证画完之后我能正常烧录,编写控制指令到单片机中,单片机也能从对应的引脚中输出我的指令(比如把某个引脚拉高或者拉低)。这个时候虽然输出没有对应没有任何外原创 2022-01-27 21:36:26 · 5057 阅读 · 2 评论 -
搭建机器人电控系统——如何从零画一块主控板?——搭建外设电路原理图
如何画好一块主控?我们通常使用AD或者EDA去画一块电路板,它的整体思路是:选择芯片搭建元件图库(包括原理图库和封装库)搭建最小系统电路原理图搭建外设电路原理图PCB布局连线生成相关信息(BOM表、原理图、PCB交给厂家打印)测试芯片稳定性搭建外设电路原理图功能引脚/普通IO口在上一小节当中,我们已经成功地搭建出了一个单片机的最小系统原理图,这意味着现在你已经能够正常烧录并且对你的单片机进行开发,让某个引脚实现它的功能。能够看出的是,最小系统的原理图中电路引脚连接哪个脚基本都是原创 2022-01-27 21:44:06 · 2438 阅读 · 0 评论 -
搭建机器人电控系统——如何从零画一块主控板?——PCB、打印送厂、测试芯片稳定性
如何画好一块主控?我们通常使用AD或者EDA去画一块电路板,它的整体思路是:选择芯片搭建元件图库(包括原理图库和封装库)搭建最小系统电路原理图搭建外设电路原理图PCB布局连线生成相关信息(BOM表、原理图、PCB交给厂家打印)测试芯片稳定性PCB布局连线在画好我们的原理图后,PCB的思路如下,除了基本的画PCB的要求外,最重要的原则是要时刻考虑成品人机交互的便利性,考虑你真实使用时的感受:板子形状要求在考虑布局之前,首先要确定电路板的大小和形状是否有什么要求,比如放在手柄里。原创 2022-01-27 21:48:38 · 610 阅读 · 0 评论 -
搭建机器人电控系统——如何从零开发主控?——编译环境的选择KEIL、IAR、STM32CubeMX、ROS
搭建机器人电控系统——如何从零开发主控?编译环境的选择主控的从零开发编译环境的选择我以我目前接触到的编译环境为例子,目前机器人主控的编译环境一般有三种:KEIL、STM32CubeMX、IAR、LINUX(ROS系统)。KEIL:KEIL应该说是我们第一个接触到的单片机编译软件,无论是你用51还是用STM32,KEIL都是一个不错的选择。如果你是初学,而且如果你只打算用32系列或者一般的ARM核心的单片机(即可以去找那些采用ARM核心制造MCU的厂家,这个之前在主控选择的时候已经说过)的话,原创 2022-01-30 13:08:43 · 2338 阅读 · 0 评论 -
搭建机器人电控系统——如何从零开发主控?——文件下载、工程配置、烧录
搭建机器人电控系统——如何从零开发主控?编译环境的选择主控的从零开发如何开发主控?(软件实现烧录控制功能)确定你选择的MCU参数我以最常见的STM32F407ZET6为例:①首先去ST官网上找到对应的单片机型号:②找到对应型号的三大关键参数:在该页面的底部,有STM32F407系列下所有型号的参数:我们得到三大关键参数,三大关键参数是我们之后配置软件时非常重要的东西:产品型号:STM32F407ZET6内核:Cortex-M4主频:168MHZ③找到官网上的例程(固件库)原创 2022-01-30 13:34:19 · 866 阅读 · 0 评论 -
搭建机器人电控系统——MCU基石——STM32系统架构
搭建机器人电控系统——MCU基石STM32系统架构STM32时钟配置GPIO是什么中断NVIC与EXTISTM32系统总线架构在对应STM32F4的《参考手册》中,有如下一个系统架构图:从整体来看,STM32系统借助总线矩阵,实现主控总线到被控总线的访问。主控总线①Cortex内核I、D、S总线Cortex-M4:ARM制定的一种内核协议。在选择主控章节说过,ARM制定内核协议,由ST公司根据内核协议制作STM32芯片。即STM32F4系列单片机内核是Cortex-M4。I总线(原创 2022-01-30 13:52:38 · 3033 阅读 · 0 评论 -
搭建机器人电控系统——MCU基石——STM32时钟配置详解
搭建机器人电控系统——MCU基石STM32系统架构STM32时钟配置GPIO是什么中断NVIC与EXTI时钟配置在画一块主控的讲解中,曾经讲解过一个晶振电路。晶振好比单片机的心脏,如果没有心脏起跳,单片机也将无法在正常工作,单片机收到一个脉冲,就执行一次或多次指令。而单片机时钟的来源就是晶振。单片机的时钟是让单片机各个部分能够“按规律”有序运行的核心,时钟的频率决定了单片机运行的速度。所以了解时钟作用在单片机上的原理是明白很多配置语句的关键所在。时钟硬件来源在第二章节讲如何画主控板的最原创 2022-01-30 14:16:23 · 2641 阅读 · 0 评论 -
搭建机器人电控系统——MCU基石——STM32 GPIO原理
搭建机器人电控系统——MCU基石STM32系统架构STM32时钟配置GPIO是什么中断NVIC与EXTIGPIO是什么?IO口是单片机除了特殊引脚之外的输出输入引脚,GPIO也是各大外设功能中的一种。之所以把GPIO单独拿出来讲解,是因为GPIO是IO口最基本的功能,在你初始化任何外设的功能的时候,除了都要使能时钟以外,你基本都要先初始化GPIO的结构体:所以我们说,外设正常工作的激励来源是时钟信号,而外设的硬件环境是GPIO。GPIO(General-purpose input/out原创 2022-01-30 14:32:05 · 1420 阅读 · 0 评论 -
搭建机器人电控系统——MCU基石——STM32中断NVIC和EXTI
搭建机器人电控系统——MCU基石STM32系统架构STM32时钟配置GPIO是什么中断NVIC与EXTI中断NVIC和EXTI单片机运行过程中,很多时候会遇到多条请求互相冲突的情况,这些请求有来自内部的,也有来自外部的。我们把来自内部的用NVIC控制器来进行解决,来自外部的用EXTI控制器来解决。内部冲突解决NVIC(Nested Vectored Interrupt Controller)——misc.c文件misc.c是介绍NVIC的文件,备注说明里对这个文件主要包括了两个函数:原创 2022-01-30 14:40:11 · 583 阅读 · 0 评论 -
搭建机器人电控系统——通信协议——串口通信USART/UART、RS232、RS485及其实例
通信协议计算机与外界的信息交互称为通信。基本的通信方式分为两种:串行通信:所传送的数据各位按顺序一位一位地发送或接受,占用资源少,速度相对较慢。并行通信:所传送的数据的各个位是同时发送或接受。速度快,占用引脚资源多。通信的速率:比特率(bit rate):每秒能传输的二进制位数。波特率(Baud rate):每秒能传输的码元数(不一定是二进制)。对于数字信号而言,波特率=比特率。串行通信的种类:同步通信:带时钟同步信号传输,通讯双方是受同一个时钟源控制,如I2C、SPI、USART。异原创 2022-02-06 15:02:15 · 4049 阅读 · 0 评论 -
搭建机器人电控系统——通信协议——IIC通信原理及其实例(库函数+模拟IO口)
通信协议计算机与外界的信息交互称为通信。基本的通信方式分为两种:串行通信:所传送的数据各位按顺序一位一位地发送或接受,占用资源少,速度相对较慢。并行通信:所传送的数据的各个位是同时发送或接受。速度快,占用引脚资源多。通信的速率:比特率(bit rate):每秒能传输的二进制位数。波特率(Baud rate):每秒能传输的码元数(不一定是二进制)。对于数字信号而言,波特率=比特率。串行通信的种类:同步通信:带时钟同步信号传输,通讯双方是受同一个时钟源控制,如I2C、SPI、USART。异原创 2022-02-06 15:17:28 · 1810 阅读 · 0 评论 -
搭建机器人电控系统——通信协议——SPI通信及其实例
通信协议计算机与外界的信息交互称为通信。基本的通信方式分为两种:串行通信:所传送的数据各位按顺序一位一位地发送或接受,占用资源少,速度相对较慢。并行通信:所传送的数据的各个位是同时发送或接受。速度快,占用引脚资源多。通信的速率:比特率(bit rate):每秒能传输的二进制位数。波特率(Baud rate):每秒能传输的码元数(不一定是二进制)。对于数字信号而言,波特率=比特率。串行通信的种类:同步通信:带时钟同步信号传输,通讯双方是受同一个时钟源控制,如I2C、SPI、USART。异原创 2022-02-06 15:35:46 · 4179 阅读 · 1 评论 -
搭建机器人电控系统——通信协议——CAN通信及其实例
通信协议计算机与外界的信息交互称为通信。基本的通信方式分为两种:串行通信:所传送的数据各位按顺序一位一位地发送或接受,占用资源少,速度相对较慢。并行通信:所传送的数据的各个位是同时发送或接受。速度快,占用引脚资源多。通信的速率:比特率(bit rate):每秒能传输的二进制位数。波特率(Baud rate):每秒能传输的码元数(不一定是二进制)。对于数字信号而言,波特率=比特率。串行通信的种类:同步通信:带时钟同步信号传输,通讯双方是受同一个时钟源控制,如I2C、SPI、USART。异原创 2022-02-06 15:58:06 · 9937 阅读 · 0 评论 -
搭建机器人电控系统——PWM原理——舵机和TMOTOR电机
什么是PWM?到目前为止,我们在谈论单片机输入输出的时候,都是以数字信号传输,也就是0(低电平)和1(高电平)状态,如果你用电压表去测量单片机IO口的引脚电平,那么0就为0V,1就为3.3V/5V。PWM所要做的,就是实现[0,1]之间的电平状态,也就是说PWM输出的时候,电压就可以是0到3.3V/5V之间的任意一个值。PWM(Pulse Width Modulation),全称是脉冲宽度调制技术,简称脉宽调制,是利用MCU的数字输出来对模拟电路进行控制的一种技术。一个最简单的PWM输出例子:Wh原创 2022-02-07 13:10:26 · 2775 阅读 · 0 评论 -
搭建机器人电控系统——器件选型——如何选择传感器?
器件选型传感器传感器是电控中非常重要的元件,对于不同的传感器,我们也需要对其进行选型,在学校的时候,也许我们不用考虑到太多的成本问题。对于我们来说,选择一个传感器应该由以下几个方面来决定:传感器的驱动电压(驱动电压是否符合你需要的要求)传感器与MCU的通信接口(通常是串口、IIC、SPI、CAN)不同的通信接口不但决定你应该写何种通信协议,同时你应该注意到不同通信接口之间速率的区别,速率与这个传感器和MCU之间的距离、是否有遮挡、电磁干扰之类的问题。传感器测量物理量的量程(量程的选择要符合工作原创 2022-02-07 16:34:39 · 2434 阅读 · 0 评论 -
搭建机器人电控系统——器件选型——如何选择电机?
器件选型电机选型电机是机器人电控系统控制机构动力的直接来源,一个好的电机可以解决很多机械的问题,也能解决很多控制的问题。电机的选型不仅和电控有关,也和机械环境密切相关。电机的参数表和负载特性曲线是我们必须关注和看懂的东西。电机的额定电压不同电机对电压的要求不同,有些电机是使用通信协议来控制的;有些电机是PWM控制的电机。想要驱动一个电机都要先看你的电压条件有没有达到。电机的最大转速(单位:r/min)电机的最大转速能不能达到你需要的要求,在达不到的情况下,是改变机械结构方便还是更换一个更原创 2022-02-07 16:37:34 · 4093 阅读 · 1 评论 -
搭建机器人电控系统——PID算法——什么是PID?
控制系统介绍每一个运动模型都能够简化为一个控制系统,控制系统是我们进行理论和控制算法分析的依据。所以在讲PID算法之前,应当先弄懂控制系统的架构,从而才能知道PID算法在控制系统中的角色。一个控制系统通常由控制器、执行器、控制对象、传感器以及输入输出量构成。以机器人底盘控制系统为例,我们可以把期望速度Exspeed作为输入,PID算法作为控制器,电机作为执行器,轮子作为控制对象,实际速度Outspeed作为实际输出。开环控制系统作为一个开环控制系统来说,单通路的结构使得控制系统简单,搭建成本低,但原创 2022-02-09 20:51:21 · 2070 阅读 · 0 评论 -
搭建机器人电控系统——PID算法——位置式、增量式、模糊式PID
PID算法文章目录PID算法位置式PID和增量式PID位置式PID:增量式PID:模糊控制PID①模糊化:②模糊推演:③清晰化模糊PID的步骤:ΔKp、ΔKi、ΔKd与输入量的模糊规则表(文献查找,也可以自己填):模糊PID代码模糊增量式PID位置式PID和增量式PID位置式PID:e(n):期望值与实际值的差输出量:当前的输出值u(n)含义:控制的是系统当前位置的实际值与你期望值之间的偏差。特点在于积分项是对所有过去状态误差的累加,所以系统容易受积分I项的影响,需要采用抗积分饱和。适用:适原创 2022-02-09 21:18:42 · 3911 阅读 · 2 评论 -
搭建机器人电控系统——PID算法——大林算法和史密斯算法与PID算法的区别
PID算法PID算法介绍,不同系数仿真,优缺点位置式、增量式、模糊式PID大林算法改进对象:带有纯滞后环节的一阶惯性系统。如上图是一个常见的开环传递函数,当它闭环运行时,特征方程受纯延迟环节的影响,进而影响系统稳定性。目的:设计一个串联控制器来补偿纯滞后作用。大林设想最终的闭环传递函数为:其中调整T2与τ的关系,使分子分母比值为1,从而消除纯滞后的影响。以此来设计控制器C(s):可以解出来换到离散域中:大林算法的优点在于对于含有纯滞后环节的系统有改善作用,相比于PID调节原创 2022-02-09 21:25:57 · 6865 阅读 · 0 评论 -
搭建机器人电控系统——常用电路——输入保护,过压保护,过流保护,光耦隔离抗干扰,输入补偿,稳压
文章目录一些常用电路的总结输入保护电路①PMOS+电容防反接和缓冲②TVS瞬态电压抑制二极管③稳压(齐纳)二极管过压保护电路①稳压二极管和三极管配合②双稳压二极管的反向串联过流保护电路光耦隔离抗干扰电路输入补偿电路电源输入的环路补偿电路稳压电路①二极管稳压电路②可调直流稳压电路一些常用电路的总结输入保护电路①PMOS+电容防反接和缓冲电路分析:当5V没反接时,5V通过PMOS管的体二极管(DS间还没导通)到达S极,S极电压为5-0.7=4.3V,此时Ugs=-4.3V,PMOS管导通(DS间导通原创 2022-02-10 12:29:43 · 9388 阅读 · 2 评论 -
搭建机器人电控系统——滤波算法——数据处理的十种滤波算法
文章目录滤波算法限幅滤波限幅平均滤波中位值滤波中位值平均滤波算术平均滤波递推平均滤波加权平均递推滤波一阶滞后滤波(低通滤波)限幅消抖滤波卡尔曼滤波滤波算法我们需要精确的数据,但是数据回传并不完全准确时,比如十个数据里面有一个不正常时,我们就需要做滤波处理。不同滤波算法要结合实际情况来考虑,甚至有些时候需要自己写一个完全不同的以适应你的数据特征。以下介绍十种滤波的方法。限幅滤波方法:确定数据偏差的最大值MAX;求每次采样数据与上一次数据之差,若<=MAX则有效,若无效,则用上一次数据代替此次数原创 2022-02-10 12:14:52 · 1852 阅读 · 0 评论