如何用Python控制舵机?python舵机控制代码

在 Python 中控制舵机(Servo Motor)通常涉及使用微控制器(如 Raspberry Pi、Arduino 或 ESP32)或者通过 GPIO 库直接控制,以下是几种常见的方法:


使用 Raspberry Pi 控制舵机

Raspberry Pi 可以通过 GPIO 引脚发送 PWM 信号来控制舵机。

python与arduino控制舵机角度
加载中
python与arduino控制舵机角度

安装库:

pip install RPi.GPIO

示例代码:

import RPi.GPIO as GPIO
import time
# 设置 GPIO 模式
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
# 定义舵机连接的 GPIO 引脚
SERVO_PIN = 18
# 初始化 GPIO
GPIO.setup(SERVO_PIN, GPIO.OUT)
# 创建 PWM 对象
pwm = GPIO.PWM(SERVO_PIN, 50)  # 50 Hz 是舵机的标准频率
# 启动 PWM
pwm.start(0)
try:
    while True:
        # 设置舵机角度 (0-180 度)
        for angle in range(0, 181, 10):
            duty_cycle = (angle / 18.0) + 2.5  # 计算占空比
            pwm.ChangeDutyCycle(duty_cycle)
            time.sleep(1)
        for angle in range(180, -1, -10):
            duty_cycle = (angle / 18.0) + 2.5
            pwm.ChangeDutyCycle(duty_cycle)
            time.sleep(1)
except KeyboardInterrupt:
    pass
finally:
    pwm.stop()
    GPIO.cleanup()

如何用Python控制舵机?python舵机控制代码


使用 Arduino 控制舵机

如果你使用 Arduino,可以通过串口与 Python 通信,让 Python 发送指令来控制舵机。

Arduino 代码:

#include <Servo.h>
Servo myServo;
void setup() {
    myServo.attach(9);  // 舵机连接到数字引脚 9
    Serial.begin(9600);
}
void loop() {
    if (Serial.available() > 0) {
        int angle = Serial.parseInt();  // 读取串口数据
        if (angle >= 0 && angle <= 180) {
            myServo.write(angle);  // 设置舵机角度
        }
    }
}

Python 代码:

import serial
import time
# 设置串口

如何用Python控制舵机?python舵机控制代码

ser = serial.Serial('/dev/ttyUSB0', 9600, timeout=1) # 根据实际端口修改 try: while True: angle = int(input("请输入舵机角度 (0-180): ")) if 0 <= angle <= 180: ser.write(str(angle).encode()) # 发送角度值 time.sleep(1) else: print("角度必须在 0-180 之间!") except KeyboardInterrupt: pass finally: ser.close()

使用 ESP32 控制舵机

ESP32 也可以通过 PWM 控制舵机,并且可以通过 Wi-Fi 或蓝牙与 Python 通信。

ESP32 代码:

#include <Servo.h>
Servo myServo;
void setup() {
    myServo.attach(18);  // 舵机连接到 GPIO 18
    Serial.begin(115200);
}
void loop() {
    if (Serial.available() > 0) {
        int angle = Serial.parseInt();
        if (angle >= 0 && angle <= 180) {
            myServo.write(angle);
        }
    }
}

如何用Python控制舵机?python舵机控制代码

Python 代码:

import serial
import time
# 设置串口
ser = serial.Serial('/dev/ttyUSB0', 115200, timeout=1)  # 根据实际端口修改
try:
    while True:
        angle = int(input("请输入舵机角度 (0-180): "))
        if 0 <= angle <= 180:
            ser.write(str(angle).encode())  # 发送角度值
            time.sleep(1)
        else:
            print("角度必须在 0-180 之间!")
except KeyboardInterrupt:
    pass
finally:
    ser.close()

注意事项

  • 电源问题:舵机需要较大的电流,建议使用外部电源供电,而不是直接从微控制器供电。
  • PWM 频率:舵机的标准 PWM 频率是 50 Hz,占空比范围通常是 2.5% 到 12.5%。
  • 角度范围:大多数舵机的角度范围是 0-180 度,但某些舵机可能支持更大范围。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/article/484606.html

赞 (0)
同样预算GEO和投流哪个效果好?2026年百度GEO优化技巧
上一篇 2026年7月12日 02:57
Linux进程死掉怎么办?Linux进程突然崩溃原因
下一篇 2026年7月12日 02:58

