HRP-N3 - серия источников питания с максимальной пиковой мощностью в 350% от MEAN WELL
РадиоЛоцман - Все об электронике

Сравнение популярных Linux-платформ для встраиваемых приложений. Часть 2 - Энергопотребление, температурный режим, средства для разработки

Raspberry Pi Beaglebone Black Arduino Yun Intel Galileo

Raspberry Pi, Beaglebone Black, Arduino Yun, и Intel Galileo  какая из них оптимально подойдет для вашего проекта?

Часть 1 - Спецификация и производительность

Энергопотребление

Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Для сравнения энергопотребления Linux-плат были проведены измерения потребляемого тока в двух режимах: при бездействии процессора и при выполнении теста nbench. Данные этих измерений помогут определить диапазоны минимального и максимального энергопотребления для каждой платы.

Измерения потребляемого тока производились по шине питания +5 В с помощью миниатюрного модуля датчика тока на микросхеме INA219 (Texas Instruments), подключенного к плате Arduino.

Каждая плата в ходе тестирования была подключена к минимальному количеству периферийных устройств. Beaglebone Black, Raspberry Pi model B и Intel Galileo были подключены только к локальной сети по интерфейсу Ethernet. Arduino Yun подключалась к локальной сети по беспроводному интерфейсу Wi-Fi. Плата Raspberry Pi model A не была подключена к сети, но вместо этого к ней были подключены USB клавиатура и монитор по интерфейсу HDMI.

Энергопотребление плат Arduino Yun, Beaglebone Black, Intel Galileo и Raspberry Pi:
 Рисунок 2. Энергопотребление плат Arduino Yun, Beaglebone Black, Intel Galileo
и Raspberry Pi: Idle – режим простоя, Benchmark Running –
выполнение тестов nbench.

По результатам измерений (Рисунок 2) мы видим достаточно широкий разброс тока потребления между платами. Raspberry Pi Model A здесь выходит на первое место – она обладает самым низким энергопотреблением – среднее значение около 150 мА. Последнее место занимает Intel Galileo с током потребления более 500 мА даже в режиме простоя. Такая разница объясняется, скорее всего, различием в периферии и вспомогательных элементов плат. Intel Galileo содержит множество периферийных блоков, таких как расширитель портов ввода/вывода, АЦП, адаптер Ethernet и пр., которые дополнительно потребляют энергию, в то время как на Raspberry Pi Model A задействованы только процессор Broadcom и несколько вспомогательных микросхем.

Beaglebone Black и Raspberry Pi model B обладают схожим энергопотреблением под нагрузкой, но в режиме простоя потребляемый ток Beaglebone Black заметно ниже. Даже без учета ее более высокой производительности в тестах, по энергопотреблению Beagleboard Black несколько лучше Raspberry Pi Model B.

Наконец, интересно увидеть влияние Wi-Fi модуля на результаты измерения энергопотребления Arduino Yun. Будучи подключенной к сети по Wi-Fi, плата Arduino Yun демонстрирует низкое энергопотребление по сравнению с другими платами. Чтобы охарактеризовать изменение потребления тока другими платами при использовании Wi-Fi, было решено провести небольшой тест на Raspberry Pi Model A с подключенным к ней USB Wi-Fi адаптером. В этом случае потребление тока Raspberry Pi Model A увеличилось на 30-150 мА, в зависимости от сетевой активности, что ставит ее в один ряд с Arduino Yun. В общем случае работа платы с USB-Wi-Fi адаптером не оказывает существенного влияния на энергопотребление.

Температурный режим

Чтобы понять, в каком температурном режиме работают платы и процессоры, мы замеряли температуру процессоров при выполнении тестов nbench. Для этих целей использовался аналоговый датчик температуры LM35D, который надежно крепится на процессор с помощью липкой ленты. Датчик подключается к аналоговому входу Arduino, опорное напряжение вырабатывалось внешним прецизионным источником, который подключается к входу опорного напряжения платы Arduino.

Стоит заметить, что процессор на плате Aruino Yun закрыт металлическим экраном, поэтому проводилось измерение температуры экрана непосредственно над ним.

Температура процессора при выполнении теста nbench на платах Arduino Yun, Beaglebone Black, Intel Galileo и Raspberry Pi.
 Рисунок 3. Температура процессора при выполнении теста nbench на платах
