Печатные публикации

#29: Одноплатный компьютер Raspberry Pi: от учебного пособия до промышленного контроллера

Анна Сергеева, Сергей Кривандин. Одноплатный компьютер Raspberry Pi: от учебного пособия до промышленного контроллера // Компоненты и технологии. 2016. № 4. С. 60-66.


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


Опубликовано в разделе "Компоненты"


Эта же статья на сайте журнала и блога компании-заказчика


В статье представлен обобщенный опыт использования Raspberry Pi в практических приложениях: в промышленности, автоматизации, телекоме, ИТ, рекламе. Обзор подготовлен компанией RS Components [1], глобальным поставщиком товаров для инженеров и официальным поставщиком Raspberry во всем мире. В обзоре рассмотрено применение Raspberry Pi без технических подробностей, которые можно уточнить в оригинальной публикации. Однако в некоторых разделах для удобства читателей указаны номера для заказа в RS Components дополнительных компонентов, предусмотренных в описываемом проекте.


Плата Raspberry Pi как основа компьютера Создатель Raspberry Pi Эбен Аптон (Eben Upton), будучи ИТ-специалистом с большим практическим опытом, ориентировался на развитие детского образования в сфере компьютерных наук [2]. Свой дешевый одноплатный компьютер он построил на чипе компании Broadcom, в которой работает с 2006 года. Raspberry Pi — это миниатюрный одноплатный модуль с подключаемой периферией и питанием. Он работает под бесплатной операционной системой Raspbian на базе Linux. На рынке представлен целый ряд моделей Raspberry Pi (табл. 1), самой популярной из них является Raspberry Pi 2 Model B (рис. 1). Во всех предыдущих моделях использован одноядерный ARM-процессор Broadcom BCM2835 с частотой 700 МГц. Raspberry Pi 2 содержит более мощный процессор — 32-разрядный Broadcom BCM2836, в котором 4 физических ядра ARM Cortex-A7 с частотой 900 МГц. Объем памяти увеличен вдвое, до 1 Гбайт. Благодаря этому заявленная производительность увеличена в 6 раз, что позволяет обрабатывать большие объемы информации. Raspberry Pi 2 полностью совместим с предыдущими моделями, все прикладные программы работают корректно.


Рис. 1. Внешний вид одноплатного микрокомпьютера Raspberry Pi 2 Model B


Таблица 1. Параметры популярных моделей Raspberry Pi

Модель Raspberry Pi B+ Raspberry Pi A+ Raspberry Pi 2 model B
Процессор Broadcom BCM2835, 700 МГц, ARM1176JZ-F  Broadcom BCM2835, 700 МГц, ARM1176JZ-F  Broadcom BCM2836, 900 МГц, ARMv7, 4 ядра
Графический сопроцессор VideoCore IV, 2 ядра VideoCore IV, 2 ядра VideoCore IV, 2 ядра
Память SDRAM, объем, частота 512 Мбайт, 400 МГц
256 Мбайт, 400 МГц 1 Гбайт, 450 МГц
Внешняя память MicroSD MicroSD MicroSD
Количество USB 2.0-портов 4 1 4
10/100 Ethernet Есть Нет Есть
Видеоразъемы HDMI, композитный RCA HDMI, композитный RCA HDMI, композитный RCA
Разрешение видео, пикс от 640×350 до 1920×1200 от 640×350 до 1920×1200 от 640×350 до 1920×1200
Звук  HD через HDMI, стерео через 3,5-мм джек  HD через HDMI, стерео через 3,5-мм джек  HD через HDMI, стерео через 3,5-мм джек
GPIO, шт. 40 40 40
Питание 5 В, Micro-USB 5 В, Micro-USB 5 В, Micro-USB
Ток потребления, мА 600 200 800
Размеры, мм 85×56×17 65×56×12 85×56×21


Развитие модельного ряда одноплатных компьютеров Raspberry Pi, начиная с первого Raspberry Pi B, анонсированного для массовых продаж в начале 2012 года, приведено на рис. 2. Четко прослеживается тенденция развития двух параллельных линеек: более мощных моделей B и облегченных версий A (рис. 2 и табл. 1).


