ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

树莓派舵机与步进电机双雄实战:Sweep扫描与步进旋转完整教程

树莓派舵机与步进电机双雄实战:Sweep扫描与步进旋转完整教程 树莓派舵机与步进电机双雄实战Sweep扫描与步进旋转完整教程【免费下载链接】Freenove_Ultimate_Starter_Kit_for_Raspberry_PiApply to FNK0020项目地址: https://gitcode.com/gh_mirrors/fr/Freenove_Ultimate_Starter_Kit_for_Raspberry_PiFreenove Ultimate Starter Kit for Raspberry Pi终极入门套件带你用最简单的代码玩转两大运动控制器件舵机Servo与步进电机Stepping Motor。本教程覆盖 C 与 Python 双语言实现手把手教你完成舵机 0°~180° 来回扫描Sweep和步进电机正反转连续旋转是新手学习树莓派电机控制、运动控制入门的完整指南。套件中有哪些运动控制器件终极入门套件开箱即含本次实验所需的全部硬件器件用途数量Servo舵机0°~180° 角度定位1 个Stepping Motor步进电机多圈连续旋转1 个Stepping Motor DriverULN2003 步进电机驱动板驱动步进电机四相线圈1 块一、Sweep 舵机扫描如何驱动舵机来回摆动舵机扫动原理脉宽决定角度舵机靠PWM 脉宽控制角度脉冲宽度约 0.5ms 对应 0°约 2.5ms 对应 180°。代码中只需按角度换算出脉宽舵机就会自动转到指定位置——这正是 Sweep 扫描效果的来源。快速上手Python 版舵机 SweepPython 版利用 gpiozero 的AngularServo类直接给angle赋值即可控制角度从 0° 递增到 180°、再递减回 0°即完成一次扫描循环。源码位于 Sweep.pyfrom gpiozero import AngularServo servo AngularServo(18, initial_angle0, min_pulse_width0.0005, max_pulse_width0.0025) for angle in range(0, 181, 1): # 0° → 180° servo.angle angle time.sleep(0.001) for angle in range(180, -1, -1): # 180° → 0° servo.angle angle time.sleep(0.001)C 语言版softPWM 实现扫动C 版使用 wiringPi 的softPwm手动构造脉宽servoWrite()函数把 0~180 的角度映射为 5~25ms 的脉宽主循环逐步增大/减小脉宽形成来回扫描。完整实现见 Sweep.c。小贴士舵机信号线接 GPIO18Python BCM 编号或 GPIO1C wiringPi 编号电源建议用 5V 独立供电避免与树莓派抢电导致重启。Java 玩家别错过Pi4j 版同样提供了 Sweep 实验基于自实现的PWMController控制脉宽代码位于 Sweep.java。二、步进电机旋转如何让它正反转连续转动步进电机工作原理四相线圈轮流通电套件中的步进电机是四相 28BYJ-48配 ULN2003 驱动板。控制核心思想极简按固定顺序轮流给 4 根线圈通电——通电顺序0x01 → 0x02 → 0x04 → 0x08循环电机正转顺序反过来0x08 → 0x04 → 0x02 → 0x01循环电机反转每走 4 步为一个周期源码注释指出该电机一圈共 2048 步512 个周期。Python 版两种写法任选其一写法一手动控制四相把 4 个 GPIO 定义为OutputDevice按正/反转序表逐位写入电平。注意源码特别强调每步延时不能小于 3ms否则会超出电机速度上限。见 SteppingMotor.py。写法二使用 gpiostepper 库推荐只需Stepper(18, 23, 24, 25, 32)一行定义set_speed(600)设定转速step()传正/负步数即可正反转一行代码完成整圈旋转。见 SteppingMotor2.py驱动库在 gpiostepper.py。C 语言版查表法驱动C 版用两个常量数组CWStep与CCWStep保存正反两个方向的通电序表moveOnePeriod()循环 4 步完成一个周期moveSteps()叠加 512 个周期实现整圈旋转主循环中交替调用即可看到电机往返旋转。源码见 SteppingMotor.c。接线要点ULN2003 驱动板怎么接步进电机 6 根线插入 ULN2003 驱动板排针按颜色对应 1~6 号驱动板 IN1~IN4 四路输出接树莓派 GPIO 18、23、24、25驱动板电源接 5V套件 9V 电池盒经驱动板稳压也可直接取 5V套件中还附 L293D 直流电机驱动芯片及其数据手册 L293D.pdf学完步进电机后可继续挑战直流电机 Motor.py。舵机 vs 步进电机如何选择对比项舵机Servo步进电机Stepping Motor运动方式0°~180° 定点位置控制连续多圈旋转控制信号PWM 脉宽四相脉冲序精度特点自动回位保持开环定位、不失步精度高典型场景云台、机械臂关节打印机进纸、3D 打印机、转盘套件实验Sweep.cSteppingMotor.c动手清单从 0 到跑通克隆代码仓库git clone https://gitcode.com/gh_mirrors/fr/Freenove_Ultimate_Starter_Kit_for_Raspberry_Pi树莓派烧录系统可参考 Installing Raspberry Pi OS.pdf按上文接线先跑舵机 Sweep再跑步进电机对照纸质教程验证现象Tutorial_C_Code.pdf 与 Tutorial_Python_GPIOZero.pdf修改延时参数如步进电机ms值、舵机扫描步长观察速度变化 ⚙️总结通过本教程你已经掌握了树莓派两大运动控制器件的完整用法舵机用脉宽定角度、步进电机用脉冲序转圈。Freenove Ultimate Starter Kit 的 C / Python / Java 三套代码互为镜像任选一种语言即可上手建议按 Sweep → 步进电机的顺序递进练习再结合套件中的按键、光敏等传感器就能做出属于自己的小型运动控制作品。【免费下载链接】Freenove_Ultimate_Starter_Kit_for_Raspberry_PiApply to FNK0020项目地址: https://gitcode.com/gh_mirrors/fr/Freenove_Ultimate_Starter_Kit_for_Raspberry_Pi创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表