Сейчас мы рассмотрим три платформы для разработки встраиваемых приложений: 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 IDE, а также большое сообщество и поддержку с дополнительными библиотеками, расширяющими функционал Arduino.


Если же говорить непосредственно о платах Arduino, то их, нужно сказать, не так уж и мало. На сегодняшний день существует большое количество видов плат Arduino, начиная с классических Arduino UNO, Leonardo, Mini, Micro и Nano и заканчивая специфическими Industrial 101, Tian и MKR1000.


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

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

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

Для начала стоит понять, зачем вообще подобная модульность необходима. Ведь, казалось бы, Ардуино – это всего лишь микроконтроллер, к которому можно приспособить любой сторонний датчик. Но на деле всё не так просто, как раз из-за программной части и других особенностей системы, поэтому, для расширения функционала, и присутствуют специальные Аrduino модули, позволяющие приспособить МК к любым потребностям человека, который его использует. Это основная функция, объясняющая необходимость модульности, помимо неё, присутствуют и другие причины такого решения:

  1. Стандартизированный набор датчиков с одинаковыми характеристиками позволяет писать универсальные решения для различных ситуаций. Таким образом, захотев воплотить в жизнь какой-то проект, вам не нужно самостоятельно изучать язык программирования и создавать уникальную электросхему. В большинстве случаев, уже готовая система или какие-то её части присутствуют в свободном доступе, инженеру лишь остается их правильно скомпоновать, что значительно экономит время при реализации задумок.
  2. Простота работы с Ардуино . Уже описанная выше стандартизация, позволяет быть уверенным, что купленный вами датчик или специальный модуль, не нужно будет подключать с помощью дополнительных шлейфов или переходников. Хоть иногда и появляется необходимость самостоятельно паять платформу под Ардуино, но, в большинстве случаев, вы можете приобрести уже готовую, под конкретные модули и потребности. Более того, существуют универсальные платы, полностью раскрывающие возможности модульной системы.

Виды

Условно, модули для Ардуино можно разделить на два гигантских лагеря, у которых уже присутствуют свои ответвления:

  1. Датчики . Разнообразные системы или контроллеры, позволяющие считывать, отправлять и обрабатывать информацию. Хотя последние иногда относят ко второму классу модулей, но из-за тесной связи с устройствами ввода-вывода их лучше причислить именно к датчикам, тем более, зачастую они выполняют сразу две функции. Все эти устройства направленны на расширение аппаратного функционала системы, например, чтобы дать возможность Ардуино считывать расстояние до объекта или влажность воздуха, что просто необходимо для многих систем.
  2. Модули , расширяющие вычислительные мощности проекта. Это различные карты памяти, дополнительные буферы для проведения операций и вспомогательные многопоточные процессоры. К ним же можно отнести вариации самого микроконтроллера, характеристики которого варьируются от версии к версии. Они направлены именно на улучшение возможностей программной части системы, например, дополнительные карты памяти позволяют хранить больше информации в различных кодеках, чтобы воспроизводить какие-то аудиодорожки. Особенно необходимы при проектировании сложных систем с нейросетями или в робототехнике, в которой также используется Ардуино.

Сами же датчики отдельно делятся на:

  1. Устройства ввода или получения информации. Это различные сканеры, которые позволяют получить данные об окружающей среде, будь то уровень освещённости или влажности воздуха. С их помощью возможно ввести различные переменные, в зависимости от которых система будет определять свои дальнейшие действия. Являются базой для большинства систем, и без них невозможно реализовать любой смарт-девайс. Простейшим примером будет всё тот же датчик расстояния, хотя и их существует несколько видов.
  2. Устройства обработки информации. Зачастую уже встроены в предыдущий тип, из-за чего считаются комбинированными, но нередко такие модули устанавливаются и отдельно. Имеют небольшой объем памяти или вовсе продаются без него, и способны выполнять лишь простые промежуточные операции. Подобным модулем можно считать даже МК Ардуино различных версий, но не стоит их путать с устройствами, расширяющими вычислительные возможности главного контроллера, ведь они именно выполняют операции.
  3. Устройства вывода информации. У большинства ассоциируются с простейшим ЖК-экраном, хотя это далеко не единственная разновидность данных девайсов. Необходимы для того, чтобы выводить результаты вычислений, для получения фидбека от системы и проверки различного функционала. Бывают звуковыми, визуальными и тактильными, соответствуя каждому из органов чувств человека. Также могут комбинироваться с первыми двумя видами, становясь гибридным дополнением к микроконтроллеру.

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

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