Рис. 2. Диаграмма развития моделей одноплатного компьютера Raspberry Pi


Устройства линейки A с меньшим объемом памяти, отсутствием 10/100 Ethernet и всего одним USB-портом не пользуются спросом у отечественных разработчиков. Raspberry Pi Compute Module, обозначенный на рис. 2 как CM,— по сути, та же модель B+, в которой внешняя память на SD-карте заменена флэш-памятью, а сам модуль реализован на малогабаритной плате размерами 6830 мм со стандартным 200-пиновым SODIMM-совместимым разъемом. Он введен для возможности применения на объединительной плате, но в разъем памяти Raspberry Pi Compute Module вставлять нельзя.


В конце февраля 2016 года вышел новый Raspberry Pi 3 model B на еще более мощном 64-разрядном 4-ядерном Broadcom BCM2387 ARM Cortex-A53 с частотой 1,2 ГГц. На плату добавлены модули Wi-Fi 802.11 b/g/n и Bluetooth 4.1 LE. Более мощный процессор и дополнительные модули потребовали и более мощного источника питания 5,1 В/2,5 А. Разработчики особо подчеркивают, что прежние источники питания для Raspberry Pi пригодны только для предыдущих моделей. Новый одноплатный микрокомпьютер Pi 3 полностью совместим с предшествующими версиями.


В мире продано более 8 млн различных моделей Raspberry Pi. В России, по нашим оценкам, объем продаж составил около 50 тыс. штук, то есть менее 1% мирового рынка.


Внешние модули для Raspberry Pi


Для подключения источника питания на плате Raspberry Pi предусмотрен разъем микро-USB. Нужно подобрать высококачественный источник с напряжением 5 B и выходным током, на 10–20% больше указанного в таблице 1. Например, есть источник питания Raspberry Pi Universal Power Supply, одобренный разработчиками Raspberry, с выходом 5 В/2 А (RS-номер 822-6373).


Количество и параметры внешних периферийных устройств, подключаемых к Raspberry Pi, зависят от конкретного приложения. В качестве дисплея подойдет любой монитор или телевизор с возможностью подключения через кабель HDMI или DVI. Клавиатура и мышь — любые со стандартным подключением по USB. Для подсоединения к локальной или глобальной Ethernet-сети нужен кабель с RJ-45. Для подключения к беспроводным сетям разработчики рекомендуют модуль Raspberry Pi USB WiFi Dongle (RS-номер 892-0012). Для воспроизведения звука предусмотрено подключение внешних наушников или колонок через стандартный jack-разъем 3,5 мм. В зависимости от решаемой задачи к Raspberry Pi можно подсоединить и другие компоненты.


Наиболее популярные из них представлены в таблице 2. Фактически пользователи получают в свое распоряжение конструктор, из которого можно собирать разноплановые системы: стационарный компьютер, планшет, контроллер для управления различными устройствами. Полностью собранный и готовый к работе компьютер на базе Raspberry Pi может выглядеть, например, как на рис. 3 [3].


Таблица 2. Дополнительные модули для подключения к Raspberry Pi


Наименование Фото Параметры
Сенсорный дисплей 7″ Touch Screen LCD Разрешение: 800×480 пикс Угол обзора: 70° Простота подключения Источник питания: USB, 500 мА
Wi-Fi-адаптер Не требует настройки Макс. скорость: 150 Mbps Wi-Fi: 802.11 b/g/n USB 2.0 Поддерживает NOOBS и Raspbian ОС Размер: 30×16×8 мм
Плата расширения Sense HAT с датчиками Плата с набором LED-индикаторов, датчиков температуры, влажности, давления, акселерометром, гироскопом, магнитометром, 5-кнопочным джойстиком
Плата расширения Power Over Ethernet Внешний источник питания не нужен Простота установки: мезонинная плата Тип PoE: 802.3af (mode A and B) Изоляция вход/выход 1,5 кВ Защита от перегрузки, короткого замыкания и перегрева, КПД 87% Входное напряжение 36–56 В, выходное напряжение 5 В стаб. Выходной ток 10–1300 мА Максимальная выходная мощность 6,5 Вт
Источник питания Official Raspberry Pi Power Supply Вход 90–264 В/50 Гц Выход 5 В/2 А постоянного тока Выходной разъем Micro-USB
Корпус из пластика Pi Case Корпус для Raspberry Pi 2 model B или Raspberry Pi B+ Материал корпуса: ABS-пластик Есть место для дополнительных плат Места крепления для видеокамер Размеры: 94×63×32 мм Варианты цвета: черный, белый, прозрачный