Arduino Yun, Beaglebone Black, Intel Galileo и Raspberry Pi.

По диаграмме на Рисунке 3 видно, что процессор Intel на плате Galileo достаточно горячий (около 60 °С), при этом он не имеет теплораспределителей или теплоотвода и выполнен в миниатюрном корпусе. Согласно спецификации Intel, процессор на плате Galileo может нагреваться до 70 °С, что соответствует нашим измерениям. В любом случае необходимо быть осторожным  при касании процессора – на ощупь он очень горячий, а также учитывать этот важный параметр при эксплуатации платы.

Другой интересный момент кроется в сравнении Beaglebone Black и Raspberry Pi Model B. Несмотря на то, что Beaglebone Black имеет лучшую производительность и низкое энергопотребление, нагрев процессора заметно выше, чем у Raspberry Pi Model B (разница около 5 °С).

Рабочая температура многих плат сохраняется в диапазоне 40 °С или ниже, что ненамного выше комнатной температуры (около 22 °С) в момент измерений.

Средства для разработки приложений

Программная поддержка Linux-плат и ПО также важна, как и аппаратная часть. Ниже мы приведем краткое изложение операционных систем и средств для каждой платы.

Arduino Yun:

  • Операционная система (ОС) выполнена на дистрибутиве OpenWrt, и ограничена наличием лишь 16 Мбайт свободной памяти для всей ОС. Увы, вы не найдете все инструментарии и утилиты в среде рабочего стола Linux.
     
  • Для разработки своих приложений доступен Python 2.7. Другие языки программирования, такие как PHP или Perl могут быть установлены посредством менеджера opkg-пакетов.
     
  • К сожалению, нет достаточного свободного места для запуска GCC и компиляции Си/Си++ кода на плате. Необходима установка набора инструментов кросс-компиляции любых пользовательских проектов для среды Linux.
     
  • Доступ к линиям ввода/вывода осуществляется с помощью микроконтроллера ATmega32U4. Программирование микроконтроллера выполняется просто в среде Arduino IDE, также как для Arduino Uno/Leonardo.
     
  • Связь между Linux системой и микроконтроллером ATmega32U4 выполняется через последовательный порт. Библиотека функций моста обеспечивает обмен данными и постановку задач из микроконтроллера в среду Linux. Простое управление устройствами в режиме реального времени достигается написанием кода для выполнения на микроконтроллере ATmega. Многие платы расширения, периферия и библиотеки, совестимые с Arduino Uno/Leonardo, совместимы и с Arduino Yun.

Beaglebone Black:

  • Большой набор поддерживаемых ОС, включая Debian, Ubuntu, Android.
     
  • Установка компиляторов и языков программирования (например, GCC, Python, Ruby, Node.js, Perl и т.д) выполняется очень легко из пакетов в поддерживаемых Linux-дистрибутивах.
     
  • Готовая к использованию веб-версия интерфейса доступа к линиям ввода/вывода Cloud9 IDE и Bonescript (на основе Node.js и Javascript).
     
  • Огромное количество доступных линий ввода/вывода, однако доступ к ним осложняется манипулированием деревом устройств в Linux.
     
  • Управление устройствами в режиме реального времени возможно с помощью встроенных программируемых Real-time блоков, однако не так много инструментов и библиотек, упрощающих работу с ними.

Intel Galileo:

  • ОС является пользовательской сборкой Linux, созданной сообществом Yocto Project. Стандартное программное обеспечение «из коробки» имеет значительные ограничения, полный дистрибутив Linux должен быть установлен на  карту памяти microSD.
     
  • В стандартной сборке также очень скудная поддержка разработчиков. Необходимо устанавливать сторонние сборки ОС, чтобы получить доступ к GCC и другим инструментам разработчика.
     
  • Модифицированная версия Arduino IDE обеспечивает первичный интерфейс для доступа и программирования линий ввода/вывода платы.
     
  • Ограниченная совместимость с платами расширения и библиотеками Arduino. Доступ к линиям ввода/вывода на порядок медленнее (и не обязательно в режиме реального времени) по сравнению с Arduino.

