MAKER:NilsP5/译:趣无尽 Cherry(转载请注明出处)
本期介绍安装在电动轮椅上的后视摄像头的制作方法,该项目通过手机上的 IP 视频流来实现后视摄像头的功能,该摄像头会安装在电动轮椅的操纵杆附近。和往期的《基于树莓派和 Vufine 屏的谷歌眼镜》一样,是为行动障碍人士提供帮助的实用项目。当然你也可以运用到其他领域。
项目特点:
1、轮椅使用 24V 铅蓄电池供电,整个项目的电源由电动轮椅提供。方便为树莓派和手机供电,充电端口可以兼容 USB 接口的电源转换器。
2、树莓派 Zero W 用于视频流的部分,作为无线访问点,并将视频流传输到连接到无线网络的任何设备上。
3、手机托盘将使用 3D 打印的外壳安装在轮椅的控制器旁,它将提供图像显示的功能。
4、本项目将会用到 Debian/Linux 的基础知识。
材料清单
树莓派 Zero W×1
SainSmart 广角鱼眼镜头×1
塑料外壳×2
XLR 插头×1
车载 USB 接口×1
电源线(用于 XLR 接口)×若干
USB 电线(用于树莓派)×若干
设置树莓派摄像头
按照说明安装 Raspbian,请点击:
https://shumeipai.nxez.com/2013/09/07/how-to-install-and-activate-raspberry-pi.html
1、通过终端运行以下两个命令来安装所有更新:
sudo apt-get update sudo apt-get dist-upgrade
关机,连接摄像头,再次启动树莓派。
2、在树莓派设置面板中,启用摄像头并启用对树莓派的 SSH 访问。
摄像头操作流程请点击查看:
https://shumeipai.nxez.com/2013/10/07/raspberry-pi-to-install-the-camera-module.html
3、安装 raspi-cam 的 v4l 驱动程序,该驱动程序需要处理后使用。
首先对树莓派的固件进行更新升级,以便获取最新的固件和内核驱动程序。
然后在终端中运行以下命令:
sudo raspi-update
通过在终端输入命令来加载 v4l 内核的驱动程序:
sudo modprobe bcm2835-v4l2
如果操作顺利,没有报错,应该具备设备/dev/video0,请输入以下命令,检查是否可行:
ls - l /dev/vid*
如果可行,请将 bcm2835-v4l2 添加到 /etc/modules 中,在每次启动时启用该模块。
输入以下命令检查摄像头是否可以使用:
raspistill -o cam.jpg
安装 V4l2rtspserver
安装软件部分
1、安装 cmake,需要自己编译视频流程序:
sudo apt-get install cmake
2、选用 v4l2rtspserver 作为视频流,试验了几款,发现它的延迟是最短的:
https://github.com/mpromonet/v4l2rtspserver
安装方法:
git clone https://github.com/mpromonet/v4l2rtspserver cd h264v4l2rtspserver cmake . make install
3、如果没有出现报错,一切正常的话,可以通过从终端启动视频流服务器来对其进行测试:
v4l2rtspserver -W 352 -H 288 -F 10 /dev/video0
4、用同一网络中的计算机上将 VLC 连接至树莓派输入
rtsp://<IP_ADDRESS>:8554/unicast
,检查视频流是否正常工作。
5、使用你最拿手的编辑器(推荐使用 vi)在主目录中创建一个名为 launcher.sh 的脚本:
!#/bin/bash sleep 20 v4l2rtspserver -W 352 -H 288 -F 10 /dev/video0
6、需要 sleep 命令使视频驱动器准备就绪。将其设置为少于 20 秒。
使用 “crontab -e” 将此脚本添加到 crontab 中,再添加:
@reboot sh /home/pi/bbt/launcher.sh >/home/pi/logs/cronlog 2>&1
每次启动时将自动开启视频流式传输。
视频流传输的替代方法
我尝试了 Motion 和 VLC,有两种方法可用于视频流传输。Motion 是检测运动网络摄像头的工具,它可以对图像执行附加的图像分析,但是视频流的传输要慢一些。
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}'
此命令通过端口 12345 上的 http 视频流传输编码为 h264 的视频。测试设置中,延迟大约为两秒。
将树莓派设置为 WiFi 接入点
Hostapd
此步骤开始将树莓派设置为访问点。此后,只要树莓派打开自己的 WiFi 网络就不需要连接到网络。如果报错,只需要使用键盘和显示器访问树莓派,因此在将树莓派固定在某处时,就可以这样处理。
操作流程可参照:
https://shumeipai.nxez.com/2018/03/13/raspberry-pi-double-network-cards-for-wireless-hotspot.html
然后安装 hostapd 和 dnsmasq:
sudo apt-get install dnsmasq hostapd
将以下行添加到 /etc/dhcpd.conf (最好添加到顶部)禁用 wlan0 接口上的 dhcp。
denyinterfaces wlan0
通过编辑 /etc/network/ 界面为 wlan0 接口配置静态 IP,内容为:
allow-hotplug wlan0 iface wlan0 inet static address 172.24.1.1 netmask 255.255.255.0 network 172.24.1.0 broadcast 172.24.1.255
使用 sudo service dhcpcd restart 重新启动 dhcp 守护进程,然后使用以下命令重新加载 wlan0 配置:
sudo ifdown wlan0; sudo ifup wlan0
将附件的 hostapd.conf 保存在 /etc/hostapd/hostapd.conf 下。检查内容并根据自己的喜好进行调整,修改 SSID 和密码的名称,让其更安全。
运行以下命令检查其是否有效:
sudo /usr/sbin/hostapd /etc/hostapd/hostapd.conf
连接至新网络,因为没有 IP 地址,通过按 CTRL-C 停止 hostapd。通过编辑 /etc/default/hostapd 和将相应的行更改为添加配置文件位置来自动启用 hostapd。
DAEMON_CONF="/etc/hostapd/hostapd.conf"
关于 hostapd 的文件请在项目文件库中下载:
https://make.quwj.com/project/147
Dnsmasq
将提供的 dnsmasq 配置移动到备份文件(因为它包含很多注释,会起到参考作用)
sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
创建一个新的 /etc/dnsmasq.conf,输入以下内容:
server=8.8.8.8 # Forward DNS requests to Google DNS domain-needed # Don't forward short names bogus-priv # Never forward addresses in the non-routed address spaces. dhcp-range=172.24.1.50,172.24.1.150,12h # Assign IP addresses between 172.24.1.50 and 172.24.1.150 with a 12 hour lease time
将 dnsmasq 服务绑定到特定地址,在安装时出现一些问题。因此我们允许它在所有接口上运行。由于树莓派 Zero W 只具有 WiFi 功能,都不会有问题除非你连接 USB 以太网接口。在这种情况下,你的接口上还是具有 dhcp 服务器的功能,如果你用网线连接,它可能会弄乱你的网络。
你不需执行任何其他步骤即可在启动时运行 dnsmasq,它会自动启动。但是,在重新启动之前,你应该测试一下,然后手动启动两种服务并检查是否可以连接到 WiFi 并获取 IP 地址。
sudo service hostapd start sudo service dnsmasq start
检查软件
软件设置完毕后,现在开始进行简单的检查,以免发生很难访问的问题。
1、重新启动树莓派。
2、如果手机安装了树莓派,请连接到 WiFi。通过选择“网络流”并连接到 rtsp://<IP_ADDRESS>:8554/unicast,将流视频客户端(例如 VLC 适用于所有操作系统)连接到树莓派的视频流。<IP_ADDRESS> 是 IP 设备,如果没有进行更改,应为 172.24.1.1。
现在可以在摄像头上看到一些实时视频。我在 Android 上使用 VLC 时遇到了一些问题,但是在 iOS 上,VLC 可以正常运行。
制作电源
Invacare 控制是电动轮椅的标准配备。该连接器使用麦克风的标准 XLR 连接器。引脚 1 为正极,引脚 2 为负极。Invacare 还有两个另外的针脚用于通信,该项目中不会使用。
将 XLR 接口连接到 USB 电源适配器,然后放入到一个盒子中。将电线也放到盒中,最好使用连接线。确保电线足够长,可以将其从轮椅控制模块布线至安装电源盒背面的位置。你可以在控制模块的电线后布线,确保它们不会被任何可移动部件卡住。
制作摄像头外壳
制作一个可以容纳树莓派和摄像头的外壳。外壳的侧面需要一个孔,方便 USB 电源线穿过,注意摄像头的孔要足够大,不会遮挡视线。
以大约 45° 的角度安装了摄像头并使其指向下方,以便可以看到轮椅的后轮。我使用一个塑料盒并手动切割孔,你可以选择 3D 打印外壳。
制作手机支架底盘
如图所示,将手机安装在轮椅上,我 3D 打印了一个转接板。
支架将安装在轮椅控制单元。在这个底盘上,你可以粘贴任何车载手机支架。
关于 3D 打印的文件请在项目文件库中下载。
https://make.quwj.com/project/147
组装所有组件并测试
1、将摄像头安装在轮椅后部并朝向后方,注意不能遮挡视线。
2、将电源盒安装在后面,注意不要妨碍使用。
3、使用 USB 线将树莓派连接到电源盒。
4、将带有 XLR 插头的电源盒连接到轮椅控制单元上的充电接口。
5、在手机上安装 VLC;如果没有安装,可以通过 rtsp://<IP_ADDRESS>:8554/unicast 连接到树莓派。
现在,手机上应该可以看到视频了。将手机放在底盘支架上,就可以安全出门。
发表评论