Персональные инструменты
Счётчики
В других энциклопедиях

Участник:Коллектив Авторов/Arduino

Материал из Lurkmore
Перейти к: навигация, поиск
Recycle.pngЭта статья находится на доработке.
Эта статья всё ещё не взлетела и не соответствует нынешним реалиям /lm/. Но добрый Коллектив Авторов приютил её в своём личном пространстве, и теперь она может тихо гнить неспешно дописываться здесь вечно.Дата последней правки страницы: 07.10.2014

Ардуино (англ. Arduino, рус. пердуина) — электронный конструктор на базе микроконтроллера и простой среды программирования. Ввиду своей дешевизны и доступности весьма популярен как среди небыдло-школоты, так и среди взрослых дядек, всерьез занимающихся разработкой электронных устройств.

Содержание

Область применения

Сабж изначально заточен под создание интерактивных устройств (получили сигнал с датчика — отреагировали включением или отключением исполнительного устройства). Из этого непосредственно следуют его основные применения:

  1. Любительские поделки. Типичный пример — домашняя автоматизация: от напоминания злобным писком, что посетитель сортира забыл за собой смыть и выключить свет, и до… на что хватит фантазии и комплектующих.
  2. Обучение основам цифровой электроники и программирования. Мигающий светодиод™ — это здесь.
  3. Проектирование и макетирование цифровой электроники. Особенно ценится студентами соответствующих специальностей, так как позволяет за один вечер сделать курсовую работу, собрав и запрограммировав прототип на базе сабжа.

Матчасть

Основная плата

Сабж образца 2014 года.
Размер платы 68*53 мм.

Плата, что неудивительно для конструктора, ничего особенного собой не представляет: собственно контроллер (на фото — ATmega 328P), минимальный набор всякой мелочи и — самое главное! — разъемы под периферию. На самом деле, у Arduino Uno на плате целых два контроллера: квадратная фиговина с 32 ногами являет собой точно такой же контроллер AVR ATmega модели 16U2, который не сильно отличается от 328P (16 кб памяти вместо 32 кб, зато с аппаратной поддержкой УПШ) и обеспечивает связь «главного» контроллера с компутером, выполняя функции программатора и аппаратного отладчика. Инженер-ага намекает, что вспомогательный контроллер тоже может быть доступен разработчику, хотя это и требует сильного колдунства (спойлер: два шестиконтактных разъема внутрисхемного программирования (ICSP) на плате служат для подключения внешнего программатора к соответствующему контроллеру).

Периферия

В результате надмозгового перевода с итальянского на аглицкий внешние модули сабжа получили название «щит» (англ. shield; по-русски их, разумеется, никто щитами не называет). Тысячи их! Строгой классификации нет и быть не может, но большинство из них принадлежит одной из следующих категорий:

  1. датчики (температуры, влажности, освещенности, магнитного поля, черта лысого итд.)
  2. исполнительные устройства (от светодиодных индикаторов до мощных симисторов с опторазвязкой, позволяющих коммутировать многокиловаттные нагрузки — например, электрочайник)
  3. накопители (мелкосхемы памяти, SD-флешки итд.)
  4. коммуникационные устройства (например, Bluetooth и WiFi)
  5. свистелки
  6. дуделки
  7. перделки
  8. прочая хуйня

Программирование

Среда разработки

Язык

Си, синьоры! Можно использовать либо канонiчный C/C++ (и компилятор avr-gcc), либо специальное его подмножество, специально разработанное для сабжа. Упрощенно говоря, можно считать, что где-то в недрах описана куча хитрых макросов (посредством #define) и определена функция main() примерно такого содержания:

void main(void)
{
 setup();
 
 for(;;)
  loop();
}

Пример программы

// мигающий светодиод™
#define LED_PIN 13 // см. фото: к этой ноге прямо на плате припаян светодиод
 
void setup()
{
  pinMode (LED_PIN, OUTPUT); // будем использовать для вывода
}
 
void loop()
{
  digitalWrite (LED_PIN, HIGH); // включаем светодиод
  delay (1000); // ждем секунду (1000 миллисекунд)
  digitalWrite (LED_PIN, LOW); // выключаем светодиод
  delay (1000); // опять ждем секунду
}

Где взять?

Если хочется дешево и сердито — Китайпосылторг в помощь: для этого в простейшем случае достаточно зайти на Aliexpress и сказать «хочу сабж», после чего выбрать продавца, у которого рейтинг повыше, а цены пониже. Если сердитость важнее цены — есть Digikey, Mouser, Sparkfun и прочие наркодилеры.

В чем наебалово?

В цене периферийных модулей. Если цена китайского клона платы с контроллером вполне сравнима с ценой аналогичной платы, изготовленной на заказ в той же Поднебесной, то за обвес (даже китайский) приходится платить заметно больше — разумеется, по сравнению с обычными комплектующими.

Инженер-ага рекомендует более бюджетный и интересный, хотя и более сложный вариант: купить макетную плату (англ. "solderless prototype board"; прямо так и искать), в которую можно воткнуть дополнительные детали, а потом все это соединить между собой и подключить к сабжу проводами (англ. "jumper wire"). Ну а после того, как все номиналы деталей подобраны и большинство багов отловлено, уже можно собирать окончательный вариант устройства.

См. также

Радиолюбитель