相关推荐

  • 服务器常见内存品牌有哪些?服务器内存品牌排行榜推荐

    在企业级数据中心与关键业务场景中,服务器内存的稳定性直接决定了系统的可靠性与数据完整性,核心结论是:选择服务器内存品牌,首要考量并非单纯的性能参数,而是原厂颗粒的纯正性、严格的兼容性测试以及完善的售后服务体系, 市场上主流的品牌梯队分明,三星、SK海力士和美光作为原厂颗粒巨头占据了统治地位,而金士顿、英睿达等品……

    2026年3月30日
    13900
  • 服务器局域网管理怎么做,局域网服务器搭建教程

    高效的服务器局域网管理核心在于构建一套集“物理安全、逻辑隔离、实时监控、应急响应”于一体的闭环运维体系,而非单纯依赖单一设备的性能堆砌,企业局域网的稳定性直接决定了业务连续性,管理的本质是在有限的资源下实现风险最小化与效率最大化,通过标准化的架构设计、严格的权限控制以及智能化的监控手段,可以有效规避网络风暴、数……

    2026年4月8日
    8200
  • 服务器已经装配置好了吗?服务器配置需要注意哪些细节

    服务器交付并不等同于业务就绪,仅凭服务商的“配置完成”通知就直接上线业务,存在极大的安全隐患,真正的服务器配置完成标准,必须经过系统性的环境验证、安全加固与性能测试,确保操作系统、运行环境、网络策略及防护体系均达到生产级要求,核心结论:服务器配置完成的唯一标准是“生产环境可用性”验证通过,很多用户在拿到服务器I……

    2026年4月10日
    8500
  • 服务器木马专杀哪个好用,服务器中了木马怎么办

    服务器安全是数字业务的生命线,面对日益复杂的网络攻击,单纯的杀毒软件往往力不从心,核心结论在于:高效的服务器木马清除必须建立在“发现-隔离-清除-加固”的闭环体系之上,而非简单的文件删除, 只有通过深度系统分析结合专业的安全策略,才能彻底根除威胁并防止复发,这要求运维人员不仅要具备敏锐的异常识别能力,更要掌握底……

    2026年2月17日
    17600
  • 防火墙在航天航空领域的应用,为何如此关键与必要?

    防火墙技术在航天航空领域的应用,是保障飞行安全、数据通信和地面系统稳定的关键支撑,随着航天航空系统数字化、网络化程度不断提升,面对日益复杂的网络威胁,防火墙已从传统边界防护演进为深度集成于航电系统、地面控制网络及卫星通信中的核心安全组件,其作用不仅在于隔离内外网络,更在于实现精准的流量监控、威胁防御与合规管控……

    2026年2月4日
    12400
  • 服务器搭建项目怎么做?服务器搭建详细步骤教程

    服务器搭建项目的成功实施,核心在于严谨的规划、精准的硬件选型、安全的网络配置以及持续的运维监控,一个稳定、高效的服务器环境并非单纯依赖硬件堆砌,而是建立在系统化的架构设计与精细化的流程管理之上,无论是企业级应用部署还是个人开发环境构建,遵循标准化的搭建流程是确保业务连续性的关键, 前期规划与需求分析:奠定项目基……

    2026年3月2日
    13900
  • 服务器为什么每隔一段时间重启,服务器自动重启的原因有哪些?

    服务器每隔重启一次通常是由硬件稳定性缺陷、操作系统内核错误、内存溢出(OOM)或预设的任务调度任务引起的,必须通过分析系统日志、监控资源占用及检查硬件状态来定位根源,服务器频繁自动重启是什么原因及排查逻辑当服务器出现非预期重启时,首要任务是区分这是“定时任务触发的计划内重启”还是“系统故障引发的计划外重启”,硬……

    服务器运维 2026年7月14日
    700
  • 服务器5U有哪些,怎么选择性价比更高呢?

    5U服务器是机架式服务器中扩展性最强的规格之一,常见于企业核心数据库、虚拟化集群和AI训练场景,主流厂商均有覆盖性产品线, 相比2U/4U机型,5U机箱在存储密度、PCIe扩展槽数量和散热冗余上具备明显优势,尤其适合对计算能力和数据容量有双重需求的中大型业务,为什么5U服务器是特定场景的刚需数据中心机柜高度通常……

    2026年8月29日
    800
  • 服务器接2根网线有什么用?双网线作用详解

    服务器连接两根网线是企业级应用中提升网络可靠性最直接、最有效的手段,这种配置的核心价值在于实现链路冗余与负载均衡,确保在单点故障发生时业务不中断,同时最大化利用带宽资源,对于追求高可用性的运维环境而言,单网线连接存在物理层面的单点故障风险,而双网线配置通过链路聚合技术,将两条物理链路捆绑为一条逻辑链路,既提升了……

    2026年3月13日
    13500
  • 个人备案能做资讯网站吗?个人备案可以做什么网站

    个人备案用于资讯网站在百度SEO体系下属于高风险操作,极大概率面临收录困难、权重低下甚至被降权的风险,建议优先选择企业备案或转向合规的自媒体矩阵运营,很多站长在起步阶段,为了节省成本或出于隐私保护的考虑,倾向于使用个人身份证进行ICP备案,并试图搭建一个专注于新闻、行业动态或深度解读的资讯类网站,这种想法在逻辑……

    2026年5月29日
    4400

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注