Смотрим Raspberry Pi: часть 1

Плата Raspberry Pi

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

Итак, что мы имеем? Флешка на 8 Gb внутри адаптера, торчит справа на фото, вставленный в один из двух USB разъемов Wi-Fi донгл слева, и камера которая коннектится к разъему на плате.

Камеру я долго не мог запустить; последняя печальная версия которая у меня появилась это то что я убил ее статикой. Оказывается я просто подсоединил ее не к тому разъему на плате: два разъема совершенно одинаковы.

Плата имеет аудиоинтерфейс, что может быть интересно в будущем, и возможность подключения клавиатуры/мышки/монитора, что неинтересно, потому что с такими вещами мне комфортнее работать через удаленную строку. Да, и конечно же Ethernet интерфейс.

Источник питания на 1А, о чем честные юзеры в сети предупреждают что может не хватить если подключен USB донгл и камера. Я пока с этим не столкнулся. 

Приобрел также корпус для платы и отдельно для камеры. После этого сразу же понял, что мне на самом деле нужен корпус в который  можно установить камеру и плату одновременно, и будет совсем замечательно если он будет длиннее чтобы не задевать торчащие разъемы и флешку. А выступают они очень хорошо, как видно на фото где Rpi в сборе.

Raspberry Pi в сборе

На борту – ARM процессор плюс собственно изюминка: специальный графический сопроцессор GPU, который очень быстро работает в некоторых из кодеков. Доступиться к GPU можно через родные утилиты Rpi, такие как raspistill и raspivid, или через интерфейс драйверов OpenMax. Утилиты имеют исходники, так что можно написать что-нибудь свое. Есть родной плеер omxplayer, который также использует GPU.

Сразу скажу, что надо сразу отказаться от мысли использовать ARM под медиаприложения стандартным способом через ffmpeg и тому подобное. Загрузка процессора под 100% гарантирована. А раз стандартные способы не проходят, то надо быть готовым к урокам танцев с бубном.

Интересная тенденция получилась с процессорами ARM архитектуры, а точнее OMAP, которые кроме ARM содержат еще DSP ядро. Изначально предполагалось что DSP возьмет на себя основную нагрузку по компонентам, которые требуют высокой производительности и реалтайма. Поначалу так оно и было, и до сих пор у Texas Instruments есть соответствующие библиотеки для DSP.

Но пару лет назад на одной из конференций Texas’а я ощутил другой тренд – использование сопроцессоров для ARM ядра, особенно для обработки видеоданных. Предполагаю, что это связано с бурным развитием рынка IP камер и как следствие – необходимость автоматического распознавания различных ситуаций (драка, ограбление) без участия оператора. Видимо, DSP отойдет в область специализированных приложений, в частности обработки радиолокационных данных, где требуется скоростная свертка и доплеровская фильтрация.

Теперь плавно переходим к тому, что можно сделать с Rpi. На флешку сразу поставил дистрибутив Raspbian, который мне привычнее, потому что моя десктопная система – Ubuntu. После загрузки Rpi смотрим IP адрес платы в DHCP списке Wi-Fi, чтобы доступиться по ssh. Можно и не смотреть адрес и использовать в адресной строке hostname:

Маршрутизатор DLink умеет работать с именами хостов, поэтому здесь cam – имя платы Rpi, bingo – мой ноут, pi – имя пользователя на cam. Все, теперь мы внутри. Нас интересует все, что связано с удаленным медиа-доступом к Rpi. Ждут ответа следующие вопросы:

  • отправка видео с камеры Rpi (клиент) на удаленных хост (сервер);
  • доступ с удаленного хоста (клиент) к видеокамере на Rpi (сервер).

Продолжение в следующем номере:

Смотрим Raspberry Pi: часть 2

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">