Рис. 3. Вариант компьютера на Raspberry Pi с подключенной периферией


Операционные системы для Raspberry Pi


На Raspberry Pi изначально можно установить Linux ОС. Рекомендована Raspbian, основанная на Debian, возможна Pidora на основе Fedora. Полезна встроенная открытая ОС Open Embedded Linux Entertainment Centre (OpenELEC), представляющая собой полный медиацентр. Поддерживаются также RaspBMC, RISC OS, Arch Linux, Ubuntu Mate, Snappy Ubutu Core, PiNet, OSMC. Большая часть дистрибутивов этих ОС входит в программный инсталляционный пакет New Out Of Box Software (NOOBS), поставляемый на SD-карте с RS-номером 875-2692 [1].


Особо следует отметить, что модели Raspberry Pi 2 и Pi 3 могут работать не только под Linux, но и под управлением Windows 10 IoT Core, что позволяет переносить на Raspberry ранее написанные под Windows и отлаженные прикладные программы, в том числе производственного назначения. Модули и устройства на основе Raspberry Pi 2 и Pi 3 под управлением Windows 10 IoT Core могут стать основой различных промышленных систем автоматизации и управления, домашних интеллектуальных систем, подключаемых к «Интернету вещей».


Рекомендованная ОС Raspbian поставляется с набором предустановленных программ, который содержит стандартные браузер, калькулятор, текстовый редактор, игры, а также среду разработки Python, визуальную игровую среду для обучения программированию Scratch, базу знаний и набор вычислительных алгоритмов Wolfram и другое. Разнообразное ПО на языках Python, C, C++, Java и Ruby можно скачивать с Pi Store [4] — аналога AppStore и GooglePlay.


Сетевые ресурсы


Существует большое число интернет-сообществ, в которых инженеры-электронщики делятся опытом успешного внедрения Raspberry Pi. В частности, раздел инженерного сайта DesignSpark [5] от компании RS Components, посвященный одноплатнику Raspberry, один из самых насыщенных и посещаемых.


Здесь специалисты высказывают интересные идеи, ведут блоги, публикуют обзоры и реализованные проекты. На сайте разработчиков проекта Raspberry Pi Foundation [2] доступна теоретическая база с подробными методиками, инструкциями и бесплатными онлайн-курсами.


Модули на основе Raspberry Pi


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


Сам по себе Raspberry Pi способен выполнить функцию датчика температуры [2], поскольку его система-на-кристалле (SoC) имеет температурный сенсор. Он контролирует, как нагревается чип в процессе работы, и может применяться для измерения температуры окружающей среды, в частности в помещении или внутри оборудования с Raspberry. Есть пример shell-скрипта, который будет исполняться автоматически при запуске модуля, проводить замеры температуры с определенным интервалом времени и сохранять результаты в лог-файлах. Для создания корректных временных меток можно использовать подключение к Интернету или установить часы реального времени. Заявленный предел отклонения — менее 2 мин в год.


Raspberry Pi может считывать данные с внешних термодатчиков [6]. На рис. 4 показан пример подключения однопроводного термометра DS18B20 от компании Maxim Integrated (RS-номер 540-2805) к 4-му пину GPIO на плате Raspberry Pi. Для программного подключения к датчику в ОС Raspbian на стороне Raspberry Pi необходимо модифицировать файл конфигурации /boot/config.txt, открыв условный интерфейс по 4GPIO. После рестарта компьютер считывает данные с датчика.


Рис. 4. Схема подключения внешнего термодатчика к Raspberry Pi


