Электрификация

Справочник домашнего мастера

Платы для ардуино

Допустим, вы хотите сделать мобильный проект, будь то метеостанция за окном на солнечных батареях, переносной датчик температуры/влажности/качества воздуха на батарейках или детектор инопланетян на аккумуляторе – какую основную плату arduino выбрать?

Конечно, я не беру здесь в учет, что на выбор платы определяющим фактором будет влиять ее функционал: количество портов, мощность центрального процессора, память, но, так или иначе, немаловажным “пунктом” мобильного устройства является энергопортебление. Или проще говоря, сколько времени продержится наше устройство на батарейках/аккумуляторе без подзарядки, пока не “сдохнет”.

Список участников

В наличии у меня оказалось 9 основных плат:

Тестируемые платы

Особенности

На фото есть 2 пары почти одинаковые плат NANO и UNO. Основное отличие – используемый чип для соединения по USB с компьютером. В оригинальных платах UNO (100% копии оригиналов) чип стоит Atmega16u2, в аналогах – CH340. В оригинальных NANO чип FTDI, в аналогах – CH340.

Оригинал (копия)

Копия платы UNO на чипе 16u2:

  • Точная копия оригинальных плат
  • Драйвер на windows ставится автоматически при установке оболочки программирования Arduino IDE с официального сайта arduino.cc
  • Дороже аналога на чипе CH340
  • Энергопотребление выше, чем у аналога

Аналог – плата выполняет те же функции, просто немного отличается

Аналог UNO на чипе CH340:

  • Имеет дополнительные дырки для припаивания штырьковых разъемов типа “папа”, что увеличивает удобство подключения датчиков и устройств к плате без использования breadboard
  • Некоторые аналоги имеют дырки для дополнительных аналоговых разъемов A6 и A7 (у оригинала только A0-A5)
  • Необходимо отдельно устанавливать драйвер, чтобы windows увидела плату как com-порт
  • Дешевле оригинала (копии) на чипе 16u2
  • Энергопотребление ниже, чем у оригинала

NANO 3.0. Оригинал (копия) слева, аналог – справа

Ситуация с NANO: просто в разнице чипов (драйверов) и, соответственно, в энергопотреблении.

Какая плата лучше, оригинал или аналог? Мой совет такой. Совсем новичкам лучше оригинал: не важно энергопотребление, с breadbord количество пинов на плате не важно особо, зато есть плюс – плата заводится с пол-оборота, без установки сторонних драйверов. Так сказать, plug-and-play. Лично мой выбор – плата на чипе CH340.

Кстати, вот и драйвер на Windows для чипа CH340.

Arduino MEGA 2560. Оригинал (копия)

Тест энергопотребления

Честно говоря, изначально я думал что beetle leonardo окажется “менее прожорливым” участником, чем все остальные платы – скорее всего из-за самых скромных размеров из всего списка! Но результаты оказались немного другими.

Касательно самого теста – измерялась сила тока (mA) в разрыве цепи до основной платы в двух вариациях: при питании через xUSB порт стабилизированными 5v (эмуляция lipo аккумулятора и платы boost конвертера напряжения 3,7v->5v) и при питании от 9v (эмуляция 6 пальчиковых батареек по 1,5v).

Потребление тока:

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

И график (меньше – лучше), построенный по этой таблице, как результат:

Сравнение энергопотребления arduino и raspberry (Ватт)

Моменты, которые нужно уточнить:

  • Потребляемый ток у raspberri pi скачет в пределах 80..150 mA при простое, и эта плата питается только от microUSB 5v. Raspberry PI B+ включен в тест ради интереса – все-таки это немного другой класс устройств. Это полноценный компьютер с мощным процессором для сложных задач, обработки видео и аудео, работы с камерами и внешними дисками… но и, конечно, с возможностью подключать датчики и сенсоры!
  • Beetle leonardo питается тоже исключительно 5v
  • У всех плат при питании от 9v энергопотребление выше, чем при питании от 5v – это результат использования стабилизатора напряжения, который позволяет питать платы в широком диапазоне напряжений (7-12v)

Результаты теста

Итак, исходя из графика, видно что безусловным победителем теста на самое меньшее энергопотребление является LilyPad USB! При питании от аккумулятора 3,7v плата потребляет всего 33mW! Также, пятерку лучших в этом тесте составляют (при питании от 5v):

  • Arduino Pro Mini 5v – 85 mW
  • Arduino UNO R3 (CH340) – 90 mW
  • Arduino Nano 3.0 (CH340) – 100 mW
  • Beetle leonardo – 105 mW

Они вписываются в 100 mW. Так что, делайте выводы при выборе платы для измерения температуры и влажности за окном, если хотите, чтобы метеоустройство было автономным!

Лично мой выбор: Arduino Nano 3.0 (CH340) – из-за ее следующих качеств:

  • миниатюрный размер
  • дает напряжения: 5v и 3,3v
  • много пинов
  • USB порт на плате для программирования

Примечания:

  • beetle leonardo и pro mini не дают 3,3v
  • LilyPad дает исключительно 3,3v
  • у pro mini нет USB порта, и ее нужно программировать через USBtoTTL адаптер
  • у LilyPad и beetle leonardo маловато портов для моих проектов
  • а UNO R3 (CH340) слишком громоздкая

Этим и обусловлен мой выбор Arduino Nano 3.0 (CH340) в качестве основной платы для мобильных устройств.

Уменьшение энергопотребления в спящем режиме

Также для автономных или мобильных проектов может понадобится интересная библиотека: JeeLib library. Она поможет загнать вашу плату в глубокий сон (что значительно снижает энергопотребление) и будить только по необходимости! Про использование библиотеки и немного больше можете почитать на английском на сайте openhomeautomation.

Удачных вам экспериментов!

Содержание

Какова максимальная потребляемая мощность Arduino Nano 3.0?

Ну, это зависит от того, что вы приложили к Arduino. Если вы используете контакты, чтобы делать что-то, вам будет требовать больше тока.