Raspberry Pi:

  • Как и для Beaglebone Black, большой набор поддерживаемых ОС с таким вариантами как Raspbian, Occidentalis и др.
     
  • Очень простая установка компиляторов и языков программирования (например, GCC, Python, Ruby, Node.js, Perl) из пакетов в поддерживаемых дистрибутивах Linux.
     
  • Простой доступ к линиям ввода/вывода с поддержкой библиотек во многих языках программирования.
     
  • Нет поддержки работы в реальном времени. Невозможно непосредственное сопряжение Raspberry Pi с оборудованием, имеющим строгие требования к временным параметрам.
     
  • Огромное сообщество разработчиков, всесторонняя поддержка всех вариантов плат, множество онлайн учебных материалов и руководств.

Заключение

В итоге, какая Linux плата больше всего подходит для вашего приложения? Однозначного ответа дать нельзя! Ни одна из представленных плат не будет идеально соответствовать требованиям вашего приложения, но ваши потребности смогут предопределить оптимальный выбор. Тем не менее, мы ответим на основные вопросы, появляющиеся на этапе подбора аппаратно-программной платформы для будущего приложения.

Вы новичок в Linux или начинающий программист?

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

Вам нужна совместимость с платами расширения или библиотеками Arduino?

Посмотрите в сторону Arduino Yun, поскольку она имеет тот же процессор, что и Arduino Leonardo. Будьте внимательны при выборе Intel Galileo ввиду наличия некоторых особенностей и частичной несовместимости с платами расширения Arduino – потребуется исследовать форумы поддержки.

Вам нужны аналоговые входы?

Выбираете плату с интегрированным АЦП: Beaglebone Black, Arduino Yun или Intel Galileo. Но не забывайте, что вы можете добавить внешний АЦП для вашей отладочной платы.

Нужно ли управление линиями ввода/вывода в режиме реального времени?

Оптимальный выбор – это Arduino Yun или Beaglebone Black, которые имеют встроенный микроконтроллер для запуска и выполнения программ в реальном времени. Для других систем, таких как Raspberry Pi, можно рассмотреть вопрос подключения внешнего бюджетного  микроконтроллера для управления линиями ввода/вывода в реальном времени.

Требуется максимально возможная производительность?

Beaglebone Black демонстрирует высокую производительность в тестах. Raspberry Pi близка по производительности, и даже опережает Beaglebone Black  в операциях с плавающей точкой.

Необходима ли беспроводная передача данных по Wi-F?

Arduino Yun имеет встроенный Wi-Fi модуль, но многие платы поддерживают работу с USB-Wi-Fi адаптером. Кроме того, Intel Galileo может работать с PCI Express Wi-Fi модулями.

Приложение требует функции обработки и вывода графики?

В статье мы не затрагивали возможность обработки графики, но графический процессор Raspberry Pi достаточно мощный и способен запускать игры, подобные Quake III, а также воспроизводить Full HD видео с разрешением 1920×1080P

До сих пор не можете сделать оптимальный выбор?

Не ограничивайте себя только одной платой, рассмотрите вариант работы с двумя бюджетными вариантами. Комбинация Raspberry Pi Model A и Arduino Yun будет лучшим решением. Raspberry Pi с полноценной ОС Linux обладает высокой производительностью, а Arduino Yun имеет достаточное количество портов ввода/вывода с возможностью управления в режиме реального времени.

Перевод: Vadim по заказу РадиоЛоцман

На английском языке: Embedded Linux Board Comparison. Part 2 - Power Usage, Temperature, Development

27 предложений от 14 поставщиков
RAK7244 WisGate Developer D4 Шлюз-концентратор LoRa EU868 на платформе RaspberryPi4 4GB/Raspbian OS. Поддержка спутниковой навигании. В базовой комплектации с антеннами LoRa...
RASPBERRY-PI / PROG-4GB-SDCARD
Samsung
205 ₽
Триема
Россия
Корпус для RaspberryPi 2 прозрачный
233 ₽
AiPCBA
Весь мир
RASPBERRY-PI-CASE
Raspberry Pi
802 ₽
ICdarom.ru
Россия
RASPBERRY-PI
Samsung
от 946 ₽
Электронные компоненты. Бесплатная доставка по России
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя