Arduino

Материал из MediaWiki
Перейти к навигации Перейти к поиску

Что такое Arduino

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

  • Датчики: температуры, влажности, освещенности, растяжения, угла поворота, задымления, и так далее.
  • Исполнительные устройства: шаговые двигатели, двигатели со встроенными редукторами, сервоприводы, помпы для перекачки жидкостей, реле для управления внешними устройствами на 220 вольт, маломощные лазеры, дисплеи, и так далее.
  • Модули связи: ZigBee, ethernet, bluetooth, смс.

С кратким видеообзором Arduino можно ознакомиться на канале Pro Hi-Tech (YouTube).

Для чего Arduino уместно использовать

Для быстрого прототипирования

То есть в ситуации, когда у вас есть идея какого-то электронного устройства, и вы хотели бы испытать или проверить эту идею на практике. Быстрота достигается за счет того что:

  • Многие части будущего устройства можно найти в уже готовом виде, не тратить время и силы на их изготовление и сопряжение друг с другом.
  • Микроконтроллер позволяет очень гибко экспериментировать с поведением (с логикой работы) будущего устройства, без перепайки электрической схемы.

Для низкого порога вхождения

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

  • Есть готовая электрическая обвязка вокруг микроконтроллера и вокруг многих периферийных устройств. Изготовление стабильно работающей, не зависящей от внешней среды схемы требует опыта и квалификации: нужно обеспечить защиту от ЭМИ, учесть влияние топологии печатной платы (длину и ширину дорожек, их форму и так далее) и множество прочих мелких деталей. В случае Arduino эта задача частично решена за вас.
  • Arduino SDK, среда для написания программ, очень высокоуровневая. Она скрывает от вас детали работы аппаратуры и тем самым упрощает воплощение вашей идеи.
  • Можно найти много готовых библиотек для взаимодействия с периферией и много примеров программ.

Критика и альтернативы

Arduino hardware

Arduino как аппаратная платформа острой критики не вызывает. Тем не менее, имеются следующие претензии:

  • Завышенная цена. Обычная AVR продается по цене cortex-a8 с гигом памяти.
  • Расстояние между контактами таково, что не получится «просто воткнуть» Arduino в макетную плату.
  • Привычка использовать готовые компоненты, вместо того чтобы пытаться делать всё самому и собирать на этом пути все возможные грабли, замедлит ваш рост как электронщика.

В качестве альтернативной аппаратной платформы можно рассмотреть STM Discovery Board.

Смотрите также:

Arduino software

Высокоуровневый Arduino SDK, самопальный язык программированияwut? и качество библиотек вызывают в сообществе неоднозначную реакцию: одни их резко критикуют, другие считают что изъяны Arduino software отчасти компенсируются возможностью получить конечный результат быстро и с меньшими усилиями на освоение.

Проблема с высокоуровневостью SDK состоит в том, что разработчик теряет понимание происходящих в действительности процессов. В некоторых случаях это ухудшает характеристики устройства и ограничивает круг решаемых задач. Например, в Arduino SDK есть функция analog output. Допустим, вы захотели использовать её для плавного управления яркостью мощного светодиода. Подключили транзистор, к нему светодиод, всё работает, всё правильно. При этом вы не догадываетесь, что если убрать конденсатор из фильтрующей цепи analog output, то на небольшой яркости ваше устройство будет жить от батареек в несколько раз (!) дольше, а транзистор почти что не будет греться. Но это было бы несложно понять, если такую задачу вы решали бы прямой работой с железом, а не через Arduino SDK.

В некоторых случаях Arduino SDK не удается запустить под управлением Linux.

Способ отказаться от Arduino software, потеряв в легкости освоения и по сути превратив свою Arduino в «просто плату с AVR-кой»:

  • Использовать avrdude, avr-libc и общепринятый язык программирования — Си.
  • Чтобы самому не париться с мейком и прочим, можно попробовать вот это: http://github.com/nekromant/antares. Оно почти стабильно, есть примеры для msp430, avr, stm32, 8051. Для STM32F1X есть все необходимые перифлибы, скоро будет и USB стек. Для AVR есть vusb.

Полезные ссылки