Если вы хотите только ТОЛЬКО активировать arduino , я подсчитал, что я думаю, что он должен быть ниже. (Вы также должны проверить у кого-то, у кого есть это устройство, экспериментальное значение, а не только на расчетное значение.)

Затем у вас есть 2 светодиода с резисторами 680 Ом. (Предполагая падение на 2 вольта для каждого светодиода) (5-2) /680 = около 4 мА на светодиод.

33,4 мА * 5 В = 0,167 Вт

Я подозреваю, что вы хотите знать, что общий объем энергии, который может создать источник arduino , что немного сложнее рассчитать.

Штыри могут обеспечивать до 200 мА. (стр. 303 http://www.atmel.com/images/doc2545.pdf ) Таким образом, 33,4 + 200 = 233,4

Я бы также добавил 20% запаса прочности (около 50 мА) Поэтому я хотел бы получить 280 мА, если бы я собирался приложить ардуино к разным вещам.

280 мА * 5 = 1,4 Вт

Сообщите мне, если мои номера удалены.

PS: Будьте осторожны, создавая свой запас. Очень важно, чтобы напряжение было очень стабильным. Нестабильная поставка может /уничтожит ардиуно. Я предлагаю использовать регулятор линейки , например lm7805 . или lm317

Лучшие аналоги Ардуино UNO / NANO

Бюджетные аналоги Ардуино от российских и китайских производителей по своим характеристикам и качеству изготовления сегодня практически ничем не отличаются от оригинальных плат Arduino UNO. Рассмотрим в этом обзоре с помощью каких совместимых микроконтроллеров можно без проблем заменить довольно дорогие оригинальные платы Arduino, чтобы использовать их в своих проектах.

Совместимые аналоги Arduino

ESP8266 производит китайская компания Espressif. Плату можно использовать в качестве шилда к Arduino Nano для связи по Wi-Fi, но также можно использовать и как отдельный микроконтроллер, который имеет собственные GPIO-порты и UART, SPI-интерфейсы. В качестве питания ESP8266 используется ток 3,3 В. Для прошивки можно использовать Arduino IDE, но необходимо сделать дополнительные настройки.

Teensy 3.5 — компактная плата совместимая с Arduino IDE на русском, но имеющая больше возможностей из-за мощного процессора. Используется в технических проектах со сложными программами, например, обработка звука, распознавание образов и т.д. Плата Teensy построена на базе 32-разрядного микроконтроллера Atmel с ядром ARM Cortex® M4 с частотой 180 МГц и Flash-памятью для программ 512 КБ.

NodeMCU — это плата на основе модуля ESP8266 с микропроцессором с тактовой частотой 80 МГц и Flash-памятью 4 МБ. Плата используется для проектов, где требуется управление на расстоянии посредством Wi-Fi. Плата имеет 11 портов ввода/вывода GPIO, которые можно использовать в качестве UART, I2C и SPI интерфейса. Прошивается NodeMCU через Arduino IDE с предварительной установкой драйвера.

Плата ESP8266 и Teensy 3.5 — совместимые с Ардуино платы

Несовместимые аналоги Arduino

RASPBERRY PI

Raspberry Pi — это одноплатный компьютер, который работает на операционной системе Linux, возможна установка лицензионной Windows 10 IOT. Выпускается Raspberry в нескольких вариантах: «A», «B», «Zero», «Zero W» и другие с частотой 700 МГц и ОЗУ на 256 МБ или 512 МБ. Raspberry Pi имеет порты ввода/вывода GPIO, благодаря этому плату можно использовать в проектах для управления устройствами.

PARTICLE PHOTON

Particle Photon — плата для разработки проектов IOT (интернета вещей) на базе микроконтроллера ARM Cortex с Wi-Fi. В отличие от Arduino, родным напряжением платы Photon является 3,3 Вольт. GPIO порты выдают 3,3 Вольта, а в режиме входа принимают до 3,3 Вольт. Программируется Particle Photon с помощью смартфона/планшета через приложение Particle или через ПК через Web-приложение.

BeagleBone отлично подойдет для создания проекта в области домашней автоматизации, т.к. устанавливает коммуникацию между веб-браузером и GPIO-контактами на плате с напряжением 3,3 В. Для программирования микроконтроллера BeagleBone используется среда Cloud9 IDE. Работает плата на частоте 720 МГц и имеет ОЗУ 256 МБ. На BeagleBone установлен разъем для microSD, с которой грузится Linux.

Российские аналоги Arduino

CraftDuino и Iskra JS — аналоги Ардуино российского производства

CraftDuino — это российская уникальная плата, созданная на открытой платформе Arduino. Микроконтроллер совместим со средой программирования Arduino IDE и Arduino шилдами, но производители внесли в схему несколько улучшений для удобства использования. CraftDuino построен на ATmega168/328 с частотой процессора 16 МГц. Распиновка портов GPIO и питание платы не отличается от Arduino UNO.

ISKRA JS

Iskra JS тоже плата российского производства со встроенным интерпретатором JavaScript. Программируется на языке JavaScript в среде Espruino IDE (расширение для браузера Google Chrome). При этом Iskra JS полностью совместима с шилдами для Arduino. Микроконтроллер ARM Cortex-M4 работает на частоте 168 МГц — этого вполне достаточно для управления сложной автоматикой, системой умного дома и т.д.

RobotDyn — это не просто плата, а целая линейка оригинальных плат на базе Arduino, но имеющая свои преимущества. Во первых более удобный порт USB-mini для подключения к компьютеру. Для программирования в среде Arduino IDE потребуется установить дополнительно драйвер для чипа CH340G. Кроме того, на плате RobotDyn UNO и NANO увеличено количество аналоговых входов, установлены порты A6 и A7.

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

Для тех кому лень читать, озвучу важный вывод с некоторым опережением.
Все «размеры» и разновидности ардуино-плат абсолютно совместимы друг с другом — если вас заинтересовал проект на ArdinoNano — ничто вам не помешает реализовать его на обычной Ardino(Freeduino) или ArdinoMega(SeeduinoMega), причём ни в коде ни в схеме переделывать ничего не придётся. Можно и наоборот, например, с «меги» на «мини» — лишь бы выводов/памяти хватило (часто в проектах применяются откровенно избыточные платы), изучайте характеристики. Так же никакой разницы нет в выборе конкретной платы внутри размерного ряда — берём проект для ArduinoDiecimila(DFRduino) и спокойно делаем его на UNO(CraftDuino) и наоборот!
Тем более нет НИКАКОЙ принципиальной разницы, кто сделал эту плату и как она называется — это не айфон — качественно можно собрать такую плату и в подвале.

Ниже обо всех нюансах, подробно и с картинками.

Как известно, ардуино придумали в Италии, оригинальные платы там и делают. С них и начнём.

Оригинальные платы.
Сами итальянцы выпускают плату в нескольких основных форм-факторах:
Ardino xxx — стандартный размер, 20входо-выходов, полная совместимость со всеми шилдами.
ArdinoMega xxx — увеличенный размер, 70входо-выходов, совместимость не со всеми шилдами.
ArdinoNano xxx — уменьшеный размер, 22входо-выхода, не совместима с шилдами.
ArdinoMini ххх — ещё меньший размер, 20входо-выхоов, не совместима с шилдами, не имеет USB.

Весь итальянский зоопарк можно увидеть тут.

Ardino xxx

Стандартный и самый распространённый размер. Когда говорят «ардуина» («обычная ардуина») — обычно все сразу представляют именно такие платы.
Самые первые платы были в этом этом форм-факторе, соответственно именно он пережил больше всего реинкорнаций (USB-версии в хронологическом порядке выхода):
Extreme, NG, Diecimila, Duemilanove, Uno, Leonardo.
Вы не поверите, но ощутимая разница для пользователя наблюдается только в Леонардо=))
Сейчас на оф. сайте предлагается к покупке только Leonardo и Uno, однако интернет завален вариантами Duemilanove (наша CraftDuino именно её разновидность=) и не зря — всё что нужно среднему пользователю было воплощено ещё в Ardino Extreme, с тех пор поменялось крайне мало=)
Все эти платы имеют одинаковое количество входов-выходов, собранных на одинаковые разъёмы (для подключения перефирии и шилдов), программируются по USB, и имеют микроконтроллер ATMega на борту. На ранних версиях стоял ATMega8, потом стали ставить ATMega168, потом ATMega328.

