Человечество весь период своего существования старается облегчить работу каждого индивидуума в деле получения каких-либо жизненных благ. Другими словами, возможности осуществления минимума действий, с аналогичным результатом, как и при определенных трудовых затратах. Во многих случаях подобная практика оправдана, по причине опасности работы или ее однообразности.
Уже давно в существующий социум вошло понятие автоматизации — когда обыденные и нудные работы берут на себя различные механические приспособления или даже целые роботизированные комплексы. Принципы функционирования большинства из них обеспечиваются встроенными «умными» системами, способными в ограниченных рамках действовать псевдо-разумно. Имеется в виду, реагировать на внешние ситуации в пределах заложенной программы, устанавливающей последовательность действий для каждого конкретного случая. Обеспечивается названая функциональность микроконтроллерами или компьютерами.
Собственно, любой проектировщик логической системы изначально останавливается перед выбором — что конкретно использовать — специализированный микроконтроллер или компьютер. Тем более, что в последнее время получили широкое распространение практически готовые комплексные решения вопроса, изначально рассчитанные на применение их в составе средств автоматизации. Речь идет о Raspberry PI и Arduino. Первый в своей основе — пусть и не очень мощный, но компьютер. Возможности устройства близки полноценному ПК, с многозадачностью, сетью, большим объемом памяти и относительно мощным процессором. И все это при достаточно малых габаритах. Минусом служит ограниченность количества ШИМ портов ввода/вывода и практически полное отсутствие аналоговых преобразователей у большинства моделей, что, в свою очередь, требует использование дополнительных аппаратных модулей для подключения большей части датчиков.
Кроме названого можно вспомнить и о не 100 % поддержки производителей платформы Raspberry PI у своих устройств. То есть, весьма вероятно, что для какого-либо конкретного оборудования может попросту не оказаться библиотек или программных компонентов им управляющих.
Рекомендуем глубже изучить Raspberry Pi, что это такое, устройство и функциональные возможности.
Другое дело микроконтроллер Arduino. Если брать процессорные мощности, память и функциональность — то они на первый взгляд скромнее. Слабый процессор в десятки мегагерц, вместо сотен у Raspberry, килобайты оперативки, взамен мегабайт конкурента, отсутствие сетевых коммуникаций. В реальности названое не служит минусом платформе Arduino, а скорее ее плюсом. Ведь, в сущности — чем «умнее» устройство, тем больше оно потребляет энергии, и там, где микроконтроллер может работать от аккумулятора неделями, полноформатный компьютер растратит заряд за считаные часы.
Что касается недостающих возможностей, их для платформы Arduino получают установкой аппаратных дополнений, которые, не загружая внутренний процессор устройства приносят требуемую в конкретный момент функциональность. То есть, общий комплекс оборудования собирается как кубики, каждый из которых предоставляет свои возможности. Нужна сеть — добавляем к микроконтроллеру плату сетевого WIFI/LAN/Bluetooth взаимодействия. При необходимости синтеза голоса устанавливается так называемый «шилд», обеспечивающий требуемую возможность. Что касается программной совместимости — большая часть подключаемого оборудования разрабатывается конкретно под названую платформу и никаких проблем ими управлять попросту не существует.
Особо хотелось бы отметить контроль сторонних устройств — за счет продуманной программно/компонентной схемы — Ардуино на высоте. Множество аналоговых и цифровых портов ввод/вывода расположенных сразу на плате микроконтроллера, явно дает ему преимущество в некоторых нишах применения, если сравнивать Arduino или Raspberry PI.
Любое сравнение компьютеров и микроконтроллеров, сторонниками обоих лагерей, начинается с их характеристик. В случае Arduino vs Raspberry PI технические параметры каждого относительно противника можно оценить таблицей:
Одноплатный компьютер Raspberry PI | Микроконтроллер Arduino | |
---|---|---|
Процессор | Broadcom | ATMega |
Частота | 700–1500 МГц | 16 МГц |
Количество ядер | 1–4 | 1 |
Память | 512–4096 Мб оперативной | 32 Кб flash, 1 Кб EEPROM, 2 Кб оперативной |
Сеть, включая глобальную | Есть | Требуется использование дополнительных шилдов и базовые знания сетевого взаимодействия |
Потребление энергии | 10 Вт | 0.33 Вт |
Режим работы | Многозадачность | Реальное время |
Наличие сред разработки | Множество в рамках применяемых в Linux и способных компилировать код для ARM-процессоров | Arduino IDE, AtmelStudio или похожие в случае клонов платформы |
Звук | Все мультимедийные возможности большого ПК | Если нужен вывод чего-либо отличающегося от нескольких звуковых сигналов разных частот, необходимо использовать внешние платы расширения |
Видео (обработка) | Есть | Нет |
Периферия | Стандартная, предназначенная для работы с ПК | Подключается только с использованием специальных для каждого типа устройств шилдов. |
Внешний источник хранения данных | SD-карта | Через плату расширения SD-карта |
Управление контактными цепями (ШИМ-периферия) | Нет или сильно ограничено у клонов | Есть |
Подключение аналоговых датчиков | Только через дополнительные платы расширения | Есть |
Операционная система с интерфейсом пользователя | Linux, Android | Нет |
Порты | GPIO 26–40 pin, UART, i2c | 14 цифровых, 6 из которых можно использовать как ШИМ, 6 аналоговых, USB, ICSP. У некоторых моделей больше. |
Цифровые порты (ПК) | USB, mini HDMI, Composite | USB |
Встроенный видеоадаптер | Есть | Нет |
Контекст вышесказанного нужно понимать не только как сравнение конкретно платформ Raspberry PI и Arduino, но и в общем смысле проведения параллелей между одноплатными компьютерами и микроконтроллерами. Последние, конечно, проигрывают в мощностях, набирая свое только за счет экономного использования энергии и широкого спектра подключаемых дополнительных плат.
Еще одним преимуществом, которое часть специалистов считает недостатком, служит выполнение задач реального времени, которые в не специализированных ОС произвести сложно, а микроконтроллер их осуществляет изначально. Может для DIY проектов последнее и не критично, тем не менее фактор может иметь значение в линиях производств, связанных непосредственно с изготовлением химической продукции, топлива или иных процессов требующих точного соответствия процедур действий определенным промежуткам времени. Сюда, по большому счету можно отнести технологии, связанные с авиацией, космосом, судоходством, автомобилями и прочими критичными нишами использования высокоинтеллектуальных устройств.
Теперь немного о цене владения. Тут пока лидирует Arduino, который на порядок дешевле конкурента. Посудите сами, сравнив цены типовых Raspberry PI:
Модель | Цена |
---|---|
Raspberry PI 3 B | 4399 |
Raspberry PI 4 B | 5199 |
с распространенными моделями Arduino:
Arduino UNO R3 | 270–350 |
Arduino MEGA 2560 R3 | 670–5000* |
*есть платы-аналоги, производимые сторонними изготовителями, а есть именно заводы Arduino. Оригинальные микроконтроллеры понятно дороже, хоть и не факт, что они лучше качеством.
Кроме общей информации приведенной ранее, при выборе собственно «мозга» конструкции, стоит обратить внимание на все возможности предоставляемые различными моделями высокоинтеллектуальных устройств Arduino и Raspberry [Ю.П.1] .
Для большинства выпускаемых моделей Arduino технические характеристики равны, к примеру, у многих процессор работает с частотой 16 МГц, при оперативной памяти в 2 Кб. Основные различия выражаются размерами (форм-фактором) и количеством пинов (контактов подключения внешних устройств и сенсоров). Хотя, есть и нюансы:
Кроме названых существует много других моделей Arduino, но часть из них уже не подходит под понятие микроконтроллера, приближаясь характеристиками к возможностям полнофункционального компьютера. Здесь достаточно вспомнить Due ориентированный на использование в качестве штатного автомобильного ПК, Yún представляющий собой своеобразный гибрид и работающий на OpenWRT Linux. Не стоит забывать и о не полных клонах, производители которых добавляют свои возможности к продаваемому оборудованию.
Raspberry PI, в отличие от Arduino, не может похвастаться широким ассортиментом или очень низкой ценой. Тем не менее одноплатным компьютерам названой марки есть чем удивить придирчивого покупателя.
Рекомендуем к прочтению: подробный обзор возможностей контроллера Raspberry Pi Zero W.
Рассмотрев характеристики представленных аппаратов каждый может сделать выбор в том, что лучше подходит для конкретного проекта — Raspberry PI или Arduino. В обоих случаях есть и свои плюсы, и минусы. К примеру, одноплатник стоит относительно дороже, но обеспечивает мультимедийные и интерфейсные возможности из коробки. Его великий минус — энергопотребление, которое может доходить до 2 А (10 Вт) в пиковом режиме работы.
Микроконтроллер же, в своей простоте отличается малой мощностью, но лучшей аппаратной расширяемостью, чем одноплатный компьютер. К примеру, у него элементарно больше аналоговых портов, что означает больше возможностей в деле получения информации от внешних датчиков. Кроме названого плюса — его цена существенно ниже чем даже у самого дешевого Raspberry PI. Опять же, для использования в средах где требуется точное соблюдение временных промежутков в выполняемых процессах он незаменим. Тем и плоха многозадачность Raspberry — в каждый конкретный момент выполняется множество разных операций. И если мощности процессора заняты, требуемое в определенное время действие может задержаться до освобождения ресурсов, что в некоторых случаях становится критичным.
Ну, а про потребление энергии вообще отдельный разговор. Микроконтроллер тратит десятые части ватта, что позволяет использовать его с питанием от батареи очень долгое время. В десятки раз быстрее Raspberry PI разрядит любой аккумулятор, в отличие от того же Arduino.
И еще одна деталь, которая служит существенным минусом у одноплатника. Речь идет о завершении работы. Операционная система требует правильного закрытия всех файлов на внутреннем накопителе, что в свою очередь приводит к специфичному и относительно долгому процессу выключения Raspberry PI или похожих компьютеров. Arduino в данном случае достаточно просто выдернуть из розетки.
В общем, для каждого конкретного случая нужно подбирать логическое устройство индивидуально, выбирая между микроконтроллером и одноплатным компьютером.