20.01.2010

Уроки Wiring (2)

Урок 2. ArduinoIDE

(продолжение, начало см. Урок 1. Что внутри Arduino?)

Чтобы программировать, нам потребуется ArduinoIDE. Хорошая новость состоит в том, что она абсолютно бесплатная, с открытым исходным кодом. Отправляемся на страницу http://arduino.cc/en/Main/Software и выбираем самую-самую последнюю версию под нужную операционную систему. На момент написания статьи это была сборка 0017, официально поддерживались Windows, MacOS и Linux, энтузиасты сделали пакеты для OpenSolaris.

Для Windows архив занимает чуть больше 80 Мбайт, зато там есть всё необходиме, в том числе драйвера.

Итак, что делает программист, получая в распоряжение свежехакнутуюустановленную IDE? Первым делом - пишет программу HelloWorld, которая только и делает, что выдает на экран "Hello, world!". Зато, после этого можно расслабиться: две трети дела сделано - осталось всего лишь написать программный продукт, который потрясет мир.

Итак, распаковываем arduino-0017.zip в какую-либо папку (в этом поможет свободный PeaZip). Инсталляция не требуется, поэтому просто запускаем из этой папки arduino.exe (можете набраться храбрости и сделать ярлык на рабочем столе ;).

После запуска мы увидим что-то наподобие этого:



Вверху привычно маячит строка меню, ниже - спартанский тулбар для вызова наиболее частых операций; белое поле - собственно область редактора, где надо писать программу (в терминах Ардуино - "набросок" или sketch). Черное поле - информационный экран для выдачи ругани диагностических сообщений ArduinoIDE.

Пусть в качестве "Hello World" наша Duemilanova помигает своим тестовым светодиодом L. Создатели дистрибутива заботливо разместили необходимый нам скетч в секции примеров, остается только загрузить:



Самое время подключить Arduino к нашему компьютеру с помощью кабеля USB A-B. Если все верно, загорится светодиод PWR, а остальные слегка мигнут. Дотошные могут понажимать на кнопку сброса и посмотреть, как светодиод L вспыхивает при каждом нажатии. Если он будет вспыхивать и без нажатия - не пугайтесь, именно так и происходит, когда в Arduino еще не загружено ни одной рабочей программы.

Единственный момент - надо утрясти вопрос с драйверами. Обычно, после подключения последовательно обнаруживаются два устройства: FT232R USB UART и USB Serial Port:





Устанавливать надо, естественно, оба устройства. В ответ на удивленные возгласы Windows надо послать ее за драйверами в каталог:

arduino-0017\drivers\FTDI USB Drivers

В итоге вы должны добраться до такой страницы:



Если это произошло, то теперь при подключении Arduino в диспетчере устройств будет появляться еще один COM-порт. Если у вас их много, то надо зайти в

Панель управления -> Система -> Оборудование -> Диспетчер устройств

...и поискать USB Serial Port (не отключайте Arduino!). При желании его можно здесь же изменить (Свойства | Port Settings | Advanced Settings):





ОК, номер порта выяснили, теперь возвращаемся обратно в ArduinoIDE и сообщаем ей об этом  через меню Tools | Serial Port:



Затем, чтобы компилятор правильно оттранслировал скетч в исполняемый код, надо установить тип платы и микроконтроллера. Внимательно прочитайте название микроконтроллера на своей плате Ардуино, затем выберите свой вариант в меню Tools | Board:



Если вы на этом шаге перепутаете тип микроконтроллера, то скетч просто не загрузится в Arduino после компиляции. А вот если вы спутаете тип платы, возможен легкий курьез - скетч будет работать либо в два раза быстрее, либо в два раза медленнее, чем задумано ;) Для простоты, будем предполагать, что у нас Duemilanova с ATmega328, так как именно этот вариант наиболее распространен. Если у вас на чипе написано ATmega168-20PU или ATmega8-16PU, можете купить ATmega328P на замену (никаких переделок в схеме - вынули старый, поставили новый). Таким образом, памяти под скетч станет гораздо больше.

Все готово, теперь выбираем меню Upload to I/O Board или нажимаем кнопку Ctrl+U:





Ждем. Произойдет следующее:
  • скетч будет скомпилирован (сначала преобразован из Wiring в язык C, потом в объектный код и наконец в загрузочный файл);
  • ArduinoIDE сбросит плату, что приведет к остановке работающего в настоящий момент скетча и старту специальной микропрограммы-bootloader-а;
  • Загрузочный файл будет передан в Arduino (мигают светодиоды L, Rx - чуть ярче, Tx - чуть слабее);
  • Память Arduino будет прочитана и произойдет сравнение с исходным файлом - верификация (мигают светодиоды L, Rx - чуть слабее, Tx - чуть ярче);
  • Bootloader нехотя передаст управление скетчу.
Итак, если все верно, светодиод L начнет мигать, приветствуя мир и сообщая о том, что наш первый скетч заработал:




Что дальше? В следующем уроке мы разберем скетч "Blink" более подробно.

Комментариев нет:

Отправить комментарий