Как выбрать и где купить Arduino. Мини-обзор Arduino-совместимых плат различных архитектур Сравнение ардуино

Сейчас мы рассмотрим три платформы для разработки встраиваемых приложений: Arduino Uno, RaspberryPi, сравним их и дадим рекомендации по выбору подходящей для вашего следующего проекта (Рисунок 1). В общем случае, для профессионалов можно порекомендовать все три.

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

Плату Arduino Uno с некоторых пор можно считать основным компонентом в сообществе радиолюбителей (Рисунок 2). Сейчас платы Arduino доступны в различных форм-факторах, с различным набором периферии. Большая их часть выполненыа на 8-разрядном микроконтроллере компании Atmel. А не так давно была анонсирована плата Arduino Due на мощном ARM микроконтроллере с ядром Cortex-M3. Для нашего обзора была выбрана Arduino Uno в качестве представителя платформы Arduino. Для нее доступны простая среда разработки и большая база знаний и наработок, что говорит о возможности создания достаточно функциональных приложений.

Плата Raspberry Pi является новичком в «игре» - это одноплатный компьютер, позиционирующийся на рынке как дешевое решение для начинающих разработчиков встраиваемых систем (Рисунок 3). Несмотря на скромный вид и низкую стоимость (около 35$), вы получаете реальный компьютер, который может стать основой для множества проектов.

BeagleBone является, пожалуй, наименее известной из всех трех платформ, но ее возможности заслуживают внимания создателей встраиваемых приложений. Это мощный Linux-компьютер компактных размеров, который поддерживает работу с ОС Android и Ubuntu (Рисунок 4).

Рисунок 4.

Сравнение трех платформ для разработки.

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

Таблица 1. Сравнение характеристик плат Arduino Uno, BeagleBone, RaspberryPi.

Платформа Arduino Uno Raspberry Pi BeagleBone
Модель R3 Model B Rev A5
Ориентировочная цена 29.95$ 35$ 89$
Габаритные размеры 7.5 × 5.3 см 8.5 × 5.4 см 8.6 × 5.3 см
Микроконтроллер ATmega328 ARM11 ARM Cortex-A8
Тактовая частота 16 МГц 700 МГц 700 МГц
ОЗУ 2 Кбайт 256 Мбайт 256 Мбайт
Flash-память 32 Кбайт SD карта 4 Гбайт (SD карта)
EEPROM 1 Кбайт - -
Напряжение питания 7 - 12 В 5 В 5 В
Минимальное
энергопотребление
42 мА (0.3 Вт) 700 мА (3.5 Вт) 170 мА (0.85 Вт)
Цифровые линии
ввода/вывода
14 8 66
Аналоговые входы 6
(10-битный АЦП)
- 7
(12-битный АЦП)
Каналы ШИМ 6 - 8
Интерфейс TWI/I2C 2 1 2
Интерфейс SPI 1 1 1
Интерфейс UART 1 1 5
Инструменты
разработки
Arduino IDE IDLE, Scratch,
Squeak/Linux
Phyton, Scratch,
Squeak, Cloud9/Linux
Порт Ethernet - 10/100 10/100
Интерфейс USB Master - 2 USB 2.0 USB 2.0
Видео выход - HDMI, композитный -
Аудио выход - HDMI, аналоговый Аналоговый

Arduino и Raspberry Pi - недорогие платы стоимостью до 40$. BeagleBone предлагается по цене почти трех Arduino Uno. Однако Arduino в 40 раз медленнее и имеет в 128,000 раз меньше оперативной памяти, чем два оставшихся участника. Уже на данном этапе вы можете видеть важные отличия. Arduino и Raspberry Pi - дешевые платы, а Raspberry Pi и BeagleBone - гораздо более мощные.

Кажется, что Raspberry Pi выглядит на данный момент оптимальным решением, но это не совсем так: для работы вам потребуется отдельно приобрести карту памяти SD, а это еще 5 - 10$ к стоимости самой платы. Также, несмотря на одинаковую тактовую частоту, по тестам BeagleBone работает вдвое быстрее Raspberry Pi. И как бы парадоксально это не звучало, Arduino является оптимальным выбором, по крайней мере, для новичков. Основной причиной этому является операционная система Linux, под управлением которой работают платы Raspberry Pi и BeagleBone. Это «причудливое» ПО превращает платы в крошечные компьютеры, которые способны выполнять несколько программ одновременно и могут программироваться на различных языках. Разработка же приложений на Arduino очень проста из-за отсутствия многозадачности и программирования на языке низкого уровня Си++.

Заметим интересную особенность Raspberry Pi и BeagleBone: возможность запускать программные приложения с карты памяти (SD-карта для Raspberry Pi, microSD - для BeagleBone). Это означает, что вы можете иметь различные конфигурации ОС, приложения, сборки и образы ОС на разных картах памяти, и выбор того или иного проекта осуществляется просто заменой карты памяти. Таким же образом можно сменить операционную систему.

