日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

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

發(fā)布時(shí)間:2025/3/15 python 56 豆豆
生活随笔 收集整理的這篇文章主要介紹了 micropython esp32驱动舵机_PCA9685舵机控制板与MicroPython-ESP32-1Z实验室 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

概要

阿凱在本文中講解了如何使用MicroPython-ESP32通過PCA9685模塊控制舵機(jī)旋轉(zhuǎn)角度。同時(shí)也涉及到了MicroPython-ESP32的I2C資源與API講解。

出品:1Z實(shí)驗(yàn)室 (1ZLAB: Make Things Easy)

目錄

PCA9685模塊簡介

pca9685.jpg

問題1:為什么我們要用到舵機(jī)驅(qū)動(dòng)模塊?

工作電壓 首先ESP32的工作電壓是3.3v,不能直接驅(qū)動(dòng)額定電壓在5v-7.4v的數(shù)字舵機(jī),需要外接電源。

工作電流 舵機(jī)工作電流在100MA~1.5A,運(yùn)動(dòng)越快電流越大,可能會損傷USB口.

IO資源 一般的開發(fā)板IO資源有限,例如控制一個(gè)6DOF的機(jī)械臂,需要占用六個(gè)IO口,如果是蛛形機(jī)器人的話需要用的也就更多,所以使用舵機(jī)驅(qū)動(dòng)板是一種節(jié)省IO資源的方式。

問題2:什么是PCA9685?

PCA9685是一款基于IIC總線通信的12位精度16通道PWM波輸出的芯片,該芯片最初由NXP推出時(shí)主要面向LED開關(guān)調(diào)光,但就目前國內(nèi)的形式來看,好像在被Arduino在舵機(jī)控制領(lǐng)域使用的更廣泛。 stm32+pca9685控制舵機(jī)機(jī)械臂

問題3:單片機(jī)與PCA9685如何通信?

pca9685-cascade.jpg

PCA9685模塊與單片機(jī)通過I2C總線的方式進(jìn)行通信。

I2C總線是由Philips公司開發(fā)的一種簡單、雙向二線制同步串行總線。它只需要兩根線即可在連接于總線上的器件之間傳送信息。

每個(gè)PCA9685都可以分配一個(gè)地址位,通過I2C接口,一個(gè)單片機(jī)可以控制最多64個(gè)PCA9685舵機(jī)控制板。每個(gè)舵機(jī)控制板上可以搭載16個(gè)舵機(jī)。

詳細(xì)的使用說明見奇果派工坊的這篇文章,寫的很詳細(xì)。

MicroPython驅(qū)動(dòng)PCA9685

Adafruit公司開源了MicroPython控制PCA9685模塊的工程:

micropython-adafruit-pca9685

這里我們需要用到這個(gè)工程里面的兩個(gè)文件:

其中關(guān)于舵機(jī)驅(qū)動(dòng)的API看這里:Servo Driver

MicroPython-ESP32驅(qū)動(dòng)PCA9685

上傳庫文件

接下來講MicroPython-ESP32與PCA9685。

首先將micropython-adafruit-pca9685中的pca9685.py與servo.py保存到本地,并通過ampy上傳到ESP32的文件系統(tǒng)中。

創(chuàng)建一個(gè)I2C對象

在ESP32里面可以自定義引腳為I2C接口,支持I2C的管腳編號為:

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

0號管腳還有2號管腳比較特殊,不推薦使用。

這里我們使用25號引腳作為SCL引腳(串行時(shí)鐘線),26號引腳為SDA(串行數(shù)據(jù)線)引腳。

連接方式

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) # 創(chuàng)建I2C實(shí)例

其中SCL時(shí)鐘頻率支持范圍 0 < freq ≤ 500000(Hz)

創(chuàng)建Servos對象

從之前的servo.py引入Servos對象,注意不是MicroPython自帶的Servo.

實(shí)例化的時(shí)候,傳入我們上面創(chuàng)建的I2C對象,同時(shí)指定當(dāng)前PCA9685模塊的地址,默認(rèn)是0x40, 你也可以通過焊接PCA9685模塊上面的焊點(diǎn)修改地址編號。

from servo import Servos

servos = Servos(i2c, address=0x40)

控制舵機(jī)的角度

設(shè)定舵機(jī)控制板上的舵機(jī)編號servo_idx, 有效范圍為1-16

另外設(shè)置舵機(jī)舵機(jī)的角度degree。

TODO 查看源碼 確認(rèn)degree的范圍

servos.position(servo_idx, degrees=degree)

項(xiàng)目實(shí)戰(zhàn)

face-track.png

參考文章

1ZLAB推廣

出品:1Z實(shí)驗(yàn)室 (1ZLAB: Make Things Easy)

1Z實(shí)驗(yàn)室 Make Things Easy . 致力于在機(jī)器人+計(jì)算機(jī)視覺+人工智能的重疊區(qū)域, 制作小白友好的教程.

ad.png

總結(jié)

以上是生活随笔為你收集整理的micropython esp32驱动舵机_PCA9685舵机控制板与MicroPython-ESP32-1Z实验室的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。