实验原理与算法分析:(课程内容的2、4)
1、脉宽调制原理及应用
PWM(脉冲宽度调制)是一种将模拟信号转换为数字信号的技术,通过对数字信号的高电平持续时间进行调节,实现信号的数字编码。占空比指的是高电平在整个工作周期中的时间比例,用来控制信号在0和1之间的表现值。例如,当占空比为50%时,高电平和低电平各占周期的一半时间,对外表现为0.5。如果希望LED以30%的亮度工作,只需让高电平时间占整个周期的30%,剩余70%时间为低电平,对外表现为0.3。这样,LED灯就能呈现出30%的亮度。
通常用PWM端口进行使用,广泛应用在电力电子、音频应用、数字通信、LED照明、电机控制等领域。比如后面的运动关节单元控制也用到了。
2、机器人的运动关节单元控制
舵机是一种简化的伺服电机,通过输入PWM信号控制旋转角度,适用于需要连续变化并保持角度的简单控制系统,如航模、遥控玩具和机器狗。舵机通常由保护外壳、控制芯片、小型直流电机、减速器齿轮组和位置检测单元组成。它的运动方式是绕轴摆动,常用于调整方向,类似于水手舵在海上调整船舶方向。当主控发出转动信号时,控制芯片驱动电机旋转,并通过减速器传递动力给输出轴的摆臂。位置检测单元反馈转动结果信号给主控进行反馈调节。舵机集成了电机、传感器和控制器,是一个高度集成、完整的伺服电机系统。
它通过控制端口控制,应用在机器人、摄像机云台、自动门、船模等。
二、脉宽调制原理及应用
#!/usr/bin/python
# coding:utf-8
# led_breathe.py
# 树莓派GPIO控制外部LED灯呼吸,周期为4秒。
import time
import RPi.GPIO as GPIO
# GPIO初始化
LED = 33 # 外部led灯连接的树莓派PWM端口号,可根据需要调整
GND = 34 # 接地的端口
period = 4 # 呼吸周期
GPIO.setmode(GPIO.BOARD) # 初始化GPIO引脚编码方式
GPIO.setup(LED, GPIO.OUT) # 初始化GPIO引脚设置
p = GPIO.PWM(LED, 50) # 引脚=LED 频率=50Hz
p.start(0)
print("PWM控制呼吸灯开始,端口号为%d,周期为%d秒。" % (LED, period))
try: # try和except为固定搭配,用于捕捉执行过程中,用户是否按下ctrl+C终止程序
while 1:
for dc in range(0, 101, 1):
p.ChangeDutyCycle(dc)
time.sleep(period / 200)
for dc in range(100, -1, -1):
树莓派、STM32报告:基于树莓派的xx服务系统
一、需求分析
二、技术现状调研
三、系统功能和技术特点
四、......↓↓↓