Как запрограммировать ESC регулятор HOBBYWING при помощи ARD

Как собрать и запрограммировать робота на Arduino(Freeduino, Roboduino, Seeduino ...). Используем Wiring и Processing.

Re: Как запрограммировать ESC регулятор HOBBYWING при помощи

Сообщение Madf » 21 июн 2014, 10:15

Я так кстати и сделал (купил за 120 руб. тестер), а т.к. никакими ардуинами не пользуюсь, то для меня ценность информации "от 0 до 14", "от 16 до 23" и "от 25 до 179" - нулевая. :D
Нужно было описывать относительно уровней сигналов (импульс/задержки/количество)...
Madf
 
Сообщения: 3298
Зарегистрирован: 03 янв 2012, 12:55
Откуда: Москва
прог. языки: VB6, BASCOM, ASM...

Re: Как запрограммировать ESC регулятор HOBBYWING при помощи

Сообщение SoS » 21 июн 2014, 14:28

Dmitry__ писал(а):Я с вас угораю, молодой человек. За это время можно было купить сервотестер за 300 рэ и во всем давно разобраться.
Madf писал(а):Я так кстати и сделал (купил за 120 руб. тестер)

Отвечаю " Madf" и " Dmitry__" относительно сервотестеров. Да сервотестер - это здорово и не дорого, но у меня задача в будущем немного другая. Как я сервотестер в роботизированной системе использовать буду? Отвечаю сам, ни как. Поэтому я и пытаюсь управлять ESC с помощью контроллера, в данном случае ARDUINO.
Madf писал(а):информации "от 0 до 14", "от 16 до 23" и "от 25 до 179" - нулевая.

Относительно нулевой пользы значений "от 0 до 14", "от 16 до 23" и "от 25 до 179". Пользы там нет только для тех кому она не нужна, а длинну импульсов можно легко вычислить из пропорции: значение "0" - с сервобиблиотеки ARDUINO - 1 микросекунда, значение "179" - 2 микросекунды (это по умолчанию, при желании можно изменить программно), а далее при использовании простой математики можно получить, например, что значение "100" соответствует длинне импульса 1,5555... микросекунды.

Добавлено спустя 2 часа 13 минут 52 секунды:
Re: Как запрограммировать ESC регулятор HOBBYWING при помощи ARD
Хочу сказать "Madf" - спасибо! Вы сказали про " импульс/задержки/количество" и я начал более подробно копаться в Arduinoвской Servo библиотеке.

И что нашел:

1) Команда "attach" с дополнительными параметрами: Servo.attach(ESC_Motor_Pin, 1000, 2000) - где при по помощи значений 1000 и 2000 можно задать уровни минимального (0%) и максимального (100%) уровня PWM сигнала в микросекундах.

2) Команда "writeMicroseconds" с помощь которой можно задать уровень сигнала в микросекундах.

По этому действительно можно отойти от относительных значений "от 0 до 14", "от 16 до 23" и "от 25 до 179" и перейти к значениям выраженным в микросекундах. В нашем случае от 1000 до 2000.
SoS
 
Сообщения: 12
Зарегистрирован: 08 май 2014, 22:54

Re: Как запрограммировать ESC регулятор HOBBYWING при помощи

Сообщение Dmitry__ » 21 июн 2014, 15:09

SoS писал(а):Да сервотестер - это здорово и не дорого, но у меня задача в будущем немного другая. Как я сервотестер в роботизированной системе использовать буду? Отвечаю сам, ни как.

Никто и не предлагает управлять роботом сервотестером. Сервотестером предлагают разобраться с драйвером. Многие драйверы ждут определенных положений стика передатчика при вкл. питания. Вертолетные драйверы ждут "стик вниз до упора" (чтоб пальцы не пооутрубало при случайном вкл.), автомобильные ждут: "стик в центр". Еще какие-нибудь драйверы ждут: "стик вверх до упора, а потом вниз до упора). Да, еще у разных драйверов разное понимание что такое "стик вниз до упора", "стик в центр". Вот плавным смещением ручки сервотестера и пиликаниями драйвера это все и находится. А нажимание дискретных кнопок в терминалке - лучший способ ничего не понять :D

Добавлено спустя 6 минут 25 секунд:
Re: Как запрограммировать ESC регулятор HOBBYWING при помощи ARD
Покури rcdesign:
http://www.rcdesign.ru/articles/radio/tx_intro
Значения среднего положения ручки у разных производителей может немного отличаться: 1,52 мс - у Futaba, 1,5мс - у Hitec и JR, 1,6 - у Multiplex. Диапазон изменения у некоторых видов компьютерных передатчиков может быть шире, и достигать от 0,8 мс до 2,2 мс. Однако такие вариации допускают смешанное использование компонентов аппаратуры от разных производителей, работающих в режиме РРМ кодирования.


