STM32 и Arduino: сравнение характеристик, плюсы и минусы. IT портал Железногорска Виды 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 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 UNO, Nano, MEGA, существуют еще и ардуино-совместимые платы, типа Digispark, «Электронные войска», Seeeduino, Freeduino, Robocraft и другие. В чем их отличие и какую плату Arduino выбрать? Давайте разберемся!

Совместимость с шилдами и основные отличия

Пожалуй, эта характеристика стоит на ряду с такими как: объём памяти, тактовая частота и тип используемого микроконтроллера. Платы клоны Ардуино можно разделить по подобию с базовыми платами Arduino UNO, MEGA и прочие. Самой распространенной является UNO, собственно большинство клонов связаны, именно с ней. Совместимость с шилдами обеспечивается расположением клеммных колодок и разводкой печатной платы.

Размер платы оригинальной UNO 6.9х5.3 см, размеры плат сторонних производителей могут отличаться, но расположение клеммных колодок и расстояние между разъемами должно оставаться одинаковым. В таком случае плата будет совместима со стандартными шилдами любого происхождения.

Если речь идет в контексте «ардуино», скорее всего, именно эта версия и имеется в виду. Отличия между оригиналом и клоном могут отсутствовать, т.е. полная копия, а разницей могут быть лишь цвет покрытия платы и способ прошивки. USB-serial конвертер, на той же УНО, выполнен на микроконтроллере, тогда как на оригинальных НАНО - на 232-ой микросхеме, а на китайской - на CH340, встречаются и УНО с такими конвертерами, об этом позже.

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

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

Плата совместима с языком ардуино, но не совместима с шилдами. Если их нужно подключать, то нужно производить подключение вручную к соответствующим пинам. Кстати эта плата ориентирована на носимые устройства, как вариант для умной одежды. Такую плату производит компания SparkFun.

Обзор плат и советы по их применению

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

    Роботехника;

    Автоматика;

    Для обучения и пр.

Названия плат обычно содержат приставку «Duino», как craftduino или DCduino, а модель платы может и совпадать по названию, как та же DCduino UNO, если она дополнена - тогда будет еще одна приставки или совсем другое слово описывающее добавочные функции. Кроме выше перечисленного стоит обращать внимание на напряжение питания и логических уровней, они могут быть 3.3 и 5 В.

Для начала однозначно брать нужно распространенную плату - Arduino UNO-подобную или Nano, первая стоит порядка 5 долларов, вторая немногим дешевле - 3-5 долларов.

Если вам встретится модель под названием Duemilanove, это полный аналог UNO. Отличия лишь в способе связи с компьютером, выше я упомянул, что на UNO она организована на дополнительном микроконтроллере - Atmega8u2, Duemilanove общается с компьютером через FT232RL.

Перейдем к обзору плат. На фото ниже это полные клоны ардуино, ниже мы рассмотрим модернизированные платы.

Отличный клон UNO, главное отличие - наличие дополнительных контактов разъёма «GVS» (ground-voltage-signal). Это не совсем разъём, а скорее порядок размещения проводов в разъёме. Именно так подключаются многие датчики и прочая периферия.

Но в стандартной гребенке контакты расположены иначе, при этом вам обязательно не хватит контактов питания (Vcc и Gnd), придется скручивать провода, либо использовать беспаечную макетную плату для подсоединения. Разработчики Iteaduino предусмотрели это и решили проблему дублированием контактов типа «папа» в правильной последовательности.

Если вы не нашли такую плату - придется покупать шилд, но работать с ним не так удобно, тем более для начинающего лучше, когда деталей меньше.

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

Еще одна уно-подобная плата с возможностью подключения к сети по кабелю и установки микро SD-карты. Хотя и есть Ethernet-shield, но опять-таки - он увеличит объём занимаемый платой в корпусе и вес продукта. Плата , но на ней отсутствует USB-интерфейс.

Для прошивки нужно дополнительно приобрести USB-UART конвертер вот такой, например, его гребенка подходит к такой же на плате Arduino Ethernet.

Leonardo и Esplora

Модель Arduino для тех, кому нужно много аналоговых входов, для считывания аналоговых датчиков, здесь их 12, против 6 на плате УНО.

Это получилось за счет использования Atmega32u4, а не Atmega328, как на большинстве плат они подключены к пинам, те, что на UNO были цифровым: 4, 6, 8, 9, 10, 12.

