Оглавление:
- Шаг 1: Необходимые детали
- Шаг 2: Настройка камеры Raspberry
- Шаг 3. Установите V4l2rtspserver
- Шаг 4. Настройте Raspberry в качестве точки доступа Wi-Fi: Часть 1 - Hostapd
- Шаг 5: Настройте Raspberry в качестве точки доступа Wi-Fi: Часть 2 - Dnsmasq
- Шаг 6: проверьте программное обеспечение
- Шаг 7: Изготовление блока питания
- Шаг 8: создание коробки для камеры
- Шаг 9: сделайте держатель для телефона
- Шаг 10: соберите все и попробуйте
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
Мой брат использует электрическое кресло-коляску Invacare TDX, которое легко маневрирует во всех направлениях, но из-за ограниченной видимости сзади трудно ехать задом в ограниченном пространстве. Цель проекта - создать камеру заднего вида с использованием IP-потоковой передачи на мобильный телефон, который установлен рядом с его рулевым джойстиком.
Необходимые компоненты:
- электроснабжение и распределение с использованием энергии инвалидных колясок
- камера заднего вида и видеостример
- держатель мобильного телефона для панели управления.
Питание осуществляется от самого кресла-коляски, в котором используются свинцовые батареи на 24 В. Порт зарядки неправильно используется для подключения преобразователя питания к USB, который питает Raspberry, отвечающую за потоковую передачу, а также при необходимости питает мобильный телефон.
Стриминг осуществляется с помощью Raspberry Pi Zero W, который служит точкой беспроводного доступа и передает видео на любое устройство, подключенное к беспроводной сети.
Мобильный телефон для отображения изображения крепится с помощью распечатанного на 3D-принтере адаптера к блоку управления креслом-коляской.
Чтобы следовать этому проекту, вам потребуются некоторые базовые знания Debian / Linux, так как настройка требует некоторой ручной работы. Однако это не слишком сложно, так что попробуйте - если вы не уверены, есть сотни руководств по Linux, которые могут вам помочь.
Шаг 1: Необходимые детали
Raspberry Pi Zero W: основной компонент для потокового видео
Широкоугольные объективы «Рыбий глаз» SainSmart для Raspberry Pi: широкоугольная камера, совместимая с камерой Arduino (угол обзора 170 °)
2 × пластиковых корпуса: один корпус меньшего размера для малины и камеры, один корпус большего размера для распределения питания
Штекер XLR: для подключения к зарядному порту инвалидной коляски.
Автомобильный USB-порт (например, TurnRaise 12-24V 3.1A): преобразователь 24 В в USB в небольшом корпусе для использования в автомобиле и мотоцикле. Это может быть что угодно, использующее вход 24 В и обеспечивающее выход USB.
Различные кабели:
- Кабель питания для прокладки кабеля от порта XLR к задней части инвалидной коляски,
- USB-кабель для питания Raspberry
Напечатанный на 3D-принтере адаптер для телефона. Напечатанный на 3D-принтере адаптер для блока управления креслом-коляской, который служит базой для стандартного автомобильного держателя мобильного телефона:
Держатель мобильного телефона в автомобиле: держатель мобильного телефона, который можно прикрепить к плоской поверхности (например, держатель телефона на приборной панели). Я использовал один от немецкого производителя Hama.
Шаг 2: Настройка камеры Raspberry
Установите Raspbian с https://www.raspberrypi.org/downloads/raspbian/, следуя инструкциям с
Установите все обновления, выполнив следующие две команды из терминала:
sudo apt-get update
sudo apt-get dist-upgrade
Выключаемся, подключаем камеру. Снова запустить малину.
В панели Raspberry Setup включите камеру и включите SSH-доступ к Raspberry. Камера sainsmart работает как официальная камера Pi, вы можете следовать инструкциям, приведенным здесь: https://www.raspberrypi.org/learning/addons-guide … К сожалению, вы еще не закончили. Нам нужен драйвер v4l для raspi-cam, который не включен из коробки. Сначала вы должны обновить прошивку вашего raspberry, чтобы получить последнюю версию прошивки и драйвера ядра - запустите в терминале следующее:
sudo raspi-update
Теперь вам нужно загрузить драйвер ядра v4l, набрав в терминале:
sudo modprobe bcm2835-v4l2
Если это сработало без сообщений об ошибках, теперь у вас должно быть устройство / dev / video0, проверьте с помощью
ls - l / dev / vid *
Если это сработало, добавьте bcm2835-v4l2 в / etc / modules для включения модуля при каждом запуске.
Проверить, что камера работает, можно командой:
raspistill -o cam.jpg
Шаг 3. Установите V4l2rtspserver
Для начала вам необходимо установить cmake, так как мы сами скомпилируем программу стриминга видео:
sudo apt-get install cmake
Для потоковой передачи мы используем v4l2rtspserver, так как он показал самую низкую задержку в наших испытаниях. Вы можете получить код с
Установите его с помощью:
git clone
cd h264v4l2rtspserver
cmake.
сделать установку
Все должно завершиться без ошибок, и теперь вы можете протестировать это, запустив потоковый сервер с терминала:
v4l2rtspserver -W 352 -H 288 -F 10 / dev / video0
Подключитесь с помощью VLC на компьютере в той же сети к raspberry: rtsp: //: 8554 / unicast, чтобы проверить, работает ли потоковая передача.
Создайте скрипт под названием launcher.sh в вашем домашнем каталоге, используя ваш любимый редактор (это должен быть vi):
! # / bin / bashsleep 20 v4l2rtspserver -W 352 -H 288 -F 10 / dev / video0
Команда сна необходима для готовности видеодрайвера. Вероятно, можно установить менее 20 секунд….
Добавьте этот скрипт в свой crontab с помощью «crontab -e» и добавьте:
@reboot sh /home/pi/bbt/launcher.sh> / home / pi / logs / cronlog 2> & 1
Это должно автоматически запускать потоковую передачу при каждом запуске.
Альтернативы стримингу:
Есть несколько альтернатив для потокового видео, я пробовал motion и vlc. Движение - это инструмент веб-камеры, который обнаруживает движение, поэтому он выполняет дополнительный анализ изображений и, вероятно, немного медленнее, чем просто потоковая передача.
VLC работает "из коробки" без дополнительных компиляций:
cvlc v4l2: /// dev / video0 --v4l2-width 320 --v4l2-height 200 --v4l2-chroma h264 --sout '#standard {access = http, mux = ts, dst = 0.0.0.0: 12345} '
Эта команда передает видео в формате h264 через http на порт 12345. Задержка в нашей тестовой настройке составляет примерно 2 секунды.
Шаг 4. Настройте Raspberry в качестве точки доступа Wi-Fi: Часть 1 - Hostapd
На этом шаге Raspberry устанавливается в качестве точки доступа. После этого вы больше не подключены к своей сети, но Raspberry открывает свою собственную сеть Wi-Fi. В случае ошибок вам необходимо иметь доступ к Raspberry с клавиатурой и дисплеем, поэтому сделайте это, прежде чем закопать малину в какое-нибудь жилище…
Я следую описанному здесь методу:
Установите hostapd и dnsmasq:
sudo apt-get install dnsmasq hostapd
Отключите dhcp на интерфейсе wlan0, добавив следующую строку в /etc/dhcpd.conf (желательно вверху)
denyinterfaces wlan0
Настройте статический IP-адрес для интерфейса wlan0, отредактировав / etc / network / interfaces, включив в него следующее:
allow-hotplug wlan0 iface wlan0 inet статический адрес 172.24.1.1 сетевая маска 255.255.255.0 сеть 172.24.1.0 широковещательная передача 172.24.1.255
Перезапустите демон dhcp с помощью sudo service dhcpcd restart, а затем перезагрузите конфигурацию wlan0 с помощью
sudo ifdown wlan0; sudo ifup wlan0
Сохраните прикрепленный hostapd.conf в /etc/hostapd/hostapd.conf (после того, как вы проверили содержимое и адаптировали его по своему вкусу - вы должны, по крайней мере, изменить SSID и кодовую фразу на что-то более безопасное).
Теперь вы можете проверить, работает ли он, запустив:
sudo / usr / sbin / hostapd /etc/hostapd/hostapd.conf
Вы сможете подключиться к новой сети, но пока не получите IP-адрес. Остановите hostapd, нажав CTRL-C. Включите автоматический запуск hostapd, отредактировав / etc / default / hostapd и добавив расположение файла конфигурации, изменив соответствующую строку на
DAEMON_CONF = "/ etc / hostapd / hostapd.conf"
Шаг 5: Настройте Raspberry в качестве точки доступа Wi-Fi: Часть 2 - Dnsmasq
Переместите предоставленную конфигурацию dnsmasq в файл резервной копии (поскольку он содержит много комментариев, вы все равно можете использовать его для справки):
sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
Затем создайте новый /etc/dnsmasq.conf со следующим содержимым:
server = 8.8.8.8 # Перенаправлять DNS-запросы в домен Google DNS, необходимый # Не перенаправлять короткие имена bogus-priv # Никогда не перенаправлять адреса в немаршрутизируемых адресных пространствах. dhcp-range = 172.24.1.50, 172.24.1.150, 12h # Назначьте IP-адреса между 172.24.1.50 и 172.24.1.150 с 12-часовым сроком аренды
Привязка службы dnsmasq к определенному адресу приводит к некоторым проблемам в нашей установке, поэтому мы просто позволяем ей работать на всех интерфейсах. Поскольку у raspberry Pi Zero W есть только Wi-Fi, это не проблема, если вы не подключите интерфейс USB Ethernet … (в этом случае у вас также будет сервер DHCP на этом интерфейсе, поэтому это может испортить сеть, к которой вы подключаетесь с помощью кабеля).
Вам не нужно делать никаких дополнительных действий для запуска dnsmasq при запуске, он запускается автоматически. Однако вы должны протестировать все, прежде чем выполнять перезагрузку, запустив обе службы вручную и убедитесь, что вы можете подключиться к Wi-Fi и получить IP-адрес (вы также можете сообщить своему мобильному телефону, что у этого Wi-Fi нет Интернета и что это нормально):
sudo service hostapd start sudo service dnsmasq start
Шаг 6: проверьте программное обеспечение
Теперь, когда вы все настроили, пора выполнить короткую проверку (прежде чем все станет более труднодоступным). Перезагружаем малину.
Подключитесь к WiFi, если малина с вашего мобильного телефона. Подключите потокового видео клиента (например, VLC, который существует для всех операционных систем) к потоку малины, выбрав «Сетевой поток» и подключившись к rtsp: //: 8554 / unicast (это IP-адрес вашего устройства, если вы этого не сделали поменять это 172.24.1.1).
Теперь вы должны увидеть живое видео с камеры… (У меня были некоторые проблемы с VLC для Android, но VLC для iOS работал без сбоев - я не исследовал версию для Android, так как мой брат использует iOS).
Шаг 7: Изготовление блока питания
В системе управления invacare используется то, что кажется стандартом для инвалидных колясок с электроприводом. Разъем представляет собой стандартный разъем XLR, используемый для микрофонов. Контакт 1 положительный, контакт 2 отрицательный. У Invacare есть два дополнительных контакта для связи, но мы не собираемся возиться с ними …
Подключите разъем XLR к адаптеру питания USB и поместите все в коробку. Чтобы подвести кабель к коробке, хорошей идеей будет сквозной ввод. Убедитесь, что кабель достаточно длинный, чтобы его можно было проложить от модуля управления креслом-коляской к спинке, где вы будете прикреплять блок питания. Вы можете проложить кабели, следуя за кабелями модуля управления, чтобы они не попали в подвижную часть.
Шаг 8: создание коробки для камеры
Постройте коробку, которая подходит для Raspberry Pi и камеры. В коробке должно быть отверстие сбоку, чтобы пропустить кабель питания USB, и отверстие для камеры, достаточно большое, чтобы не загораживать обзор. Я установил камеру под углом примерно 45 °, чтобы она была направлена вниз, чтобы можно было видеть задние колеса инвалидной коляски. Я использовал стандартную пластиковую коробку, в которой вырезал несколько отверстий, но вы также можете распечатать на 3D-принтере более интересную версию (возможно, для версии 2).
Шаг 9: сделайте держатель для телефона
Чтобы прикрепить мобильный телефон к инвалидной коляске, я распечатал на 3D-принтере пластину адаптера, которую можно найти здесь: https://www.thingiverse.com/thing:2742683 (также прилагается файл STL). Он прикреплен к блоку управления креслом-коляской. На эту пластину можно наклеить любой автомобильный держатель для телефона, который можно купить по дешевке в любой момент.
Шаг 10: соберите все и попробуйте
А теперь пора все собрать:
Прикрепите блок камеры где-нибудь в задней части кресла-коляски, чтобы обзор не был затруднен, а камера была направлена назад. Прикрепите блок питания где-нибудь сзади, где он не будет мешать. Подключите кабель USB от Raspberry к блоку питания. Подключите блок питания с разъемом XLR к зарядному порту на блоке управления креслом-коляской. Теперь все должно запуститься.
Установите VLC на свой мобильный телефон (если вы еще этого не сделали…) и подключитесь к Raspberry через rtsp: //: 8554 / unicast
Теперь вы должны увидеть изображение с камеры на своем мобильном телефоне:-)
Установите держатель мобильного телефона на блок управления креслом-коляской и закрепите на нем телефон. Вот и все, готово!
Второй приз в конкурсе Raspberry Pi Contest 2017