Как использовать Raspberry Pi 4B для отправки сигналов ШИМ на ESC для управления подводными двигателями?
Автор публикации: Fengyukun, дата:
Используйте ESC: APISQUEEN 24V 100A ESC
Руководство по эксплуатации ESC 100A: https://cdn.shopify.com/s/files/1/0621/5493/2452/files/100A.pdf?v=1700410535
1: Разблокировать ESC
Нейтральный сигнал остановки является сигналом разблокировки.
При использовании сигнала частотой 50 Гц период сигнала составляет 20 мс.
Процент в инструкции относится к проценту ширины импульса управления ШИМ, а не к фактическому рабочему циклу сигнала ШИМ (здесь легко понять неправильно).
Тогда нейтральный сигнал остановки будет:
Рабочий цикл 75%, фактический рабочий цикл 7,5%: 1,5 мс (1,475–1,525 мс);
импортный пигпио
Время импорта
PI = pigpio.PI() #Создаем объект pigpio
LED_PIN = 18 #Определите порт GPIO, к которому подключен светодиод
PWM_FREQUENCY = 50 #Определить частоту ШИМ (Гц)
ШИМ_диапазон = 1000
Определите рабочий цикл ШИМ, диапазон значений: 0 (2) 55,
π. set_mode(LED_PIN, pigpio.OUTPUT) #Устанавливаем порт GPIO в режим вывода
π. set_PWM_ Frequency(LED_PIN, PWM_FREQUENCY) #Установить частоту ШИМ
π. set_PWM_range(LED_PIN, PWM_range) #Установить диапазон 1000
π. set_pwm_dutycycle (LED_PIN, 75) #Set PWM рабочий цикл 75/1000= 7,5%
Time.sleep(3) #Задержка 3 секунды для успешной разблокировки
2. Управление ЭКУ
Рабочий цикл 75 %: Остановитесь, когда фактический рабочий цикл составит 7,5 % ~ 1,5 мс (между 1,475 мс ~ 1,525 мс);
Рабочий цикл 50–75 %: фактический рабочий цикл 5–7,5 %, 1–1,5 мс в обратном направлении;
Рабочий цикл 100 %: фактический рабочий цикл 7,5–10 % 1,5–2 мс вперед
π. set_PWM_dutycycle (LED_PIN, 100)
#Вперед: 7,5% ~ 10% Чем выше рабочий цикл, тем выше скорость движения вперед.
время.сон(15)
π. set_PWM_dutycycle (LED_PIN 60)
#Reverse: Чем ближе рабочий цикл к 5%, тем быстрее скорость заднего хода.
время.сон(5)
π. set_PWM_dutycycle (LED_PIN, 75)
#рабочий цикл
время.сон(5)
3. Отладка
Во время отладки вы можете использовать осциллограф, чтобы проверить правильность формы сигнала:
Например, на рисунке ниже показан сигнал остановки ШИМ, который я начал отправлять.
Амплитуда напряжения составляет 3,3 В, период — 20 мс, а фактический рабочий цикл — 7,5%, все правильно.
Но я все еще не могу разблокировать ESC, потому что в форме сигнала слишком много шума и помех.
![](https://cdn.shopify.com/s/files/1/0621/5493/2452/files/5_0147a315-bab3-433b-8dde-186472c0ee31_1024x1024.png?v=1700411310)
Вначале я использовал RPi. GPIO, затем вместо этого я использовал библиотеку pigpio для отправки аппаратного ШИМ-сигнала для решения проблемы.
4. Пример кода:
импортный пигпио
Время импорта
PI = pigpio.PI() #Создаем объект pigpio
LED_PIN = 18 #Определите порт GPIO, к которому подключен светодиод.
PWM_FREQUENCY = 50 #Определить частоту ШИМ (Гц)
ШИМ_диапазон = 1000
Определите рабочий цикл ШИМ, диапазон значений: 0 (2) 55,
π. set_mode(LED_PIN, pigpio.OUTPUT) #Устанавливаем порт GPIO в режим вывода
π. set_PWM_ Frequency(LED_PIN, PWM_FREQUENCY) #Установить частоту ШИМ
π. set_PWM_range(LED_PIN, PWM_range) #Установить диапазон 1000
π. set_pwm_dutycycle (LED_PIN, 75) #Set PWM рабочий цикл 75/1000= 7,5%
Time.sleep(3) #Задержка 3 секунды для успешной разблокировки
π. set_PWM_dutycycle (LED_PIN, 100)
#Вращение вперед: рабочий цикл 7,5–10%, чем больше рабочий цикл, тем выше скорость движения вперед.
время.сон(15)
π. set_PWM_dutycycle (LED_PIN 60)
Чем ближе рабочий цикл к 5%, тем выше скорость реверса.
время.сон(5)
π. set_PWM_dutycycle (LED_PIN, 75)
#рабочий цикл
время.сон(5)
Поделиться записью
- Комментариев: 0
- Теги: ESC
← Более старые записи Более новые записи →