Все статьи:
http://www.rcdesign.ru/articles/radio
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: Как запрограммировать ESC регулятор HOBBYWING при помощи

Сообщение SoS » 21 июн 2014, 15:27

Ну что, при работе с микросекундами все встало на свои места.

Новую прошивку для микроконтроллера прикладываю:

1) Зона нуля, как я ее назвал ранее, оказалась сигналом отсутствия PWM сигнала
2) Тормоз - импульс от 1000 до 1040 микросекунд
3) Газ - импульс от 1050 до 2000 (100% мощности) микросекунд

Но HOBBYWING все равно не работает, кто знает, как можно инверсировать PWM сигнал с ARDUINO???
Вложения
ESC_Motor_Control.ino
Обновленная прошивка (команда 101 плавно разгоняет мотор до 100% а потом плавно его останавливает)
(2.25 КиБ) Скачиваний: 337
SoS
 
Сообщения: 12
Зарегистрирован: 08 май 2014, 22:54

Re: Как запрограммировать ESC регулятор HOBBYWING при помощи

Сообщение Dmitry__ » 21 июн 2014, 15:57

SoS писал(а):1) Зона нуля, как я ее назвал ранее, оказалась сигналом отсутствия PWM сигнала

Нет :)
Отсутствие PWM сигнала означает потерю сигнала приемником. Для радиомодели (где и применяются драйверы) означает - "полундра", мы падаем/идем ко дну. Алгоритм работы драйвера в таком режиме зависит от настроек вертолетный/самолетный/автомобильный. Но в любом случае это нештатная ситуация. Выход из него не обязан быть быстрым...
КУПИ СЕРВОТЕСТЕР!!! :)

Добавлено спустя 2 минуты 14 секунд:
Re: Как запрограммировать ESC регулятор HOBBYWING при помощи ARD
SoS писал(а):2) Тормоз - импульс от 1000 до 1040 микросекунд

Вот это и есть зона нуля. Если в данный момент двигатель крутится, то он начнет тормозить :)
SoS писал(а):Но HOBBYWING все равно не работает, кто знает, как можно инверсировать PWM сигнал с ARDUINO???

Ответ был выше.
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: Как запрограммировать ESC регулятор HOBBYWING при помощи

Сообщение Madf » 21 июн 2014, 18:08

SoS писал(а):Зона нуля, как я ее назвал ранее, оказалась сигналом отсутствия PWM сигнала

Нет, не совсем так, зона нуля это N число микросекунд ниже определенного уровня/порога.

SoS писал(а):Но HOBBYWING все равно не работает, кто знает, как можно инверсировать PWM сигнал с ARDUINO???

Никак нельзя! Чтобы ротор пошел в обратную сторону, нужно менять фазу одной из обмоток.

Я точно сейчас оперировать цифрами не могу, т.к. не разбирался, но когда пришел тестер с ESC и мотором, чуток поигрался.
Вообще меня убил на повал этот контроллер (ESC) тем, что он через чур умный!
Контролируется всё:

- если питание входное меньше определенного порога - отключает нагрузку;
- если ток потребление мотора большой - отключает нагрузку;
- если обороты недостаточны (заклинило) - отключает нагрузку;
- если управляющий сигнал не находится в "0" точке после подачи питания - не запускается нагрузка.

В общем сейчас мне эта вся штука нужна не для квадракоптера, а CNC станка и хар-ки в любом случае будут удовлетворяться, но вот как люди на этой хрени летают - диву даюсь. Так как скажем, если лопасть заклинит в ветке дерева, то вырулить уже будет не возможно, контроллер просто выключит нагрузку. Хотя тут всё сложно, ведь токи/мощность такие сумасшедшие, что обычно либо ветку срезает, либо лопасть разлетается на куски. :D

зы: ну и как из вашего опыта, начинаю понимать, что режим программирования осуществляется при определенных условиях входного, управляющего сигнала.
Madf
 
Сообщения: 3298
Зарегистрирован: 03 янв 2012, 12:55
Откуда: Москва
прог. языки: VB6, BASCOM, ASM...

Re: Как запрограммировать ESC регулятор HOBBYWING при помощи

Сообщение SoS » 21 июн 2014, 22:08

SoS писал(а):Но HOBBYWING все равно не работает, кто знает, как можно инвертировать PWM сигнал с ARDUINO???

Никак нельзя! Чтобы ротор пошел в обратную сторону, нужно менять фазу одной из обмоток.

По поводу инвертировать сигнал.
Вы меня не так поняли, просто я где то читал что некоторые PWM контроллеры воспринимают инвертированный сигнал, То есть:

Классический PWM выглядит так: 1-2 миллисекунды -HIGHT (5 вольт), 19-18 миллисекунд LOW (0 вольт).