На «восьмёрке» только 3 ШИМ выхода, 8Кб под скетч 1Кб оперативки, но для многих приложений хватает=) У ATMega168 уже 6 ШИМ каналов и 16Кб под ваши нужды, а у 328-й 32Кб под программы и уже 2Кб оперативки. Кстати не вся флеш-память доступна пользователю, часть её занимает бутлоадер.

На всех платах до UNO стоял чип-преобразователь USB-UART FT232, позволяющий втыкать плату прямо в USB и программировать без программатора. При втыкании в системе появлялся виртуальный COM-порт, который и используется средой разработки Ардуино для программирования.

UNO

На UNO решили заменить хардварный преобразователя USB-UART, на микроконтроллер Atmega8U2 (в более поздних ревизиях 16U2)- в него залита специальная прошивка, делающая ровно то же что и FT232.
Что это дало?
Поднялась скорость прошивки — теперь вместо ~10секунд надо ждать ~3c =)
А главное, в этот МК-конвертор можно залить свою прошивку, и превратить ардуино в мышку, клавиатуру или миди устройство… наверняка кому-то это очень надо=)
Только делается это как-то не очень по-ардуиновски, и примеров пока крайне мало=( ИМХО, фича, совсем не для начинающих.
Так что, если ваша цель изменение протокола обмена платы и компа, вы хотите делать трушную клаву-мышь-МИДИдевайс ( вот, кстати, «не трушный» миди-пульт, на самой обычной ардуине=) тогда конечно вам нужна именно UNO. И если вам предстоит писать объёмную прошивку для этого (использовать исходники большого объёма), тогда нужно искать последнюю ревизию UNO — с Atmega16U2 (у неё в два раза больше памяти программ)
Да, тут ещё стоит оговориться — эта Atmega8U2/16U2 на самом деле делает не ровно то же, что FT232, она не реализует очень удобной фичи — BitBang-а, так что превратить плату в программатор таким нехитрым образом уже не получится.
Но всё же можно.

«стандарт» arduino 1.0 pinout

Ещё зоркие должны были заметить появление новых пинов на разъёмах UNO. Ага, появились — на «верхнем левом» коннекторе — SDA и SCL — пины интерфейса i2c, но они дублирующие (SDA и SCL и так сидят на 4 и 5 аналоговых входах) и функционал это не расширяет. Плюс «нижний левый» коннектор подрос, то же на 2 пина — резервный и IOREF. Резервный пин болтается в воздухе — никуда не подключен, а на IOREF глухо засажен на 5 вольт (схема). Когда-нибудь это всё, наверное пригодится… а на данный момент — старые шилды встают в UNO, как родные, новые шилды (коих пока крайне мало 1, 2 3 4 ), полностью совместимы со старыми платам хотя и грозят уткнуться в неё новыми пинами — их, возможно, придётся подогнуть или откусить.
Резюмируя моё сугубо личное мнение — нет никаких поводов гоняться именно и только за UNO, кроме случая когда вы собираетесь переписать прошивку USB-UART конвертора, а если вы не знаете что это — то вам точно нет никакой необходимости именно в уне=)
Тут всё то же про уну но по-короче=)