Такая разводка позволяет использовать их как раньше, что даёт совместимость с платами расширения или подключать источники аналогового сигнала. ШИМ выводов здесь не 6, а 7.

Исчезла необходимость в USB-UART конвертере, в Atmega32u4 интегрирована аппаратная поддержка USB. Для работы может потребоваться дополнительный модуль PoE. Такие платы отлично подходят для создания контроллеров для ПК, он поддерживает USB HID, и может выступать в роли мыши или клавиатуры или геймпада, с соответствующей обвязкой и деталями.

Интересен Leonardo тем, что при одинаковых размерах и совместимости с UNO имеет больше функций в плане работы с ШИМ и аналоговым сигналом.

На его основе сделана Esplora - по сути плата джойстика совместимая с арудиновским кодом и возможностью программирования и создания уникального девайса. На фото ниже вы видите такую плату с дополнительным дисплеем (в комплект его нет), напоминает портативную консоль.

MEGA и DUE

Если вы собрались делать систему автоматизации для целого дома или другой объёмный проект вам не хватит выводов . На помощь придет контроллер Atmega2560, и плата ардуино с аналогичным названием, здесь есть 54 цифровых входа-выхода и 16 аналоговых. Это более, чем в 2 раза больше, чем у тех, что мы рассмотрели выше. К ней продаются соответствующие большие шилды.

UNO-шилды условно совместимы. Только нужно в библиотеках править расположение пинов, потому что их нумерация различна.

Если вам нужно еще больше возможностей, стоит сменить архитектуру. Arduino DUE построен не на МК семейства AVR8, а на ARM CORTEX-M3. Это 32-х разрядный контроллер. 54 цифровых и 12 аналоговых каналов помогут реализовать большой проект. 4 UART интерфейса, SPI, Twin-Wire, JTAG. 512 кб флеш, 96 SRAM, 32 разряда - всё это нужно для высокой скорости выполнения сложных программ.

Напомню, что у атмеги328 всего 32 кб флеш-памяти и 2 кб SRAM

ВНИМАНИЕ:

Питание и напряжение логических уровне - 3.3 В, если хотите убить DUE, подайте на неё 5 В.

Самые маленькие ардуины

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

Актуальная версия - Arduino Nano v3.0. Из маленьких она наиболее удобна, для прошивки используется Mini-b USB-кабель, но китайские копии часто используют micro-USB разъём, который очень распространен для подключения смартфона к компьютеру или его зарядки.

По количеству и назначению пинов она аналогична UNO, но не совместима с шилдами. Кстати, для нано встречаются специализированные шилды (китайцы делают все, что только можно вообразить). Чаще всего китайские копии используют CH340G для связи с компьютером через USB, лично у меня на Windows 8.1 драйвер не установился автоматически, проблема решилась после 2-х минут поиска в гугле по названию микросхемы, дальше всё пошло как по маслу.

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

Arduino mini - не работает по USB

Самая мелкая плата, аналогичная по функционалу «ункам» и «нанкам» - это «мини». Забавно, что самая маленькая плата, судя по названию, должна быть больше, чем «нано». Получилось наоборот. Экономия размеров достигнута за счет исключения узла связи по юсб (rs232, ch340g и подобных) и самого разъёма. Для этого есть контактные площадки для подключения по последовательному интерфейсу.

Прошивка осуществляется с помощью USB-serial (usb-uart) переходников. Если вы собираетесь заниматься микроконтроллерами - стоит его приобрести, он много где может пригодиться.

Может поставляться как с распаянными контактными площадками, так и просто приложенными в комплекте, для самостоятельной установки.

Интересная разработка Digispark. Её форм-фактор напоминают флешку, для её прошивки не нужен кабель, она сама вставляется в USB-порт компьютера.

В вашем распоряжении всего 6 выводов(3 PWM и 4 аналоговых, I2C), 8 Кб флэш-памяти для программ, по 512 б ROM и RAM, 2 кб памяти, как обычно, заняты загрузчиком, так что вам доступно лишь 6 кб.

При прошивке 2 цифровых пина (P3, P4) задействуются под USB, но вы их можете использовать после прошивки, когда отключите от компьютера. Обратите внимание на распиновку - она написана на обратной стороне платы, на картинке справа. Для работы с ней нужно настроить IDE.

Еще несколько особенностей:

1. пин P5 - это «RESET», если подать на него логический ноль - плата перезагрузится, он же A0, т.е. первый аналоговый вход, сигнал может считываться в диапазонах более, чем 1.2 в, поскольку всё что ниже воспринимается, как «ноль» и идёт перезагрузка. Сомнительный пин вообще, но если подумать, как его использовать, и достигает ли измеряемый сигнал вообще нуля, то всё не так плохо.

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

Заключение

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

Плата Arduino Uno – центр большой империи Arduino, самое популярное и самое доступное устройство. В ее основе лежит чип ATmega – в последней ревизии Ардуино Уно R3 – это ATmega328 (хотя на рынке можно еще встретить варианты платы UNO с ATmega168). Большинство ардуинщиков начинают именно с платы UNO. В этой статье мы рассмотрим основные особенности, характеристики и устройство платы Arduino Uno ревизии R3, требования к питанию, возможности подключения внешних устройств, отличия от других плат (Mega, Nano).

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

Характеристики Arduino Uno

Изображения плат Ардуино Уно

Оригинальная плата выглядит следующим образом:

Оригинальный и официальный Arduino Uno

Многочисленные китайские варианты выглядят вот так:


Плата – клон Arduino Uno

Еще примеры плат:




Где купить Arduino Uno

Минимальные цены на платы UNO можно найти в китайских электронных магазинах. Если у вас есть несколько недель на ожидание, вы можете существенно сэкономить, купив дешево (в районе 200-300 рублей) с бесплатной доставкой. Причем можно найти как самые простые варианты, так и официальные или “почти оригинальные” платы на базе оригинального микроконтроллера. Еще одна группа товаров – необычные платы со встроенными WiFi (на базе ESP8266 или ESP32), дополнительными разъемами для более удобного подключения периферии. Вот некоторые варианты, которые можно купить у проверенных поставщиков на Алиэкспрессе:

Arduino UNO R3 (CH340G) MEGA328P. Типичный представитель плат Ардуино на Aliexpress с ценой ниже 250 рублей Качественная плата Arduino UNO R3 на CH340G. Комплект без кабеля с минимальной ценой около 220 рублей Arduino оптом – 10 плат контроллера UNO R3 с MEGA328P ATMEGA16U2 на борту
Официальный Arduino UNO R3 MEGA328P на базе ATMEGA16U2 – максимальное качество Плата MegaPower Uno на базе оригинальных ATmega328 R3, FTDI FT232RL Оригинальный Arduino UNO R3 (плата на базе оригинальных микросхем MEGA и ATMEGA16U2) с USB кабелем в картонной коробке
Два в одном! Arduino UNO со встроенным Sensor Shield (Atmega328P Atmega16U2 плюс Sensor I/O Shield) Arduino Uno и WiFi под одной крышей: R3 ATmega328P+ESP8266 (32Mb memory) Отличный вариант от KeyeStudio – UNO R3 MEGA328P ATMEGA16U2 с совмещенным Sensor Shield

Отличие от других плат

Сегодня на рынке можно встретить множество вариантов плат ардуино. Самыми популярными конкурентами Уно являются платы Nano и Mega. Первая пойдет для проектов, в которых важен размер. Вторая – для проектов, где у схема довольно сложна и требуется множество выходов.

Отличия Arduino Uno от Arduino Nano

Современные платы Arduino Uno и версии R3 имеют, как правило, на борту общий микроконтроллер: ATmega328. Ключевым отличием является размер платы и тип контактных площадок. Габариты Arduino Uno: 6,8 см x 5,3 см. Габариты Arduino Nano: 4,2 см x 1,85 см. В Arduino UNO используются коннекторы типа «мама», в Nano – «гребень» из ножек, причем у некоторых моделей контактные площадки вообще не припаяны. Естественно, больший размер UNO по сравнению с Nano в некоторых случаях является преимуществом, а в некоторых – недостатком. С платой большого размера гораздо удобнее производить монтаж, но она неудобна в реальных проектах, т.к. сильно увеличивает габариты конечного устройства.

На платах Arduino Uno традиционно используется разъем TYPE-B (широко применяется также для подключения принтеров и МФУ). В некоторых случаях можно встретить вариант с разъемом Micro USB. В платах Arduino Nano стандартом является Mini или Micro USB.

Естественно, различия есть и в разъеме питания. В плате Uno есть встроенный разъем DC, в Nano ему просто не нашлось места.

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