Инвертированный выглядит обратно: 1-2 миллисекунды -LOW (0 вольт), 19-18 миллисекунд HIGHT (5 вольт).

По этому, как мне кажется, HOBBYWING просто не воспринимает мой PWM сигнал и как раз своими бипами сообщает, сигнала нет.
SoS
 
Сообщения: 12
Зарегистрирован: 08 май 2014, 22:54

Re: Как запрограммировать ESC регулятор HOBBYWING при помощи

Сообщение Madf » 22 июн 2014, 09:31

Я не совсем понимаю, зачем он вам нужен (инвертированный сигнал), но в чем проблема, если он вам так нужен, то поставьте логический элемент "инвертор" и будет всё работать.)
Madf
 
Сообщения: 3298
Зарегистрирован: 03 янв 2012, 12:55
Откуда: Москва
прог. языки: VB6, BASCOM, ASM...

Re: Как запрограммировать ESC регулятор HOBBYWING при помощи

Сообщение SoS » 27 июн 2014, 05:45

Madf писал(а):зы: ну и как из вашего опыта, начинаю понимать, что режим программирования осуществляется при определенных условиях входного, управляющего сигнала.

Да. Для перехода в режим программирования нужно сначала подать максимальный уровень PWM сигнала - 2000 микросекунд, после чего подключить питание к ESC и контроллер переходит в режим программирования.
Madf писал(а):Я не совсем понимаю, зачем он вам нужен (инвертированный сигнал), но в чем проблема, если он вам так нужен, то поставьте логический элемент "инвертор" и будет всё работать.)

Подскажите пожалуйста схему логического инвертора, подходящего к моей задаче?
Можно еще, наверное, залезть в стандартную сервобиблиотеку ARDUINO и подправить в ней пару строк, или добавить дополнительную процедуру, но я пока в этом не разобрался, сможет кто нибудь помочь?
SoS
 
Сообщения: 12
Зарегистрирован: 08 май 2014, 22:54

Re: Как запрограммировать ESC регулятор HOBBYWING при помощи

Сообщение Madf » 27 июн 2014, 12:04

SoS писал(а):Подскажите пожалуйста схему логического инвертора, подходящего к моей задаче?

какое у вас железо?
если управляете через драйвер (ESC) при помощи ардуино, то в ардуине, в коде меняете хар-ки PWM (просто математически вычитаете из байта 255, если 8-бит)

зы: сразу предупреждаю, что ардуинами не пользуюсь.
Madf
 
Сообщения: 3298
Зарегистрирован: 03 янв 2012, 12:55
Откуда: Москва
прог. языки: VB6, BASCOM, ASM...

Re: Как запрограммировать ESC регулятор HOBBYWING при помощи

Сообщение SoS » 31 авг 2014, 00:23

Всех приветствую, решил написать, как заработал HOBYWING.
Как оказалось дело в схемотехнике регулятора HOBYWING. Обычно для управления ESC контролером достаточно подключить к ARDUINO только 2 контакта (земля и управляющий пин PWM сигнала), таких схем достаточно много в интернете. Но с HOBYWING оказалось что пин 5V нужно тоже подключить к контроллеру ARDUINO - вот и все - все заработало!!!
SoS
 
Сообщения: 12
Зарегистрирован: 08 май 2014, 22:54

Re: Как запрограммировать ESC регулятор HOBBYWING при помощи

Сообщение Nesenin » 06 сен 2014, 14:29

хм ларчик то просто открывался. а мне ведь как-то намекали на существование регуляторов с внешним питанием логики 5В, а я не верил.
Аватара пользователя
Nesenin
 
Сообщения: 1341
Зарегистрирован: 26 янв 2012, 03:59
Откуда: Казань
прог. языки: LabVIEW
ФИО: Никита Есенин

Re: Как запрограммировать ESC регулятор HOBBYWING при помощи

Сообщение Madf » 06 сен 2014, 19:24

я пока не держал в руках контроллеров требующих такое питание
обычно с них выходит 5В, его и используем
Madf
 
Сообщения: 3298
Зарегистрирован: 03 янв 2012, 12:55
Откуда: Москва
прог. языки: VB6, BASCOM, ASM...

Re: Как запрограммировать ESC регулятор HOBBYWING при помощи

Сообщение SoS » 24 сен 2014, 23:44

В регуляторе HOBBYWING 5V 100% процентов не используется для питания. Без пина 5В он пищит и бибикает. Возможно у него просто появление на входе 5В оценивается как сигнал, что разъем подключен и только после этого он уже воспринимает PWM сигнал.
SoS
 
Сообщения: 12
Зарегистрирован: 08 май 2014, 22:54

Пред.

Вернуться в Arduino и другие Xduino

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9