- Перепрошивка регуляторов ESC бесщеточных моторов для мультироторных систем

Перепрошивка регуляторов Hobbypower ESC-30A, Readytosky ESC-30A и Simonk 30A прошивкой Simonk

Практика для студентов. Мясищев А.А.

Обычные регуляторы имеют внутри программный и аппаратный фильтры, сглаживающий реакцию на резкие скачки управляющего воздействия. Принцип стабилизации мультироторных аппаратов основан на изменении тяги каждого ротора в отдельности. Чем более отзывчив будет регулятор, тем лучше будет стабилизация, меньше колебания, и т.п. В источнике[1] представлена иллюстрация менее и более стабильно работающего регулятора.

Минусом "родных" прошивок регуляторов является низкое разрешение. Т.е. регулятор весь диапазон оборотов проходит, например, за 100 шагов. Кастомные прошивки обеспечивают большее разрешение. После перепрошивки регулятор теряет большую часть своих функций. Т.е. невозможно настроить отсечку, ограничитель напряжения батареи и т.д. Этих функций просто нет. Прошитые регуляторы предназначены исключительно для работы на мультироторах. Исключением можно считать прошивку BLHeli.

Также замечено, что у регуляторов Hobbypower ESC-30A, Readytosky ESC-30A с собственными прошивками наблюдаются срывы синхронизации при оборотах ниже средних. Поэтому при резком сбросе оборотов возможна остановка двигателя, что приведет к аварии коптера. Прошивки китайских регуляторов Simonk 30A не всегда имеют последнюю версию.

Следует отметить ненадежную работу регуляторов Hobbypower ESC-30A и Readytosky ESC-30A китайского производителя, которые способны самопроизвольно сбрасывать настройки после программирования его через пульт управления БПЛА, а также является очень ненадежными в случае запуска при температуре ниже +15 град. Поэтому при подключении батареи необходимо внимательно прослушивать мелодии ESC о его готовности и на основании этого делать вывод о возможности запуска БПЛА.

Перечисленные выше замечания требуют выполнения перепрошивки перечисленных выше регуляторов. Опыт показал, что лучшей прошивкой для них при использовании преимущественно в квадрокоптере является прошивка Simonk [2]. На рисунке 1. представлены эти регуляторы, которые собраны по однотипным схемам.

Рис.1. Перепрошиваемые регуляторы

На рисунке 2 представлены регуляторы Hobbypower ESC-30A со снятой термоусадкой. Их отличие от

Readytosky ESC-30A и Simonk 30A в том, что у последних регуляторов присутствуют площадки для MOSI, MISO, SCK, RESET, GND, которые используются для подключения программатора.

Рис.2. Регулятор Hobbypower ESC-30A с снятой термоусадкой

Рис.3. Регуляторы Readytosky ESC-30A и Simonk 30A

В рекламе продажи регулятора Simonk 30A было отмечено наличие кварцевого генератора на повышение в частности температурной стабильности его работы. Однако при разборке не выявлено наличия внешнего кварцевого резонатора (рис.3).

Для перепрошивки регуляторов необходимо скопировать с сайта http://0x.ca/tgy/downloads/ файл tgy_2015-09-12_103edb5.zip и распаковать его в каталоге. Найти среди распакованных файлов tgy.hex и с помощью программатора и адаптера переслать его в микроконтроллер ATmega8 регулятора.

В качестве программатора воспользуемся программой PonyProg2000, которая должна быть предварительно установлена на компьютере со свободным COM портом. Схема адаптера для работы через COM порт представлена на рисунке 4. Выводы адаптера подключаются к выводам, припаянным к соответствующим контактам, как на рис.2,3. Пайка должна быть особенно для Hobbypower ESC-30A аккуратной, чтобы не повредить микроконтроллер.

Рис.4. Схема адаптера для COM порта

После установки PonyProg необходимо выполнить процедуру ее калибровки. Для этого необходимо зайти в закладки Setup->Calibration и нажать на Yes.

Рассмотрим следующие этапы использования программы PonyProg.

1. Запускаем программу и открываем файл с расширением .hex. В данном случае это файл tgy.hex.

2. После установки PonyProg необходимо выполнить процедуру ее калибровки. Для этого необходимо зайти в закладки Setup->Calibration и нажать на Yes.