Отличия от Arduino Mega

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

  • Плата Mega использует иной микроконтроллер: ATMega 2560. Но тактовая частота его равна 16МГц, так же как и в Уно.
  • В плате Mega большее количество цифровых пинов – 54 вместо 14 у платы Uno. И аналоговых – 16 / 6.
  • У платы Mega больше контактов, поддерживающих аппаратные прерывания: 6 против 2. Больше Serial портов – 4 против 1.
  • По объему памяти Uno тоже существенно уступает Megа. Flash -память 32/256, SRAM – 2/8, EEPROM – 4/1.

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

Краткие выводы

Arduino Uno – отличный вариант платы для создания . 14 цифровых и 6 аналоговых пинов позволяют подключать разнообразные датчики, светодиоды, двигатели и другие внешние устройства. USB-разъем поможет подключиться к компьютеру без дополнительных внешних устройств. Встроенный стабилизатор позволяет использовать различные элементы питания с широким диапазоном напряжения, от 6-7 до 12-14 В. В Arduino Uno достаточно удобно реализована работа с популярными протоколами: UART, SPI, I2C. Есть даже встроенный светодиод, которым можно помигать в своем первом скетче. Чего еще желать начинающему ардуинщику?

Оригинальный Arduino был разработан для одной специфической задачи, и справился с этой задачей в совершенстве. С успехом первой оригинальной платы Arduino, компания решила создать больше проектов, некоторые из них для очень специфических задач. Кроме того, поскольку оригинальный дизайн Arduino был под открытой лицензией, несколько компаний и частных лиц разработали свои собственные Arduino совместимые платы расширений, или следуя принципам открытого исходного кода, предложили свои изменения в Arduino. Arduino начал программу сертификации для обеспечения совместимости с бордами, которые используют различные процессоры, и Intel Galileo был первым, кто получил подобный сертификат. Любой может сделать свой собственный Arduino-совместимый прибор, но наименование и логотип Arduino зарезервирован как торговая марка. Таким образом, вы найдете множество плат с именами, заканчивающимися на "uino", подразумевающие совместимость.

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

Arduino Uno


является стандартной платой Arduino и возможно наиболее распространенной. Она основана на чипе Atmel ATmega328, имеющем на борту 32 КБ флэш-памяти, 2 Кб SRAM и 1 Кбайт EEPROM памяти. На периферие имеет 14 дискретных (цифровых) каналов ввода / вывода и 6 аналоговых каналов ввода / вывода, это очень разносторонне-полезные девайсы, позволяющие перекрывать большинство любительских задач в области микроконтроллерной техники. Чип ATmega16u2 на борту управляет последовательной связью. Данная плата контроллера является одной из самых дешовых и наиболее часто используемых. При планировании нового проекта, если вы незнакомы, с платформой Arduino, советую начать с Uno.

Arduino Leonardo

Платформа немного отличается от Uno. На основе ATmega32u4, этот микроконтроллер имеет расширенные возможности USB и, следовательно, не требует отдельного микрочипа для последовательной связи по USB, как Uno. Это означает меньшую стоимость; меньше микросхем - дешевле решение. Это также означает, что разработчик может использовать микроконтроллер в качестве родного устройства USB, увеличивается гибкость при коммуникации с компьютером. Леонардо может эффективно эмулировать клавиатуру и мышь через USB HID.

Arduino Ethernet

Платформа Arduino Ethernet на основе ATmega 328, взятая с Uno , может подключаться к сети Ethernet ,функциональность необходимая во множестве проектов. Физически, платформа Arduino Ethernet имеет те же14-дискретных входов / выходов, как Arduino Уно, с темисключением, что 4 используются для управления модулем Ethernet и встроенным считывателем микро- SD карт, ограничиваяколичество доступных выводов.

Интересноотметить, что Arduino Ethernet имеет дополнительный модуль POE (Power Over Ethernet ). Эта опция позволяет Arduino Ethernet питаться непосредственно от сети Ethernet , без необходимости использования внешнегоисточника питания при условии, что питание POE подключено на другом конце кабеля Ethernet . Без POE Arduino должен быть запитан с помощью внешнего источника питания.

Еще одно отличиеот других плат Arduino - это отсутствие разъема USB . Потому что довольно много места занято разъемом Ethernet , зато устройство поддерживает коммуникации черезобычные выводы.



Arduino Mega 2560