Выбор платформы для разработки

Для новичков, мы рекомендуем Arduino. На сегодняшний день сообщество Arduino - это множество пользователей, огромное количество учебных материалов, готовых решений и проектов, которые можно использовать в своих приложениях. Кроме того, Arduino предлагает самый простой способ взаимодействия с внешней периферией.

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

Для компактных устройств мы рекомендуем платформу Arduino. Все три тестируемые модели плат для разработки являются малогабаритными. Единственный отрицательный момент присущ Raspberry Pi - установленная в слот карта памяти SD делает плату больше остальных участников теста (Рисунок 8).

Как мы заметили выше, существует очень много вариаций плат Arduino (Рисунок 5), но у всех есть две общие черты: используется определенный микроконтроллер компании Atmel и программный загрузчик (bootloader) Arduino, который реализует базовые функции платы. Для компактных устройств (возможно, не требующих применения печатной платы) вы можете приобрести этот дешевый микроконтроллер и запрограммировать в него загрузчик с помощью любого программатора AVR микроконтроллеров.

Для разработки приложений, требующих подключения к сети Интернет, мы рекомендуем BeagleBone или Raspberry Pi. Оба устройства работают под управлением ОС Linux, имеют порты Ethernet и USB (Рисунок 6). Посредством USB можно подключать модули беспроводной передачи данных и, таким образом, реализовать функции беспроводной передачи данных и подключение к сети Интернет (Рисунок 7). К тому же, ОС Linux имеет множество встроенных программных компонентов, предоставляющих расширенные сетевые функции.

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

Для приложений и систем взаимодействующих с внешними датчиками и исполнительными механизмами мы рекомендуем Arduino или BeagleBoard. Любой вариант аппаратной платформы Arduino подразумевает простое подключения внешних сенсоров и взаимодействие с ними. Для радиолюбителей доступно нескольких вариантов плат с напряжением питания 3.3 В и 5 В, что упрощает подключение внешней периферии. Напряжение питания платы BeagleBone составляет 3.3 В, поэтому в случае подключения некоторых типов внешних устройств необходимо использовать дополнительные резисторы или схемы согласования логических уровней. И Arduino, и BeagleBone имеют интерфейс аналого-цифрового преобразователя (разрешение АЦП, встроенного в микроконтроллер на плате BeagleBoard, несколько выше), что говорит о возможности подключения различных аналоговых датчиков.

С учетом сказанного, важно отметить, что многие современные датчики снабжены цифровыми интерфейсами I 2 C или SPI. Все три платы поддерживают этот тип последовательного интерфейса и реализовать взаимодействие с ним можно довольно легко.

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

Для приложений с графическим пользовательским интерфейсом рекомендуется использовать Raspberry Pi. Одноплатный компьютер Raspberry Pi действительно можно выделить в отдельную категорию, поскольку плата снабжена выходом HDMI (Рисунок 8). Это означает, что вы можете подключить к плате мышь и клавиатуру, а саму плату подключить непосредственно к телевизору. Таким образом, вы получаете полнофункциональный компьютер, который идеально подходит для применения в торговых терминалах и киосках. Мы ради интереса в ходе тестирования установили на Raspberry Pi программные инструменты разработки для Arduino, написали небольшую программу и запрограммировали плату Arduino через интерфейс Raspberry Pi.

Заключение

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

В платформе BeagleBone идеально совмещена гибкость Arduino, производительность процессора платы Rapberry Pi и ОС Linux (и на самом деле, производительность выше, чем у Raspberry Pi). Имея достаточное количество входов/выходов, BeagleBone обеспечивает простое подключение к сети и позволяет реализовать web-сервер.

Arduino — самая популярная платформа любительской и образовательной робототехники. Какую плату или набор Arduino купить начинающему? Как купить Arduino дешево? Чем аналоги Arduino отличается от оригинальной платы? Ответы в нашем обзоре.

Arduino или чтототам-duino

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


Поскольку Arduino — это бренд производителя, аналоги имеют другие, но обычно созвучные с Arduino названия — Freduino, Freeduino, DCcduino, Xdruino, Funduino , Robotale и множество других. Более того, бренд вообще может быть не указан, а будет присутствовать надпись типа for Arduino . Оригинальные Arduino производятся в Италии, большинство аналогов — в Китае. Есть и российские разработки.

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

Безымянный аналог Arduino UNO

Аналоги обычно не уступают по качеству, зато сильно выигрывают в цене (об этом ниже).

Все инструкции, все методические разработки, уроки и т.п., ориентированные на Arduino, в полной мере подходят и для аналогов. Поэтому, если имидж для вас ничто, то смело берите другие -duinы!

Arduino Starter Kit

Производитель рекомендует начинать изучение Arduino с набораArduino Starter Kit . Этот комплект содержит плату и другие электронные компоненты, необходимые для начального изучения Arduino: светодиоды, резисторы, сервопривод, мотор, кнопку, жидкокристаллический экран, пьезоэлемент, датчики и прочее.

