1.模块准备
1.1 硬件
(1)烧录好的树莓派4B开发板
(2)数据线一条(为树莓派供电)
(3)SG90 9g舵机(带支架)1个
1.2 舵机相关参数与控制原理
①接线
- 棕色线(GND,地线)
- 红色线(VCC,电源线,接5V)
- 黄色线(信号线,接GPIO信号端口,脉冲输入)
②其它参考参数
- 扭 矩:1.5kg/cm
- 扭矩的物理意义
- 使物体发生转动的一种特殊的力矩
- 力矩等于力与力臂的乘积,国际单位:牛·米(N·m)
- 1N=1kg×1m/s2
- 工 作 电 压:4.2-6V
- 温 度 范 围:0℃--55℃
- 运 行 速 度:0.3秒/60度
③基本控制原理
- 脉冲(信号)
- • 脉冲通常是指电子(计算机)技术中的一种像脉搏似的短暂起伏的电冲击(电压或电流)。主要特性有波形、幅度、宽度和重复频率。
- 瞬间突然变化,作用时间极短的电压或电流称为脉冲信号,计算机内的信号就是脉冲信号,又叫数字信号。脉冲信号可以是周期性重复的,也可以是非周期性的或单次的,它是一种离散信号,形状多种多样,与普通模拟信号(如正弦波)相比,波形之间在时间轴不连续(如图)。
脉冲信号图(来源:百度百科)
- 脉冲信号控制原理
- 舵机是一种位置(角度)伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。
- 舵机的具体工作原理在这里不细究(本人也不熟悉),可以大概了解一下其流程:脉冲控制信号进入信号调制芯片--->舵机获得直流偏置电压(其内部的一个基准电路产生周期为 20ms,宽度为 1.5ms 的基准信号)--->将获得的直流偏置电压与电位器的电压比较--->获得电压差输出--->电压差的正负输出到电机驱动芯片控制电机的正反转(电压差为 0时电机停止转动)。
- (重点了解,后续的编码控制有关)舵机的控制一般需要一个 20ms 左右的时基脉冲,该脉冲的高电平部分一般为0.5ms~2.5ms 范围内的角度控制脉冲部分。若是 180 度角度舵机,其对应的控制关系如下:
- 0.5ms--------------0 度
- 1.0ms------------45 度
- 1.5ms------------90 度
- 2.0ms-----------135 度
- 2.5ms-----------180 度
- 本实验使用树莓派输出脉宽调制(PWM)信号控制舵机的转动,PWM是指通过微处理器的数字输出以实现对模拟电路的控制,是一种对模拟信号电平进行数字编码的方法。PWM的一个重要参数是占空比(脉冲高电平部分的占比)
1.3 模块连接
注:本实验编程将使用BOARD编码模式,此时GPIO4对应的引脚号为16。
2. 实验源码和实验效果
2.1 单个舵机控制测试源码
2.2 实验效果
3. 实验小结
本实验所用舵机转动角度不止180度,实际上,要精确的控制舵机并没有那么容易,许多舵机的位置等级有 1024 个,其控制的角度精度可以约 0.2度,从时间上看其实要求的脉宽控制精度为 2000/1024us 约 2us。
舵机虽小,但多个组合、组装在在一起可以有许多应用,本实验原想组合多个舵机组装成一个小型机械臂,以抓取轻型物体,但还未实现,后续有时间会去尝试一下。(想法如下图)
(已有实物)
(一种机械臂,来源:百度图片)