лиш немного длиннее, чем Arduino Uno, но она имеет значительно больше каналов ввода - вывода. Она имеет в общей сложности 54 цифровых линий ввода / вывода и 16 аналоговых входов. Она также имеет большое количество флэш-памяти: 256 КБ, что позволяет хранить большие программы, чем Uno. Она также имеет немалую SRAM и EEPROM: 8 КБ и 4 КБ, соответственно. Она также имеет 4 аппаратных UART порта, что делает ее идеальной платформой для коммуникаций с несколькими устройствами параллельно.

Платы Arduino Mega используются там, где необходимо большое количество входов и выходов.



Arduino Mini

Платформа Arduino Mini это крошечное устройство, используемое в проектах, требующих максимальной экономии места. Она содержит 14 цифровых входов / выходов и 4 аналоговых входных контакта. (Еще четыре доступны, но не выведены.) Устройство настолько миниатюризировано, что не имеет ни USB-разъема, ни регулятора мощности ни даже гребёнки для подключения периферии. Программирование осуществляется с помощью внешнего USB или RS232 через TTL последовательный адаптер.



Arduino Micro


полностью соответствует своему названию; это одна из самых маленьких плат из линейки Arduino. Несмотря на свой небольшой размер, она все же имеет большое количество входных и выходных выводов; она имеет 20 цифровых каналов ввода / вывода, из которых 7 могут быть использованы как выходы ШИМ. Она также имеет 12 аналоговых входов. Микро не спроектирована, для наращивания подсоединенными шилдами, но у её такое расположение выводов гребенок, что её удобно размещать непосредственно на макетной плате.



Arduino Due

Контроллер Arduino Due отличается от всех Arduino тем, что он спроецирован не на базе AVR, а на чипе Atmel SAM3X8E архитектуры ARM Cortex-M3. Этот передовой микроконтроллер работает на частоте 84 МГц и является полноценным 32-разрядным устройтвом. Он имеет большое количество дискретных и аналоговых входов / выходов: 54 цифровых канала (12, из которых могут быть использованы в качестве ШИМ) и 12 аналоговых входов. На плате предусмотрены 4 UART, порт SPI, интерфейс Twin-Wire, а так же включает в себя порт JTAG.

Платформа Arduino Due имеет более высокие требования пи питанию и питается от 3,3 В. Будьте осторожны, чтобы не подать 5 В на любой из выводов: в противном случае, вы можете спалить плату. При выборе шилда расширения для Due, убедитесь, что он поддерживает питание 3.3 В.

Arduino Due невероятно мощный Arduino. Due имеет на борту 512 КБ флэш-памяти и в суммарно 96 КБ SRAM. Он может обрабатывать крупнейшие программы на высокой скорости. Если вам нужны мощные вычислительные процессы, то эта Ардуина для вас.

LilyPad Arduino

LilyPad Arduino - довольно интересное устройство. Оно выпадает из привычных стереотипов об обычном Arduino, потому что имеет не прямоугольную, а круглую форму. Во-вторых, оно не поддерживает механические соединения с шилдами. Оно предназначено для, небольших автономных устройство. Круглая форма продиктовала то, что разъемы равномерно распределены по окружности, и его небольшой размер (2 дюйма в диаметре) делает его идеальным для переносных устройств. Это устройство легко спрятать, и несколько производителей разработали устройства, специально для LilyPad: экраны, датчики света, даже коробки для батарей питания, которые могут быть зашиты в ткань. Для того, чтобы сделать LilyPad как можно меньше и как можно легче, на сколько возможно, были принесены некоторые жертвы. У LilyPad нет регулятора напряжения на борту, так что ему для питания будет необходимо обеспечить по крайней мере 2,7 вольт, и не более 5,5 вольт; в противном случае, будет пшик.

Arduino Pro

Контроллер Arduino Pro заявлен в двух версиях, на основе ATmega168 и ATmega328. Версия 168 работает на 3,3 В с тактовой частотой 8 МГц, а версия 328 работает на 5 В и частоте 16 МГц. Обе версии имеют 14 цифровых входов / выходов и 6 аналоговых входов. Контроллер имеет разъем питания батареи JST, переключатель для выбора между режимами питания, и пространство, отведенное для модуля питания, при необходимости. На плате нет порта USB, но вместо него используется кабель FTDI для программирования.

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

Arduino Robot