На Raspberry Pi можно реализовать беспроводную точку доступа [7], подключив к нему USB Wi-Fi-адаптер (рис. 5) и настроив конфигурацию сети.


Рис. 5. Raspberry Pi как беспроводная точка доступа


Можно также сделать программируемый цифровой таймер [8] и/или управлять различными внешними устройствами: включать/выключать электрическую розетку [9], управлять светильником, двигателем или другими силовыми нагрузками (рис. 6).


Рис. 6. Схема управления электроприборами с Raspberry Pi


Промышленные применения Raspberry Pi


Raspberry Pi для медиаприложений


Одноплатник Raspberry Pi способен обеспечить независимое сетевое соединение, поэтому его часто используют для управления сетевыми жесткими дисками с SSH-доступом или для пересылки файлов по FTP. А если помимо подключения и настройки конфигурации внешнего HDD установить на компьютер какой-либо торрент-клиент, можно получить полноценный медиацентр [10] с возможностью воспроизведения предварительно закачанных фильмов и музыки без ощутимых задержек. Поскольку Raspberry Pi поддерживает технологию Consumer Electronics Control (CEC), для управления подсоединенными устройствами можно использовать пульт телевизора (рис. 7).



Рис. 7. Схема медиацентра на базе Raspberry Pi


Благодаря компактности и дешевизне Raspberry Pi применяют для управления информационными и рекламными табло в офисах и бизнес-центрах, на остановках общественного транспорта или в аэропортах. В частности, российские компании используют Raspberry Pi 2 в качестве медиаплеера контента в рекламе, распространяемой в больших торговых центрах, а также в автобусах и маршрутных такси. Есть примеры использования Raspberry в информационной системе поликлиники для управления дисплеями перед врачебными кабинетами. Дисплеи нужны для информирования пациентов о времени и последовательности приема, рекламы лечебных возможностей поликлиники и т. д. Одна из студий крупной телерадиокомпании применяет Raspberry Pi в системе обработки звука.


Применение в ИТ


На инженерных форумах можно найти большое число примеров реализации всевозможных контроллеров сетевых дисков, веб-серверов, маршрутизаторов на базе Raspberry Pi. Возможности подключения и настройки модулей для обмена по Wi-Fi, Ethernet, USB, а также поддержка обмена данными и файлами через SSH и FTP позволяют использовать его и для решения разнообразных ИТ-задач. Дополнительным преимуществом Raspberry Pi является поддержка практически всех разновидностей ОС семейства Linux, доступность приобретения и низкая стоимость.


Отечественные ИТ-компании широко применяют Raspberry Pi в качестве тонких клиентов, терминалов доступа к серверу. Ряд компаний создает на основе Raspberry устройства управления маршрутизаторами, IP-видеокамеры, элементы систем безопасности и различные сетевые устройства.


Интересен опыт построения суперкомпьютера на Raspberry Pi сотрудниками Саутгемптонского университета (Великобритания) [11]. Все платы объединены в локальную сеть Ethernet, обмен данными производится через SSH. Для управления процессами, работающими на нескольких узлах, настраивается программный интерфейс MPI. Программируемая конфигурация системы позволяет задействовать от 2 до 64 модулей Raspberry Pi, подключая к каждому из них в качестве ПЗУ SD-карты памяти объемом 16 Гбайт. Соответственно, общий объем дискового пространства полученного кластера может достигать 1 Тбайт. Для привлечения внимания к проекту в качестве «серверных шкафов» использованы детали от популярного конструктора Lego (рис. 8).


Рис. 8. Суперкомпьютер на Raspberry Pi


Raspberry Pi в телекомe


На одноплатном компьютере Raspberry Pi легко реализовать офисную мини-АТС типа Asterisk, вся конфигурация выполняется программно. Бюджетный GSM-шлюз на базе Raspberry Pi можно построить, подключив 3G-модем и настроив драйвер канала Asterisk для USB-модемов и переключатель режимов USB [2]. Шлюз требует запуска пакета FreePBX для Raspberry RasPBX. Пара таких шлюзов позволяет совершать международные вызовы по стоимости локальных вызовов с обычных VoIP-телефонов (рис. 9). Заявленное качество соединения 64 кбит/с по SIP-каналу на расстояние между шлюзами составляет до 10 тыс. км.


