概要

阿凯在本文中讲解了如何使用MicroPython-ESP32通过PCA9685模块控制舵机旋转角度。同时也涉及到了MicroPython-ESP32的I2C资源与API讲解。

出品:1Z实验室 (1ZLAB: Make Things Easy)

目录

PCA9685模块简介

pca9685.jpg

问题1:为什么我们要用到舵机驱动模块?

工作电压 首先ESP32的工作电压是3.3v,不能直接驱动额定电压在5v-7.4v的数字舵机,需要外接电源。

工作电流 舵机工作电流在100MA~1.5A,运动越快电流越大,可能会损伤USB口.

IO资源 一般的开发板IO资源有限,例如控制一个6DOF的机械臂,需要占用六个IO口,如果是蛛形机器人的话需要用的也就更多,所以使用舵机驱动板是一种节省IO资源的方式。

问题2:什么是PCA9685?

PCA9685是一款基于IIC总线通信的12位精度16通道PWM波输出的芯片,该芯片最初由NXP推出时主要面向LED开关调光,但就目前国内的形式来看,好像在被Arduino在舵机控制领域使用的更广泛。 stm32+pca9685控制舵机机械臂

问题3:单片机与PCA9685如何通信?

pca9685-cascade.jpg

PCA9685模块与单片机通过I2C总线的方式进行通信。

I2C总线是由Philips公司开发的一种简单、双向二线制同步串行总线。它只需要两根线即可在连接于总线上的器件之间传送信息。

每个PCA9685都可以分配一个地址位,通过I2C接口,一个单片机可以控制最多64个PCA9685舵机控制板。每个舵机控制板上可以搭载16个舵机。

详细的使用说明见奇果派工坊的这篇文章,写的很详细。

MicroPython驱动PCA9685

Adafruit公司开源了MicroPython控制PCA9685模块的工程:

micropython-adafruit-pca9685

这里我们需要用到这个工程里面的两个文件:

其中关于舵机驱动的API看这里:Servo Driver

MicroPython-ESP32驱动PCA9685

上传库文件

接下来讲MicroPython-ESP32与PCA9685。

首先将micropython-adafruit-pca9685中的pca9685.py与servo.py保存到本地,并通过ampy上传到ESP32的文件系统中。

创建一个I2C对象

在ESP32里面可以自定义引脚为I2C接口,支持I2C的管脚编号为:

0, 2, 4, 5, 9, 16, 17, 18, 19, 21, 22, 23, 25, 26, 27

0号管脚还有2号管脚比较特殊,不推荐使用。

这里我们使用25号引脚作为SCL引脚(串行时钟线),26号引脚为SDA(串行数据线)引脚。

连接方式

GND -> ESP32的GND (外接电源与ESP32共地)

SCL -> ESP32 D25

SDA -> ESP32 D26

VCC -> ESP32 3.3V

V+ -> 5v外接电源

代码片段

from machine import I2C,Pin

gpio_scl = 25

gpio_sda = 26

# 初始化I2C

scl_pin = Pin(gpio_scl)

sda_pin = Pin(gpio_sda)

i2c = I2C(scl=scl_pin, sda = sda_pin, freq=10000) # 创建I2C实例

其中SCL时钟频率支持范围 0 < freq ≤ 500000(Hz)

创建Servos对象

从之前的servo.py引入Servos对象,注意不是MicroPython自带的Servo.

实例化的时候,传入我们上面创建的I2C对象,同时指定当前PCA9685模块的地址,默认是0x40, 你也可以通过焊接PCA9685模块上面的焊点修改地址编号。

from servo import Servos

servos = Servos(i2c, address=0x40)

控制舵机的角度

设定舵机控制板上的舵机编号servo_idx, 有效范围为1-16

另外设置舵机舵机的角度degree。

TODO 查看源码 确认degree的范围

servos.position(servo_idx, degrees=degree)

项目实战

face-track.png

参考文章

1ZLAB推广

出品:1Z实验室 (1ZLAB: Make Things Easy)

1Z实验室 Make Things Easy . 致力于在机器人+计算机视觉+人工智能的重叠区域, 制作小白友好的教程.

ad.png

