Запомните номер порта, который появляется при подключении контроллера. В вашей системе он может отличаться от номера на иллюстрации. Номер также может измениться при включении в другое гнездо USB. Больше никакие действия по настройке подключения не требуются. Если драйвер установлен правильно, вы не должны вообще обращаться к настройкам порта, Windows все сделает автоматически.
Рис. 5.6.
Среда разработки
Прошивка распространяется в виде набора файлов исходных кодов, включая специальный файл конфигурации. В общем случае, в файл конфигурации необходимо внести поправки в соответствии со своими нуждами, а затем скомпилировать прошивку и записать ее в полетный контроллер. Это несложно, даже если раньше вы никогда не сталкивались с программированием микроконтроллеров.
Прежде всего, скачайте с сайта vnvw.arduino.сс самую свежую версию среды разработки Arduino IDE. На момент написания книги это была версия 1.6.1. Если вы захотите использовать старую версию прошивки MultiWii v2.20, то для компиляции придется использовать архивную версию Arduino ГОЕ 1.0.5, иначе при компиляции будут возникать ошибки. Для установки достаточно запустить инсталлятор и подтвердить запросы на установку по умолчанию. Обе версии Arduino ГОЕ могут быть установлены на компьютер одновременно, но в разные папки.
После окончания установки подключите контроллер к компьютеру и запустите Arduino IDE. Откроется стартовое окно с пустым проектом. В терминах Arduino программа для микроконтроллера называется скетч. Теперь нужно настроить компилятор под нужный микроконтроллер и указать номер порта для связи. Выберите меню Инструменты | Плата | Arduino Mega 2560.
Затем выберите порт: Инструменты | Порт
и задайте номер порта СОМ, который соответствует вашей плате. Если плата не подключена, то нужный порт в списке не появится.Примечание
Микроконтроллер АТМеда2560 оснащен энергонезависимой памятью (EEPROM) емкостью 4096 байт. В этой памяти хранятся настроечные константы прошивки MultiWii. Перед загрузкой новой прошивки EEPROM необходимо очистить. В противном случае прошивка может работать неправильно, либо не заработает вообще.
Для очистки EEPROM загрузите специальный короткий скетч из папки готовых примеров Arduino: Файл | Образцы | EEPROM | eeprom_dear. Скетч откроется в новом окне, но настройки платы и порта останутся прежними.
Примечание
Имейте в виду, что загрузка любой новой программы в память контроллера стирает записанную ранее. Если вы взяли чужой контроллер на время или не уверены, что хотите уничтожить имеющуюся прошивку, то не загружайте в память контроллера новые программы!
В строке
for (int i = 0; i < 512; i++)
исправьте значение 512 на 4096, чтобы очистить EEPROM полностью:
for (int i = 0; i < 4096; i++)
Теперь нажмите кнопку со стрелкой для загрузки программы в микроконтроллер. В течение нескольких секунд произойдет компиляция исходного текста программы в машинные коды, затем плата весело замигает светодиодами во время загрузки прошивки. Примерно через три секунды после загрузки светодиод А на плате начнет светиться постоянно. Это означает, что процесс очистки EEPROM завершен и контроллер готов к записи и настройке новой прошивки. Файлы примеров Arduino IDE защищены от записи, поэтому сохраните исправленный скетч очистки EEPROM в другое удобное место.
Память EEPROM нужно чистить, если:
• это первая загрузка прошивки в память контроллера, или предыдущая версия неизвестна;
• меняется версия прошивки;
• меняется тип коптера;
• меняется состав датчиков платы или их тип;
• после записи новой прошивки коптер стал вести себя неадекватно.
В остальных случаях, когда вы ограничиваетесь правкой настроечных параметров, стирать EEPROM перед повторной записью прошивки не надо.
Настройка базовых опций кода прошивки
Ранее вы скачали и разархивировали проект прошивки MultiWii. Проект состоит из нескольких файлов. Файлы скетчей имеют расширения ino или срр; файлы так называемых заголовков имеют расширения h. В среде Arduino имя папки проекта обязательно совпадает с именем главного файла проекта. Например, если папка носит имя MultiWiiAIOP, то главный файл в этой папке называется MultiWii_AIOP.ino.