Чтобы купить Arduino Starter Kit у официального производителя , придется заплатить около 80 евро.

Аналоги значительно выигрывают в цене при схожей комплектации. Самые низкие цены на них в китайских интернет-магазинах. Сравнивая цены на наборы, конечно нужно учитывать и их состав. Так, Starter Kit for Arduino с платой DCcduino на сайте AliExpress стоит чуть менее $34 — комплектация похожа на оригинальную. Несколько меньшая комплектация у Starter Kit for Arduino с платой Robotale на сайте DealExtreme cтоит $28. Доставка в Россию бесплатная на обоих сайтах.

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

Starter Kit for Arduino

У меня самого случилась интересная история. Я заказывал в DX такой набор — как видно на фото там идет неоригинальная Arduino, а пришел вполне итальянский Arduino! Мелочь, а приятно.

Покупка готового Arduino-робота как начало обучения

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

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

На фото популярный Arduino-робот — , стоимостью менее 100$.

Машинка, управляемая по Blutooth

Выбор модификации Arduino для начинающего

На официальном сайте производителя Arduino представлены 20 модификаций Arduino платы. Среди них Arduino Uno, Arduino Due, Arduino Leonardo и другие.

Arduino UNO и аналоги

Имеет наибольшую популярность, обычно входит в состав вышеописанных наборов (kits) и, пожалуй, ее можно назвать стандартной Arduino-платой. Это одна из самых дешевых Arduino-плат.

На официальном сайте Arduino UNO можно купить за 20 евро + доставка. В крупных российских интернет-магазинах, в том числе и у официальных дистрибьюторов, она продается по 1150-1300 рублей. Обычно в Москве и Санкт-Петербурге вы можете забрать самовывозом (рекомендуем интернет-магазины и DESSY), а в другие регионы придется платить еще и за доставку. Выходит дороговато. Хотя иногда можно встретить магазины с низкими ценами и в России. Низкие цены и быструю доставку предлагает интернет-магазин ROBstore . Цена будет все равно повыше чем в Китае, но ждать посылку намного меньше.

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

Как и в случае с kitовыми наборами, очень дешево можно купить аналоги Arduino. Например, практически идентичный аналог DCcduino UNO на dx.com стоит менее $10, а на aliexpress вообще $5,50!

DCcduino на AliExpress за $5,5

Другие модификации Arduino плат

Давайте рассмотрим, какие из плат удобны начинающему для знакомства с основами электроники.

Пойдем методом исключения.

Сразу отказываемся от 4 модификаций платы Lilly Pad — они предназначены для «электронного текстиля» — вшивание светодиодов в одежду и т. д. Позже мы напишем о них.

Arduino Lilly Pad

Если вы не планируете делать готовых роботов, то есть будете часто закачивать программы на плату, гораздо целесообразней использовать платы с USB-портом — их удобнее подключать к компьютеру.

USB-порта НЕ имеют платы: Arduino Mini, Pro, Pro Mini.

Если вы хотите познакомиться с основами электроники, вам не очень подойдут «навороченные» платы: Esplora, BT, Ethernet, Tre, Yun, Robot .

Остаются UNO, Leonardo, Due, Micro, Mega ADK, Mega 2560, Nano, Fio.

Если для расширения платы вы будете вставлять Shield’ы (в их виде выполняются драйвера моторов, платы с дополнительными разъемами и т. д.) — надо учесть, что они имеют стандартный формат, которым не обладают Micro и Fio.

Надо сказать, что нестандартным размером обладает и Arduino Nano, но зато ее легко вставить в Breadboard — ее ножки находятся на нижней стороне платы.

Сравним цены оставшихся плат на Arduino Store:

  • UNO — 20 евро,
  • Leonardo — 18 евро,
  • Due — 36 евро,
  • Mega 2560 — 29 евро,
  • Mega ADK — 44 евро,
  • Nano — 33 евро.

В упомянутых китайских магазинах можно найти аналоги по значительно низкой цене.

Arduino часто называют одноплатным компьютером. И именно с выбором компьютера начинающему лучше всего сравнить выбор платы Arduino.

Платы отличаются:

  • микроконтроллером и частотой его работы (ATmega328 — 16 мГц, ATmega32u4 — 16 мГц, ATmega2560 — 16 мГц и другие),
  • входным и выходным напряжением на плату,
  • количеством аналоговых входов и выходов,
  • количеством цифровых портов, в том числе поддерживающих ШИМ,
  • объемом флэш-памяти.

Количество портов на плате определяет максимальное количество, подключаемых к ней устройств (датчики, моторы и т.п.), а объем флэш-памяти ограничивает длину загружаемой в нее программы.

Аналог Arduino Leonardo

Краткие характеристики некоторых плат:

: микроконтроллер ATmega328, 14 цифровых портов, в т.ч. 6 с ШИМ, 6 аналоговых входов, 32 KB Flash-память, USB-порт типа B.

