ARDUINO — присматриваясь к железу.

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

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

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

Arduino

    Стандартный и самый распространённый вариант. Когда говорят «Ардуино» («обычная Ардуино») — обычно все сразу представляют именно такие платы. Самые первые платы были в этом этом форм-факторе, соответственно именно он пережил больше всего реинкорнаций (USB-версии в хронологическом порядке выхода): Extreme, NG, Diecimila, Duemilanove, Uno, Leonardo.  Ощутимая разница для пользователя наблюдается только в Леонардо. Сейчас на оф. сайте предлагается к покупке только Leonardo и Uno, однако интернет завален вариантами Duemilanove (наша CraftDuino именно её разновидность) и не зря — всё что нужно среднему пользователю было воплощено ещё в Ardino Extreme, с тех пор поменялось крайне мало). Все эти платы имеют одинаковое количество входов-выходов, собранных на одинаковые разъёмы (для подключения перефирии и шилдов), программируются по USB, и имеют микроконтроллер ATMega на борту. На ранних версиях стоял ATMega8, потом стали ставить ATMega168, потом ATMega328. На ATMega8 только 3 ШИМ выхода, 8Кб под скетч 1Кб оперативки, но для многих приложений хватает (стоит напомнить что в разделе флеш 2кбайта расходуются на загрузчик /бутлоадер/- программу, загружающую прошивки скетча и использующую только UART для этого). У ATMega168 уже 6 ШИМ каналов и 16Кб под ваши нужды, а у 328-й 32Кб под программы и уже 2Кб оперативки. Ссыслаясь на выше сказанное, для непосредственной работы в ATMega8 будет достпуно только 6 из 8 кбайт, в ATMega168 соотвественно 14 из 16, а в ATMega32 — 30 из 32кбайт. На всех платах до UNO стоял чип-преобразователь USB-UART FT232, позволяющий втыкать плату прямо в USB и программировать без программатора. При подключении к компьютеру в системе появлялся виртуальный COM-порт, который и используется средой разработки Ардуино для программирования.

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

Leonardo

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

ArdinoMega xxx

Arduino Mega

    Следующая серия проапгрейдженных плат (по размеру и характеристикам) представлена моделями: Mega, Mega2560 и Arduino ADK. В платы успешно втыкаются почти все шилды, но из-за отличного (с «обычными» Ардуино) расположения выводов SPI-интерфейса, шилды использующие его с цифровых пинов 11,12,13 будут не совместимы. Пример — старый эзернет шилд. На новом SPI берётся со стандартной вилки ISP и всё отлично работает и на «мегах», и на «обычных» Ардуино. Разрядность микроконтроллера поднялась до 32 и, соответственно, кроме полного использования ОЗУ через int инициализацию в Си Ардуино, появилась возможность использовать ОЗУ частями до нужного значения переменной — через uint32_t, uint16_t и uint8_t. Это дало экономичнее «укладывать» данные в область ОЗУ.

 

   На платах много выводов: 54 цифровых из них 15 — с ШИМ-ом, 16 — аналоговых, кроме этого серьезно увеличена память: 128/256кБайт — флэш для программного кода, 8кБайт ОЗУ, 4кБайта ЭСППЗУ и 4 хардварных UART порта на отдельных (цифровых ) выводах.

 

      «Мега» построена на ATmega1280, а «2560» и «ADK» на ATmega2560, поэтому различаются платы обьёмом памяти, к тому же у свежих — 2560 и ADK — USB-часть выполнена на ATmega8U2 (на более поздних ревизиях 2560 — на ATmega16U2), тут всё как у УНО. А у ADK сформирован USB-host, который может подключаться к мобильным телефонам с операционной системой Android.

Ardino Nano

Маленькая платка с mini-USB. Шилды к ней не подходят, но сама она удобно втыкается в макетку. Ранние версии использовали ATmega168, сейчас стоят 328. В качестве USB-UART моста стоят FT232. Это как раз тот самый вариант для начинающих — размер флеш — кода с учетом записанного загрузчика — 30кБайт ( над оптимизацией кода надо думать всегда и стараться выполнять код емким и сжатым, применяя библиотеки подпрограмм, но в данном случае на все начальные и обучающие скетчи должно хватить). Встроенный USB-UART позволяет начать работать с платой сразу после подключения к компьютеру и загрузки программного обеспечения для программирования и прошивки.

ArdinoMini
Плата с более меньшим количеством узлов. Имеется несколько версий, имеющих незначительные отличия в назначении некоторых выводов. С платами расширения не совместима, но удобна для встраивания в схемы или отдельно запрограммированного узла — типа таймер времени и тп.
На Mini нет USB разъема — программируется она с помощью переходника USB-Serial (например на базе FT232 или CH340G). На плате стоит весьма маломощный стабилизатор, а из светодиодов — индикатор питания на последних версиях и светодиод, привязанный через резистор к цифровому выводу №13 ). Есть варианты платы работающие на 3,3В и 8МГц или 5В и 16МГц, различают так же версии с МК — ATmega168 и ATmega328.

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

Freeduino
Freetronics Eleven
Seeeduino
CraftDuino
Diavolino
Japanino

На этом общий обзор железа, в части основных плат, можно считать законченным. Остается только рассмотреть схему, непосредственной выбранной для дальнейших экспериментов платы — Ardino Nano

ArduinoNanoV7   Из данной схемы видно, что функциональных частей на плате всего три — сам микроконтроллер с необходимой обвязкой — кварц Y1,C5, C6, кнопка сброса SW1, ключевой транзистор Т1, подключенный к выводу 15 для работы с звуковой динамической головкой, программируемый светодиод LED3 на 17-м выводе; второй узел реализован на микросхеме — FT232RL — конвертор USB — UART  со светодиодами индикации RX-TX; и третий узел — стабилизатор питания всей платы (3,3В или 5В в зависимости от исполнения) с индикатором питания LED4 и защитным диодом Шоттки в случае питания от USB. Слева, внизу дана схематическая нумерация выводов на плате. Эта нумерация не применяется при обозначении выводов платы  при программировании скетчей!!!!

Данная информация не является интеллектуальной собственностью публикатора. Все представленные материалы были взяты из открытых интернет источников вместе с фотографиями. Для начинающих радиолюбителей рекомендуется так же к просмотру материалы на сайтах:
arduino.cc
craftduino.ru
freeduino.org
freeduino.ru
dfrobot.com
yourduino.com
evilmadscientist.com
seeedstudio.com
kmtronic.com
store.curiousinventor.com
syslab.asablo.jp
freetronics.com

Часть 4. Устройства ввода/вывода информации.