If you don’t want to miss my updates, remember to check the official account in the upper right corner and set it as a star, and send me a star.


Compiled by: Gao Yang
That’s right, it’s Visible Light Communication, where the two development boards in the video transmit video via light.
First, let me explain the principle of visible light communication: by flashing a single LED light, using those light variations that are too small for the human eye to perceive, data is encoded in binary, and transmitted through a receiver.
The communication platform used in the video, OpenVLC, is an open-source, flexible, and low-cost visible light communication system platform developed by IMDEA Networks Institute in Spain. The code and hardware design provided in this article are based on the OpenVLC platform, and if you are interested, you can reply with Visible Light Communication on WeChat to get it.
✦ Project Equipment List:
BEAGLEBONE Black (BBB) Board: Requires a Rev C version produced in 2017; needs an external 5V power supply; cost $45-$60; AM3359 1GHz; 4 timers; 65 GPIO.
OpenVLC1.3 RevA cape: VLC front-end transmission and reception module, can be used as a transmitter (TX) or receiver (RX). This board is open-source, and the design drawings, PCB files, and BOM are included in the source file Hardware folder. If you are interested, you can download it and make the board yourself.
OpenVLC1.3 Driver: Software-defined MAC and PHY layer (Linux version driver) and firmware (for controlling BBB (PRU) programmable real-time unit).
Header: sudo apt-get install linux-headers-$(uname -r)
sudo git clone https://github.com/openvlc/OpenVLC

cd /usr/share/ti/cgt-prusudo mkdir bincd binsudo ln -s /usr/bin/clpru clprusudo ln -s /usr/bin/lnkpru lnkpru
Then go to the PRU folder, enter TX/RX and run sudo ./deploy.sh. This will start the PRU with the code needed to send and receive VLC data.
After completing the above steps in both TX and RX, you can start using VLC as a general network interface.
Use the iperf tool to measure the data transmission speed of the visible light transmission channel. To do this, start iperf’s client mode on TX (sudo iperf -c 192.168.0.2 -u -b 400k -l 800 -p 10001 -t 100), and start iperf’s server mode on the Receiver (sudo iperf -u -l 800 -s -i3 -B 192.168.0.2 -p 10001). Make sure the Transmitter and Receiver have different IPs, and the Receiver’s IP is 192.168.0.2.
The following figure shows the iperf test results at a distance of 2.5 meters: an average transmission rate of 400kb/s can meet most video transmission needs.

More Practical Project Recommendations:
STM32 IoT Smart Home Project
Project Sharing | Step-by-Step Face Recognition with MATLAB + Raspberry Pi
Raspberry Pi + Compute Stick 2 Complete Real-Time Face Recognition Project
Building a Cloud Computing Platform for Embedded Development Boards
STM32 Implementing the Simplest Air Mouse
Arduino Rubik’s Cube Robot
STM32 Version “AI Soul Painter”
Making an STM32 Electronic Photo Album
STM32 + DDS Homemade Signal Generator
Remotely Control Home Appliances with Raspberry Pi and Web Interface
STM32 “Cloud” Music Player
Raspberry Pi Remote Monitoring
Designing a Glow Tube Clock Based on STM32
Homemade FPGA Minimum System Board (PCB can be directly made)
Building NAS with Raspberry Pi 4 to Easily Connect Hard Drives
ESP32 Car Software and Hardware Practical Sharing
Complete Creative Gesture Recognition with Just 79 Lines of Code
IoT + Electronic E-Ink Screen to Create Custom Display Screen
Build a Pathfinding Robot for Just a Few Dollars
Glasses-Free 3D Holographic Display, Visual Persistence POV Project
DIY Gesture Recognition Module
Practical Small Designs That Can Be DIYed with 0 Basics
Raspberry Pi Creates a Smart Doorbell + Smart Lock with Video Capability
Strange! My Development Board Can Automatically Play Games
Homemade Ventilator
ESP8266 + Zigbee Networking to Modify Wall Switches
Wireless Home Monitoring System
DIY Bionic Arm, a Tool to Free Your Hands
Handmade Air Purifier, All Design Materials Open Source
Tech Toys: Bluetooth Artillery That Can Be Controlled Remotely
Making LittleBee Monitoring System with ST Sensors to Let Bees “Talk”
Homemade Cat Toy
STM32 + Raspberry Pi to Achieve 6s Rubik’s Cube Robot
Blindly Modifying Drone Controllers, DIY “Foam” Drone
Make a Smart Relay without Arc Using STM32
Only 5 Components Needed to Make a Practical New Type Necklace
The Simplest Method for Heart Rate Measurement (Suitable for Secondary Development)
Breaking the Magnetic Levitation Globe
Recommended Reading:

Like, watch, and share for the triple support!
