OpenVLC模块
OpenVLC简介
OpenVLC 是一个开源、灵活且低成本的可见光通信系统平台。该项目由西班牙 IMDEA 网络研究所的 Giustiniano 博士领导的普适无线系统小组负责协调研发。其诞生旨在解决 VLC 系统研究和行业发展中缺乏开源低成本参考平台的问题。一个通用的平台能够为 VLC 技术发展增添动力,开辟新的研究途径,并激发研究人员和工程师的兴趣。OpenVLC 正是朝着这个方向迈出的重要一步,它为构建 LiFi 网络的新系统协议快速原型设计提供了平台,运行在一块经济实惠且功能强大的信用卡大小的嵌入式板上。
openvlc光收发板
BeagleBone Black(BBB)开发板

OpenVLC和BBB开发板结合使用
OpenVLC系统设计
OpenVLC1.3 利用了 BBB 中包含的可编程实时单元 (PRU)。这一点和新的接收器设计使我们能够将传输频率提高到 1 MHz,从而提高通信速率。一个 cape 可以用作 Transmitter (TX) 或 Receiver (RX),但不能同时工作。
使用步骤
1. 创建 SD 卡
我们需要用 Debian 镜像刷写 BBB。为此,我们需要一张至少 4 GB 的 SD 卡。请执行以下步骤:使用覆盖格式的 SD 卡格式化程序格式化 SD 卡。从链接下载图像:
(https://files.beagle.cc/file/beagleboard-public-2021/images/bone-debian-8.7-iot-armhf-2017-03-19-4gb.img.xz)将镜像 bone-debian-8.7-iot-armhf-2017-03-19-4gb 写入 SD 卡。如果您使用 Windows,则可以使用 Win32 Disk Imager。对于 Linux,您可以使用命令行 dd。
2. 刷写 BBB
现在我们已经准备好了带有映像的 SD 卡,我们需要刷写 BBB。请执行以下步骤:
断开电源后,将 SD 卡插入 BBB 并使用 USB 数据线为其供电。
通过 SSH 连接到 IP 192.168.7.2。
为了在 SD 卡上运行作系统,请将其闪存到 BBB 中:转到 /opt/scripts/tools/eMMC 并运行 sudo ./bbb-eMMC-flasher-eewiki-ext4.sh
请等待前面步骤的脚本报告以下消息:“eMMC has been flashed”。完成后,断开 USB 数据线,并在 BBB 关闭的情况下取出 SD 卡。
3 设置 OS
第一步是准备 beaglebone。这必须在作为 TX 运行的 OpenVLC 板以及作为 RX 运行的 OpenVLC 板中完成。这些是步骤:
禁用 HDMI: HDMI 使用我们需要的一些 PRU 引脚。要禁用 HDMI cape,请编辑 uEnv.txt 文件:sudo nano /boot/uEnv.txt 并取消注释该行:dtb=am335x-boneblack-emmc-overlay.dtb
重新启动 OpenVLC 板。重新启动后 HDMI 被禁用。
安装标头:将 beaglebone 连接到 Internet,然后使用以下命令进行更新:sudo apt-get update
然后板子就可以安装头文件了:sudo apt-get install linux-headers-$(uname -r)
该代码位于 https://github.com/openvlc/openvlc 的 github 中。在 Latest_Version 子目录中,您将找到 Driver (kernel) 和 PRU 代码文件夹。只需使用 sudo git clone https://github.com/openvlc/OpenVLC 获取它们,然后将它们复制到路径 “/home/Debian.
4 设置 VLC 链接
TX/RX 中有两个部分,内核驱动程序和 PRU 代码。请执行以下步骤:
要加载内核驱动程序,请在 Driver 文件夹中运行以下命令:sudo ./load_test.sh。 使用此脚本,您可以更改接口采用的 IP。这是 VLC 网络中的 IP,因此 TX 和 RX 必须具有不同的 IP(例如 TX:192.168.0.1 和 RX 192.168.0.2)。
安装模块驱动程序后,请确保已为 PRU 编译器 (clpru) 和链接器 (lnkpru) 创建正确的路径和符号链接。为此,可以使用以下命令:
CD/USR/SHARE/T/CGT-PRU
sudo makdir bin
CD bin
sudo LN -s /usr/bin/clpru clpru
sudo ln -s /usr/bin/lonkpru
然后转到 PRU 文件夹,输入 TX/RX 并运行 sudo ./deploy.sh。这将使用发送和接收 VLC 数据所需的代码启动 PRU。