Arduino Robot, это попросту говоря, Arduino на колесах. В его состав входят две платы контроллеров - один управляет двигателями на борту, а другой обрабатывает сигналы датчиков. Управляющий контроллер дает команды плате управления двигателями о том, что делать.

Управляющая плата контролируется чипом ATmega32u4, с 32 КБ флэш, 2,5 КБ SRAM и 1 Кбайт EEPROM памяти. Она также имеет внешнее I2C EEPROM устройство, обеспечивая больше места для хранения информации. На борту есть компас, динамик, три светодиода, клавиатура на пять кнопок и ЖК-экран. Она также имеет три вывода под пайку для внешнего I2C устройства. Она также имеет отдельные каналы ввода / вывода, с пятью цифровыми входами / выходами, шестью ШИМ и четырьмя аналоговыми входами. Оставлено место для восьми аналоговых входов (для датчиков расстояния, ультразвуковых датчиков или других) и шести дискретных входов / выходов для других устройств (четыре из которых могут быть использованы для аналогового входа).

Плата двигателей полностью независима, основана на ATmega32u4, тоесть на том же чипе что и плата управления. Плата двигателей имеет в своем составе два двигателя с колесами, запитанных отдельно, пять ИК датчиков, I2C и SPI порты. Она также содержит батарейный блок, в который вставляется четыре аккумуляторные батареи типа АА, а так же содержит гнездо для подзарядки аккумуляторов на борту. Плата может быть также запитана от разъема USB, но в этой конфигурации, из каких-то соображений безопасности, двигатели при этом отключаются.

Arduino Esplora

Arduino Esplora это довольно странное устройство. Большинство плат Arduino предназначены для стационарного размещения на столе или в щите, но Esplora предназначен для держания руками. Основан ATmega32u4, геометрически не совместим с шилдами и не имеет на борту контактов для входов и выходов. Вместо этого, он выглядит и ощущается в руках как геймпад; у него есть курсор под большой палец в виде четырех дискретных кнопок, один аналоговый джойстик, а так же линейный потенциометр. В качестве обратной связи предусмотрены зуммер и трехцветный светодиод. Esplora также имеет следующие датчики: она имеет на борту микрофон, датчик температуры, разъем для подключения ЖК-экрана и трех-осевой акселерометр. У Esplora 32 Кб флэш памяти; 4 Кб используются загрузчиком. Так же имеется 2,5 Кб SRAM и 1 Кбайт EEPROM памяти. Для совместимости Esplora c другими контроллерами, предусмотрены 4 разъёма TinkerKit: с двумя входами и двумя выходами.

Платформа Arduino Yun базируется на чипе ATmega32u4, но он также имеет Atheros AR9331 на одной плате. Процессор Atheros имеет полный дистрибутив Linux, на основе OpenWRT, операционной системы распространенной в беспроводных маршрутизаторах на Linux. Плата Arduino Yun имеет встроенный Ethernet и WiFi, а также слот для micro-SD. Юн отличается от других Arduino и шилдов тем, что у него серьезная сетевая функциональность; Arduino может посылать команды в OpenWRT, и дальше продолжать обработку своего скетча. Оба процессора работают самостоятельно, существующая библиотека обмена данными облегчает коммуникацию между двумя процессорами.

Arduino Tre

Arduino Tre только планируется запустить в производство но обещает стать феноменальным монстром в сфере любительских контроллеров. До этого момента, самым быстрым Arduino был Due, на основе ARM-совместимого микроконтроллера. Tre, созданный Arduino и BeagleBoard, сочетает в себе мощность полного компьютера с гибкостью каналов ввода / вывода платформ Arduino. Tre будет иметь процессор класса Cortex-A8 под названием Sitara AM335X, работающий на частоте 1 ГГц. Этот процессор имеет доступ к 512 Мб оперативной памяти и имеет HDMI порт способный отображать Full HD (1920 х 1080). Вся эта мощь сопряжена с интерфейсом разработчика с помощью Atmel ATmega32u4 используя среду программирования Arduino, столь полюбившуюся фанатам.

Arduino Zero

Arduino Zero это новый Arduino на чипе Atmel SAM D21 микроконтроллера. У него 256 Кб флэш-памяти, 32 Кб оперативной памяти, и работает он на частоте 48 МГц. Arduino Zero предназначен для удовлетворения будущих потребностей сообщества разработчиков, предлагая дизайн, который одновременно является мощным, надежным, и достаточно гибким, который будет востребован в робототехнике и переносных проектах.