Вот это действительно шаг вперёд — всё на одном чипе, USB независим ни от UART ни вообще от каких бы то ни было пинов!
Итак, плата построена на ATmega32u4 и по сравнению с предыдущими моделями прокачалась.
На 0,5кБ увеличилась оперативка, ШИМ-выходов стало на 1 больше, аналоговых входов стало 12 (6 сидят где у всех Ардуино-плат, новые +6 разбросаны по цифровым пинам) и, как уже говорилось, разделены USB и UART.
Так же незатейливо поддерживаются, не только виртуальный ком порт, но и мышь и клавиатура, гораздо проще чем это реализовано в UNO.
Ну и, конечно, разъём micro-USB=)
Правда «шаг вперёд» вышел с нюансами — долго боролись с разнообразными глюками и затягивали выход, пара всё-таки осталась (функции tone и attachInterrupt), к тому же бутлоадер теперь занимает 4кб! А ещё в любой скетч для леонардо пихается поддержка USB — blink для Duemilanove/UNO займёт 1084 байт, а для Leonardo — 4858 байт=\
Физически леонардо имеет ту же разводку что и UNO, так что так же совместим со старыми шилдами.

ArdinoMega xxx

Серия прокачанных плат (по размеру и характеристикам) представлена моделями (в хронологическом порядке): Mega, Mega2560 и Arduino ADK.
В платы успешно втыкаются почти все шилды, но из-за разного (с «обычными» ардуинами) расположения выводов SPI-интерфейса, шилды использующие его с цифровых пинов 11,12,13 будут не совместимы. Пример — старый эзернет шилд. На новом SPI берётся со стандартной вилки ISP и всё отлично работает и на «мегах», и на «обычных» дуинах.
На платах куча выводов:
54 цифровых
из них 15 — с ШИМ
16 — аналоговых,
Куча памяти:
128/256кб — флэш,
8кб оперативки,
4кб еепрома
и целых 4 хардварных UART-а!
«Мега» построена на ATmega1280, а «2560» и «ADK» на ATmega2560, поэтому различаются платы обьёмом памяти, к тому же у свежих — 2560 и ADK — USB-часть выполнена на ATmega8U2 (на более поздних ревизиях 2560 — на ATmega16U2), тут всё как у УНО.
А у ADK ещё и USB-host имеется, от которого ожидается большая дружба с Android-телефонами=)

ArdinoNano
Маленькая платка с mini-USB. Шилды к ней не подходят, но сама она удобно втыкается в макетку.
Ранние версии использовали ATmega168, сейчас стоят 328.
В качестве USB-UART моста стоят FT232.

ArdinoMini
Ещё меньшая плата. (Да-да, именно, тут какой-то исторический ляп — ардуино мини, почему-то значительно меньше ардуино нано=)
Пережила несколько версий — имеющих незначительные отличия в назначении некторых выводов.
С шилдами не совместима, но удобна для встраивания в законченные девайсы — ничего лишнего.
На мини нет USB — программируется она с помощью переходника USB-Serial (например на базе той же FT232).
Так же на плате стоит весьма маломощный стабилизатор, а из светодиодов — только индикатор питания и то на последних версиях=).
Есть варианты платы работающие на 3,3В и 8МГц, раньше ставили ATmega168, сейчас стоят 328.

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

Проект ардуино — полностью открытый (доступна вся техническая документация необходимая для производства) и платы благополучно копируют и творчески перерабатывают все кому не лень=)
Ограничение касается только названия «Arduino» — его нельзя использовать для обзывания не итальянских плат (китайцы, естественно, плевали=) поэтому более законопослушные производители изгаляются с производными, много уже напридумали, кстати=)

Всё, что наплодили неитальянцы, можно условно разделить на три группы: «клоны», «совместимые» и «ардуино-подобные».

Клоны
Тут всё просто — берём документацию с сайта ардуино и тупо сдаём на производство, при желании изменив цвет маски и название (некоторые китайцы не желают=)
Такие платы («клоны») полностью повторяют ардуину и полностью совместимы с ней. То есть, разница между клоном и оригиналом — только в производителе (+иногда в цвете=) — соответственно различия могут быть только в качестве сборки, качестве компонентов, строгости выходного контроля. С качеством — всё на совести производителя/продавца и на ваше эстетическое восприятие/везение.
В целом, повторюсь — не айфон, никаких космических технологий для сборки таких плат не нужно, и обеспечить достойное качество вполне может средний китайский подвал=) ИМХО за оригиналом гоняться особого смысла нет.
Да, чуть не забыл, у оригинальных плат в комплекте коробочка из тонкого, экологически чистого, цветного картона. И брошюрка с заверениями об экологичности и протестированности платы, а также повествующая, о том, что производители отказываются нести ответственность за использование платы в аэрокосмических/автомобильных/военных/ядерных/медицинских целях=)
видео распаковки)

Совместимые
Некоторые, наверное, более сознательные товарищи, пошли не путём копирования, а решили что-то добавить в проект (помимо своего названия и цвета маски) и повыдумывали ворох своих плат полностью совместимых с ардуино — условно их можно назвать «совместимыми переработками» (переосмыслениями=)

Например:
Freeduino
Freetronics Eleven
Seeeduino
CraftDuino
Diavolino
Japanino
и ещё многие-многие=)
Как правило доработки и переработки носят довольно эстетический характер (не несут принципиальных изменений функционала или характеристик) иначе платы потеряли бы совместимость. Обычно это дополнительные разъёмы, другое расположение светодиодов и кнопок, своя разводка, применение других компонентов (в других корпусах, других размеров), другие схемы питания, сброса, USB-части.
Повторюсь, этот класс плат полностью совместим с ардуино — и шилды можно втыкать и с ИДЕ работают как родные. Ярчайший пример — указанные на оф. сайте у итальянцев плата ArduinoPro (упрощена схема питания и убрана USB-часть) на самом деле их придумали и делает Sparkfun=)
Естественно, основным размером плат не ограничиваются — есть версии и мини- и нано- и мега- совместимых переработок, правда в этих случаях совместимость не такая уж важная вещь.

Тут я всё талдычу совместимо-несовместимо, пора уточнить что имеется ввиду.
Совместимость с ардуино складывается из двух вещей:

1.Совместимости с платами расширениями — шилдами. Для этого расположение и вид разъёмов должен быть как на итальянской Arduino Duemilanove/UNO. Так, например, самая что ни на есть итальянская-оригинальная «Нано» с шилдами не совместима=)
Естественно провода и скотч никто не отменял — соединить можно что угодно=)

2.Програмная совместимость. (программная часть проекта ардуино — это среда разработки(ИДЕ), библиотеки и скетчи)
На платах ардуино установлены микроконтроллеры фирмы Atmel, семейства ATMega — ATMega8/168/328 — на всех кроме Мега(ATMega1280/2560) и Леонардо(ATMega32U4).
Обычно тактируются эти МК кварцевым резонатором на 16МГц (Реже 8МГц)
Питаются МК на платах от 5В (реже 3,3В)
Загрузка скетчей происходит через бутлоадер(специальная программа-загрузчик заранее прошитая в МК), хотя в последних версиях среды появилась опция прошивки скетча через программатор, так что это уже, пожалуй, не критерий=)
Так вот, ЛЮБАЯ плата удовлетворяющая перечисленным условиям (Тип контроллера, частота, напряжение питания, наличие бутлоадера) сможет использовать все наработки сообщества Arduino — и скетчи, и библиотеки, и писать всё это можно будет в той же среде Arduino, и загружать оттуда же.
При наличии прямых рук, можно подпилить библиотеки для использования не в среде ардуино или среду для использования плат с нехарактерными МК или частотами их работы. Но вроде как у нас тут начинающие рассматриваются — какие правки среды и библиотек?!
Так что будем считать программно совместимыми только те платы, которые корректно заработают без всяких допиливаний.

Ардуино-подобные
Некоторые идут дальше и вносят более существенные изменения теряя совместимость (с шилдами) такие платы можно назвать ардуино-подобными.

К ним можно смело отнести, расположенные в официальном зоопарке:
ArdinoFio — плата для портативных устройств с питанием от литиевых батарей.
LilyPad — круглая плата для «электронной одежды»
ProMini, значительно отличающаюсяя версия ардуино мини.
Всех их, тоже выдумал и клепает Sparkfun=)

Менее известные общественности примеры — древняя Roboduino — плата для управления кучей сервоприводов. Несмотря на общие с ардуиной очертания — шилды в неё втыкать не выйдет, да и не предполагалось=)
Менее похожая на родоначальника Rainbowduino, — для управления светодиодными матрицами,
и ни на что не похожая гибкая версия Seeeduino Film от Seeedstudio.

Или вот ещё мегакомбайн-всё-в-одном DINo Internet Ethernet IO board тоже совместим лишь программно.
Собственно, как мы уже сказали, ардуино-подобной может считаться (и является) любая плата с ATMega8/168/328/32U4/1280/2560, 16/8Мгц, 5/3,3В, так что в этом месте классификация/перечесление срывается в бесконечность=)

Узнаем как повысить эффективность наших проектов Arduino за счет снижения энергопотребления разными способами.

Вступление

Arduino Uno и Pro Mini не работают эффективно в ситуациях, когда с ними приходится работать с использованием батареек. В таких ситуациях каждый миллиампер тока имеет значение. Arduino Uno потребляет минимум 15 мА тока, что звучит не так плохо, но в определенных ситуациях эта цифра быстро возрастает.

Arduino Uno — это плата, построенная с несколькими различными схемами, включая USB-последовательный преобразователь, регуляторы, индикаторы, процессоры, цепь защиты от короткого замыкания, цепи управления повреждением и т.д. Она потребляет больше энергии, чем необходимо.

Далее мы рассмотрим различные способы снижения энергопотребления Arduino путем изменения аппаратного обеспечения или использования программного кода.

Библиотеки Arduino для низкого энергопотребления

Официальный сайт Arduino предоставляет библиотеки для низкого энергопотребления плат Arduino, позволяющие использовать функции с низким энергопотреблением.

Давайте посмотрим на две таких библиотеки:

  1. External Wake-Up (внешнее пробуждение): с помощью этой библиотеки ваша Arduino выйдет из спящего режима при нажатии внешней кнопки. Вы можете использовать такой код, чтобы разбудить Arduino с помощью датчика.
  2. Timed Wake-up (запланированное пробуждение): пробуждает Arduino после заданного количества времени в режиме сна.

Вышеуказанные режимы ожидания снижают энергопотребление Arduino Uno в режиме ожидания. Однако они почти бесполезны, потому что все, кроме MCU на плате, все еще активно и продолжает потреблять энергию. Мы протестировали этот метод и не ушли ниже 50 мА, минимального числа, которое можно получить в этом режиме.

Режим глубокого сна

Режим глубокого сна (Deep Sleep Mode) помогает Arduino потреблять гораздо меньше энергии, чем режим сна. Он переводит MCU в глубокий спящий режим и все, кроме периферийного RTC, останавливается. ЦП можно пробудить с помощью RTC или любого прерывания в коде.

Ток, потребляемый Pro Mini в глубоком сне, может падать от 25mA до 0.57mA.

Замедление тактовой частоты Arduino

Тактовая частота платы Arduino определяет, сколько операций она может выполнять в секунду. Большинство плат Arduino работают с тактовой частотой 16 МГц. Уменьшение этого значения до 8 МГц может снизить необходимый ток с 12 мА до 8,5 мА. В долгосрочной перспективе метод может отключить большую часть энергопотребления и продлить срок службы батареи.

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

Важно! Изменение тактовой частоты может привести к проблемам с загрузчиком и повреждению Arduino.

Пример кода замедления частоты

#include <avr/power.h> void setup() { if(F_CPU == 8000000) clock_prescale_set(clock_div_2); if(F_CPU == 4000000) clock_prescale_set(clock_div_4); if(F_CPU == 2000000) clock_prescale_set(clock_div_8); if(F_CPU == 1000000) clock_prescale_set(clock_div_16); }

Замена или пренебрежение энергопотреблением компонентов

