Здравствуйте.
В настоящее время подумываем издать что-нибудь на тему Arduino, так как в 2015 году эта тема наконец-то стала проклевываться на российском рынке, как в виде книг, так и в виде комплектов-конструкторов. Однако проработка этой темы вдохновила нас на перевод замечательного материала с сайта «Digitaltrends», автор которого очень толково и объективно сравнивает Arduino с новейшим миниатюрным компьютером Raspberry Pi, анализирует достоинства и недостатки обеих технологий.
Перевод этого материала мы бы хотели опубликовать сегодня, а заодно добавить небольшой опрос в нашем традиционном стиле. Поделитесь вашими впечатлениями, предпочтениями, расскажите об опыте работы с той или иной из описанных платформ, если он имеется.
Итак, вы приглашаетесь под кат.
В настоящее время инженеры-любители, увлекающиеся конструированием в духе «сделай сам», не испытывают недостатка в специальных устройствах, позволяющих оборудовать любые изделия хорошей электронной начинкой. Одно из самых популярных решений такого рода — это дешевый микрокомпьютер Raspberry Pi, система на кристалле (SoC), использующая полнофункциональную версию ОС Linux (этот компьютер разрабатывался в обучающих целях). Также существует платформа Arduino — микроконтроллер, обладающий внушительной технической поддержкой (целое сообщество разработчиков) и имеющий сотни схем-расширений (так называемых «шилдов»).
После анонса о появлении компьютера Raspberry Pi многие могли подумать, что платформа Arduino морально устарела, однако вполне вероятно, что это слишком поспешное суждение. На самом деле, ниши применения обоих устройств отличаются, у каждого из них есть свои достоинства и недостатки, а также спектр задач, которые решаются по-разному. Кроме того, если опираться лишь на сухие данные спецификаций, то прямое сравнение двух платформ оказывается очень неоднозначным, учитывая, что процессор Arduino с частотой 16 MHz явно уступает процессору Pi с частотой 900 MHz.
Raspberry Pi
Безусловно, Raspberry Pi является полнофункциональным компьютером. Он обладает всеми атрибутами настоящего компьютера: выделенным процессором, памятью и графическим драйвером для вывода через HDMI. На нем даже работает специальная версия операционной системы Linux. Поэтому на Raspberry Pi легко установить большинство программ для Linux. Стоит немного потрудиться — и Raspberry Pi можно использовать как полноценный медиа-сервер или эмулятор видеоигр.
Хотя в Pi и отсутствует внутреннее хранилище данных, на этом компьютере можно использовать смарт-карты в качестве флэш-памяти, обслуживающей всю систему. Таким образом, можно быстро выгружать для отладки различные версии операционной системы или программных обновлений. Поскольку это устройство обеспечивает независимую соединяемость по сети, его можно настраивать и для доступа по SSH, либо пересылать на него файлы по протоколу FTP.
Arduino
Платы Arduino – это микроконтроллеры, а не полноценные компьютеры. На них нет операционной системы как таковой, Arduino просто выполняет код, интерпретируемый прошивкой. В данном случае вы не имеете в распоряжении базовых инструментов, предоставляемых операционной системой, но, с другой стороны, такое непосредственное выполнение несложного кода протекает проще, а при работе не возникает никаких издержек, связанных с операционной системой.
Основное назначение платы Arduino – взаимодействие с сенсорами и устройствами, поэтому Arduino отлично подходит для аппаратных проектов, где требуется просто реагировать на различные сигналы сенсоров и ручной ввод. Может показаться, что в этом нет ничего особенного, однако на деле Arduino – сложная выверенная система, значительно облегчающая управление устройствами. Она отлично подходит именно для сочленения других устройств и исполнительных механизмов, где полновесная операционная система просто не требуется, так как речь идет просто о регистрации действий и реагировании на них.
Питание
Требования к электропитанию для этих двух систем очень отличаются. Raspberry Pi для работы нужно постоянное напряжение 5V, более того, работа Raspberry Pi завершается программным процессом — как у обычного компьютера. Arduino, в свою очередь, начинает выполнять код сразу после включения и прекращает работу, когда вы вынимаете штепсель из розетки. Чтобы расширить функционал устройства с Arduino, вы подключаете устройство либо непосредственно к штырьковым контактам самой платы Arduino либо к платам расширений (шилдам) для нее. Существуют сотни разнообразных шилдов, каждый из которых предназначен для решения специфической задачи, может взаимодействовать с теми или иными сенсорами, а также с другими шилдами, которые вместе образуют полноценный управляющий блок.
Raspberry Pi сложно переносить с места на место, так как вы не сможете просто вставить в него две батарейки AA. Для работы этого компьютера необходимо обеспечить бесперебойное питание, а также подключить дополнительное оборудование, которое гарантирует подачу постоянного тока. В случае с Arduino весь процесс несколько упрощается, так как система требует всего лишь комплекта батареек, обеспечивающего напряжение не ниже определенного уровня; также нужен простой шилд для управления электропитанием. Даже при аварийном отключении тока на Arduino вы не рискуете ни повредить операционную систему, ни получить какие-либо программные ошибки. Стоит заново подключить Arduino к источнику энергии — и прибор просто возобновит работу.
Сеть
В Raspberry Pi есть встроенный Ethernet-порт, который обеспечивает легкий доступ к любой сети и практически не требует настройки. Провести беспроводной Интернет на Raspberry Pi также не составляет труда: покупаете USB-адаптер для WiFi и устанавливаете соответствующий драйвер. Как только это сделано, можете использовать операционную систему для подключения к веб-серверам, обрабатывать HTML либо просто что-нибудь писать в Интернете. Можете даже использовать Raspberry Pi для создания виртуальной частной сети или в качестве сервера печати.
К сожалению, система Arduino без дополнительных модификаций не приспособлена для работы по сети. С ней нужно как следует повозиться, чтобы установить надежное соединение, но это вполне возможно. Вам потребуется дополнительная схема, оснащенная Ethernet-портом, также понадобится подключить кое-какие кабели и написать нужный код, чтобы все заработало. В общем, это достаточно сложная работа, поэтому некоторые компании выпускают платформы Arduino с уже встроенным функционалом Ethernet.
Сенсоры
Как Raspberry Pi, так и Arduino обладают набором интерфейсных портов, однако аналоговые сенсоры гораздо проще подключать именно к Arduino. Микроконтроллер с легкостью интерпретирует различные сигналы на основе написанного вами кода и реагирует на них. Поэтому Arduino отлично подходит для тех случаев, когда вы планируете выполнять серии команд или реагировать на показания сенсоров, в зависимости от которых будет корректироваться работа сервоприводов и устройств.
В свою очередь, Raspberry Pi для эффективного взаимодействия с такими устройствами требует специального программного обеспечения — вероятно, это излишние сложности, если вы хотите просто автоматизировать поливку в саду или хранить пиво при нужной температуре. Во многих проектах Arduino и Raspberry Pi используются совместно, причем Arduino выступает в качестве управляющей платы, на которой выполняются команды, выдаваемые ПО Raspberry Pi. Информация с сенсоров подается на Raspberry Pi, где она записывается, либо в ответ на нее выполняются те или иные операции.
Итоги
Итак, какая из двух технологий подойдет вам? Однозначного ответа нет, так как он зависит от конкретного проекта.
В каких случаях лучше выбрать Arduino? Это делается, если ваша основная задача – считывать данные сенсоров, менять значения на двигателе или других устройствах. Учитывая требования Arduino к электропитанию и простоту обслуживания этой системы, устройство вполне можно эксплуатировать не выключая, при этом почти не вмешиваясь в его работу.
Когда лучше остановиться на Raspberry Pi? Это делается при решении таких задач, которые было бы логично выполнять на персональном компьютере. Raspberry Pi упрощает управление потоком операций в разных ситуациях: если вы подключаетесь к Интернету для считывания или записи данных, воспроизводите какую-либо медиа-информацию или подключаетесь к внешнему дисплею.
Учитывая, что Arduino и Raspberry Pi решают разные задачи, в определенных ситуациях удобно использовать эти устройства совместно. Существует ряд возможностей соединения двух устройств; в таком случае вы получаете клиентский доступ к настройкам и коду через Pi, в то время как Arduino контролирует управление рабочими органами и собирает информацию с сенсоров. Существует немало вариантов такого соединения: по USB, локальной сети или в виде простого подключения портов ввода/вывода Arduino к Raspberry Pi.
Автор: ph_piter