Arduino Due: микроконтроллер AT91SAM3X8E, 54 цифровых порта, в т.ч. 12 с ШИМ, 12 аналоговых входов и 2 аналоговых выхода, 512 KB Flash-память, 2 MicroUSB порта.

Arduino Leonardo: микроконтроллер ATmega32u4, 20 цифровых портов, в т.ч. 7 с ШИМ, 12 аналоговых входов, 32 KB Flash-память, MicroUSB порт.

Все цены приведены на дату публикации поста.

Существует множество разновидностей плат Арудино: Nano, Mini, Uno, Leonardo, Mega, Lilypad… Новичку сложно разобраться в их многообразии. В этой статье я расскажу о разновидностях плат ардуино. В конце статьи есть ссылки на проверенных мной продавцов, у которых можно купить плату Arduino. Нажмите на для быстрого перехода к таблице со ссылками.

Основные различия плат Arduino:

Ардуино отличаются между собой:

  • размером
  • количеством выводов
  • объёмом памяти

Размер платы , прежде всего влияет на удобство работы с ней. Самая распространённая плата – Arduino Uno (и её обновлённая версия Arduino Leonardo) имеют размер примерно 6×5 см. Это позволяет обходиться без лупы при создании прототипа на макетной плате и получать достаточно компактные рабочие устройства. Arduino Nano - очень компактна. Её размер всего 4,4×1.9 см, при этом её функционал ничем не отличается от больших плат. Также Arduino Nano отлично крепится на макетной плате за счет выводов типа «папа». В попытке сделать платы еще меньше были выпущены версии Arduino Micro (клон Arduino Uno, выпущенный на плате размером 4.8х1.77 см) и Arduino Mini (минимальная комплектация — отсутствует разъем USB для питания и заливки прошивки, прошивка заливается через специальный переходник. Забавный факт: arduino mini гораздо меньше, чем micro, при этом micro почти одинакового размера с nano. Так что название моделей плат — это просто названия моделей плат и реальный размер оно не отражает. Существует ещё огромная, 10,2 * 5,3 сантиметров Arduino Mega. Такой размер она получила не просто так. На плате расположено целых 70 выводов.

Количество выводов определяет количество внешней периферии, которое вы сможете подключить к плате: светодиоды, сервоприводы, разнообразные датчики, модули,кнопки и многое другое. На платах есть цифровые и аналоговые выводы. Цифровые выводы могут принимать только 2 значения: HIGH и LOW. HIGH соответствует наличию тока на выводе, LOW – отсутствию. Захотели зажечь светодиод - перевели вывод в состояние HIGH. На выводе появилось напряжение и светодиод загорелся. Выдали LOW и светодиод погас. Цифровые выводы могут также и считывать значения, аналогично, только 2 состояния. Если на вывод извне (например, с кнопки) подаётся напряжение ~+5В, то контроллер считает значение HIGH. Напряжение меньше 5 вольт будет определено, как LOW.
Аналоговые выводы позволяют считывать значение прилагаемого напряжения в диапазоне от 0 до 1024. Где 0 — 0 вольт, 1024 — 5 вольт. Диапазон измерений может быть изменён путём подачи опорного напряжения на специальный вывод AREF. При этом, любой аналоговый вывод можно использовать как цифровой. Но цифровой не может быть использован как аналоговый.

Цифровые выводы могут ещё поддерживать : специальный режим работы для управления яркостью свечения светодиода или скоростью вращения моторчика. Однако, здесь всё просто: nano, mini и uno располагают шестью выводами с поддержкой ШИМ. Leonardo и micro оборудованы семью ШИМ выводами, и только гигантская Arduino Mega 2560 вырывается вперёд с четырнадцатью ШИМ выводами.

Объём памяти , на первый взгляд, очень важный параметр. Однако, не относитесь к плате, как к компьютеру. Здесь не нужно много оперативной и уж тем более постоянной памяти. Я не буду подробно останавливаться на этом. Потому, что самая «бедная» в этом плане Arduino Nano имеет всего 32 килобайта постоянной и 2 килобайта оперативной памяти, но к тому моменту, как написанная вами программа для микроконтроллера перестанет влезать в эти 32 килобайта постоянной памяти, вы уже будете прекрасно разбираться во всём самостоятельно, и эта статья вам не понадобится. Серъёзно: 32 килобайта — просто огромная память для программы микроконтроллера.

Объём энергонезависимой памяти , более интересный параметр. Энергонезависимая память, как ясно из её названия, сохраняет в себе данные независимо от наличия питания. При этом значения переменных в вашей программе сохраняются в оперативную память, которая стирается при перезагрузке контроллера. Помимо энергонезависимой памяти для хранения самой программы, отдельно выделена область памяти (она же EEPROM), которая позволяет прямо из программы контроллера сохранить значения переменных в специальную ячейку. Тогда после перезагрузки устройство сможет восстановить состояние, в котором оно находилось перед отключением питания. Большинство контроллеров позволяют сохранить лишь 1 килобайт данных. Кроме малого объёма существует ещё и лимит на количество операций записи. Всего 10 000 раз можно записать данные в одну ячейку (считывать данные можно любое количество раз). 10 000 — на первый взгляд не так уж и мало. Запись осуществляется в ячейки по 1 байту. Итого, у нас есть 1 000 ячеек. Например, если опрашивать некий датчик всего один раз в минуту и сохранять его значение в память и при том каждый раз в новую ячейку, устройство проработает (((100 000 * 1 000)/60)/24)/365 = 190 лет. Однако, чаще всего приходится записывать данные в одну ячейку (например, количество секунд). И тогда ресурс снижается уже до 2,5 месяцев непрерывной работы, и это для записи раз в минуту. Если же возникнет задача обновлять значение раз в секунду, то и вовсе всего через 27 часов EEPROM будет повреждена. Поэтому, энергонезависимую память используют для сохранения настроек и других редко обновляемых значений. А показания датчиков или журнал работы устройства удобнее писать на SD карту (кстати, у меня есть о подключении SD карты к Arduino).

Выбираем плату

Самая популярная плата - Arduino Uno. Все остальные платы имеет смысл сравнивать именно с ней. Это плата небольшого размера. По краям платы расположены 14 цифровых и 6 аналоговых входов/выходов.

Плата размером 6,9 × 5 ,3 см наиболее удобна для создания быстрых прототипов. Не слишком большой размер и удобные разъёмы для подключения проводов от макетной платы делают её весьма удобной для новичков. Так называемые шилды (Shield) - в 99% случаев созданы именно для установки на плату Arduino Uno. Сейчас получает распространение другая плата, Arduino Leonardo, которая является идеологическим продолжением UNO. Она имеет незначительные различия в назначении некоторых специальных выводов и подключается к компьютеру гораздо более компактным кабелем micro USB. Большинство шилдов для UNO подходят и к Leonardo, но возможны неприятные сюрпризы из-за несоответствия некоторых выводов.

Это действительно наиболее оптимальный вариант платы Arduino. Если вы приобретаете плату первый раз и просто хотите попробовать свои силы, ваш выбор — Arduino Uno или Leonardo. Большинство готовых наборов, кстати именно поэтому и комплектуются именно платой UNO. Подробнее о подборе готового набора я расскажу в конце статьи.

Довольно интересная разновидность - Arduino Nano. Это плата размером всего 4,4см x 1.9см, при этом она полностью совместима с Leonardo по функционалу. Продаются даже специальные переходники для подключения шилдов от UNO к Nano. Платы идентичны по количеству выводов, объёму памяти, быстродействию. Nano, благодаря миниатюрным размерам, удобно использовать в готовом устройстве, чтобы сэкономить место в тесном корпусе. Ардуино Нано вместо отверстий для подключения соединительных проводов оборудована штырьками. Это добавляет хлопот при прототипировании (плату приходится устанавливать на макетную плату и занимать место, однако помогает при переносе прототипа в реальное устройство. К выводам контроллера можно просто припаять провода.

Arduino Mega - самая большая плата семейства Arduino. Больше памяти, огромное количество выводов (70!). Эта плата предназначена для сложных устройств, к которым планируется подключение множества разнообразной периферии. На самом деле правильное название для платы - Arduino Mega 2560. Но поскольку Arduino Mega (без цифр в названии) в данный момент считается устаревшей, купить её фактически невозможно и для краткости плату называют просто Arduino Mega. Но в реальности плата оказывается бесполезной как при создании прототипа. так и в готовом устройстве. В прототипе больше всего мешает её огромный размер, а для готового устройства может быть полезным, разве что, количество выводов, но получить дополнительные выводы легко можно на любой другой плате с помощью или, если не хватает выводов с ШИМ, можно воспользоваться . Единственное серъёзное преимущество Mega перед другими платами- объём памяти для загрузки программы. Однажды мне понадобилось вывести на бегущую строку большое количество графической информации и программа занимала почти 100Кб. Проект собирался на пару дней и переписывать алгоритм под хранение информации на SD карте не хотелось. Тут мне на помощь и пришла Mega.

Где покупать плату Arduino

Изначально Arduino была разработана итальянскими инженерами. Автором идеи считается Массимо Банци (Massimo Banzi). Именно плата, произведённая в Италии считалась оригинальной Ардуино. Позже в команде разработчиков случился раскол и оригинальные платы производятся как в Италии, так и в США. Однако, изначально чертежи Arduino стали распространяться под свободной лицензией. Это значит, что кто угодно может производить платы в точности повторяющие конструкцию оригинала. Авторские права распространяются лишь на само название Arduino. Именно поэтому существует огромное количество модификаций и альтернативных версий платы от сторонних производителей. Разумеется, Китай, как настоящий центр производства электроники в настоящее время предлагает массу ардуино совместимых плат. Лично я рекомендую не переплачивать тысячи рублей за оригинал, а обратить внимание на копию платы по приемлемой цене. Серъёзно, самая дешёвая плата Arduino Mini, оригинал с завода в Италии, в России стоит 1400 рублей, тогда как Китайский клон можно заказать за 2$ c бесплатной доставкой. Покупать платы удобнее всего на популярной интернет-площадке Aliexpress. В конце статьи я собрал для вас ссылки для заказа плат и различных датчиков, которые я сам заказал и убедился в их качестве. Так же там вы найдёте ссылки для заказа готовых наборов для начала изучения мира Arduino. Если же вы по каким-то причинам намерены приобрести оригинальную плату, то отправляйтесь на сайт «Амперка» . Там точно оригинальные платы.

Итог

Если вы новичок, то без раздумий покупайте Arduino Leonardo.
Если у вас уже есть несколько прототипов, и вы планируете превратить их в готовые устройства, присмотритесь к Arduino Nano.
Если же вы сломали голову, но так и не придумали, как впихнуть всю начинку устройства в тесный корпус, воспользуйтесь сверхкомпактной Arduino Mini.

Небольшая сравнительная таблица основных характеристик:

Плата Размер, см Количество выводов (цифровых/аналоговых) Объём постоянной памяти, КБ Объём оперативной памяти, КБ Объём энергонезависимой памяти для хранения значений переменных, КБ Тактовая частота, МГц
4,4×1,9 14 / 8 30 2 1 16
Arduino Mini 1,8×3,3 14 / 8 16 1 0,5 16
6,9×5,3 14 / 6 32 2 1 16
6,6×5,2 20 / 12 32 2,5 1 16
11×5,2 54 / 16 128 8 4 16

Платы Arduino

Название Статус

Все, кто пользуется микроконтроллерами от Ардуино, не понаслышке знакомы с вопросом экономии. Однако покупать китайские платы от неизвестных производителей в надежде, что хоть часть из них будет работать как заявлено, - не лучшая стратегия. Но среди множества бесполезных железок можно найти и достойную дешёвую замену arduino stm32, которая уже стала известной в своих кругах.

Давайте же разберёмся, достойна ли эта плата до 10 долларов с доставкой своей популярности, и что она способна дать пользователю, в сравнении с обычной Ардуино ПРО версии. Для этого проведём разбор обоих микроконтроллеров и составим список всех их достоинств с недостатками, чтобы вы могли ответить самому себе, стоит ли тратить деньги на arduino stm32 ide.

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

Характеристики STM32F103C8T6 Arduino Nano
Частота контроллера, МГц 72 16
Память программ, кБайт 64 32
Питание, В 3.3 5
ОЗУ, кБайт 20 2
USB 2.0 да нет
DMA да нет
CAN да нет
RTC да нет
UART 3 1
Прошивка через USB нет да
Цена, $ 2.1 1.8

Как мы видим - по многим параметрам ардуино проигрывает стм32. Ниже мы попробуем сравнить платы с разных сторон.

Плюсы и минусы микроконтроллеров Arduino и STM32

Начнём с достоинств преждевременного фаворита – самого ардуино. И главное из них известно всем, кто работал с данным чипом и его собратьями – собственная экосистема. Вы можете найти ответы на все возникающие вопросы в интернете, ведь база знаний и количество пользователей микроконтроллера даже в СНГ сегменте поражает. А это значит, что не придётся искать инструкции на английском, чего не скажешь об stm32f103c8t6 arduino. Большое количество пользователей подразумевает и широкий программный функционал, лишь крупинка которого предоставляется самими производителями.

Фанатская база ежедневно создаёт десятки библиотек, поэтому вы сможете воплотить в жизнь любую свою задумку. Некоторые схемные решения с микроконтроллером stm8s001j3 могут не порадовать новичков в этом деле, ардуино же старается максимально угодить новому пользователю и не предоставляет никаких сложностей.

Отсюда выплывают доступные шилды, простота использования, чем не могут похвастаться микроконтроллеры stm, и простое программирование под Atmel, без необходимости учить все тонкости языка на практике. Ну а более продвинутые оценят EEPROM, идущий с коробки, чем микроконтроллер stm32 не может похвастаться.

Однако, как и везде, есть свои недостатки:

  1. Низкий порог вхождения предполагает большое количество кривых и неотлаженных библиотек, работающих чуть ли не на последнем издыхании. Наткнувшись пару раз на такой софт и занимаясь его дебагингом в течение пары дней, вы решите, что проще написать собственный.
  2. Следующее преимущество stm32 ардуино не предоставляет нормальной отладки, из-за чего поиск ошибок в тех же кривых библиотеках и занимает так много времени.
  3. Нормальная производительность на Атмега – миф, и на деле вам потребуется изворачиваться и отказываться от многих функций продукта, чтобы он работал без подлагиваний. Нормальных планировщиков тоже не найти, а те, что можно подсоединить, съедают слишком много ресурсов. Из-за чего поделки на ардуино славятся кривым и лагающим интерфейсом с долгим временем отклика, если речь идёт о чём-то сложнее, чем электронная щеколда или конструкция из микроконтроллера и датчика движений.
  4. Множество кривой и откровенно бесполезной продукции на этих платах, в особенности от китайцев, лишь ухудшает имидж Ардуино.
  5. Нормальных книг по микроконтроллерам stm32, конечно, не найти, но и ардуино не предоставляет много профессиональной информации, помимо форумов, где отладкой занимаются сами пользователи.
  6. А сама среда разработки софта под неё требует просто невероятной производительности, не сравнимой ни с чем, что есть на рынке. Притом, куда идут все съедаемые ресурсы, не совсем понятно. А соответственно, виной всему – ужасающая оптимизация.

С другой стороны, перед пользователем встаёт arduino stm32f103 и arduino stm8 высокопроизводительный контроллер, упрощающий переход с микроконтроллера stm32 на микроконтроллер миландр и множеством периферии в дополнение.

Проектировка плат значительно облегчается благодаря свободному ходу ног, стоковая среда разработки – достаточно мощный инструмент, а отладка изначально построена так, чтобы работать без нареканий даже в чужих средах. Вам предоставляют красочные графики и точки, не говоря уже о текстовой информации. Простой перенос кода, возможность запускать отдельные контроллеры в 41 Мбитной развёртке и наличие USB портов практически везде. Всё это может запросто завлечь более продвинутых разработчиков, но им стоит ознакомиться и с рядом недостатков:

  1. Высокий порог входа, для нормального пользования необходим хороший базис.
  2. Библиотеки также присутствуют, но большинство из них устарели или же сделаны каждым лично для себя. Проще уже создать собственную. Но если вспомнить о проблемах Ардуино, то вполне вероятно, что вы уже умеете это делать.
  3. Нижние пробелы и, в целом, некрасивая семантика в сравнении с простыми функциями конкурента.
  4. С99 это всё же далеко не С++, и вы сразу прочувствуете все сложности перехода. Однако многие утверждают, что спустя время – наоборот, рады такому нюансу.
  5. В целом, дешевизна плат в сравнении с Ардуино.

Возможности улучшения «юзабильности» STM32 до уровня Arduino

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

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

Отладка микроконтроллера STM32

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

После перехода на STM32 вы со временем и вовсе забудете о выводе данных через консоль, ведь на замену этих шаблонов придут куда более разумные и практичные решения.

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

В тематическом блоге уже было несколько статей по поводу выбора первого микроконтроллера и начала работы с ним. Не менее интересны были и комментарии к таким статьям. Одна из мыслей, которая несколько раз поднималась там - это что не все, кто имеют интерес к МК, приходят к ним от транзисторов. Некоторые (дай бог, чтобы побольше), приходят к ним со стороны (прикладного) программирования. Рекомендовать таким людям брать в руки паяльник - не разумно, у них и так есть вещи , которые они могут «попаять». Так мы приходим к слову «Arduino», которое уже многие слышали. Среди бывалых с паяльниками существует - Arduino это платка на AVR для ленивых. Так ли это? Эта статья - попытка наглядно показать, что Arduino - это не про AVR и не про лень, Arduino - это архитектурно-независимая электронно-механическая платформа совместимых компонентов, по (относительной) значимости не менее важная, чем (в свое время) IBM S/360, IBM PC или USB.

AVR живее всех живых

Дойдя до второй части обзора, читатель увидит, что Arduino-совместимые платы на современных мощных 32-битных контроллерах стоят не много больше, а иногда даже меньше, чем на оригинальной AVR архитектуре. И все же сначала AVR. Почему? Потому что мэтры говорят, что рано или поздно захочется собрать свое устройство. И я им верю. Верю, что однажды я возьму 8-ногий ATtiny в DIP корпусе, засуну его в картонку и включу паяльник. И я буду знать, что делать дальше - ведь я уже все отпрототипировал на Arduino AVR.
Arduino Duemilanove
Это предпоследняя версия официальной Arduino, и большинство совместимых плат, которые сейчас присутствуют на рынке, основано именно на схемотехнике Duemilanove. Она включает микроконтроллер ATmega 328 (в прошлом десятилетии (читай: до 2010г) ставили и ATmega 168) и USB-Serial преобразователь FTDI FT232RL. $25

Arduino Uno
Текущая версия официальной Arduino. Пока на рынке мало альтернативных реализаций, но они начинают появляться, одна включена в этот обзор. Основное отличие от Duemilanove - замена популярного, а значит, не по начинке дорого, чипа FT232RL на… ATmega8U2. Да-да, в Uno фактически два микроконтроллера AVR, причем один - с аппаратным USB. Почему два, почему не поставить один? Вопрос совместимости, дружественности для новичков и для собственных разработок. Микроконтроллеры с аппаратным USB судя по всему есть только в SMD корпусах, поэтому использовать такой в своих разработках или заменить вышедший из строя на плате будет нелегко. Поэтому лучше использовать старый-добрый ATmega328 в DIP-панельке, а ATmega8U2 оставить на будущее. Судя по тому, как уверенно Uno завоевывает позиции - на ближайшее будущее. $30
Iteaduino
Существует множество клонов Arduino Duemilanove, которые копируют ее фактически один в один. Но мы ждем от конкуренции прогресса и улучшения, а не простого «передирания», дозволенного открытой лицензией. Iteaduino - хороший пример, когда разработчики «сделали свое домашнее задание». Многие электронные компоненты требуют питания 3.3в, что требует дополнительного сопряжения уровней при работе с классическим Arduino. Iteaduino же позволяет запитать плату 3.3в или 5в на выбор (переключателем на плате). «Соль» применения Arduino конечно же в подключении внешних устройств ввода-вывода, и для простых устройств сложился де-факто стандарт интерфейса GVS (Ground-Voltage-Signal). Для приятного (без паутины проводов) подключения таких устройств к классическому Arduino придется докупать шилд, а в Iteaduino соответствующие разъемы есть прямо на плате. Кроме того, улучшена эргономика - в оригинальном Arduino при надетом шилде нельзя добраться до кнопки Reset (поэтому многие шилды дублируют ее) и плохо виден светодиод, а в Iteaduino они размещены на краю платы с возможностью доступа. $25

Seeeduino Stalker v2
Благодаря стандарту Arduino можно создавать не только платы общего назначения, но и специализированные платы, которые все также будут легко расширяться существующими компонентами. Одна из идеальных применений для Arduino - разработка автономных беспроводных узлов-агентов распределенной системы контроля и управления. Платы Seeeduino Stalker разработаны именно для такого применения. В версии 2 на плате установлен контроллер зарядки литиевого аккумулятора с возможностью подключения солнечной панели, часы реального времени (RTC) с питанием от супер-конденсатора, microSD-слот, сокет *Bee (в оригинале XBee для протокола ZigBee, но уже есть BTBee в том же формфакторе) и разъемы I2C. $39
Ruggeduino
Вы начинающий, любите переплюсовывать питание и хвататься за оголенные GPIO наэлектризованными руками? Или подключаете датчики проводами по 20 метров, а иногда вокруг бьют молнии? Или используете Arduino в производственных целях, где требования по защите и надежности повыше? Ruggeduino поможет вам, одного взгляда на него будет достаточно, чтобы проникнуться уважением и понять, что это настоящий индустриальный Arduino. $40

RoMeo All-in-one
Плата для роботостроения, содержит на плате множество интерфейсных разъемов, драйвер двигателя, кнопки. $36
CraftDuino
Российский вариант Arduino с улучшенной эргономикой (доступ к светодиодам и Reset) и возможностями: на плате присутствует разъем для всех выводов чипа FT232, что позволяет использовать его для bitbang-приложений (программатор различных МК, JTAG и т.п.), и возможность допаять дополнительные выводы для установки CraftDuino на беспаечную макетную плату (breadboard). $30

Быстрее, выше, сильнее

Итак, мы выросли из AVR, но все наши шилды, сенсоры, сервы с нами. И мы не заставим их пропадать, ведь они для Arduino, а не для AVR. Мы также и дальше не будем поддаваться стереотипам, что есть только какой-то ARM, и какой-то Cortex. Все много интереснее!
ChipKIT Uno32
Каждый студент , что AVR - это хорошо, а PIC - это плохо. Однако, не стоит это распространять на все семейства МК. PIC32 - вполне нормальный процессор с архитектурой MIPS. А MIPS - одна из лидирующих RISC-архитектур. По сравнению с ARM у нее есть одно достоинство - она не столь медиа-популяризирована, поэтому лицензионные отчисления за MIPS меньше, а процессоры в среднем - дешевле, и лидируют в отельных рыночных сегментах, таких как раутеры. Например, Arduino-несовместимая плата в корпусе, с Ethernet, WiFi и USB-хостом стоит менее $50 даже в этой стране, ARM"у такое и не снилось. Но сейчас мы рассматриваем Arduino совместимые, и ChipKIT не заставит скучать при частоте 80МГц. 20EUR

Netduino
Cortex снова подождет. На сцене - классика ARM, ядро ARM7, в лице чипа от любимого вендора AT91SAM7X512-AU. На своих 48МГц он даже щелкает.NET Micro Framework! $35
FEZ Panda II
Конечно же, в managed коде писать легче, так что парад.NET MF продолжается. Эта плата идет под маркетинговым чипом «USBizi», который на поверку оказывается NXP LPC2387 с соответствующим firmware. На 72МГц он наверное мог бы играть MP3. Только не в.NET коде, конечно. $40