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. Так и сделаем.