micropython esp32驱动舵机_PCA9685舵机控制板与MicroPython-ESP32-1Z实验室相关推荐

  1. micropython esp32驱动舵机_乐鑫ESP32-PCA9685舵机控制板与MicroPython-ESP32-电路城论坛 - 电子工程师学习交流园地...

    本帖最后由 qiaoweiyiyi 于 2019-2-15 13:58 编辑 概要 阿凯在本文中讲解了如何使用MicroPython-ESP32通过PCA9685模块控制舵机旋转角度.同时也涉及到了M ...

  2. arduino控制小车转向_舵机和舵机控制板

    在很多项目中需要用到舵机.比如机器人,伺服系统等方面.步进电机是可以设定转过多少角度,而舵机是可以设定转到的位置,可以说是指哪打哪,Arduino智能小车的前轮转弯系统便是用的这种原理,在工业上机器人 ...

  3. Micropython ESP32驱动CH455控制4位数码管

    Micropython ESP32驱动CH455控制4位数码管 1.硬件 CH455驱动4位共阴数码管的原理图如下所示. ESP32-S模块,用GPIO4作为SCL和GPIO16作为SDA. 2.软件 ...

  4. ESP32驱动震动传感器、MAX4466(感知层)

    ESP32驱动震动传感器.MAX4466(感知层) 文章目录 ESP32驱动震动传感器.MAX4466(感知层) 前言 一.物联网概述 1.物联网: 2.物联网的三层结构 二.开发环境的搭建 三.硬件 ...

  5. stm32 micropython vscode_在vscode里基于Pymakr插件进行esp32的micropython开发

    1. 安装vscode里面的插件 安装pymakr插件前,需要安装Node.js,这里我安的是推荐的12.18.3LTS. 可以按默认路径安装,下面的提示注意勾上 按提示操作,然后会自动启动windo ...

  6. WT32-SC01是ESP32驱动3.5彩屏开发板方案适合用arduino方式开发吗?因为需要彩屏和电容触摸的驱动的

    ESP32驱动3.5寸彩屏开发板方案因为带有彩屏和电容触摸的驱动,能否用arduino方式开发,这是很多熟悉arduino开发的技术人员关心的问题. 目前启明云端推出的http://esp32.8ms ...

  7. 51单片机控制舵机,舵机不动的定时器原因

    舵机: 红色:VCC 棕色:GND 黄色:PWM 这是定时器0初始化: unsigned cha count = 0; unsigned char timer1 ;void Timer1_Init() ...

  8. 使用ESP32驱动ST7789,效果很好的IPS显示屏

    前言 在平台上面购买了这一种模块,然后这种模块是IPS液晶屏,显示效果会比早期那种好一些.显示屏的控制芯片是ST7789 我准备使用ESP32进行驱动,测试上使用简单的Arduino IDE,那么具体 ...

  9. 解决ESP32 驱动 28BYJ-48 步进电机反向不转之震动的问题

    解决ESP32 驱动 28BYJ-48 步进电机反向不转之震动的问题 date: 2021-09-19 lastmod: 2021-09-19 问题描述 Esp 32 在 mqtt 消息下通过 Ste ...

最新文章

  1. dSploitzANTI渗透教程之HTTP服务重定向地址
  2. activiti-explorer mysql_Activiti explorer.war示例工程使用过程图解
  3. 28条有关人工智能的名言,靠不靠谱你来看!
  4. hash 值重复_MySQL调优实战:MySQL B+Tree索引和Hash索引的区别?
  5. analyze table tablename
  6. 坑 之 使用numpy的tofile和fromfile读取数据
  7. pythonshell画图_Python3使用plotly模块保存图片与shell下生成表格
  8. Adwords 账户细分思路
  9. code换取微信openid_微信授权登录开发的两种方式
  10. (网页)java数组去重总结(转)
  11. 单片机两个IO口控制三个LED灯
  12. 如何做到在职场中清楚有效的沟通,成为一个靠谱的职场人?
  13. 离散数学学习笔记——集合的符号表示
  14. QPS、TPS、PV、UV、GMV、IP、RPS的概念解释
  15. BUUCTF 荷兰宽带数据泄露
  16. 目标检测之正负样本详解
  17. 小蓝本 第一本《因式分解技巧》第三章 分组分解 笔记(第三天)
  18. vue相关--自己看看的
  19. 微信小程序map中polyline的坑
  20. HDR阴影高光图像增强

热门文章

  1. 数博会重磅活动:第二届大数据科学与工程国际会议议程
  2. 作者:林霄(1988-),男,上海交通大学博士生,主要研究方向为大数据网络和网络优化。...
  3. 作者:罗威,男,中国国防科技信息中心副研究员。
  4. 【Servlet】Cookie会话跟踪技术
  5. 【操作系统】同步和互斥
  6. 喜讯 | 国际智慧城市大会巨杉喜获两项大奖
  7. 利用官方的vue-cli脚手架来搭建Vue集成开发环境
  8. JAVA逆向反混淆-追查Burpsuite的破解原理
  9. Hadoop问题:The auxService:mapreduce_shuffle does not exist
  10. RecyclerView 的 Item 的单击事件