Рис. 9. Схема организации международных вызовов через GSM-шлюзы на Raspberry Pi


Энтузиасты собирают различные варианты мобильных телефонов на базе Raspberry Pi, например PiPhone [2] — полнофункциональный смартфон (рис. 10).



Рис. 10. Смартфон PiPhone на основе Raspberry Pi


Raspberry Pi в промышленной автоматизации


К системам промышленной автоматизации предъявляются высокие требования по безаварийному функционированию, быстрому восстановлению после сбоев, высокой производительности при желательно низком энергопотреблении. На платформе Raspberry Pi создаются самостоятельные промышленные компьютеры, которые можно легко адаптировать к собственным требованиям, подбирая доступные варианты оборудования. Компактность и широкие возможности подключения с совместимыми модулями дают множество вариантов размещения устройств. Низкое энергопотребление Raspberry Pi позволяет использовать режимы энергосбережения, чтобы сократить затраты. Поддержка Linux и Windows 10 в случае Pi 2 и Pi 3 обеспечивает стабильность и безаварийную работу на уровне ОС.


Промышленный компьютер ModBerry 500 (рис. 11) на базе Raspberry Pi Compute Module способен выполнять функции встроенного компьютера, многоканального модуля телеметрии, ПЛК, промышленного модема и роутера LTE/3G/GPRS, конвертера протоколов и интерфейсов, а также модуля спутниковой навигации GPS [12].



Рис. 11. Промышленный компьютер ModBerry 500 на базе Raspberry Pi


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


Существует пакет программ REX Control System [6] для проектов автоматизации. Программы позволяют превратить одноплатный компьютер Raspberry Pi в универсальный управляющий модуль. Пакет состоит из среды графического программирования RexDraw, компилятора RexComp, исполнительной программы RexCore, утилиты диагностики RexView (рис. 12). Реализована обработка многопоточности исполняемых задач. Поддерживаются все модели Raspberry Pi и совместимые платы расширения от третьих поставщиков PiFace Digital, Intellisys PIO и UniPi.



Рис. 12. Структура системы управления и автоматизации на базе Raspberry Pi под управлением REX Control System


По технологии POWERLINK [13] на Raspberry Pi 2 можно реализовать промышленный Ethernet-протокол, что позволяет строить системы промышленной автоматизации и управлять сигналами двигателей, датчиков, приводов, реле и многого другого (рис. 13). Заявлена пропускная способность 100 Мбит/с, частота синхронизации 0,1 мкс, поддержка сети до 240 узлов, то есть до 460 тыс. цифровых каналов с длиной линий между узлами от 100 м до 2 км.


Рис. 13. Схема организации сети по технологии POWERLINK на Raspberry Pi 2


«Умный дом» под контролем Raspberry Pi


Системы домашней автоматизации на платформе Raspberry Pi успешно справляются с задачами удаленного мониторинга температуры и влажности воздуха в помещении, систем отопления, газоснабжения, безопасности и сигнализации. Такие системы состоят из набора контроллеров, территориально распределенных по объекту и соединенных между собой по шине RS-485. Каждый контроллер обслуживает одно или несколько устройств и может действовать автономно.


Шина RS-485 через преобразователь RS-485/UART подключается к веб-серверу, организованному на Raspberry Pi [6]. Вебинтерфейс системы позволяет управлять всеми устройствами и получать от них информацию о состоянии. Можно организовать дистанционное управление по мобильным сетям через GSM-модем (рис. 14). Аналогичные системы применяют и для удаленного мониторинга состояния оборудования в серверных комнатах: о наличии/отсутствии сбоев, замыканий, воспламенений, перегревов техники.


Рис. 14. Система домашней автоматизации под управлением Raspberry Pi


Применение в офисной и торговой технике


