Arduino или Raspberry Pi: как выбрать контроллер для проекта

Уголок радиоконструктора

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

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

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

 

Все платы для разработки можно разбить на две большие категории:

Платы на микроконтроллере
(MCU, MicroController Unit)
Одноплатные компьютеры
(SoC, System on a Chip)
Типичный представитель — Arduino
Типичный представитель — Raspberry Pi

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

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

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

  Микроконтроллер Одноплатный компьютер
Производительность 1 ядро,
десятки-сотни МГц,
десятки КБ оперативки,
десятки-сотни КБ постоянной памяти.
1 или более ядер,
сотни-тысячи МГц,
сотни МБ оперативки,
гигабайты постоянной памяти.
Многозадачность Нет.
Но можно эмулировать.
Да.
Управляется ОС.
Удобство работы с интернетом
★☆☆
Обычно нужны дополнительные модули и глубокое знание протоколов.
★★★
Легко подключается из коробки, сетевой модуль обычно уже на борту.
Длительность работы от батареек
★★★
Потребляет единицы-десятки мА. Возможны недели работы от батареек.
★☆☆
Потребляет сотни-тысячи мА. Заряда большого аккумулятора хватит от силы на десяток часов.
Скорость реакции в проектах, критичных к времени
★★★
100% контроль над временем и длительностью подачи сигналов.
★☆☆
Из-за многозадачности критический процесс может проспать своё время.
Выбор языков программирования
★☆☆
Ограниченный. Чаще C/C++.
★★★
Python, JavaScript, Bash и десяткии других: любые доступные в ОС.
Возможности для работы с видео, компьютерным зрением
☆☆☆
Не хватит мощности.
★★★
OpenCV, аппаратные видеокодеки, HDMI-выход.
Возможности для работы со звуком
★★☆
На мощных микроконтроллерах возможен синтез звука. Для работы с MP3/OGG/WAV нужны дополнительные модули.
★★★
Поддержка MP3/OGG/WAV на уровне ОС. Аудиовыход HDMI и/или разъём 3,5 мм.

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

Так как нет большого смысла сравнивать лицом к лицу микроконтроллеры и микрокомпьютеры, далее мы отдельно приведём преимущества и недостатки конкретных плат в рамках своего семейства.

Сравнение микроконтроллеров

Если рассматривать микроконтроллерные платы в отрыве от задач вашего проекта, сложно в двух словах объективно описать преимущества и недостатки разных платформ. То, что в общем является недостатком, в вашем устройстве может не играть роли, и наоборот.

Мы попытались сравнить платы, отталкиваясь от возможностей флагманской DIY-платформы Arduino Uno, так как платы именно этого семейства дали невероятный пинок развитию хобби-электроники во всём мире. Разные компании выпускают модули, сенсоры, платформы, дополнения с шильдами «Arduino compatible», «Designed for Arduino» и т.д. За этими словами стоит электронная и программная совместимость в первую очередь с Arduino Uno, а уж затем со всем остальным.

Как правило, с помощью ухищрений или дополнительных компонентов можно подключить что угодно и к чему угодно. Но ведь вам хочется сосредоточиться на своём проекте, а не на борьбе с электроникой? Поэтому волей-неволей хочется сравнить любую плату на микроконтроллере именно с Arduino Uno. Так и сделаем.

https://amperka.ru/page/development-board-guide