Ambilight своими руками: Часть 3 – софтверная

Если вы прочитали мой предыдущий пост, все подключили и у вас тоже железо, что и у меня – не спешите радоваться, всё только начинается. Теперь нужно всё настроить.

Обновите ваш Raspbian

sudo apt-get update
sudo apt-get upgrade

Для начала убедитесь, что ваш EasyCap девайс работает. В этом вам помогут команды lsusb и dmesg | tail:

lsusb
dmesg | tail

вывод должен выглядеть примерно так:

lsusbdmesgТут видно, что появился новый USB девайс 1b71:3002, что это USBTV007 от fushicai. Дальше нам понадобятся утилиты Video4linux. С помощью v4l2-ctl –list-devices найдите свой EasyCap. В моем случае это просто /dev/video0.

v4l2ctllistОтлично, запомните (или запишите) результат v4l2-ctl – тот что выглядит как /dev/video0. Теперь используя, например, mplayer можно посмотреть картинку предварительно запустив Иксы:

startx
sudo apt-get -y install mplayer
mplayer tv:// -tv device=/dev/video0 -hardframedrop

вместо /dev/video0 может быть что-то другое – смотри вывод v4l2-ctl –list-devices.

Тут вас ждёт первая засада: чёрный или зелёный экран.

20151119_205807Проверьте кабели и побалуйтесь с переключателем PAL-NTSC:

20151103_220807Или же вы можете указать PAL или NTSC в командной строчке для mplayer

mplayer tv:// -tv device=/dev/video0:norm=NTSC -hardframedrop

20151119_210935Python+OpenCV

Cледующий шаг – это поставить и настроить Python+OpenCV. Python – это скриптовый язык программирования, подробнее о нём можете прочитать например в Wikipedia. Скорее всего Python уже установлен на Raspberry Pi, тем не менее имеет смысл проверить версию, так как я тестировал только с версией 2.7.3.

Далее вам нужно поставить две python библиотеки. Это numpy и OpenCV. Они так же доступны через apt-get.

sudo apt-get install python-numpy
sudo apt-get install python-opencv

Numpy – это библиотека для научных вычислений, а OpenCV – это библиотека машинного зрения. Для того, чтобы проверить, что всё установлено и работает как надо, можно написать простенький скрипт на Python-е. Я люблю vim, но вы можете использовать любой другой текстовый редактор, например nano test.py.

Импортируем библиотеки numpy, OpenCV и sys для последующего расширения и работы с системными функциями.

import numpy as np
import cv2
import sys

Эта часть инициализирует видеозахват для устройства /dev/video0. Если ваш EasyCap имеет другой номер – используйте его вместо 0. И проверяем, что инициализация прошла успешно.

cap = cv2.VideoCapture(0)

if (not cap.isOpened()):
  exit(0)

Читаем кадр из устройства и проверяем, что чтение прошло успешно.

ret,frame = cap.read()

if (not ret):
  exit(0)

И сохраняем в файл.

cv2.imwrite('/run/test.jpeg',frame)

Запускаем наш Python скрипт, чтобы посмотреть как оно работает:

sudo python test.py

Для того, чтобы посмотреть картинки в консоли, я использую fbi.

sudo apt-get install fbi
sudo fbi /run/test.jpeg

20151119_211614

_rpi_ws281x

Следующий шаг – это начать работу со светодиодной лентой. На просторах интернета есть разные реализации. Наиболее часто попадающаяся это rpi_ws281x, в частности инструкия на сайте Adafruit ссылается на неё, однако мне так и не удалось её поставить и заставить работать отдельно на Raspberry Pi 2, в то время как на Raspberry Pi B+ всё работает. Спасибо ребятам из pimoroni, за их волшебный unicorn_hat, который решил все проблемы  и простому shell скрипту, который устанавливает все необходимое. Просто качаете и запускаете.

Сначала ставим саму библиотеку, как описано здесь:

sudo apt-get install build-essential python-dev git scons swig
git clone https://github.com/jgarff/rpi_ws281x.git
cd rpi_ws281x/
scons

После того как библиотека скомпилирована и установлена, нужно её немножко подправить и для этого то и понадобится скрипт от ребят из pimoroni.

wget get.pimoroni.com/unicornhat
chmod +x unicornhat
./unicornhat
sudo pip install unicornhat

Чтобы проверить работоспособность можно запустить один из exmaple-ов.

20151119_222410А в следующей серии вы узнаете как скрестить OpenCV и Adafruit_NeoPixel чтобы управлять светодиодами в зависимости от изображения на экране

 

1 thought on “Ambilight своими руками: Часть 3 – софтверная

  1. Pingback: Ambilight своими руками: Часть 4 – всё вместе | В поисках счастья

Leave a Reply