Существует три лагеря различных регуляторов. Первый, это регуляторы PWM, самые распространённые. Их ставят на самолеты, вертолеты, судо и автомодели. Второй лагерь поменьше, это регуляторы для шины I2C, такие стоят на небезызвестном немецком Mikrokopter и российском Русскоптере. Третий лагерь еще поменьше, регуляторы UltraPWM, стоят на редких моделях коптеров, можно упомянуть Xaircraft.
Немного теорииЕсли говорить о стабильности полета то впереди планеты всей, пока, немецкий проект с регуляторами на шине I2C. Тут уместно задать вопрос – почему Mikrocopter так удивительно устойчиво летает и фантастически стабильно висит? Секрет в том, что используются регуляторы I2C, они получают команду от полетного контроллера и немедленно её выполняют. Скорость отклика порядка 10-20 мкс. Стандартные регуляторы PWM не могут такой скоростью отклика похвастать. Почему? Потому что изначально проектировались под самолеты и вертолеты. Иногда в больших самолетах-копиях устанавливают коробку передач, для понижения оборотов и получения большего момента на винте. На вертолетах обязательно стоит понижающий ряд, так как тоже очень важно получить большой момент на главном роторе. Поскольку, при резкой смене оборотов, такая конструкция может попросту не выдержать и сломаться, нашли простой выход — внесли в программу управления регуляторов фильтр низкой частоты. Такой фильтр не позволяет очень резко менять частоту вращения, тем самым предохраняя шестерни от поломок. Вот это обстоятельство и не дает на коптерах использующих регуляторы PWM получить стабильность висения сравнимую с «немцем». Скорость отклика таких регуляторов порядка 130 мкс.
Если встать на место полетного контроллера то механика процесса такова. Гироскопы видят горизонт и все хорошо, висим ровно. Приходит внешнее возмущение, не важно кто послужил причиной пилот или ветер, гироскопы отмечают отклонение и дают команду соответствующему регулятору повысить обороты мотора чтобы скомпенсировать возмущение и выровнять платформу. Команда поступила надо выполнять, и регулятор PWM используя вшитую в него на производстве программу сглаживает резкий рывок выдавая на мотор воздействие растянутое во времени. Получается что ответная реакция недостаточна, и гироскопы видят прежнее отклонение, снова выдается корректирующая команда, и, наконец, выравниваемся практически рывками. При этом, чтобы не было осцилляций приходится скорость реакции «мозгов» занижать, задавливая ПИДы, подстраиваясь под медленную работу регуляторов PWM. В случае регуляторов на шине I2C это происходит быстро – видим отклонение и воздействуем до тех пор, пока не выровняемся – и из-за отсутствующего сглаживающего фильтра скорость такой коррекции максимально эффективна.
Попутно необходимо отметить, что иногда проскакивают выражения неофитов о том что, мол, скорость то регуляторов все равно 400 Гц, какая разница? Тут важно не путать две вещи – скорость реакции регулятора и скорость работы пары «плата управления — регулятор». Даже имея скорость работы пары «полетный контроллер — регулятор» 400 Гц с неперепрошитыми регуляторами мы получим вышеописанную недостаточно устойчивую, замедленную стабилизацию платформы. Перепрошитый регулятор PWM может удерживать платформу в устойчивом состоянии и при частоте работы «мозг – регулятор» 60-100 Гц.
Неправдали, разница между 15 мкс и 130 мкс впечатляет — 10 раз! Вот и задумался однажды небезызвестный Simon Kirby aka Simonk, а как же убрать такой фильтр? Подумал хорошенько подперев кулачком голову, и пришла к нему мысль – перешивать! Регуляторы PWM сплошь и рядом тогда были на процессоре Atmega, поменять прошивку в нем, вообще то, не составляет труда, имея на вооружении программатор и подключившись к определенным выводам процессора. Осталось написать прошивку, что он и сделал. Опыт перепрошивки изложен в теме на форуме RC Groups, и мы пойдем по протоптаной тропинке.
Главная
Новости
Обзоры/Тесты
Видео
Проекты участников
FAQ
Ссылки
Перепрошивка или реинкарнация Plush
Существует три лагеря различных регуляторов. Первый, это регуляторы PWM, самые распространённые. Их ставят на самолеты, вертолеты, судо и автомодели. Второй лагерь поменьше, это регуляторы для шины I2C, такие стоят на небезызвестном немецком Mikrokopter и российском Русскоптере. Третий лагерь еще поменьше, регуляторы UltraPWM, стоят на редких моделях коптеров, можно упомянуть Xaircraft.
Немного теории
Если говорить о стабильности полета то впереди планеты всей, пока, немецкий проект с регуляторами на шине I2C. Тут уместно задать вопрос – почему Mikrocopter так удивительно устойчиво летает и фантастически стабильно висит? Секрет в том, что используются регуляторы I2C, они получают команду от полетного контроллера и немедленно её выполняют. Скорость отклика порядка 10-20 мкс. Стандартные регуляторы PWM не могут такой скоростью отклика похвастать. Почему? Потому что изначально проектировались под самолеты и вертолеты. Иногда в больших самолетах-копиях устанавливают коробку передач, для понижения оборотов и получения большего момента на винте. На вертолетах обязательно стоит понижающий ряд, так как тоже очень важно получить большой момент на главном роторе. Поскольку, при резкой смене оборотов, такая конструкция может попросту не выдержать и сломаться, нашли простой выход — внесли в программу управления регуляторов фильтр низкой частоты. Такой фильтр не позволяет очень резко менять частоту вращения, тем самым предохраняя шестерни от поломок. Вот это обстоятельство и не дает на коптерах использующих регуляторы PWM получить стабильность висения сравнимую с «немцем». Скорость отклика таких регуляторов порядка 130 мкс.
Если встать на место полетного контроллера то механика процесса такова. Гироскопы видят горизонт и все хорошо, висим ровно. Приходит внешнее возмущение, не важно кто послужил причиной пилот или ветер, гироскопы отмечают отклонение и дают команду соответствующему регулятору повысить обороты мотора чтобы скомпенсировать возмущение и выровнять платформу. Команда поступила надо выполнять, и регулятор PWM используя вшитую в него на производстве программу сглаживает резкий рывок выдавая на мотор воздействие растянутое во времени. Получается что ответная реакция недостаточна, и гироскопы видят прежнее отклонение, снова выдается корректирующая команда, и, наконец, выравниваемся практически рывками. При этом, чтобы не было осцилляций приходится скорость реакции «мозгов» занижать, задавливая ПИДы, подстраиваясь под медленную работу регуляторов PWM. В случае регуляторов на шине I2C это происходит быстро – видим отклонение и воздействуем до тех пор, пока не выровняемся – и из-за отсутствующего сглаживающего фильтра скорость такой коррекции максимально эффективна.
Попутно необходимо отметить, что иногда проскакивают выражения неофитов о том что, мол, скорость то регуляторов все равно 400 Гц, какая разница? Тут важно не путать две вещи – скорость реакции регулятора и скорость работы пары «плата управления — регулятор». Даже имея скорость работы пары «полетный контроллер — регулятор» 400 Гц с неперепрошитыми регуляторами мы получим вышеописанную недостаточно устойчивую, замедленную стабилизацию платформы. Перепрошитый регулятор PWM может удерживать платформу в устойчивом состоянии и при частоте работы «мозг – регулятор» 60-100 Гц.
Неправдали, разница между 15 мкс и 130 мкс впечатляет — 10 раз! Вот и задумался однажды небезызвестный Simon Kirby aka Simonk, а как же убрать такой фильтр? Подумал хорошенько подперев кулачком голову, и пришла к нему мысль – перешивать! Регуляторы PWM сплошь и рядом тогда были на процессоре Atmega, поменять прошивку в нем, вообще то, не составляет труда, имея на вооружении программатор и подключившись к определенным выводам процессора. Осталось написать прошивку, что он и сделал. Опыт перепрошивки изложен в теме на форуме RC Groups, и мы пойдем по протоптаной тропинке.
С теорией разобрались, наступил черед практики.Сразу хочу отметить несколько моментов:
Все что вы делаете – делаете на свой страх и риск!Если после перепрошивки у вас сгорит регулятор – претензии только к вам!
Перепрошиваем только «Flash», не изменяем и не перепрошиваем «Fuse»!Процесс перепрошивки необратим! Вернуть к заводской прошивке невозможно!Подопытным у нас выступит регулятор Плюш 30А, который категорически не захотел работать с контроллером Naza. Хотя прекрасно работал с CopterControl`ом.
Необходимо понять что схемотехника регуляторов разная, соответственно и программы для процессоров тоже нужны разные. Среди нас не все учились на электронщиков, и понять что у нас «граната другой системы» весьма непросто. Чтобы не вдаваться в поиски разницы между регуляторами с P-канальными и N-канальными ключами последователи Simonk`а составили удобную таблицу для определения какому регулятору какая прошивка подойдет. Любители картинок обрадуются – в таблице есть ссылки на интересные фотографии. В таблице аккумулируется опыт большого количества людей повторивших опыт Simonk`а и перепрошивших свои регуляторы. Теперь возьмем наш регулятор и попробуем определить какой системы «наша граната».
Первоначальное направление поиска нам задает название регулятора – Turnigy Plush 30A. Смотрим по таблице и находим соответствующую строку с указанием процессора Atmega.
ТАБЛИЦА:
https://docs.google.com/spreadsheet/ccc?key=0AhR02IDNb7_MdEhfVjk3MkRHVzhKdjU1YzdBQkZZRlE#gid=0 [docs.google.com]
Если вы не нашли в таблице своего регулятора, или нашли похожий, но снимки не совпадают – вам прямая дорога в ветку форума RC Groups в поисках опыта перепрошивки такого же регулятора. Много народу там топчется и отзывов с фотографиями оставляют много.
Ссылка:
http://www.rcgroups.com/forums/showthread.php?t=1513678 [rcgroups.com]
Аккуратно вскрываем термоусадку, осторожно поддеваем алюминиевые пластинки с термопроводящей подложкой и смотрим на плату.
Первое что нужно узнать – какой процессор установлен в наших регуляторах. Если это Atmega – можно идти дальше. Если это другой процессор, типа Silabs – придется тормозить и откладывать регулятор до лучших времен. Процесс написания прошивок под Silabs продвигается весьма сложно, и тестирование этих прошивок не завершено. А если залить в процессор неподходящую прошивку то регулятор как минимум не запустится, а как максимум сгорит. Вообщем, выпустить волшебный дым из регуляторов – пара пустяков.
Осматриваем плату и видим что, производитель Плюшей как будто специально для нас сделал контактные площадки — какая замечательная предусмотрительность. Это очень радует, так как, нам не придется прозванивать дорожки и искать соответствующие ножки процессора.
В случае с Плюшами, нет строки с 30А, но есть 25А со снимком платы – осматриваем плату в руках и снимок. Если нет отличий – значит это наша плата, и мы будем её перепрошивать. Парни которые перешивали их раньше, даже сделали отметки какая площадка какому выводу соответствует.
Если отличия есть, то пробовать не стоит, если у вас нет соответствующих знаний, так как последствия непредсказуемы. Как пример возьмем случай описанный Fifon`ом на форуме RC Groups. Как то отыскалась схема на регулятор Maytech 40А, проскакивали разговоры и утверждалось что HK Blue Series 40A, Maytech 40А и Mystery 40A идентичны по схемному решению, соответственно и прошивка для них одна. Fifon проверил сие допущение и на его регуляторе Mystery 40A сгорел один из элементов платы. Если внимательно сравнить приведенные на фото регуляторы, видно, что элементы немного другие и расположены иначе. Такой вот, печальный опыт…
В случае с Плюшами чуть проще, так как у Плюшей мощностью 18А, 20A, 25А, 30А идентичная плата с идентичными элементами, различается только количество FET ключей установленных на оборотной стороне.
В таблице еще немало интересной информации, которую, кстати, можем использовать до перепрошивки определясь надо нам это или нет. Например в столбце Pads мы видим, есть ли на плате регулятора контактные пластины. Из столбца Ext.Osc. мы можем узнать присутствует ли на борту у регуляторов внешний кварц. Из столбца FET мы узнаем тип ключей на нашем регуляторе, это послужит еще одним фактором определения типа регулятора (для тех кто в курсе как это сделать). В столбце Note мы можем увидеть особенности регулятора, в том числе и такую как Non programmable version, что означает не программируемую версию. Правее таблицы есть ссылки на ресурсы форума RC Groups с описанием идентификации пинов «Атмеги 8» и ссылка на форум OpenPilot где на английском языке описан процесс перепрошивки и фотографиями P-канальных и N-канальных ключей.
Итак, определились с типом регулятора, сравнили фотографии, определили тип ключей, поняли что «я могу это сделать» и находим в строке название файла который соответствуем нашему регулятору, в данном случае это «TGY.hex». Теперь скачиваем архив с прошивками из репозитория Simonk`а, там она всегда свежая и проверенная, и распаковываем в отдельную папку. И запоминаем что нам нужен файл с прошивкой — TGY.hex.
https://github.com/sim-/tgy/downloads [github.com]
Берем программатор AVR USB, например, из магазина
http://www.hobbyking.com/hobbyking/store/uh_viewItem.asp?idProduct=21321. [hobbyking.com] В комплекте с программатором идет шлейф с удобной «косичкой» и разъемом, который можно использовать для подпайки к пластинам на регуляторе. В документации на этот программатор нашлась ссылка на драйвер к программатору под Windows и удобную программу перепрошивки с графическим интерфейсом – eXtreme Burner AVR.
Документация PDF:
http://www.hobbyking.com/hobbyking/store/uploads/790901382X365809X5.pdf [hobbyking.com]
Ссылка на драйвер:
http://www.fischl.de/usbasp/usbasp-windriver.2011-05-28.zip [fischl.de]
Ссылка на программу:
http://extremeelectronics.co.in/software/BurnerAVR/eXtremeBurnerAVRSetupV1.2.exe [extremeelectronics.co.in]
Раньше, настоящие гуру использовали терминальную версию AVRDUDE в которой процесс перепрошивки инициировался параметрами вводимыми в командной строке. Что то типа «avrdude -C avrdude.conf -p m8 -c diecimila -P ft0 -U flash:w:bs.hex». Весьма нетривиальная штука, особенно если учесть что одна ошибка, и процессор не прошьется или прошьтеся неверно. А если учесть что существует много разных версий программаторов, в том числе и на Ардуино, работая с которым команды будут иметь другой вид, то… Нет, мы выбираем GUI.
Площадки очень мелкие и подпаиваться сложно. Для пайки возьмите безсмывочный флюс и избегайте кислотных флюсов. Будьте внимательны и ничего не перепутайте. От программатора идут 6 проводов. Кроме питания +5В, обозначенного на программаторе как VCC и «земли» GND, есть еще сигнальные линии необходимые для общения программатора и процессора – MISO, MOSI, RST и SCK. Обратите внимание на провода регулятора – они не должны быть замкнуты! Проще всего к «косичке» с разъемом отходящей от программатора припаять цветные провода, которые легче идентифицировать. Запишите себе соответствие цвета и соответствующей сигнальной линии, сверяясь с фото регулятора.
Подпаявшись к площадкам на плате регулятора и запустив программу eXtreme Burner можем приступить к самой перепрошивке, все подготовительные операции мы осуществили.
Обязательно установите в программе тип чипа с которым работаете!
В нашем случае это ATmega8. Все буквы которые вы увидите на своем процессоре после 8-ки несущественны.
Для начала проверим качество и правильность пайки к площадкам. Тоесть, считаем прошивку из процессора. Нажимаем в меню Read кнопку Flash с зеленой стрелкой.
Если мы сделали все правильно, то мы увидим процесс считывания и получим файл с содержимым типа «нечто». Не обольщайтесь, это не «родная» прошивка и мы не сможем её использовать чтобы вернуть регулятор к исходному состоянию. Производитель шифрует прошивку и при попытке чтения сливается всякий мусор, но никак не прошивка годная для работы регулятора. Поверьте, это так – уже проверяли.
Нам не нужно перешивать так называемые «фьюзы», или стартовые биты. В нашем случае они должны остаться неизменными!
Перепрошиваем только
«Flash»!Не читаем, не изменяем и не перепрошиваем
«Fuse Bits/Setting»!EEPROM нам тоже не нужен!
Это момент на который обязательно стоит обратить внимание.
Указываем где у нас лежит файл с прошивкой. Помните куда распаковали скачаный архив из репозитория Simonk?
Счастлив тот кто не врёт, кто придуманным живёт