03.11.2009

Что такое Arduino?

Последний раз изменялось: 23.01.2012

После очередного вопроса о том, что это за Arduino, о котором я периодически здесь пишу, наконец с ужасом понял, что почему-то всегда считал, что это должно быть и так всем известно. Исправляюсь ;)

Arduino - это свободная платформа для быстрой прототипизации электронных устройств, основанная на микроконтроллере ATmega и языке Wiring, поддерживаемая сообществом энтузиастов. Вы легко можете вступить в сообщество, чтобы внести свой личный посильный вклад.

Для работы потребуется Arduino-совместимая плата. Такую плату можно купить или изготовить самостоятельно, в ней нет ничего сложного. Она состоит из микроконтроллера и порта для последовательного подключения к компьютеру. Есть варианты для USB и COM.


Далее, необходимо скачать и установить бесплатную ArduinoIDE - интегрированную среду разработки, позволяющую редактировать, компилировать и загружать результат компиляции в плату Arduino.

По большому счету - это всё, остальное - детали.

Приходилось слышать, как люди, неплохо разбирающиеся в электронике, довольно снисходительно отзываются об Ардуино: дескать, копеечная вещь, ничего стоящего.

Действительно, именно так и кажется на первый взгляд. Контроллер ATmega168-20PU из семейства 8-битных RISC-процессоров ATMEL способен выполнять одну инструкцию за такт. Тактируется он, кстати, от кварцевого резонатора 16 МГц. Все его порты ввода-ввода выведены наружу, называются "пины" и разделены на цифровые и аналоговые (согласно  их назначению в самом микроконтроллере). Цифровые пины 0 и 1 помечены как "RX" и "TX" и  являются одновременно последовательным портом для связи с компьютером - к ним подключена микросхема FT232RL (мост с USB) или MAX232CPE (мост с COM). Реже встречается сопряжение с COM-портом на транзисторных ключах или полное отсутствие такового - тогда надо использовать внешнюю плату-переходник. На цифровом выходе 13 как правило расположен тестовый светодиод "L", который может быть использован разработчиком микропрограммы (ее часто называют скетчем - от англ. sketch - набросок) на свое усмотрение.

Так что, как видите, ничего сверхъестественного - напротив, все выглядит элементарно. На мой взгляд, секрет популярности скрыт в следующем:
  • открытые схемы и рисунки печатных плат
  • простота применения непрофессионалами
  • низкая стоимость Arduino-совместимой платы
  • поддержка сообщества

А теперь FAQ - немного вопросов и ответов, которые обычно задают в первую очередь..

(просмотреть полностью)

Q: Я ничего не хочу покупать, готов сделать сам. Где про это почитать?

A: Специально для DIY-мастеров есть модификация Arduino Severino, выполненная на односторонней печатной плате, содержащая только выводные компоненты. Схему, разводку печатной платы и лист для распечатывания на лазерном принтере для последующего использования ЛУТ можно найти здесь. Все схемы и чертежи остальных Arduino публикуются в обязательном порядке.

Q: Какие устройства я могу собрать с помощью Arduino?

A: Это ограничено вашей фантазией, быстродействием и объемом памяти микроконтроллера. Взгляните на игровую площадку.

Q: Можно ли подключить к Arduino мой любимый датчик?

A: Вполне вероятно, что это уже кто-то сделал. Но даже если нет, Arduino имеет не менее 6 каналов АЦП, поддержку I2C и последовательный порт - как правило этого достаточно для работы с 99% датчиков!

Q: Я хотел бы почитать книгу по Arduino. Где ее можно достать?
A: Книги есть платные и бесплатные. Пример платных М.Банзи "Getting Started With Arduino", пример бесплатных - Arduino Programming Notebook. Кстати, вышеприведенная платная книга в упрощенном варианте доступна свободно.

Q: Что такое шилд (shield-плата)?
A: Это плата-расширение, предназначенное для Arduino. Физически она пристыковывается к нему через колодки выводов (на шилд-плате расположена ответная часть в виде штырей). Как правило, таким способом можно добавить периферию, например поддержку Ethernet или управление  двигателями.

Q: Я боюсь, что мне не хватит пинов, ведь надо подключить так много устройств! Что мне делать?
A: Ну, во-первых, существует Arduino Mega, которая предоставляет 54 цифровых и 16 аналоговых пинов, однако она стоит дороже. Если под рукой есть пара логических микросхем, например 74HC595N, пины можно расширить у любого Arduino. Подробности в моей статье.

Q: Для каких операционных систем существует ArduinoIDE? Не хочу специально ставить Windows...
A: ArduinoIDE базируется на java и gcc, что гарантирует кроссплатформенность. Официальные сборки для Windows, Linux и Mac, есть неофициальная для OpenSolaris. Все необходимое уже есть в скачиваемом пакете (~70 Мб).

Q: Слышал, что в Arduino бывают разные процессоры. Зачем это надо?
A: Разные контроллеры имеют разные возможности: ATmega8-16PU, ATmega168-20PU, ATmega328P-PU имеют разный объем памяти (8К, 16К и 32К соответственно), исполнены в в корпусе DIP-28, размещены на панельке и могут быть заменены при необходимости (например, если в результате неосторожных экспериментов вышли из строя). Контроллеры ATmega1280-AU, ATmega2560-AU выполнены в SMD-корпусе и имеют размер памяти программ (128К и 256К), несколько аппаратных последовательных портов и гораздо большее число пинов ввода-вывода (и цифровых, и аналоговых). Последний контроллер, официальная поддержка которого была добавлена - ATmega32U4 имеет 32К памяти программ и встроенный контроллер USB.

Q: Мне понравилась идея, я хочу изготавливать и продавать платы Arduino. Могу я этим заниматься законно?
A: Да. Но слово "Arduino" зарегистрировано как торговая марка на итальянских отцов-создателей, поэтому сначала надо получить их разрешение. Если это вас не устраивает, просто назовите ее по-другому, внесите легкую модификацию в схему, и - пожалуйста, делайте свой собственный бизнес!

Q: Что такое Arduino-совместимая плата? Можно ли ее использовать для проектов Arduino?
A: Совместимость плат определяется двумя простыми показателями: во-первых, совместима ли она с ArduinoIDE, а во-вторых - совместима ли она с Shield-платами. Полностью совместимых плат существует великое множество, постоянно появляются новые. Я пишу о них под отдельным тегом ArduinoCompatible. Самая известная из совместимых плат, которые может изготавливать кто угодно (см. вопрос выше) - Freeduino.

(список вопросов расширяется по мере их поступления, можете писать к комменты ;)

5 комментариев:

  1. Илья , в вопросе " Я ничего не хочу покупать, готов сделать сам. Где про это почитать?" вы выложили ссылку на железку на основе pic18f2550 а не на atmel'e =) но этот проект тоже интересный =) как раз есть такой пик =)

    ОтветитьУдалить
  2. Спасибо, действительно перепутал ;) А про этот проект собираюсь написать, но все руки не доходят проверить на практике.

    ОтветитьУдалить
  3. по этой ссылке схема только для сом-порта, нет ли поблизости где нибудь схемы для USB? Или я что-то неправильно понял? =)

    http://arduino.cc/en/Main/ArduinoBoardSerialSingleSided3

    ОтветитьУдалить
  4. Плат для USB полно - только они двусторонние - например.

    ОтветитьУдалить
  5. Спасибо большое, просто только ноутбук и никак. =)))

    ОтветитьУдалить