pca9685 и микроконтроллер узла с использованием micropython

#i2c #nodemcu #micropython

#i2c #nodemcu #micropython

Вопрос:

У меня есть микроконтроллер Lolin, подобный этому Lolin v3

У меня есть плата PCA9685, подобная этому дешевому контроллеру

И я кодирую в MicroPython в устройстве NodeMCU. Мне удалось подключить один из этих маленьких сервоприводов 9g к плате NodeMCU и управлять им. Нет проблем. Я хочу использовать контроллер, так как мне нужно больше сервоприводов, поэтому я подключаю PCA следующим образом:

 PCA V   <--> 3v3 in the mcu (5v produce no changes)
PCA GND <--> GND in the mcu
PCA SDA <--> SDA (Pin 4) in the mcu
PCA SCL <--> SCL (Pin 5) in the mcu
PCA OE  <--> GND, V  or open. Makes no difference
  

Теперь я скачал это PCA9685.py и Servo.py из этого веб-контроллера MicroPython PCA

Я создаю I2C следующим образом

 >>> i2c = machine.I2C(scl=machine.Pin(5), sda=machine.Pin(4))
>>> i2c.scan()
[64, 112]
  

Итак, устройство есть. Кабели в порядке, i2c работает. Но сервоприводы не будут двигаться, несмотря ни на что. Даже не гудит.

Я пытаюсь переместить сервопривод с помощью

 servos.position(1, us=1500)
  

ничего не произошло.. Я подключил несколько сервоприводов к нескольким портам, чтобы убедиться, что это порт 1, а не порт 0 и эти глупые ошибки.. ничего.

Это код, который я запускаю на устройстве прямо сейчас:

 from machine import I2C, Pin
import servo

servos = servo.Servos(I2C(scl=Pin(5), sda=Pin(4))
for i in range(16):
    servos.position(i, us=1500)
  

Есть какие-либо подсказки???

Комментарии:

1. Покажите код, в котором вы создаете servos . Вы проводили какие-либо электрические испытания, чтобы убедиться, что плата PCA9685 действительно работает?

2. вы можете найти код по ссылке, он не мой bitbucket.org/thesheep/micropython-pca9685/src Что касается аппаратного обеспечения, оно работает при подключении к моему Pi

3. Ни один из файлов кода по этой ссылке не создает объект с именем servos . Покажите нам, что именно вы делаете, если вам нужна помощь.

4. добавил код к вопросу, надеюсь, он прольет некоторый свет 🙂

5. Я не вижу там ничего явно неправильного. Какой код вы используете на Pi? Я все еще думаю, что мы не исключили проблему с электричеством — источник питания сервопривода определенно в порядке? Вы пробовали просто использовать PCA9685 класс без подключенного сервопривода и проверять выходные данные с помощью осциллографа? В противном случае я бы посоветовал спросить на форуме MicroPython, где, по-видимому, есть некоторые знания в этой области, например forum.micropython.org /…