3. Заходим во вкладки Device -> AVR micro и выбираем ATmega8

4. Настраиваем интерфейс связи между компьютером и микроконтроллером:

5. После загрузки файла tgy.hex можно зайти в закладку Command->Security and Configuration Bits и просмотреть фьюз-биты (биты конфигурации) для ATmega8.

Например, для Readytosky будут установлены следующие биты (стоят галочки): SPIEN, BOOTSZ1, BOOTSZ0, SUT0, CKSEL3, CKSEL1, CKSEL0. Для Hobbypower ESC-30A: SPIEN, BODEN, SUT0, CKSEL3, CKSEL1, CKSEL0. При загрузке прошивки tgy.hex фьюз-биты менять не стоит. Эти биты установлены при изготовлении регуляторов.

Рис.5. Установка кварцевого резонатора 16 МГц

На рисунке 5 показана модернизация регуляторов Readytosky ESC-30A и Simonk 30A путем добавления кварцевого резонатора на 16МГц. Он был подпаян к выводам микроконтроллера, как показано на рис.6. В этом случае перед прошивкой необходима замена фьюз-битов. Необходимо проверить установку SPIEN(хотя он всегда установлен и в программе PonyProg200 он не переустанавливается), а все остальные биты сбросить и перепрошить микроконтроллер той же прошивкой. Опыт показал, что добавление кварцевого резонатора при эксплуатации в диапазоне температур -8,...+25 град. при установке на квадрокоптер 2-х регуляторов с кварцем и 2-х без кварца не привели к заметным изменениям. Двигатели работали одинаково с регуляторами с внешним кварцем и без него т.е. на внутреннем генераторе из RC-цепочки.

Рис.6. ATmega8, подключение

На рисунке 7 представлено фото ESC регулятора с установленным микроконтроллером ATmega8 в DIP28 корпусе с внешним кварцевым резонатором в связи с выходом из строя ATmega8 в корпусе TQFP32. Такая переделка не вызвала изменений в работе регулятора.

Рис.7. ESC регулятор с ATmega8 в DIP28 корпусе

6. Выполняем передачу файла tgy.hex микроконтроллеру по команде Ctrl/P. Или можно зайти во вкладку Command и курсором мышки выбрать Program. В случае успешной передачи программы в микроконтроллер должно появиться окно с надписью Program successful. При программировании необходимо не забыть на регулятор подать напряжение 7,...12В. Если компьютер для программирования микроконтроллера не имеет COM порта, но имеет USB порты, необходимо использовать более сложные программаторы.

Можно выполнить прошивку с помощью программы KKmulticopter Flash Tool, но она не устанавливает фьюз-биты. Программу можно скопировать с ссылки http://lazyzero.de/en/modellbau/kkmulticopterflashtool. Предварительно на компьютере должна быть установлена Java. Установку прошивки можно выполнить с репозитория или с файла. На рисунке 8 представлены выбранные опции для загрузки прошивки с репозитория при использовании адаптера, схема которого приведена на рисунке 4.

Рис.8. Прошивка программой kkMulticopter Flash Tool

Если компьютер для программирования микроконтроллера не имеет COM порта, но имеет USB порты, необходимо использовать более сложные программаторы.

Достаточно распространенным и дешевым является USB программатор USBasp, представленный на рисунке 9.

Рис.9. USBasp программатор

Рассмотрим установку драйвера к нему для Windows систем. Следуя рекомендациям сайта

http://www.fischl.de/usbasp/ устанавливаем на компьютер программу Zadig. Например, для Windows XP - программу zadig_xp_2.1.0.exe.

В USB порт устанавливаем программатор USBasp и запускаем программу zadig_xp_2.1.0.exe (рис.10).

Рис.10. Интерфейс программы Zadig

Далее выбирается драйвер, как указано на рисунке 10 и нажимается кнопка Reinstall Driver.

В диспетчере устройств должно появиться новое устройство, как показано на рисунке 11.

Рис.11. Новое устройство в диспетчере устройств

После установки драйвера можно воспользоваться программой khazama (рис.12) для прошивки микроконтроллера.

Рис.12. Интерфейс программы khazama для прошивки микроконтроллеров