Внушительная вычислительная мощность, малые габариты и сравнительно низкая цена предопределяют широкое распространение Raspberry Pi в офисном и торговом оборудовании. Это и управляющая плата дисплея, и терминальный доступ к серверу, и блок POS. Можно применить Raspberry в качестве системной платы в устройстве контроля цен (прайсчекере) в торговом зале. Иногда стандартные функции офисной техники не устраивают заказчика, и тогда на основе Raspberry можно расширить функциональные возможности, например построив на Raspberry систему защиты информации для безопасности коммерческих данных предприятия. С целью повышения качества обслуживания компании контролируют телефонные переговоры операторов. Можно использовать Raspberry в офисных АТС в приборах учета и записи разговоров операторов с клиентами.


Raspberry Pi в робототехнике


Raspberry Pi активно применяется для создания наземных и летающих роботов. Шасси при этом выбирают исходя из конкретной задачи. Это может быть стандартная промышленная платформа, или основа от детской игрушки [2], или распечатанная на 3D-принтере модель [14]. Рассмотрим интересный с инженерной точки зрения автономный колесный робот с компьютерным зрением [15], в котором применены сразу две открытые платформы: Raspberry и Arduino, а весь проект отличается тщательной инженерной проработкой (рис. 15).


Рис. 15. Автономный колесный робот с компьютерным зрением на платформах Raspberry Pi и Arduino


В качестве контроллера двигателей автор применил плату Arduino Nano (RS-номер 696-1667), которая обеспечивает необходимые быстроту и точность управления раскруткой двигателя. Поскольку ток на выходе Arduino Nano слишком мал для непосредственного управления двигателем, нужно или использовать H-мост из четырех ключей, реализованный на любой подходящей ИС, или применить шилд arduino motor driver. Добавим от себя, что это мог быть шилд Arduino Motor Shield Rev3 с RS-номером 758-9349.


Для вычисления общего курса робота по принципу компьютерного зрения в качестве главного контроллера взят Raspberry Pi B+. Программа для него написана на интерпретаторе Python, который имеется в стандартном комплекте Raspbian. Автор применил видеокамеру Raspicam, отметив ее достоинства: она небольшая, легкая, есть отдельный порт для ее подключения, широкий угол обзора, хороший драйвер и 90 фпс в VGA-разрешении. Система питания включает литий-полимерный аккумулятор емкостью 2 А·ч с номинальным выходным напряжением 7,2 В и импульсный понижающий DC/DC-преобразователь с выходом 5 В/800 мА для питания Raspberry и Arduino. За счет разделения вычислительных задач между Raspberry и Arduino достигается высокая скорость реакции системы.


Одноплатные микрокомпьютеры Raspberry Pi широко применяются в дронах. В России ведутся несколько независимых разработок для решения различных практических задач: геологоразведка, контроль трафика на автомагистралях, анализ загруженности перекрестков и т.д. Здесь с помощью специального ПО Raspberry Pi вычисляет направление движения устройства и распределяет нагрузку на моторы [15, 16]. Аппаратная производительность гарантирует выполнение всех функций в режиме реального времени. К Raspberry Pi (рис. 16) подключается видеокамера, изображение с которой транслируется по беспроводному соединению на наземный компьютер.


Рис. 16. Квадрокоптер, управляемый Raspberry Pi


Заключение


На базе одноплатного компьютера Raspberry Pi создаются производительные и надежные системы и устройства в самых разных сферах: промышленные компьютеры, системы автоматизации, веб-серверы, роутеры, медиацентры, колесные и летающие роботы, системы «умного» освещения, контроля различных параметров и многое другое. Приведенный обзор не ограничивает другие возможные приложения. Фантазия и инженерная смекалка отечественных разработчиков найдут для Raspberry Pi новые интересные применения.


Литература


1. www.ru.rsdelivers.com

2. www.raspberrypi.org

3. www.farelectro.ru

4. www.store.raspberrypi.com

5. www.designspark.com

6. www.rexcontrols.com

7. www.recantha.co.uk

8. www.raspi.tv

9. www.mediaunix.com

10. www.ra4nal.qrz.ru

11. www.southampton.ac.uk

12. www.techbase.eu

13. www.ethernet-powerlink.org

14. www.edurobots.ru

15. www.geektimes.ru

16. www.rpiquadcopter.blogspot.ru