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

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

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

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

Arduino или Raspberry Pi? Микроконтроллер или микрокомпьютер?

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

Платы на микроконтроллере
(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. Так и сделаем.

Arduino Uno

Arduino Uno

Процессор на 16 МГц, 32 КБ постоянной и 2 КБ оперативной памяти, 20 портов ввода-вывода, 6 аналоговых входов, 6 каналов ШИМ, 2 аппаратных прерывания, может, и не впечатляют, но без балласта в виде операционной системы и интерпретаторов они позволяют решать практически любые задачи по точному дирижированию множеством сенсоров и исполнительных устройств.

Плюсы Arduino Uno

  • Тонны документации, уроков и готовых библиотек, огромное сообщество, работа из простой в освоении среды Arduino IDE с языком Arduino C++. Всё это просто не даст вам возможности сказать «не осилил».
  • Родное напряжение в 5 вольт, которое является стандартом де-факто, и колодки для установки плат расширения, аналоговые входы, всевозможные аппаратные интерфейсы позволяют подключить практически любую периферию, сенсоры и исполнительные устройства.

Arduino Leonardo

Arduino Leonardo

Та же Arduino Uno, но с другим, слегка улучшенным микроконтроллером.

Плюсы Arduino Leonardo

  • Большее количество аналоговых входов (12 против 6) для сенсоров, больше каналов ШИМ (7 против 6), больше пинов с аппаратным прерыванием (5 против 2), раздельные независимые Serial-интерфейсы для USB и UART.
  • Arduino Leonardo может притворяться клавиатурой или мышью (HID-устройством) для компьютера. Это позволяет легко сделать своё собственное устройство ввода.

Минусы Arduino Leonardo

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

Iskra Neo

Iskra Neo

Та же Arduino Leonardo, но произведённая нами, в России.

Плюсы Iskra Neo

  • Заметно дешевле оригинала.

Arduino Mini

Arduino Mini

Та же Arduino Uno, но в другом форм-факторе.

Плюсы Arduino Mini

  • Компактная. Всего 30×18 мм.

Минусы Arduino Mini

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

Iskra Mini

Iskra Mini

Та же Arduino Mini, но произведённая нами, в России.

Плюсы Iskra Mini

  • Заметно дешевле оригинала.
  • Есть в варианте с распаянными колодками и с незапаянными отверстиями.

Arduino Micro

Arduino Micro

Та же Arduino Leonardo, но в другом форм-факторе.

Плюсы Arduino Micro

  • Компактная. Всего 48×18 мм.

Минусы Arduino Micro

  • Из-за форм-фактора нельзя без ухищрений устанавливать платы расширения Arduino. Предполагается соединение с дополнительными модулями проводами и/или через макетную плату.

Arduino Mega 2560

Arduino Mega 2560

Как Arduino Uno, но на базе более мощного микроконтроллера той же архитектуры. Отличный выбор «на вырост» или на случай, если Arduino Uno перестала справляться.

Плюсы Arduino Mega 2560

  • В разы больше памяти: 256 КБ постоянной и 8 КБ оперативной. В разы больше портов: 60 из них 16 аналоговых и 15 с ШИМ.

Минусы Arduino Mega 2560

  • Немного длиннее базовой Arduino Uno: 101×53 мм против 69×53 мм.

Arduino Due

Arduino Due

Одна из самых производительных плат Arduino на микроконтроллере Cortex-M3, аналогичная по форм-фактору Arduino Mega.

Плюсы Arduino Due

  • Процессор на 84 МГц и 512 КБ памяти. 66 пинов ввода-вывода, из которых 12 могут быть аналоговыми входами, 12 поддерживают ШИМ и все 66 могут быть настроены, как аппаратные прерывания.
  • Встроенный контроллер шины CAN позволяет создавать сеть из Due или взаимодействовать с автомобильной электроникой. Два канала ЦАП позволяют синтезировать стереозвук с разрешением в 4,88 Гц.

Минусы Arduino Due

  • Родным напряжением для платы является 3,3 В, а не традиционные 5 В. Необходимо следить, чтобы выбираемая периферия поддерживала работу с этим уровнем или ставить преобразователи уровней напряжения.

Iskra JS

Iskra JS

Плата на ядре Espruino: её программируют на JavaScript.

Плюсы Iskra JS

  • JavaScript — язык высокого уровня. Программы писать проще, они компактнее и выразительнее. Особенно, если речь идёт о многочисленных строковых операциях, массивах данных, веб-интерфейсе.
  • Мощный микроконтроллер Cortex-M4 на 168 МГц, 1 МБ флеш, 192 КБ оперативной памяти, десятки портов с ШИМ и аналоговых входов, 2 аналоговых выхода, по нескольку I²C, SPI, UART — всё это даёт подключить и одновременно работать с самыми разнообразными сенсорами и модулями.

Минусы Iskra JS

  • Несмотря на то, что родной уровень для платы — 3,3 вольта, пины толерантны к 5 вольтам: подключение пятивольтовой периферии тривиально.
  • Из-за другой среды и экосистемы для программирования может не существовать готовой библиотеки для выбранной периферии. Её придётся реализовать самостоятельно.

Strela

Strela

Робототехническая платформа «всё в одном» содержит в себе большинство тех вещей, которые нужны при создании любого лёгкого мобильного робота. Strela, как и любая другая Arduino, программируется из Arduino IDE, а в основе содержит тот же микроконтроллер, что и Arduino Leonardo.

Плюсы Strela

  • Встроенный драйвер для двух двигателей, 4 разъёма для сервоприводов, 4 кнопки и 4 светодиода свободного назначения, зуммер, слоты для ЖК-экрана и модуля беспроводной связи.
  • Мощный регулятор питания позволяет без ухищрений использовать множество различных аккумуляторов.
  • 11 входов-выходов выведены в виде трёхконтактных разъёмов для лёгкого подключения дополнительных датчиков и модулей. ЖК-экран, кнопки и светодиоды подключены через расширитель портов, поэтому они не занимают входы-выходы общего назначения.

Минусы Strela

  • На плате не предусмотрены колодки для установки плат расширения Arduino.
  • Из-за изменённой нумерации контактов (в сравнении с базовой Arduino Leonardo) необходимо использовать немного другие функции для работы с пинами платы. Они предоставлены в одноимённой библиотеке.

Arduino Yún

Arduino Yún

Уникальный гибрид Arduino Leonardo и микрокомпьютера на OpenWRT Linux. Отличный выбор для «интернета вещей».

Плюсы Arduino Yún

  • Плата оснащена Ethernet и Wi-Fi, через которые можно общаться с устройством и даже перепрошивать платформу удалённо.
  • Мощь Linux позволяет работать с мультимедиа, а его сетевые возможности — легко интегрироваться с социальными сетями и другими веб-сервисами.

Минусы Arduino Yún

  • OpenWRT — это порезанный Linux. На микрокомпьютере можно установить не любой Linux-софт. А в качестве скриптовых языков программирования из коробки можно использовать только Bash и Python.

STM32 Nucleo F401RE

STM32 Nucleo F401RE

Плата с мощным микроконтроллером Cortex-M4. Платформа программируется не через Arduino IDE, а через онлайн-среду mbed.org. Субъективно, она мощнее и стройнее Arduino IDE, хотя и не так распространена. Для пытливого ума — отличный выбор.

Плюсы STM32 Nucleo F401RE

  • Процессор на 84 МГц, 512 КБ постоянной и 96 КБ оперативной памяти. 50 портов ввода-вывода, из которых 16 аналоговых и 29 с ШИМ. Родной уровень напряжения — 3,3 В, но все пины толерантны к 5 В, поэтому проблем электронной совместимости с Arduino-периферией возникнуть не должно.
  • Колодки для плат расширения по конфигурации совпадают с Arduino Uno, поэтому на Nucleo можно поставить множество плат расширения от Arduino.
  • На плате не выведен отдельный SPI-разъём. Платы расширения Arduino, которые используют SPI через ICSP-разъём, без ухищрений не будут работать.

Минусы STM32 Nucleo F401RE

  • Из-за другой среды и экосистемы для программирования может не существовать готовой библиотеки для выбранной периферии. Её придётся реализовать самостоятельно.

Teensy 3.2

Teensy 3.2

Компактная плата с мощным микроконтроллером Cortex-M4. Программируется из привычной Arduino IDE.

Плюсы Teensy 3.2

  • Меньше Arduino Micro (35×17 мм), но почти столь же мощная, как Nucleo: процессор 72 МГц, 256 КБ постоянной и 64 КБ оперативной памяти, 34 порта ввода-вывода, из которых 21 могут быть аналоговыми, а 12 поддерживают ШИМ.
  • Teensy 3.2 очень энергоэффективна. У неё нет регулятора напряжения, но входным может являться любое от 3,3 до 5,5 В. Это же напряжение и будет логическим уровнем. В режиме сна плата потребляет всего 0,25 мА, что даёт возможность работать от аккумулятора несколько месяцев.
  • Встроенный контроллер шины CAN позволяет создавать сеть из Due или взаимодействовать с автомобильной электроникой. Два канала ЦАП позволяют синтезировать стереозвук с разрешением в 4,88 Гц.

Минусы Teensy 3.2

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

Netduino 2

Netduino 2

Плата повторяет форм-фактор Arduino Uno, но имеет мощную начинку, достаточную для исполнения программ, написанных на платформе .NET. Netduino программируется на C# или любом другом .NET-языке в привычной любому .NET-разработчику среде Visual Studio. В качестве стандартной библиотеки предоставляется .NET Micro Framework.

Плюсы Netduino 2

  • В Visual Studio работает автодополнение, подсказки, контекстная помощь в MSDN и полноценный отладчик. Вам доступны breakpoint’ы, пошаговое исполнение кода, наблюдение за переменными. Отладка происходит без ухищрений, просто с подключённым USB-кабелем. Благодаря всему этому скорость разработки под Netduino в разы превосходит скорость разработки под другие платформы.

Минусы Netduino 2

  • На плате не выведен отдельный SPI-разъём. Платы расширения Arduino, которые используют SPI через ICSP-разъём, без ухищрений не будут работать.
  • Из-за другой среды и экосистемы для программирования может не существовать готовой библиотеки для выбранной периферии. Её придётся реализовать самостоятельно.

Netduino Plus 2

Netduino Plus 2

Плюсы Netduino Plus 2

  • Как Netduino, только мощнее и с Ethernet на борту. Отличный выбор для реализации проектов интернета вещей.

Минусы Netduino Plus 2

  • Те же, что и у Netduino 2.

Сравнение одноплатных компьютеров

Законодателем моды среди одноплатных компьютеров является Raspberry Pi. Эта сверхпопулярная платформа в своё время перевернула представление о возможностях, габаритах и стоимости полноценного компьютера для DIY-электронщиков.

Опять же, для каждого проекта может лучше подойти тот или иной одноплатный компьютер, но в силу популярности Raspberry Pi, будем сравнивать другие платформы именно с ней.

Raspberry Pi 3 Model B

Raspberry Pi 3 Model B

Один из самых популярных одноплатников. Четыре ядра по 1200 МГц, 1 ГБ оперативной памяти и полноценный Linux, основанный на Debian, помогут решить множество задач, требовательных к вычислительным ресурсам. Среди них можно выделить компьютерное зрение, обработку звука в реальном времени, создание веб-сервисов.

Плюсы Raspberry Pi 3 Model B

  • Тонны документации, уроков и готовых библиотек, огромное сообщество. Всё это просто не даст вам возможности сказать «не осилил».
  • Привычные порты HDMI, 3,5 мм аудио, 4 USB помогут с лёгкостью подключить монитор, колонки, клавиатуру, мышь и другие USB-устройства. Модули BLE и Wi-Fi на борту помогут соединить компьютер с другими устройствами без проводов.

Минусы Raspberry Pi 3 Model B

  • На плате нет АЦП, поэтому подключение аналоговых сенсоров возможно только с помощью внешних, дополнительных компонентов.
  • Предоставляется лишь 1 аппаратный ШИМ-канал, что усложняет работу с периферией, которая управляется ШИМ’ом.

BeagleBone Black

BeagleBone Black

Микрокомпьютер, схожий с Raspberry Pi, который даёт больше благ, привычных для микроконтроллерных плат. Отличный выбор для проектов интернета вещей, когда необходимо управляться с множеством сенсоров и исполнительных устройств.

Плюсы BeagleBone Black

  • Мощная среда для разработки Cloud9 IDE. Вы просто заходите на BeagleBone через браузер и программируете на любимом языке, будь то Python, JavaScript (Node.js), Bash или любой другой язык Linux. Результат можно проверить мгновенно, а если что-то не заработало, использовать встроенный в среду полноценный отладчик.
  • На борту уже установлена флеш-память eMMC на 4 ГБ с операционной системой Linux. Память может быть увеличена внешней microSD-картой.
  • Широкие возможности по подключению периферии. 8 ШИМ-выходов и 7 аналоговых входов. Возможны аппаратные прерывания.

Минусы BeagleBone Black

  • Диковинный разъём microHDMI для подключения монитора. Для передачи звука используется он же.
  • Вычислительная мощность скромнее, чем у Raspberry Pi: 1 ядро на 400 МГц и 512 МБ оперативной памяти.

Полезные ссылки