上一节课我们学了蓝牙BLE通信实现了手机和ESP32的数据互传。今天我们把蓝牙和舵机结合起来——用手机APP远程控制舵机转动不需要WiFi不需要插线手机打开蓝牙点一下按钮舵机就转到指定角度。智能小车转向、机器人关节、摄像头云台……这些应用都可以用这个方案实现。今天这节课我们就用ESP32 蓝牙BLE 舵机做一个手机遥控的舵机控制系统第一步找到课程看看成品效果打开逗脑IDE点击顶部“文档”在“课程” → “ESP32 MicroPython”分类下找到蓝牙控制舵机这节课。打开课件你会看到本节课的最终效果手机通过蓝牙连接ESP32发送指令后舵机精准地转到0°、90°、180°或者可以微调角度。第二步手机APP准备本节课使用安卓手机上的蓝牙调试APP如“蓝牙工坊”其他支持BLE的APP也可以。APP需要具备以下功能搜索并连接BLE设备向特征值写入数据创建自定义快捷按键方便发送预设指令第三步动手写代码——ESP32端frommachineimportPin,Timer,PWMfromtimeimportsleep_msimportbluetooth BLE_MSGclassESP32_BLE():def__init__(self,name):self.ledPin(2,Pin.OUT)self.timer1Timer(0)self.namename self.blebluetooth.BLE()self.ble.active(True)self.ble.config(gap_namename)self.disconnected()self.ble.irq(self.ble_irq)self.register()self.advertiser()defconnected(self):self.led.value(1)self.timer1.deinit()defdisconnected(self):self.timer1.init(period100,modeTimer.PERIODIC,callbacklambdat:self.led.value(notself.led.value()))defble_irq(self,event,data):globalBLE_MSGifevent1:# 手机连接了此设备self.connected()elifevent2:# 手机断开了此设备self.advertiser()self.disconnected()elifevent3:# 手机发送了数据bufferself.ble.gatts_read(self.rx)BLE_MSGbuffer.decode(UTF-8).strip()defregister(self):service_uuid6E400001-B5A3-F393-E0A9-E50E24DCCA9Ereader_uuid6E400002-B5A3-F393-E0A9-E50E24DCCA9Esender_uuid6E400003-B5A3-F393-E0A9-E50E24DCCA9Eservices((bluetooth.UUID(service_uuid),((bluetooth.UUID(sender_uuid),bluetooth.FLAG_NOTIFY),(bluetooth.UUID(reader_uuid),bluetooth.FLAG_WRITE),)),)((self.tx,self.rx,),)self.ble.gatts_register_services(services)defsend(self,data):self.ble.gatts_notify(0,self.tx,data\n)defadvertiser(self):namebytes(self.name,UTF-8)adv_databytearray(\x02\x01\x02)bytearray((len(name)1,0x09))name self.ble.gap_advertise(100,adv_data)print(adv_data)# 按键中断defbuttons_irq(pin):led.value(notled.value())print(LED is ON.ifled.value()elseLED is OFF)ble.send(LED is ON.ifled.value()elseLED is OFF)if__name____main__:bleESP32_BLE(ESP32BLE)butPin(0,Pin.IN)but.irq(triggerPin.IRQ_FALLING,handlerbuttons_irq)ledPin(2,Pin.OUT)# 舵机初始化GPIO15p15PWM(Pin(15))p15.freq(50)duty_num1638p15.duty_u16(1638)# 初始0度# 0度 p15.duty_u16(1638)# 90度 p15.duty_u16(4915)# 180度 p15.duty_u16(8192)whileTrue:ifBLE_MSGread_LED:print(BLE_MSG)BLE_MSGprint(LED is ON.ifled.value()elseLED is OFF)ble.send(LED is ON.ifled.value()elseLED is OFF)elifBLE_MSG:print(接收到的信息%s%BLE_MSG)ifBLE_MSG!B11::# 按下app上数字1duty_num100ifduty_num8192:duty_num8192p15.duty_u16(duty_num)elifBLE_MSG!B219:# 按下app上数字2duty_num-100ifduty_num1638:duty_num1638p15.duty_u16(duty_num)elifBLE_MSG!B516:# 按下app上up键p15.duty_u16(4915)# 转到90度duty_num4915elifBLE_MSG!B714:# 按下app上left键p15.duty_u16(8192)# 转到180度duty_num8192elifBLE_MSG!B813:# 按下app上right键p15.duty_u16(1638)# 转到0度duty_num1638BLE_MSGsleep_ms(100)代码核心逻辑指令对应操作效果!B11:按下APP上数字1角度100微调增大!B219按下APP上数字2角度-100微调减小!B516按下APP上up键转到90°!B714按下APP上left键转到180°!B813按下APP上right键转到0° 关键点每个按键对应一个特定的指令字符串如!B516ESP32收到后执行对应的角度控制。第四步保存运行手机连接蓝牙保存代码到开发板命名 ble_servo.py点击运行按钮ESP32开始广播BLE信号。步骤1连接蓝牙打开手机APP搜索到名为“ESP32BLE”的设备点击连接。步骤2连接成功连接成功后APP显示日志 正在连接... 连接成功等待发现服务 连接成功正在发现服务... 连接成功并发现服务 [6e400003] 通知已开启详细的蓝牙连接步骤可以看上一篇文章第五步发送指令控制舵机转动步骤3输入操作指令点击写入在APP底部选择写入目标6E400002输入指令如!B516点击“写入”。ESP32收到后舵机立刻转动到90°终端打印接收到的信息。第六步创建快捷按键一键控制每次手动输入指令太麻烦APP支持创建快捷按键把常用指令做成按钮点一下就能发送。步骤4创建按键点击按键控制舵机在APP中创建三个按键上、左、右分别对应按键名称编码内容对应角度上!B51690°左!B714180°右!B8130°创建完成后APP上会出现“上”、“左”、“右”三个按键。点击“上”→ 舵机转到90°点击“左”→ 舵机转到180°点击“右”→ 舵机转到0°连续点击日志11:04:36.828 [6e400002] !B516 11:04:38.266 [6e400002] !B714 11:04:39.661 [6e400002] !B813指令与角度对照表APP操作发送指令ESP32执行舵机角度数字1!B11:duty_num 100微调增大数字2!B219duty_num - 100微调减小上!B516duty_u16(4915)90°左!B714duty_u16(8192)180°右!B813duty_u16(1638)0°蓝牙控制舵机能做什么应用场景用途遥控小车手机控制前轮转向摄像头云台手机控制摄像头上下左右转动机器人关节手机控制机械臂角度智能窗帘手机控制窗帘开合航模控制手机控制机翼舵面全程回顾步骤操作效果找到课程文档→课程→ESP32MicroPython→蓝牙控制舵机了解项目原理打开代码点击“打开”按钮代码进入编辑器保存运行CtrlS → 选择ESP32 → 运行ESP32开始广播连接蓝牙手机APP搜索“ESP32BLE”并连接连接成功发送指令向6E400002写入“!B516”舵机转到90°创建按键添加上/左/右三个快捷按键一键控制点击按键点击“左”按键舵机转到180°
企业数字化 ERP 产品动态
相关推荐
在 Cursor 中运行和调试 Java 代码:TaoToken 统一 Key 配置与插件调试骨架 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 15:23:37
找网站商城开发公司避坑指南:2026最新备案全流程拆解 找网站商城开发公司避坑指南:2026最新备案全流程拆解 备案流程一头雾水?这是绝大多数河南创业者在找网站商城开发公司前最头疼的难题。很多人以为交了钱就能上线,结果卡在ICP备案环节,耽误了几个月黄金期。2026最新的互联网监管环境下,备案不… · 2026/9/27 15:23:31
智能模型路由(AI Router)实战:用虚拟模型统一调度多模型 API,告别手动切换 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 18:36:36
mac 笔记本上 UltraEdit 与终端工具配置 TaoToken 的完整方法 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 18:36:30
OpenClaw 对话文本生成幻觉抑制:TaoToken 统一 API 通道下的配置与验证 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 18:36:24
CodeGraph为什么突然这么火?用TaoToken统一Key跑通代码图谱构建全流程 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 18:36:24
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现 简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01
汕头网站建设制作厂家避坑指南:5大注意事项救急 汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习 简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现 简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01
汕头网站建设制作厂家避坑指南:5大注意事项救急 汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习 简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01