Технические характеристики, свойства и функции

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

Примеры популярных Ардуино модулей

Ультразвуковой дальномер HC-SR04

Самый популярный ультразвуковой датчик, которые работает по следующему принципу: отправляет ультразвуковую волну, считает время, за которое она возвратится. Мы знаем скорость звука и время, за которое волна вернулась, а далее мы рассчитываем расстояние до объекта. Данный модуль стоит довольно дешево, диапазон измерений от 2 см до 4 метров.

Инфракрасный дальномер Sharp

Также довольно широко используются дальномеры Sharp с рабочим диапазоном от 20 см до 1,5 метров. Цена таких модулей выше, чем звуковых дальномеров.

Модуль температуры и влажности DHT11

Этот Ардуино модуль измеряет температуру в диапазоне от 0 до +50 °C и влажность от 20 до 90%. Часто используется для измерений данных в комнате или теплице. Также оченб популярен при создании систем по управлению климатом или умных домов.

Барометр BMP085 или BMP180

С помощью модуля Барометр можно определить атмосферное давление от 30 до 110 кПа. Используется при создании на базе Ардуино аналогов метеостанциё.

Модуль-датчик влажности почвы FC-28

Модуль измеряет влажности почвы или среды в которую его втыкают. Состоит из двух частей. Его используют для автоматизированного полива растений.

Bluetooth HC06

Помогает организовать беспроводную связь Ардуино с компьютером, телефоном или другими устройствами.

Как подсоединить

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

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

Стоимость

Стоимость дополнительных датчиков и других девайсов также крайне вариативна, может начинаться от 50 центов и заканчиваться десятками долларов. Всё напрямую зависит от того, где вы их заказываете, конкретной разновидности и множества других факторов, поэтому выдать какое-то среднее арифметическое по их цене – невозможно.

Все, кто пользуется микроконтроллерами от Ардуино, не понаслышке знакомы с вопросом экономии. Однако покупать китайские платы от неизвестных производителей в надежде, что хоть часть из них будет работать как заявлено, - не лучшая стратегия. Но среди множества бесполезных железок можно найти и достойную дешёвую замену 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 произошла такая же история, есть несколько видов Arduino:

Arduino Mini

Самый миниатюрный вид Arduino, предназначен для встраивания уже в готовые изделия, не удобен для разработки проектов т.к. не имеет разъема USB для прошивки (нужен специальный переходник USB-Serial), имеет малое количество портов в/в.

ArduinoNano

Чуть больше по размерам, чем предыдущий вид ArduinoMini, добавлен порт mini-USB для прошивки, имеет большее количество портов в/в.

ArduinoUno

Самый распространенный вид Arduino, отличные показатели цена/качество, имеет большую плату (удобно создавать новые проекты), есть разъем для блока питания, mini-usb для прошивки, выведены все порты в/в.

Arduino Mega

Три предыдущих вида Arduino сделаны на микроконтроллере ATmega328,а данный вариант сделан на чипе ATmega2560. Главные отличия заключаются в большем количестве памяти и ножек в/в. Данный Arduino, является самым дорогим, большим по размерам и имеет расширенный функционал .

Какой вид Arduino необходимо иметь дома?

Все зависит от потребностей, я могу дать вам только пару советов:

  1. Обязательно приобретите Arduino Uno, удобная плата для разработки, большой функционал, средняя цена.
  2. Если вы хотите сделать небольшое устройство, например, управление лампами дневного света или кодовый замок, то уже надо будет задуматься о портативных видах Arduino, Miniили Nano.
  3. Если вам не хватает ресурсов вашего контроллера, то остается один вариант, это Arduino Mega, также она тоже удобна для разработки новых проектов, но в большинстве случаев, такие вычислительные мощности на первое время не понадобятся.