Встроенный регулятор напряжения ограничивает входное напряжение входного разъема постоянного тока. Регулятор не очень эффективен и около 58% входной энергии теряется в виде тепла или используется для внутреннего питания. Лучше заменить этот компонент более эффективными понижающими преобразователями постоянного тока DC-DC. Некоторые ступенчатые преобразователи постоянного тока или понижающие преобразователи могут достигать 92%.

Arduino Uno использует небольшой линейный регулятор напряжения в TO223 SMD пакете. Чипсет Traco TSRN1 — отличный вариант для пакета, доступного на Arduino Uno.

Питание 5V регулируемого напряжения через 7805 IC извне является гораздо более эффективным способом. Это лучший вариант для удаления встроенного регулятора для снижения энергопотребления. Без регулятора напряжения сбрасывается ток около 2,7 мА.

Индикатор питания (светодиод) постоянно горит, что указывает на то, что плата получает достаточное количество питания. Снятие светодиода питания может снизить ток в 2,85 мА в нормальном режиме. В спящем режиме без светодиода энергопотребление Arduino UNO составляет всего 30,8 мкА.

Снижение напряжения питания Arduino

Один из очень простых способов снизить энергопотребление платы Arduino — снизить напряжение питания. Arduino может работать при низком напряжении 3,3 В и при падении напряжения питания с 5 В до 3,3 В потребляемый ток падает с 4 мА до менее 1 мА.

При напряжении 3,3 В рекомендуемая максимальная частота составляет около 13 МГц в соответствии с таблицей ATmega 328. Таким образом, слишком сильное снижение напряжения без снижения тактовой частоты приводит к странному поведению микроконтроллера. Тактовая частота 8 МГц — оптимальный вариант.

Делаем собственную Arduino

Если внесение этих изменений в ваш Arduino или работа с компонентами SMD вас не устраивает или вы боитесь повредить плату, тогда лучшим решением может стать создание собственной платы Arduino. Отсутствие энергозатратных компонентов и только Микроконтроллер (MCU) для выполнения задачи — наша главная цель.

По теме: Как сделать свою собственную плату Arduino Uno

Схема построена вокруг микросхемы ATmega. Для этого вы можете использовать ATmega 8 или ATmega328 или любой пустой программируемый микроконтроллер, а также кристалл и кнопку сброса. Для удобства можно добавить регулятор напряжения 7805.

Как мы используем эту схему:

  1. Подготовьте схему на универсальной плате или макете, но используйте 40-контактный разъем IC.
  2. Загрузите необходимый код на плату Arduino.
  3. Выньте микросхему из Arduino и подключите ее к вашей схеме. Все готово!

Этот способ прост, и для загрузки задач не требуется никакого внешнего загрузчика.

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

  • Использование режима сна и режима глубокого сна;
  • Уменьшение тактовой частоты;
  • Замена или удаление ненужных компонентов;
  • Понижение напряжения питания на плате;
  • Создание собственной Arduino.

Среди этих методов некоторые работают как по волшебству, а некоторые только в определенных ситуациях. Чтобы еще больше снизить энергопотребление ваших проектов на базе Arduino, выключайте внешние устройства, такие как SD-карты, с помощью MOSFET, когда они не используются. Кроме того, не используйте ненужные дисплеи с подсветкой или индикацией.

Arduino: выбор платы, подключение и первая программа

Александр Ланский

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

1

Из чего состоит Arduino?

На аппаратном уровне это серия смонтированных плат, мозгом которых являются микроконтроллеры семейства AVR.

Платы имеют на борту всё необходимое для комфортной работы, но их функциональности часто бывает недостаточно. Чтобы сделать свой проект более интерактивным, можно использовать различные модули и платы расширений, совместимые с платформой Arduino. Сюда входят датчики (температуры, освещения, влаги, газа/дыма, атмосферного давления), устройства ввода (клавиатуры, джойстики, сенсорные панели) и вывода (сегментные индикаторы, LCD/TFT дисплеи, светодиодные матрицы).

На программном уровне платформа Arduino представляет собой бесплатную среду разработки Arduino IDE. Микроконтроллеры надо программировать на языке C++, с некоторыми отличиями и облегчениями, созданными для быстрой адаптации начинающих. Компиляцию программного кода и прошивку микроконтроллера среда разработки берёт на себя.

Существует также s4a.cat — сервис, базирующийся на Scratch, позволяющий более наглядно вести разработку на Arduino. Он подойдёт для обучения детей, а также если вы разово хотите создать простое устройство без изучения языка программирования Arduino и различных документаций. Для остальных же случаев лучше придерживаться традиционного процесса разработки.

2

Нужно ли уметь паять?

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

Макетная плата на 400 отверстий (имеются шины питания по бокам). Источник

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

Набор для изучения Arduino. Источник

3

Какие бывают платы

По производителю

Существуют как официальные версии плат Arduino, так и платы от сторонних производителей. Оригинальные платы отличаются высоким качеством продукта, но и цена тоже выше. Они производятся только в Италии и США, о чём свидетельствует надпись на самой плате.

На примере самой популярной платы Arduino UNO:

  • Оригинальная плата. Поставляется только в фирменной коробке, имеет логотип компании, на портах платы — маркировка. Цена от производителя 20 €.

    Оригинальная плата Arduino UNO. Источник

  • Плата от стороннего производителя. Качество хуже, однако цена начинается от 150 рублей. Качество платы может отразиться на её работоспособности в дальнейшем. Хоть это и редкость, но плата и вовсе может не работать «из коробки» — всё зависит от добросовестности изготовителя и продавца. Для работы с подобными платами требуется драйвер CH340, который находится в свободном доступе. Во всём остальном процесс разработки идентичен процессу разработки на оригинальных платах.

    Плата Arduino UNO от стороннего производителя. Источник

По назначению

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

Различные платы Arduino. Источник

