一、背景需求

        1.应需求需要制作一台自动左右摇摆的机械手臂,模拟人工左右挥手

        2.于是想到机械臂,利用舵机进行控制

二、购买板子

        1.与其他同学处了解到ESP32板子,于是在合宙商城购买,经典款ESP32C3

puthon esp32 舵机 esp32控制舵机代码_python

puthon esp32 舵机 esp32控制舵机代码_python_02

puthon esp32 舵机 esp32控制舵机代码_舵机_03

三、下载Thonny与安装+下载ESP32C3驱动

        1.https://thonny.org/ 粘贴复制另打开网页

        2.选择选择了Windows系统

puthon esp32 舵机 esp32控制舵机代码_舵机_04

安装完成后,桌面显示

puthon esp32 舵机 esp32控制舵机代码_嵌入式硬件_05

        3.驱动链接

        esp32C3板子需要下载【CH343SER.EXE】驱动,CH343SER.EXE - 南京沁恒微电子股份有限公司

puthon esp32 舵机 esp32控制舵机代码_舵机_06

        4.双击打开

puthon esp32 舵机 esp32控制舵机代码_嵌入式硬件_07

        5、安装成功后点击菜单栏,查找【设备管理器】-端口

puthon esp32 舵机 esp32控制舵机代码_舵机_08

显示CH434说明安装成功(COM4编号可能每个人不一样)

注意:需要链接板子才可以查看,需要链接可以支持传输数据的数据线

四、下载Micropython固件

1.micropython官方下载地址: MicroPython - Python for microcontrollers

puthon esp32 舵机 esp32控制舵机代码_舵机_09

五、格式设置并烧录

1、点击-【视图】-文件,可以加载左边文件,还是很方便的

puthon esp32 舵机 esp32控制舵机代码_嵌入式硬件_10

2、选择代码保存位置

puthon esp32 舵机 esp32控制舵机代码_引脚_11

3、点击【工具】-【选项...】,选择解释器

puthon esp32 舵机 esp32控制舵机代码_嵌入式硬件_12

4、选择解释器,选择MicroPython(ESP32),端口选择COM4,点击安装与更新

puthon esp32 舵机 esp32控制舵机代码_puthon esp32 舵机_13

5、由于我已安装,下面3个选择不能再选,大家根据选项选择

puthon esp32 舵机 esp32控制舵机代码_嵌入式硬件_14

当安装完成后,左下角显示done,重新打开thonny,出现以下成功说明烧录成功

puthon esp32 舵机 esp32控制舵机代码_引脚_15

六、编写代码-点灯

1、烧录成功后,创建一个文件,编写led灯代码,如下:

import machine
 import time
 from machine import Pin, PWM
 from time import sleep
 pin12 = machine.Pin(12, machine.Pin.OUT)
 pin13 = machine.Pin(13, machine.Pin.OUT)
 while True:
     pin12.value(1)
     pin13.value(1)
     time.sleep_ms(500)     
     pin12.value(0)
     pin13.value(0)
     time.sleep_ms(500)

2.点击运行

puthon esp32 舵机 esp32控制舵机代码_舵机_16

puthon esp32 舵机 esp32控制舵机代码_舵机_17

3.保存代码,重命名为main.py,这样就把代码保存到开发板里面了,在其他地方上电也可以使用

七、链接舵机-MG90S

1、网购舵机,大小根据自己需求购买

2、链接引脚,黑线链接GND,红线5V电源,黄线连接自己设置的GPOI管脚

3、编写代码

from machine import Pin, PWM
 from time import sleep#初始化一个Pin对象来控制舵机电机的引脚
 pin2 = Pin(2, Pin.OUT)
 # 初始化一个PWM对象来控制舵机电机
 servo_pwm = PWM(pin2, freq=50, duty=0)
 # 将舵机转到指定的角度的函数,设置频率为50Hz,初始占空比为0。
 def rotate(servo_pwm, degree):
     # 根据角度计算占空比值
     val = int(degree * 0.54 + 25)
     # 设置PWM信号的占空比
     servo_pwm.duty(val)
 while True:
     # 将舵机转到60度的角度
     rotate(servo_pwm, 60)
     # 休眠0.7秒
     time.sleep_ms(700)           # 将舵机转到140度的角度
     rotate(servo_pwm, 140)
     # 休眠0.7秒
     time.sleep_ms(700)

八、总结

好啦,这样就可以控制脱机自动转动啦,后续可以手动安装一个物理开关,方便控制

puthon esp32 舵机 esp32控制舵机代码_引脚_18

2.后续TODO

使用蓝牙模块,远程操控