MAKER:Louis Lauriello / Translated by: Qu Wujin
It can highlight the captured images, add image overlays, output volume, yaw, contour, and an array of positions. Among them, the array is sorted by data represented by x, y (in meters), and angle through the network.
The collected information will be sent to the software to provide data support for other devices. Other software platforms can run on the Raspberry Pi.
The project shell was created using Fusion 360 and finally 3D printed.
Material List
Raspberry Pi 4B × 1, LM2596 DC-DC buck converter (3.0-40V to 1.5-35V power buck module) × 6, Noctua NF-A4x10 5V silent fan × 1 (3-pin, 5V), SanDisk Ultra microSDHC card × 1 (32GB), Raspberry Pi camera module × 1 (V2-8 million pixels 1080p), Raspberry Pi 4 heatsink × 20, Raspberry Pi 4 thermal conductive tape × several, 2N2222 transistors × several, EDGELEC 100 ohm resistors × several, LEDs × several, plastic adhesives × 1, wire stripper × 1, soldering iron × 1, heat shrink tube × several, wire cutters × 1, lead-free solder × 1, flux × 1, tweezers × 1, hot glue gun × 1, LED array × 1
Hacking Journey
This vision processing system has gone through multiple explorations and improvements, and I would like to share my revision journey with everyone.
Version 1
Device: Raspberry Pi 3, camera, DC-DC buck/boost circuit, and ring light. In this version, I did not use Raspberry Pi 4, so I didn’t have to worry about power requirements.
Powered via USB. Without any modifications, the camera installation was very suitable. The ring light was fixed on the shell, and there was no space inside the case to accommodate the boost board, so it needed to be fixed externally. After completion, the running effect was good. Therefore, I prepared to upgrade the device again, purchased Raspberry Pi 4, heatsink, and fan, and designed and 3D printed the shell.
Version 2
As shown in the figure, the internal dimensions of the case are acceptable, but the port positions are a bit offset, and the ports cannot be displayed completely. After testing with my device, I found that the ring light output was insufficient, so I improved it again.
Version 3
Retained the system from the second version and tested it with another Raspberry Pi 3. The third version device has a Raspberry Pi 3, a LifeCam HD 3000 soldered onto the board, a boost converter, and an LED array. The array can illuminate targets from over 50+ feet away, but if the angle deviates more than 22°, it will lose the target.
Final Adjustments
In the third version, the six LEDs are spaced about 60° apart, facing the LEDs. The final adjustment added eight LEDs around the lens. They are spaced 45° apart, with four LEDs facing forward and four tilted 10°, providing a 44° field of view effect.
This will allow the case to be mounted vertically or horizontally on the device. The modified shell can be applied to both Raspberry Pi 3/4. At the same time, the surface of the shell has also been modified for a single LED.
After testing, it was found that there were no issues with Raspberry Pi 3/4, so the Raspberry Pi can be installed at the case port. The final version eliminated the mounting points on the back of the shell and the exhaust port on the circular top. Both Raspberry Pi 3 and 4 can be used. Raspberry Pi 3 has a lower cost, lower operating temperature, and consumes less power.
Import the STL file to print the shell, which is in inches. You can use Fusion 360 or modify the .f3d file according to your needs.
All print files can be downloaded from the project file library. https://make.quwj.com/project/206
Power Supply Issues
Next, I will introduce the power supply operation of the vision processing system after connecting with other devices, for reference only. You can adjust according to your actual situation.
In the project, if running all ports of the Raspberry Pi, wifi, and monitor, it will require 3A of current. But there is not enough power on the devices I connected. The USB port on the device is rated at 900 mA, and the voltage regulator module (VRM) can only provide 2A of current, limited to 1.5A.
It is a shared connector, so if another device is on the 5V bus, there may be insufficient power. Therefore, the Raspberry Pi needs to provide 12V voltage to the ion display (PDP) on the 5A circuit breaker.
Provide 12V voltage through the 5A circuit breaker on the ion display, using an LM2596 DC buck converter to convert it to 5.15 volts. The buck converter provides 5V voltage at 3A and remains stable until the input voltage is down to 6.5V. This 5V voltage bus powers three subsystems: LED ring array, fan, and Raspberry Pi.
Wiring
Wiring of the LED Array
Be careful and work in a well-ventilated area when soldering. Solder as shown in the figure.
1. The holes for the LEDs printed on the outer shell surface at 0, 90, 180, and 270 will be tilted at 10°.The holes printed at 45, 135, 225, and 315 are straight.
2. Fix all LEDs in the 5mm holes on the surface of the shell. The LEDs are arranged compactly and installed at the correct angle, with the long lead on the LED being the positive pole.
3. Connect the LED and resistor, leaving a long lead on the other side of the resistor. Test the combination beforehand (with a AA battery and two test wires; if the LED dims, it indicates that the polarity is correct).
4. Place the tested LED/resistor combination into the shell, arranging the leads in a zigzag pattern so that each resistor lead connects to the next resistor, forming a loop. Solder all leads and then use the plastic adhesive to bond all the nodes.
5. Add red and black wires of 18 gauge to the LED ring. Use a 5V power supply to test the complete array, which can be done with a USB charger.
Wiring of Buck/Boost Converter
Before connecting the buck converter, you need to set the output voltage.
1. Connect it to the ion display port and connect at 5A current.
2. Clamp the voltmeter to the circuit board output, then start turning the potentiometer. Test for full output and then retain that setting. Set it to 5.15V.
3. Use screws to fix the buck converter and Raspberry Pi in place.
4. Drill holes for the power lines, making holes at the bottom of the shell for external connections.
5. Connect the wires to the input line of the DC-DC converter. Connect the red wire to the positive terminal and the black wire to the negative terminal. After coming out from the board, I reserved two short bare wires for connecting the fan, Raspberry Pi, and transistor.
Wiring of Other Components
1. Connect the Raspberry Pi to ground, power, LED drive, and camera. Use pins 2, 6, and 12 on the Raspberry Pi.
2. Cut the red, black, and white wires to four inches long. Strip a portion of the insulation from both ends of the wires, and solder the pins to connect to the Raspberry Pi.
Specific methods are as follows: solder the red wire to GPIO pin 2, solder the black wire to GPIO pin 6, solder the white wire to GPIO pin 12, cover with heat shrink tubing and heat.
Connect the red wire to the positive of the buck converter, connect the black wire to the negative of the buck converter, and cover the white wire with heat shrink tubing, soldering it to the transistor.
The emitter of the transistor connects to the negative of the buck converter, the collector of the transistor connects to the negative of the LED array, and the anode of the LED array and the resistor connect to the positive of the buck converter.
Connect the red wire of the fan to the positive of the buck converter and the black wire of the fan to the negative of the buck converter.
3. Connect the camera wire. Align the pins of the wire with the ZIF connector and insert it into the socket.
Finally, check all the connection points to ensure that all wires are connected correctly.
Installing Software
Install the Raspbian system on the Raspberry Pi, reference tutorial: https://shumeipai.nxez.com/2019/04/17/write-pi-sd-card-image-using-etcher-on-windows-linux-mac.html
Insert the SD card into the Raspberry Pi. Before closing the lid, check if the wiring is separated from the components inside the shell, especially pay attention to the wiring of the fan to ensure it does not block the fan blades after closing the lid.
Power-On TestFor the first power-on, you will need an HDMI cable (if it’s Raspberry Pi 4, then a mini HDMI cable), a USB keyboard, and an HDMI monitor connected to the Internet. Connect it to a 12V power supply with a 5A circuit breaker on a plasma display.
After logging in, run the configuration tool to set SSH and enable the Raspberry Pi camera: https://shumeipai.nxez.com/2013/10/07/raspberry-pi-to-install-the-camera-module.html
To install Chameleon Vision, please click here: https://chameleon-vision.readthedocs.io/en/latest/contents.html
If the Raspberry Pi is not supported, please flash the latest version.
Chameleon Vision WebChameleon Vision can run on most operating systems of Raspberry Pi. Ensure that the Raspberry Pi is connected to the Internet via Ethernet. Log in to the Raspberry Pi (username is pi, password is raspberry) and run the following commands in the terminal:
$ wget https://git.io/JeDUk -O install.sh
$ chmod +x install.sh
$ sudo ./install.sh
$ sudo reboot now
Now, your Raspberry Pi is set up with Chameleon Vision. After rebooting the Raspberry Pi, run the following command to start Chameleon Vision:
$ sudo java -jar chameleon-vision.jar
When Chameleon Vision updates, run the following commands to update:
$ wget https://git.io/JeDUL -O update.sh
$ chmod +x update.sh
$ sudo ./update.sh
Control of the LED Array
Without software control, the LED array will not light up.
Use a Python script to control the LEDs, please click to download the script. https://github.com/frc3223/RPi-GPIO-Flash
Finally, here is a pre-configured FRC vision system image: https://github.com/wpilibsuite/FRCVision-pi-gen/releases

Transforming NumWorks Calculator with Raspberry Pi
GameBoy 5110: 3D Printed Arduino Handheld Console
Samytronix Pi: DIY Desktop Computer with Raspberry Pi
