Разновидности плат Arduino, а также про клоны, оригиналы и совместимость


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

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

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

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

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

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

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

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

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

Leonardo

Arduino LeonardoВот это действительно шаг вперёд — всё на одном чипе, 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.Arduino Mega
В платы успешно втыкаются почти все шилды, но из-за разного (с «обычными» ардуинами) расположения выводов 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МГц)
Питаются МК на платах от (реже 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.cc
robocraft.ru
freeduino.org
freeduino.ru
dfrobot.com
yourduino.com
evilmadscientist.com
seeedstudio.com
kmtronic.com
store.curiousinventor.com
syslab.asablo.jp
freetronics.com

По теме
Ардуино что это и зачем?
Почему Arduino побеждает и почему он здесь, чтобы остаться?
Arduino, термины, начало работы
КМБ для начинающих ардуинщиков
Состав стартера (точка входа для начинающих ардуинщиков)
Возможные ошибки при работе с Arduino

Купить контроллер Arduino или CraftDuino — можно в нашем Магазине.


0 комментариев на «“Разновидности плат Arduino, а также про клоны, оригиналы и совместимость”»

  1. те я правильно понял что на Leonardo можно организовать обмен данными с компом через USB и одновременно с каким либо модулем через Uart?
    на USB данные отправляются не через UART? или через USB данные вообще можно передавать?

    • Да, в Леонардо UART и USB раздельные и друг другу не мешают.

    • ЕМНИП NG — «nuova generazione» — новое поколение. Старинная плата отличающаяся от классической Duemilanove, отсутствием автовыбора питания.
      В статье есть ссылка на описание — https://www.arduino.cc/en/Main/Boards.

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

Arduino

Что такое Arduino?
Зачем мне Arduino?
Начало работы с Arduino
Для начинающих ардуинщиков
Радиодетали (точка входа для начинающих ардуинщиков)
Первые шаги с Arduino

Разделы

  1. Преимуществ нет, за исключением читабельности: тип bool обычно имеет размер 1 байт, как и uint8_t. Думаю, компилятор в обоих случаях…

  2. Добрый день! Я недавно начал изучать программирование под STM32 и ваши уроки просто бесценны! Хотел узнать зачем использовать переменную типа…

3D-печать AI Android Arduino Bluetooth CraftDuino DIY IDE iRobot Kinect LEGO OpenCV Open Source Python Raspberry Pi RoboCraft ROS swarm ИК автоматизация андроид балансировать бионика версия видео военный датчик дрон интерфейс камера кибервесна манипулятор машинное обучение наше нейронная сеть подводный пылесос работа распознавание робот робототехника светодиод сервомашинка собака управление ходить шаг за шагом шаговый двигатель шилд юмор

OpenCV
Робототехника
Будущее за бионическими роботами?
Нейронная сеть - введение