本帖最后由 lou 于 2020-5-7 15:06 编辑
用树莓派 Zero 制造电动轮椅后视镜
本期介绍安装在电动轮椅上的后视摄像头的制作方法,该项目通过手机上的 IP 视频流来实现后视摄像头的功能,该摄像头会安装在电动轮椅的操纵杆附近。和往期的《基于树莓派和 Vufine 屏的谷歌眼镜》一样,是为行动障碍人士提供帮助的实用项目。当然你也可以运用到其他领域。
项目特点:
1、轮椅使用 24V 铅蓄电池供电,整个项目的电源由电动轮椅提供。方便为树莓派和手机供电,充电端口可以兼容 USB 接口的电源转换器。 2、树莓派 Zero W 用于视频流的部分,作为无线访问点,并将视频流传输到连接到无线网络的任何设备上。 3、手机托盘将使用 3D 打印的外壳安装在轮椅的控制器旁,它将提供图像显示的功能。 4、本项目将会用到 Debian/Linux 的基础知识。
材料清单
- 树莓派 ZeroW×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 驱动程序,该驱动程序需要处理后使用。 首先对树莓派的固件进行更新升级,以便获取最新的固件和内核驱动程序。 然后在终端中运行以下命令:
通过在终端输入命令来加载 v4l 内核的驱动程序:
- sudo modprobe bcm2835-v4l2
复制代码
如果操作顺利,没有报错,应该具备设备/dev/video0,请输入以下命令,检查是否可行:
如果可行,请将bcm2835-v4l2 添加到 /etc/modules 中,在每次启动时启用该模块。 输入以下命令检查摄像头是否可以使用:
安装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。
通过编辑/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
复制代码
使用 sudoservice 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 服务绑定到特定地址,在安装时出现一些问题。因此我们允许它在所有接口上运行。由于树莓派 ZeroW 只具有 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、将电源盒安装在后面,注意不要妨碍使用。
4、将带有 XLR 插头的电源盒连接到轮椅控制单元上的充电接口。 5、在手机上安装 VLC;如果没有安装,可以通过rtsp://<IP_ADDRESS>:8554/unicast 连接到树莓派。 现在,手机上应该可以看到视频了。将手机放在底盘支架上,就可以安全出门。 |