Самые популярные из них:

  • Arduino Nano — различие с UNO только в конструктивном исполнении. Nano меньше.
  • Arduino Mega — плата на базе мощного микроконтроллера. Имеет большое количество портов.
  • Arduino Micro — имеет встроенную поддержку USB-соединения, а потому может использоваться как HID-устройство (клавиатура, мышь, MIDI-устройство).
  • Arduino Ethernet — имеет возможность подключения к сети через Ethernet-провод. На плате также расположен слот для microSD карточки.
  • Arduino Mini — по характеристикам немного уступает UNO. Преимуществом платы является её миниатюрное исполнение.
  • Arduino Due — плата на базе 32-разрядного ARM микроконтроллера. Имеет преимущество в производительности по сравнению с остальными.
  • Arduino LilyPad — форм-фактор позволяет использовать плату в предметах одежды и текстиля.
  • Arduino Yún — «нужно было ставить линукс…». Имеет поддержку дистрибутива Linux, встроенную поддержку Ethernet и Wi-Fi, слот для microSD. Как и Micro, имеет встроенную поддержку USB-соединения.

4

Установка ПО

После выбора необходимой платы нужно установить бесплатную среду разработки Arduino IDE, которую можно найти на официальном сайте, а также, по необходимости, драйвер CH340.

Недавно открылась облачная платформа Arduino Create, которая покрывает большинство этапов разработки (от идеи до сборки). Вам не нужно ничего устанавливать на свой компьютер, всё необходимое платформа берёт на себя. В первую очередь — онлайн редактор кода.

В Arduino Create имеется доступ к обучающим материалам, проектам. Вы сможете общаться с профессионалами и помогать новичкам.

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

5

Особенности программирования на платформе Arduino

Термины

Программный код для Arduino принято называть скетчами (англ. sketches). У скетчей есть два основных метода: setup() и loop(). Первый метод автоматически вызывается после включения/сброса микроконтроллера. В нём происходит инициализация портов и различных модулей, систем. Метод loop() вызывается в бесконечном цикле на протяжении всей работы микроконтроллера.

Порты — неотъемлемая часть любого микроконтроллера. Через них происходит взаимодействие микроконтроллера с внешними устройствами. С программной стороны порты называются пинами. Любой пин может работать в режиме входа (для дальнейшего считывания напряжения с него) или в режиме выхода (для дальнейшей установки напряжения на нём).

Любой пин работает с двумя логическими состояниями: LOW и HIGH, что эквивалентно логическому нулю и единице соответственно. У некоторых портов есть встроенный АЦП, что позволяет считывать аналоговый сигнал со входа (например, значение переменного резистора). Также некоторые пины могут работать в режиме ШИМ (англ. PWM), что позволяет устанавливать аналоговое напряжение на выходе. Обычно функциональные возможности пина указываются на маркировке самой платы.

Основные функции

Для базовой работы с платой в библиотеке Arduino есть следующие функции:

  • pinMode(PIN, type) — указывает назначение конкретного пина PIN (значение type INPUT — вход, OUTPUT — выход);
  • digitalWrite(PIN, state) — устанавливает логическое состояние на выходе PIN (state LOW — 0, HIGH — 1);
  • digitalRead(PIN) — возвращает логическое состояние со входа PIN (LOW — 0, HIGH — 1);
  • analogWrite(PIN, state) — устанавливает аналоговое напряжение на выходе PIN (state в пределах от 0 до 255);
  • analogRead(PIN) — возвращает значение аналогового уровня сигнала со входа PIN (пределы зависят от разрядности встроенного АЦП. Обычно разрядность составляет 10 бит, следовательно, возвращаемое значение лежит в пределах от 0 до 1023);
  • delay(ms) — приостанавливает исполнение скетча на заданное количество миллисекунд;
  • millis() — возвращает количество миллисекунд после момента запуска микроконтроллера.

В остальном процесс программирования на Arduino такой же, как на стандартном C++.

6

Пишем первую программу

Вместо всем привычных Hello World’ов в Arduino принято запускать скетч Blink, который можно найти в Файл→Примеры→01.Basics→Blink. Там же можно найти множество других учебных скетчей на разные темы.

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

Рассмотрим скетч Blink:

// Эта функция запускается при старте микроконтроллера void setup() { // Назначаем пин выходом. На пине LED_BUILTIN находится встроенный светодиод, размещённый на плате pinMode(LED_BUILTIN, OUTPUT); } // Эта функция вызывается циклически void loop() { digitalWrite(LED_BUILTIN, HIGH); // Включаем светодиод (подаём на него логическую 1 — напряжение питания микроконтроллера) delay(1000); // Ждём секунду digitalWrite(LED_BUILTIN, LOW); // Выключаем светодиод (подаём на него логический 0 — напряжение земли) delay(1000); // Ждём секунду }

Прошивка

После написания необходимо «залить» скетч на микроконтроллер. Как уже говорилось, платформа Arduino берёт весь процесс прошивки микроконтроллера на себя — вам лишь необходимо подключить плату к компьютеру.

Перед прошивкой микроконтроллера нужно выбрать вашу плату из списка в IDE. Делается это во вкладке Инструменты→Плата. Большинство существующих плат уже там есть, но при необходимости можно добавлять другие через Менеджер Плат.

После этого нужно подключить плату Arduino к любому USB-порту вашего компьютера и выбрать соответствующий порт во вкладке Инструменты→Порт.

Теперь можно приступать к прошивке микроконтроллера. Для этого достаточно нажать кнопку Загрузка, либо зайти на вкладку Скетч→Загрузка. После нажатия начнётся компиляция кода, и в случае отсутствия ошибок компиляции начнётся прошивка микроконтроллера. Если все этапы выполнены правильно, на плате замигает светодиод с периодом и интервалом в 1 сек.

7

Обмен данными с компьютером

У всех плат Arduino есть возможность обмена информацией с компьютером. Обмен происходит по USB-кабелю — никаких дополнительных «плюшек» не требуется. Нам нужен класс Serial, который содержит все необходимые функции. Перед работой с классом необходимо инициализировать последовательный порт, указав при этом скорость передачи данных (по умолчанию она равна 9600). Для отправки текстовых данных в классе Serial существуют небезызвестные методы print() и println(). Рассмотрим следующий скетч:

void setup() { Serial.begin(9600); // Инициализируем последовательный порт на скорости 9600 бод } void loop() { Serial.println(«T for Tproger»); // Отправляем сообщение по последовательному порту и переводим на новую строку delay(1000); // Ждём секунду }

В Arduino IDE есть Монитор порта. Запустить его можно через Инструменты→Монитор порта. После его открытия убедитесь, что Монитор работает на той же скорости, которую вы указали при инициализации последовательного порта в скетче. Это можно сделать в нижней панели Монитора. Если всё правильно настроено, то ежесекундно в Мониторе должна появляться новая строка «T for Tproger». Обмен данными с компьютером можно использовать для отладки вашего устройства.

Информацию на стороне компьютера можно не только получать, но и отправлять. Для этого рассмотрим следующий скетч:

void setup() { Serial.begin(9600); // Инициализируем последовательный порт на скорости 9600 pinMode(LED_BUILTIN, OUTPUT); // Инициализируем порт со светодиодом как выход } void loop() { if (Serial.available() > 0) // Если в буфере есть байт для чтения, то… switch (Serial.read()) { // Считываем байт с буфера case ‘1’: digitalWrite(LED_BUILTIN, HIGH); // Если байт равен ‘1’ — включаем светодиод break; case ‘0’: digitalWrite(LED_BUILTIN, LOW); // Если байт равен ‘0’ — выключаем светодиод break; case ‘T’: Serial.println(«proger»); // Если байт равен ‘T’ — отправляем по серийному порту текст «proger» } }

Прошиваем микроконтроллер и возвращаемся в Монитор порта. Вводим в верхнее поле 1 и нажимаем Отправить. После этого на плате должен загореться светодиод. Выключаем светодиод, отправив с Монитора 0. Если же отправить символ T, в ответ мы должны получить строку «proger».

Таким способом можно пересылать информацию с компьютера на Arduino и обратно. Подобным образом можно реализовать связь между двумя Arduino.

8

А как подключать модули?

Для работы с датчиками и модулями их изготовители создают специальные библиотеки. Они служат для простой интеграции модулей в вашу систему. Подключение библиотеки возможно с zip файла или с помощью Менеджера Библиотек.

Однако большое количество датчиков являются бинарными, т. е. считывать информацию с них можно простой функцией digitalRead().

Что такое Arduino: платформа для изучения электроники

Arduino — это небольшая плата с собственным процессором и памятью. На плате также есть пара десятков контактов, к которым можно подключать всевозможные компоненты: лампочки, датчики, моторы, чайники, роутеры, магнитные дверные замки и вообще всё, что работает от электричества.

В процессор Arduino можно загрузить программу, которая будет управлять всеми этими устройствами по заданному алгоритму. Таким образом можно создать бесконечное количество уникальных классных гаджетов, сделанных своими руками и по собственной задумке. Для того, чтобы понять идею, взгляните на иллюстрацию. Она не отражает и миллионной доли всех возможностей, но всё же даёт первичное представление:

Сложно ли это?

Свою бешеную популярность Arduino приобрела благодаря простоте и дружелюбности. Даже полный ноль в программировании и схемотехнике может освоить основы работы с Arduino за пару часов. Этому поспособствуют тысячи публикаций, учебников, заметок в интернете и отличная серия видеоуроков по Arduino на русском языке.

Программы для Arduino пишутся на обычном C++, дополненным простыми и понятными функциями для управления вводом/выводом на контактах. Если вы уже знаете C++ — Arduino станет дверью в новый мир, где программы не ограничены рамками компьютера, а взаимодействуют с окружающим миром и влияют на него. Если же вы новичок в программировании — не проблема, вы с лёгкостью научитесь, это просто.

Для удобства работы с Arduino существует бесплатная официальная среда программирования «Arduino IDE», работающая под Windows, Mac OS и Linux. С помощью неё загрузка новой программы в Arduino становится делом одного клика, только лишь подключите плату к компьютеру через USB. Хотя для более пытливых умов возможна работа и через Visual Studio, Eclipse, другие IDE или командную строку.

Вам не понадобится паяльник. Полноценные устройства можно собирать, используя специальнуюмакетную доску, перемычки и провода абсолютно без пайки. Конструирование ещё не было таким быстрым и простым.

Принцип бутерброда

Ещё одной отличительной особенностью Arduino является наличие плат расширения, так называемых shields или просто «шилдов». Это дополнительные платы, которые ставятся подобно слоям бутерброда поверх Arduino, чтобы дать ему новые возможности. Так например, существуют платы расширения для подключения к локальной сети и интернету (Ethernet Shield), для управления мощными моторами (Motor Shield), для получения координат и времени со спутников GPS (модуль GPS) и многие другие.

Так что же такое Arduino

Arduino — это сердце конструктора, в котором нет конечного, определённого набора деталей, и нет ограничений в разнообразии того, что можно собрать. Всё ограничено лишь вашей фантазией. Это новый мир, убойное хобби и отличный подарок. Десятки тысяч людей в мире уже поняли это.

Взгляните лишь на несколько примеров того, что возможно. Ведь это грандиозно!

Картонный бот-очаровашка

Робот-паук

Генератор мыльных пузырей

Светодиодный куб

Огненный «Гитар Хиро»

Система полива дачного участка

С чего начать

Вам понадобится сам Arduino. Arduino Uno — это самая популярная модель в настоящий момент. Для начала экспериментов её хватит с головой. Хотя если брать «на вырост», можно рассмотреть более мощную Arduino Mega.

Также вам понадобится USB-кабель, макетная доска, перемычки, резисторы, транзисторы… и ещё десяток подручных вещей. Чтобы не утомлять себя поисками необходимого, возьмите всё, что потребуется в виде одного из готовых наборов. Например, «Матрёшка Y» или «Матрёшка Z» — мы собрали в них всё, что нужно для старта.

admin

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Наверх