какая платформа лучше? / Амперка
Итак, у вас есть замысел проекта, но вы сомневаетесь, какую плату выбрать в качестве мозга устройства? Попробуем помочь вам определиться.
Если вы просто хотите освоить схемотехнику, программирование, 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. Так и сделаем.
Процессор на 16 МГц, 32 КБ постоянной и 2 КБ оперативной памяти, 20 портов ввода-вывода, 6 аналоговых входов, 6 каналов ШИМ, 2 аппаратных прерывания, может, и не впечатляют, но без балласта в виде операционной системы и интерпретаторов они позволяют решать практически любые задачи по точному дирижированию множеством сенсоров и исполнительных устройств.
Плюсы Arduino Uno
- Тонны документации, уроков и готовых библиотек, огромное сообщество, работа из простой в освоении среды Arduino IDE с языком Arduino C++. Всё это просто не даст вам возможности сказать «не осилил».
- Родное напряжение в 5 вольт, которое является стандартом де-факто, и колодки для установки плат расширения, аналоговые входы, всевозможные аппаратные интерфейсы позволяют подключить практически любую периферию, сенсоры и исполнительные устройства.
Та же Arduino Uno, но с другим, слегка улучшенным микроконтроллером.
Плюсы Arduino Leonardo
- Большее количество аналоговых входов (12 против 6) для сенсоров, больше каналов ШИМ (7 против 6), больше пинов с аппаратным прерыванием (5 против 2), раздельные независимые Serial-интерфейсы для USB и UART.
- Arduino Leonardo может притворяться клавиатурой или мышью (HID-устройством) для компьютера. Это позволяет легко сделать своё собственное устройство ввода.
Минусы Arduino Leonardo
- Из-за небольших отличий распиновки от Arduino Uno возможна несовместимость с некоторыми платами расширения. Такие случаи, однако, редки, и в нашем магазине мы явно их прописываем.
Та же Arduino Leonardo, но произведённая нами, в России.
Плюсы Iskra Neo
- Заметно дешевле оригинала.
Arduino Mini
Та же Arduino Uno, но в другом форм-факторе.
Плюсы Arduino Mini
- Компактная.
Минусы Arduino Mini
- Из-за форм-фактора нельзя без ухищрений устанавливать платы расширения Arduino. Предполагается соединение с дополнительными модулями проводами и/или через макетную плату.
- На плате нет USB-порта, поэтому прошивать нужно через отдельный преобразователь USB-Serial
.
Та же Arduino Mini, но произведённая нами, в России.
Плюсы Iskra Mini
- Заметно дешевле оригинала.
- Есть в варианте с распаянными колодками и с незапаянными отверстиями.
Та же Arduino Leonardo, но в другом форм-факторе.
Плюсы Arduino Micro
- Компактная. Всего 48×18 мм.
Минусы Arduino Micro
- Из-за форм-фактора нельзя без ухищрений устанавливать платы расширения Arduino. Предполагается соединение с дополнительными модулями проводами и/или через макетную плату.
Как Arduino Uno, но на базе более мощного микроконтроллера той же архитектуры. Отличный выбор «на вырост» или на случай, если Arduino Uno перестала справляться.
Плюсы Arduino Mega 2560
- В разы больше памяти: 256 КБ постоянной и 8 КБ оперативной. В разы больше портов: 60 из них 16 аналоговых и 15 с ШИМ.
Минусы Arduino Mega 2560
- Немного длиннее базовой Arduino Uno: 101×53 мм против 69×53 мм.
Одна из самых производительных плат Arduino на микроконтроллере Cortex-M3, аналогичная по форм-фактору Arduino Mega.
Плюсы Arduino Due
- Процессор на 84 МГц и 512 КБ памяти. 66 пинов ввода-вывода, из которых 12 могут быть аналоговыми входами, 12 поддерживают ШИМ и все 66 могут быть настроены, как аппаратные прерывания.
- Встроенный контроллер шины CAN позволяет создавать сеть из Due или взаимодействовать с автомобильной электроникой. Два канала ЦАП позволяют синтезировать стереозвук с разрешением в 4,88 Гц.
Минусы Arduino Due
- Родным напряжением для платы является 3,3 В, а не традиционные 5 В.
Плата на ядре Espruino: её программируют на JavaScript.
Плюсы Iskra JS
- JavaScript — язык высокого уровня. Программы писать проще, они компактнее и выразительнее. Особенно, если речь идёт о многочисленных строковых операциях, массивах данных, веб-интерфейсе.
- Мощный микроконтроллер Cortex-M4 на 168 МГц, 1 МБ флеш, 192 КБ оперативной памяти, десятки портов с ШИМ и аналоговых входов, 2 аналоговых выхода, по нескольку I²C, SPI, UART — всё это даёт подключить и одновременно работать с самыми разнообразными сенсорами и модулями.
Минусы Iskra JS
- Несмотря на то, что родной уровень для платы — 3,3 вольта, пины толерантны к 5 вольтам: подключение пятивольтовой периферии тривиально.
- Из-за другой среды и экосистемы для программирования может не существовать готовой библиотеки для выбранной периферии. Её придётся реализовать самостоятельно.
Робототехническая платформа «всё в одном» содержит в себе большинство тех вещей, которые нужны при создании любого лёгкого мобильного робота. Strela, как и любая другая Arduino, программируется из Arduino IDE, а в основе содержит тот же микроконтроллер, что и Arduino Leonardo.
Плюсы Strela
- Встроенный драйвер для двух двигателей, 4 разъёма для сервоприводов, 4 кнопки и 4 светодиода свободного назначения, зуммер, слоты для ЖК-экрана и модуля беспроводной связи.
- Мощный регулятор питания позволяет без ухищрений использовать множество различных аккумуляторов.
- 11 входов-выходов выведены в виде трёхконтактных разъёмов для лёгкого подключения дополнительных датчиков и модулей. ЖК-экран, кнопки и светодиоды подключены через расширитель портов, поэтому они не занимают входы-выходы общего назначения.
Минусы Strela
- На плате не предусмотрены колодки для установки плат расширения Arduino.
- Из-за изменённой нумерации контактов (в сравнении с базовой Arduino Leonardo) необходимо использовать немного другие функции для работы с пинами платы. Они предоставлены в одноимённой библиотеке.
Arduino Yún
Уникальный гибрид Arduino Leonardo и микрокомпьютера на OpenWRT Linux. Отличный выбор для «интернета вещей».
Плюсы Arduino Yún
- Плата оснащена Ethernet и Wi-Fi, через которые можно общаться с устройством и даже перепрошивать платформу удалённо.
- Мощь Linux позволяет работать с мультимедиа, а его сетевые возможности — легко интегрироваться с социальными сетями и другими веб-сервисами.
Минусы Arduino Yún
- OpenWRT — это порезанный Linux. На микрокомпьютере можно установить не любой Linux-софт. А в качестве скриптовых языков программирования из коробки можно использовать только Bash и Python.
Плата с мощным микроконтроллером 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
- Из-за другой среды и экосистемы для программирования может не существовать готовой библиотеки для выбранной периферии. Её придётся реализовать самостоятельно.
Компактная плата с мощным микроконтроллером 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
Плата повторяет форм-фактор 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, только мощнее и с Ethernet на борту. Отличный выбор для реализации проектов интернета вещей.
Минусы Netduino Plus 2
- Те же, что и у Netduino 2.
Сравнение одноплатных компьютеров
Законодателем моды среди одноплатных компьютеров является Raspberry Pi. Эта сверхпопулярная платформа в своё время перевернула представление о возможностях, габаритах и стоимости полноценного компьютера для DIY-электронщиков.
Опять же, для каждого проекта может лучше подойти тот или иной одноплатный компьютер, но в силу популярности Raspberry Pi, будем сравнивать другие платформы именно с ней.
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
Микрокомпьютер, схожий с 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 МБ оперативной памяти.
Полезные ссылки
- Контроллеры и одноплатные компьютеры в каталоге Амперки
какая плата лучше? / Хабр
До того, как Raspberry Foundation представила Pi Pico, сравнивать «малинку» и Arduino было некорректно. Raspberry Pi — полноценный компьютер, хотя и специфический. А вот Arduino — микроконтроллер. Но с появлением Raspberry Pi Pico все изменилось, поскольку новая плата — это тоже микроконтроллер, разница с Arduino уже не такая большая.
У Arduino и Raspberry Pi Pico есть одна общая черта — это отличные платы для разного рода проектов, включая управление освещением, приводами или сенсорами. Использовать полноценную ОС при этом не нужно. Сейчас уже можно сравнить возможности обеих плат, чем в этой статье и займемся.
Функциональность и GPIO
У Raspberry Pi Pico отличный от других представителей линейки форм-фактор. В частности, у платы 40 пинов DIP. Плюс по периметру есть зубцы, которые можно использовать для коннекта Pico к несущей плате.
В DIP нет ничего нового — аналогичный форм-фактор в других микроконтроллерах используется много лет. Такую плату можно распаять на несущей плате, поместить на макетную схему или присоединить поверх других модулей. Т. е. подобную плату можно очень легко интегрировать в любую систему.
У GPIO платы Pico много цифровых каналов, плюс три аналоговых входа и несколько I2C, SPI и UART интерфейсов. Но у Pico есть и ряд программируемых PIO, которые можно настроить для эмуляции других интерфейсов и протоколов, включая WS2812 «NeoPixels». В целом, плата — недорогой и универсальный инструмент с GPIO.
Победитель: Raspberry Pi Pico
SoC Raspberry Pi Pico vs Arduino
Предыдущие поколения популярных Arduino плат были оснащены чипами Atmel вроде ATMega328P. Сейчас многие платы оснащаются ARM. Например, у Arduino’s Portenta H7 — двухъядерный Arm Cortex M7+M4.
Такие платы, как Adafruit, Seeed и SparkFun также оснащены ARM-чипами. Микроконтроллерам обычно не нужны несколько ядер и высокая производительность, поскольку они используются, в основном, для какого-то одного процесса.
А вот RP2040 — это уже следующее поколение чипов. Во-первых, это Arm Cortex M0+, работающий с частотой 133 МГц. Это гораздо быстрее UNO’s 16 MHz 328P. SRAM у процессора «малинки» — 264KB, что больше, чем у Uno — здесь всего 2 КБ. Ну и у Pico 2 МБ внутренней памяти, а у Uno — всего 32 КБ. Негусто.
Ну а что Pico может противопоставить Portenta H7? Окей, у этой платы Arm Cortex M7 + M4, который может работать с частотой вплоть до 480 МГц, плюс 2 МБ внутренней памяти и 1 МБ ОЗУ. У платы есть WiFi, Buetooth, интерфейс для подключения камеры и GPU. В целом Potenta выигрывает по всем фронтам, очень мощная плата для своего класса. Но если вспомнить, что стоит она около $109 (с налогами), и сравнить эту цену с $4 для Pico, выбор становится очевидным.
Победитель: Raspberry Pi Pico
Программирование Raspberry Pi Pico vs Arduino
Arduino IDE — интегрированная среда разработки для Windows, MacOS и Linux, разработанная на Си и C ++, предназначенная для создания и загрузки программ на Arduino-совместимые платы. Есть альтернативы — PlatformIO и Arduino Create, облачная среда от Arduino. Но, в целом, это все та же IDE.
С течением времени она эволюционировала, улучшалась, так что теперь есть встроенные функции вроде управления несколькими платами, плюс средства для поиска и установки библиотек пакетов для надстроек и аксессуаров. Arduino Create — удобная облачная среда, которую можно использовать как для решения простейших задач, так и для более сложных проектов. PlatformIO поставляется в трех версиях — инструмент командной строки, выделенная IDE или же средство интеграции с существующей IDE, например Microsoft Visual Studio Code.
Что касается новой платформы, Raspberry Pi Pico, то кодить в этом случае можно в среде C и MicroPython. Причем сами разработчики платформы рекомендуют последний вариант. В случае с MicroPython и Pico все просто отлично. Работать с языком можно при помощи Python Shell, известном как REPL (Read, Eval, Print, Loop), или же IDE вроде Thonny. Все это дает возможность быстро писать и деплоить код.
Если все же нужно работать с С, то есть два варианта — пишем код в редакторе (Vi / Vim. Nano), а потом используем консольные инструменты. Либо же используем разные расширения для сборки и переноса кода на Pico. Оба подхода нормально работают, но это не очень удобно. Правда, вскоре появится третий вариант — обновленный IDE Arduino с поддержкой чипа RP2040.
Победитель: Raspberry Pi Pico
Простота и удобство работы с платами
Как уже говорилось выше, другие модели Raspberry Pi — это полноценные ПК. Они работают под управлением полноценной ОС. Pico — микроконтроллер без ОС.
Соответственно, вне зависимости от выбранного языка, нужно прошивать Pico образом этого языка. Это дает возможность потом работать с платой, загружая код прямо в нее. Формат образов — UF2 от Microsoft. Для того, чтобы прошить образ, нужно нажать на BOOTSEL после подключения micro USB кабеля, затем загрузить UF2 файл на диск RPI-R2 и через несколько секунд можно работать. Т.е. можно открывать тот же Thonny и начинать писать код.
С языком C/C++ все несколько сложнее. Здесь нужно использовать уже консоль, текстовый редактор, загружать дополнительные приложения и следить за зависимостями. Если все хорошо, то получается проект, который загружается вручную в виде UF2 файла в Pico.
Немного автоматизировать эту задачу можно при помощи Microsoft’s Visual Studio Code, который дает возможность написать код проекта и создать нужный файл в несколько кликов. Это не самый удобный процесс для новичков, но все решаемо. Кстати, команда Arduino недавно заявила о том, что вскоре можно будет работать с RP2040 посредством Arduino IDE.
Что касается непосредственной работы с платами, то нужно упомянуть, что Raspberry Pi Pico поступает нераспаянной, т.е. без пинов. Их можно припаять самостоятельно, для чего, конечно, нужен паяльник. Arduino продаются уже с пинами, за исключением таких плат, как Arduino Nano Every и Nano 33 IoT. А значит, можно сразу приступать к работе.
Но это мелочи, в итоге проще работать все же с Pico, так что плата побеждает и здесь.
Энергопотребление
Raspberry Pi Pico — эффективная плата для встраиваемых проектов. По сравнению с типичным Raspberry Pi, Pico потребляет гораздо меньше. Просто потому, что это микроконтроллер.
В нашем обзорном тесте мы запитали Raspberry Pi Pico с 12 светодиодами Neopixel на полной яркости от источника питания 5 В. Потребляемый ток — 140 мА, 0,7 Вт! Это отлично, поскольку Raspberry Pi 4, работающий в режиме ожидания показывает результат в 4-5 Вт. Итак, по сравнению с Raspberry Pi, Pico потребляет энергию, но как он сравнивается с Arduino Uno, выполняющим тот же тест?
При 5 В — 90 мА, 0,45 Вт! Таким образом, Arduino Uno потребляет меньше, но этого и следовало ожидать, учитывая конфигурацию микроконтроллера. Если повторить тест с другой платой, скажем, Portenta H7, то мы увидим гораздо более высокое энергопотребление, поскольку процессор Arm, используемый на Portenta, более мощный. Он даже мощнее, чем RP2040.
Победитель: Arduino
В сухом остатке
В целом, обзор достаточно субъективный. В итоге получается, что победитель — Pico, с его ценой в $4, широким спектром возможностей, документацией и простотой в работе. Это лучшая плата для проектов с микроконтроллерами, поскольку за минимум денег мы получаем максимум возможностей. При этом все работает так, как заявлено, в отличие от многих других плат.
С некоторыми из них приходится изрядно повозиться, чтобы заставить работать. Плюс ко всему, MicroPython — лучший вариант для работы, с его помощью плату можно запустить очень быстро. После того, как разработчики Arduino IDE добавят поддержку Pico, без проблем можно будет работать и с С/С++. И тогда поклонники Arduino, которые привыкли к своему микроконтроллеру и принципам работы с ним, смогут опробовать и Pico.
Round | Raspberry Pi Pico | Arduino |
---|---|---|
Функциональность и GPIO | ✗ | |
SoC | ✗ | |
Программирование | ✗ | |
Простота работы с платами | ✗ | |
Энергопотребление | ✗ | |
В сухом остатке | 4 | 1 |
встроенных контроллеров, использующих C и Arduino — 2e
Доступные форматы
- ПДФ
- ОДФ
- Печатная копия
Условия использования
Attribution-NonCommercial-ShareAlike
CC BY-NC-SA
отзывов
Узнайте больше об отзывах.
Отзыв Дэвида Брески, адъюнкт-профессора инженерных и прикладных технологий Колледжа Кейп-Код от 13 ноября 22 года.
Он мог бы потратить больше времени на условные операторы, но в целом он достаточно хорошо охватывает язык C и его применимость к программированию Arduino. читать далее
Отзыв Дэвида Брески, адъюнкт-профессора инженерных и прикладных технологий Колледжа Кейп-Код от 13 ноября 22 года.
Полнота рейтинг: 4 видеть меньше
Можно было бы потратить больше времени на условные операторы, но в целом он достаточно хорошо охватывает язык C и его применимость к программированию Arduino.
Точность содержания рейтинг: 5
В книге не было явных ошибок.
Актуальность/долговечность рейтинг: 4
Эта книга была опубликована в 2018 году, поэтому она является относительно новой по своему содержанию. Хотя язык программирования C является стабильным языком без множества текущих изменений, как другие языки, такие как Java и Python. Несколько примеров Arduino немного устарели, но, похоже, хорошо работают на более новых версиях платформы.
Ясность рейтинг: 5
Одно из применений этого учебника на моих курсах — освежить знания C. Автор хорошо объясняет конструкции языка и приводит соответствующие примеры.
Последовательность рейтинг: 5
В книгах используется стандартная и согласованная терминология
Модульность рейтинг: 5
Легко создавать классы и занятия по различным разделам книги, и это довольно легко вписывается в программу нашего класса.
Организация/Структура/Поток рейтинг: 5
Книга разбита на логические главы с четким различием между частями, посвященными языку C, и частями, посвященными Arduino. Поскольку я использую эту книгу в качестве справочника в двух разных классах, один из которых посвящен компьютерным системам, использующим C, а другой — компьютерной архитектуре, использующей Arduino, мне не нужно много делать, чтобы переупорядочить темы для двух разных классов. разные классы.
Интерфейс рейтинг: 5
Я не заметил проблем с навигацией по книге онлайн. Разделы, которые были необходимы в печатном виде для работы с примерами, печатались легко и четко.
Грамматические ошибки рейтинг: 5
Явных грамматических ошибок не нашел.
Культурная значимость рейтинг: 5
Я не нашел.
КомментарииКак я уже говорил, я планирую использовать эту книгу в двух разных классах, которые предлагаются последовательно. Раньше я пользовался двумя разными учебниками: Kernahan и Ritchie по языку C и руководством по программированию Arduino. Теперь я могу использовать эту книгу для обоих классов, уделяя особое внимание разделам, относящимся к конкретному классу. Плюсом этого, помимо экономии средств, является то, что учащиеся будут знакомы с учебником на следующем занятии. Всегда есть кривая обучения и время, чтобы ознакомиться с новым учебником, и таким образом, предварительные усилия необходимы только один раз.
Отзыв Томаса Питтмана, инструктора по электронным технологиям и автоматизированным системам, Общественный и технический колледж Нортленда, 02. 08.18
Этот текст представляет собой очень глубокое введение в язык программирования C, начиная с нативного программирования в среде разработки, выбранной читателем. Упражнения в первых главах дают читателю более глубокое понимание… читать далее
Отзыв Томаса Питтмана, инструктора по электронным технологиям и автоматизированным системам, Общественный и технический колледж Нортленда, 02.08.18
Полнота рейтинг: 5 видеть меньше
Этот текст представляет собой очень подробное введение в язык программирования C, начиная с нативного программирования в среде разработки, выбранной читателем. Упражнения в первых главах дают читателю более глубокое понимание механики C, чем обычное введение, включаемое в тексты, строго посвященные Arduino. В сочетании с лабораторным руководством, написанным этим автором, большинство функций Arduino полностью детализированы.
Автор «раскрывает капот» некоторых функций, файлов и библиотек, включенных в среду разработки Arduino, чтобы дать учащемуся полное представление о том, что происходит на фоне этой простой в использовании системы разработки. Более раннее введение в язык C дает учащимся инструменты для понимания этих разбивок.
Учитывая большую глубину и детализацию этого текста, я бы рассмотрел его для второго курса программирования. Это станет отличным переходом для студента, переходящего от программирования на Arduino к программированию на чистом микроконтроллере Atmel.
Точность содержания рейтинг: 5
Содержание является точным и безошибочным. Следует подчеркнуть, что код в первых главах не предназначен для среды разработки Arduino.
Актуальность/долговечность рейтинг: 5
Содержание актуально и актуально. Похоже, нет никакой зависимости от незрелых или частных библиотек, которые изменятся в будущем.
Ясность рейтинг: 4
В целом текст написан ясно и легко воспринимается, хотя использование истории для ознакомления с оборудованием Arduino в главе 17 менее понятно. (Автор предупреждает читателя, что здесь поможет понимание нуарного фильма.)
Последовательность рейтинг: 5
Текст соответствует терминологии, и каждый раздел следует одному и тому же формату: введение темы, пример кода, а затем полное разбиение примера.
Модульность рейтинг: 5
Несмотря на то, что разделы не разделены строго по формату глава=модуль, они четко разделены на предметные области, которые можно было бы легко распределить по одной или двум главам для чтения в каждом классе. Как заявляет автор, этот текст будет хорошо изучен за 15-недельный курс.
Организация/Структура/Поток рейтинг: 5
Темы представлены четко и логично. Ранний учебник по конкретной среде C поможет студентам быстро начать работу.
Интерфейс рейтинг: 5
Нет проблем с форматированием или навигацией. Разделы кода отформатированы и используют такой шрифт, который четко отделяет их от остального текста.
Грамматические ошибки рейтинг: 5
Текст не содержит грамматических ошибок.
Культурная значимость рейтинг: 5
Текст никоим образом не является нечувствительным к культурным особенностям или оскорбительным.
КомментарииДля студента, имеющего некоторый опыт программирования, это отличный текст, который поможет глубже понять микроконтроллеры и способы их использования в среде Arduino и вне ее. Разделы, посвященные указателям и связанным спискам, а также разбивка файлов заголовков и включенных функций содержат гораздо больше деталей, чем большинство вводных текстов. Опять же, я бы назвал это вторым курсом программирования, а не введением в программирование.
Содержание
- Введение в курс
- C Организация памяти
- Основы языка C
- Основы языка C II
- C Типы и область хранения
- C Массивы и строки
- Условные операторы C и циклы
- C указатели
- C Справочные таблицы
- C Структуры
- Связанные списки C
- Память С
- C Файловый ввод/вывод
- Аргументы командной строки C
- Встроенное программирование
- Аппаратная архитектура
- AVR ATmega 328P Обзор
- Bits & Pieces: включает и определяет
- Биты и детали: схема цифрового ввода
- Биты и детали: схема цифрового ввода
- Биты и детали: pinMode
- Bits & Pieces: цифровая запись
- Биты и кусочки: задержка
- Bits & Pieces: digitalЧитать
- Биты и детали: схема аналогового ввода
- Bits & Pieces: аналоговыйЧитать
- Bits & Pieces: аналоговая запись
- Bits & Pieces: таймер/счетчики
- Биты и фрагменты: прерывания
Вспомогательный материал
О книге
Этот текст предназначен для ознакомления и расширения материала, связанного с языком программирования C и встроенными контроллерами, в частности с системой разработки Arduino и связанными с ней микроконтроллерами Atmel ATmega. Он предназначен для соответствия временным ограничениям типичного курса от 3 до 4 кредитных часов для программ по электротехническим технологиям и компьютерным технологиям, хотя он также может соответствовать потребностям курса, ориентированного на аппаратное обеспечение, в области компьютерных наук. Таким образом, в тексте не делается попытка охватить все аспекты языка C, системы Arduino или микроконтроллеров Atmel AVR. Первый раздел посвящен самому языку C. Предполагается, что учащийся является относительным новичком в языке C, но имеет некоторый опыт работы с другим языком высокого уровня, например, Python. Это означает, что такие понятия, как условные операторы и итерация, уже знакомы, и учащийся может довольно быстро приступить к работе. Оттуда исследуется среда разработки Arduino. В отличие от бесчисленного множества книг по Arduino, доступных сейчас, этот текст опирается не только на библиотеки Arduino. Какими бы удобными ни были библиотеки, существуют и другие, иногда гораздо более эффективные способы программирования плат. Во многих главах исследуется исходный код библиотеки, чтобы увидеть, «что находится под капотом». Этот более общий подход означает, что учащемуся будет проще использовать другие процессоры и системы разработки вместо того, чтобы быть жестко привязанным к одной платформе.
К этому учебнику есть лабораторное пособие.
Об участниках
Автор
Джеймс М. Фиоре
Меня зовут Джим , я постоянный диссидент, программист и писатель. Я был профессором колледжа в течение многих лет, преподаю электротехнические технологии, компьютерное программирование и науку о звуке. Я также музыкант и спортсмен на выносливость. Я создал диссидентов в конце 1980-х как способ предлагать различные программные продукты, которые я создал, полагая, что они могут быть полезны и другим людям. Некоторые из них были коммерческими, а некоторые — бесплатными. Я также много пишу, в том числе публикую учебники для колледжей и лабораторные пособия. Недавно движение за открытые образовательные ресурсы набрало обороты (без сомнения, отчасти это было вызвано ростом стоимости обучения в колледже и текстов).
Добавить эту страницу
Предложить изменение этой записи книгиArduino против Raspberry Pi: в чем разница?
Представьте, что в один прекрасный день вы едете домой после работы, и ваш умный холодильник уведомляет вас о том, что вам нужно купить продукты. Когда вы собираетесь добраться до дома, ваш кондиционер установит в комнате приятную температуру и зажжется свет. Это не просто фантазии, это стало возможным благодаря приложениям Интернета вещей (сокращенно IoT). Интеллектуальные носимые устройства, которые могут рассчитывать частоту сердечных сокращений и калории, съеденные или сожженные, умные кухонные приборы, устройства слежения и т. д., стали возможными благодаря применению Интернета вещей.
Когда дело доходит до IoT, Arduino и Raspberry Pi являются двумя основными устройствами, используемыми для его реализации. Конечно, мы не будем здесь много говорить об IoT, так как собираемся затронуть тему «Arduino против Raspberry Pi».
Прежде чем углубляться в различия между Arduino и Raspberry Pi, нам нужно иметь общее представление об Arduino и Raspberry Pi.
Не знаете, что делать дальше?
За 3 простых шага вы БЕСПЛАТНО найдёте свой персональный карьерный план в сфере разработки программного обеспечения
Развернуть в новой вкладке
Содержание
показать
- Что такое Audrino?
- Особенности
- Что такое Raspberry Pi?
- Особенности
- Ключевые отличия
- Разница между Arduino и Raspberry Pi
- Плюсы и минусы Raspberry Pi
- Плюсы и минусы Arduino
- Raspberry Pi или Arduino — что лучше?
- Заключение
- Часто задаваемые вопросы
Что такое Аудрино?
ArduinoAudrino — это электронное устройство с открытым исходным кодом, которое может считывать входные данные (например, свет на датчике, палец на кнопке или сообщение в Twitter) и на основе этих входных данных производить выходные данные (например, включение светодиода или активацию). мотор). Audrino был разработан в Ivrea Interaction Design Institute как простой инструмент, предназначенный для студентов, не имеющих опыта работы с электроникой и программированием. Завоевав популярность, он начал меняться, чтобы адаптироваться к новым потребностям и вызовам. Благодаря своему простому и легко доступному пользовательскому интерфейсу он помог реализовать множество проектов, от предметов повседневного обихода до сложных научных инструментов.
Платы Arduino — это микроконтроллеры, а не полноценные компьютеры с собственной операционной системой, такой как Raspberry Pi. Они просто выполняют код, написанный на C/C++, хранящийся в их прошивке. Интегрированная среда разработки Arduino (IDE) — это программное обеспечение с открытым исходным кодом, используемое для написания кода и его загрузки на плату Audrino.
Важным преимуществом Audrino является то, что он имеет открытый исходный код, а это означает, что многие файлы дизайна и исходный код уже доступны. Вы можете выбрать любую из них или улучшить их, чтобы сделать свою собственную доску Audrino.
Особенности
- Большинство плат Arduino поставляются с 8-битным микроконтроллером.
- 32 КБ флэш-памяти и 2 КБ SRAM (статическая оперативная память).
- Требуемое входное напряжение — 7–12 В
- Arduino использует C/C++ в качестве языка программирования.
- Контакты цифрового ввода/вывода — 14
- Контакты аналогового ввода — 6
- Тактовая частота —
- Диапазон скоростей процессора от 8 МГц до 400 МГц. Средняя скорость большинства Arduino составляет 16 МГц.
- Флэш-память — 32 КБ
- Ограничено IDE (интегрированной средой разработки)
Что такое Raspberry Pi?
Raspberry PiНебольшой полнофункциональный компьютер, который можно подключить к компьютерному монитору, клавиатуре и мыши. Он обладает всеми качествами ПК — выделенным процессором, памятью и графическим драйвером. У него даже есть собственная операционная система под названием Raspberry Pi OS, которая представляет собой оптимизированную версию Linux.
Raspberry Pi не предлагает хранилище, но вы можете использовать карты microSD для хранения любой понравившейся вам ОС (Raspberry Pi, Ubuntu Mate и т. д.). Raspberry Pi также поддерживает подключение по Bluetooth, Ethernet и Wi-Fi, поэтому его также можно использовать для передачи файлов через Интернет. Дизайн проекта Raspberry Pi и программное обеспечение не имеют открытого исходного кода.
Поскольку плата Raspberry Pi представляет собой не что иное, как целый компьютер внутри печатной платы, ее часто называют одноплатным компьютером или SBC. Фонд Raspberry Pi постоянно обновляется и улучшается. С момента своего выпуска он стал популярным выбором для применения в робототехнике, мониторинге погоды, IoT и многих других электронных системах.
Особенности
- Превосходное программное обеспечение
- 64-разрядный четырехъядерный процессор
- Большой объем оперативной памяти (последняя плата Raspberry Pi 4 Model B имеет до 8 ГБ оперативной памяти)
- Скорость процессора — 700 МГц — 1,5 ГГц
- Raspberry Pi имеет 40 контактов ввода/вывода.
- Может быть подключен к Интернету.
- Он может запускать все виды приложений (включая MS Office и электронную почту).
- Он содержит все: ЦП (центральный процессор), ГП (графический процессор), порт Ethernet, контакты GPIO (универсальный ввод/вывод) и разъем источника питания.
Ключевые отличия
- Платы Arduino — это микроконтроллеры (не полноценные компьютеры), а платы Raspberry Pi — микропроцессоры.
- У Raspberry Pi есть собственная операционная система, а у плат Arduino ее нет. Плата Arduino работает по простым инструкциям, предоставленным им IDE (интегрированной средой разработки).
- Raspberry Pi поддерживает интернет, платы Arduino не поддерживают интернет. Платы Arduino
- дешевле, платы Raspberry Pi немного дороже.
Разница между Arduino и Raspberry Pi
На первый взгляд может показаться, что Raspberry Pi выгоднее, но не рано ли судить? По мере дальнейшего обсуждения этой темы картина может проясняться. Давайте посмотрим на различия между Raspberry Pi и Arduino.
Основа | Arduino | Raspberry Pi |
---|---|---|
Лицензия | Arduino — это проект с открытым исходным кодом. И его программное, и аппаратное обеспечение имеют открытый исходный код. | И аппаратное, и программное обеспечение Raspberry Pi имеют закрытый исходный код. |
Блок управления | Из семейства Atmega | Из семейства ARM |
Тактовая частота | 16 МГц (Arduino UNO) | ГГц 4 в Bspberry до 1,5 ГГц0351 |
RAM | Requires less RAM (2kB) | Requires large RAM (more than 1 GB) |
CPU Architecture | 8-bit | 64-bit |
Logic level | Arduino’s logic уровень 5В. | Логический уровень Raspberry Pi — 3 В. |
Потребляемая мощность | Потребляет около 200 МВт мощности | Потребляет около 700 МВт мощности |
На основе | Arduino — это микроконтроллер | Raspberry Pi основан на микропроцессоре |
Аппаратная структура | Простая аппаратная структура | Сложная аппаратная структура |
Программное обеспечение | Платы Arduino программируются на языках C/C++.Raspberry Pi поддерживает собственную операционную систему на базе Linux Raspberry Pi OS. Вы также можете установить понравившуюся вам ОС. | |
Интернет | Arduino не поддерживает Интернет. Вам нужны дополнительные модули или щиты для подключения к Интернету. | Raspberry Pi имеет встроенный порт Ethernet и поддержку WiFi. |
Стоимость | Платы Arduino дешевле. | Платы Raspberry Pi стоят дорого. |
Как они справляются с падением мощности | Устройства Arduino начинают выполнять код при включении. Поэтому при отключении питания, резком, вы не получите коррумпированную операционную систему или ошибки. Код просто запустится снова при подключении. | Raspberry Pi требует такого же ухода, как и ПК. Вы должны завершить работу операционной системы должным образом. |
Текущая мощность привода | Более высокая сила тока | Меньшая сила тока |
Возможности | Arduino обычно используется для многократного выполнения одиночных (и простых) задач. | Raspberry Pi может выполнять несколько задач одновременно. |
Беспроводная связь | Arduino не поддерживает Bluetooth или WiFi. | Raspberry Pi поддерживает Bluetooth и WiFi. |
Приложения | Таймер обратного отсчета для светофоров, счетчик парковки, весы и т. д. | Контроллер роботов, игровые серверы, покадровые камеры и т. д.
Минусы
Плюсы и минусы ArduinoПлюсы
Минусы
Raspberry Pi или Arduino — что лучше?На самом деле Raspberry Pi одерживает верх в борьбе между собой и Arduino. Благодаря более высокой скорости обработки, подключению к Интернету, поддержке большого количества различных датчиков и способности выполнять сложные задачи это лучший выбор. Но это не значит, что Arduino полностью вне конкуренции. У него есть свои преимущества. Это дешевле, с открытым исходным кодом и хорошо подходит для начинающих. ЗаключениеИ Arduino, и Raspberry Pi имеют свои преимущества и недостатки. Выбор между ними зависит от типа вашего проекта и вашего бюджета. Arduino подходит для повторяющихся задач, таких как открытие и закрытие дверей, включение/выключение света и т. д. Поэтому, если ваш проект содержит какие-либо повторяющиеся элементы и просто требует вывода на основе сенсорных входов, вам следует выбрать Arduino. |