Arduino - популярный open source или же, правильнее сказать, open hardware проект. Эта небольшая плата на основе недорогого программируемого микроконтроллера возвращает нас во времена, когда слова "компьютерщик" и "радиолюбитель" были практически синонимами.
Made in Italy
Несколько лет назад группа энтузиастов-радиолюбителей из Италии разработала простое и недорогое программируемое устройство Arduino. Это устройство предназначалось для обучения новичков программированию микроконтроллеров, а также для всех, кто интересуется интерактивными электронными устройствами. Для программирования Arduino были также созданы несложный язык и среда разработки программ.
Благодаря своей простоте и лёгкости использования Arduino быстро завоевал популярность у радиолюбителей. Эти программируемые электронные изделия стали неплохо продаваться. Поклонниками устройства стали также многие из тех, кто мало разбирался в микроконтроллерах, начиная с "офисного планктона" вплоть до домохозяек.
Уже несколько лет популярность этого незамысловатого цифрового устройства не уменьшается. Данный факт вынуждает даже некоторые солидные компьютерные издания обратить внимание на это "чудо природы". Известное издательство O'Reilly выпустило даже книгу, посвящённую Arduino.
Многие недоумевают, почему такое банальное устройство, которое может создать на коленке любой опытный радиолюбитель, завоевало народную любовь. Я к простоте освоения добавил бы ещё несколько условий, на мой взгляд, сделавших Arduino популярным.
Немаловажным фактором популярности устройства ещё является его практическая ценность. Arduino можно использовать не только для простых учебных поделок с парой-тройкой мигающих светодиодов. Устройство способно решать и практические задачи. Управление различными датчиками, двигателями и роботами, создание различных электронных акустических приборов и многое другое - всё это возможно при помощи Arduino.
Устройство имеет связь с персональным компьютером через COM-порт, USB или Bluetooth. Поэтому к практическим достоинствам Arduino можно отнести и возможность интерактивного взаимодействия этого модуля с программами на компьютере.
Важным является ещё то, что итальянские энтузиасты сделали архитектуру Arduino и программное обеспечение открытым на основе свободных лицензий Creative Commons и GPL. Поэтому сейчас свободно расплодились клоны проекта вплоть до домашних самоделок, что ещё больше способствует популярности Arduino.
В контексте открытости нужно отметить ещё и важный для многих "ностальгический" момент. Итальянский проект - это как бы призрак старого доброго IBM PC, когда компьютер представлял собой открытую архитектуру.
Выпуском оригинальных плат занимается итальянская компания Smart Progect. С недавних пор Arduino набирает популярность и на постсоветском пространстве. В Российской Федерации оригинальные платы можно приобрести через интернет-магазины. Существуют российские клоны Arduino - например, Free Arduino.
У нас в Беларуси, как всегда, всё самое модное появляется значительно позже других. Официально изделие пока не продаётся. Можно только попытаться купить с рук или же сделать самому.
Всё гениальное просто
Поговорим теперь непосредственно о самом устройстве. Платформа Arduino, сделавшая программирование микроконтроллёров массовым занятием, ничего сверхординарного собой не представляет. Аппаратная часть представлена платой, на которой, в зависимости от модели, имеется микроконтроллер серии AVR фирмы Amtel ATmega168 или ATmega8, флэш-память, аналоговые и цифровые входы/выходы для подключения внешней периферии.
Для заливки программ в память Arduino и интерактивной связи с компьютером модуль первоначально использовал COM-порт. Более современные модели используют уже Bluetooth или USB.
Возиться со специальным программатором для прошивки Arduino тоже не нужно. Оригинальное устройство в своей флэш-памяти уже содержит загрузчик программ. Он занимает около двух килобайт памяти и по команде с персонального компьютера загружает готовую программу и передаёт ей управление. То есть загрузчик отдалённо напоминает работу приснопамятной однозадачной DOS.
Не обязательно для программирования Arduino изучать ассемблер и мнемонику команд микроконтроллёра AVR. Программируется Arduino на специально созданном для него и начинающих радиолюбителей языке Wiring. Этот язык основан на C/C ++, имеет "сишный" синтаксис и свои библиотечные функции, специфичные именно для этого проекта.
Для примера привожу простейшую программу из учебной коллекции. Данная учебная программа, будучи загружена в память Arduino, просто будет моргать встроенным светодиодом.
int ledPin = 13; void setup () { pinMode(ledPin, OUTPUT); } void loop() { digitalWrite(ledPin, HIGH); delay(1000); digitalWrite(ledPin, LOW); delay(1000); }
Для создания программ Arduino имеется простая среда разработки. Она написана на JAVA и является надстройкой над компилятором AVR GCC. Программы преобразуются в код на языке C/C++ и затем компилируются c помощью AVR GCC. Среда разработки является кроссплатформенной и существует для всех популярных операционных систем.
То есть, в конечном итоге, процесс программирования Arduino совсем не страшен. Нужно подключить устройство к компьютеру, в среде разработки набрать и скомпилировать код и прямо из этой среды прошить программу в память Arduino. И всё.
Процесс ещё больше упрощает то, что для Arduino энтузиастами написано уже достаточно много программ и примеров для использования. Так что во многих случаях не нужно изобретать велосипед, а пользоваться уже готовым кодом. Огромное количество примеров можно найти на официальном сайте, в частных блогах и даже на YouTube.
Михаил АСТАПЧИК
Горячие темы