Inspiration
ColorSwarm was inspired by the challenge of coordinating drones, rovers, or autonomous systems when normal communication methods are unreliable. In real-world environments, systems may lose access to GPS, internet, Wi-Fi, Bluetooth, or radio signals. I wanted to explore a simple backup communication method that could still work when connectivity is limited.
Our idea was based on a simple question:
$$ \text{Can autonomous vehicles communicate using only visible color signals?} $$
Instead of relying on a network, ColorSwarm uses colored lights as movement commands that a rover can detect, follow, and repeat.
What it does
ColorSwarm is a prototype for offline visual command relay. The RC car uses colored LED signals to represent basic commands:
- Red = Stop
- Green = Go
- Yellow solid = Turn right
- Yellow blinking = Turn left
The larger idea is that one vehicle could show a color command, another vehicle could detect it, perform the action, and then display the same signal for nearby vehicles. This creates a basic swarm-style relay system.
The command flow is:
$$ \text{Color Signal} \rightarrow \text{Camera Detection} \rightarrow \text{Movement Command} \rightarrow \text{LED Relay} $$
This allows the system to demonstrate communication without depending on GPS, internet, Wi-Fi, or Bluetooth.
How we built it
I built ColorSwarm using an Elegoo Smart Robot Car kit, an Arduino-based controller, LEDs from a starter kit, resistors, jumper wires, a breadboard, and a Logitech webcam for color detection testing.
First, I assembled the RC car and uploaded custom Arduino code to control the motors. Then, I added LEDs to represent command states. The LEDs were connected through resistors to Arduino pins:
$$ A0 = \text{Red}, \quad A1 = \text{Green}, \quad A2 = \text{Yellow} $$
I also wrote Python code using OpenCV to test color detection through the webcam. The Python program detects the strongest visible color and sends a matching command to the Arduino through serial communication.
Challenges we ran into
One of the biggest challenges was wiring. The expansion board covered many of the Arduino pins, so I had to figure out how to use the available ports and breadboard correctly. I also had to troubleshoot LED polarity, resistor placement, shared ground, and signal pins.
Another challenge was camera detection. The LEDs were small, so the camera sometimes had trouble detecting them compared to larger colored objects. We adjusted the detection area, lowered the color threshold, and experimented with detecting the brightest visible light.
I also had issues with sensors interfering with movement. At one point, the obstacle sensor was causing the car to stop even when I wanted it to move forward, so I simplified the demo to focus on movement and color communication.
Accomplishments that we're proud of
I am proud that we got the RC car moving with our own custom Arduino code and successfully connected physical LEDs as command signals. I also built a working color-detection concept using Python and OpenCV.
Even though the final prototype was limited by time and hardware, we demonstrated the core idea:
$$ \text{Simple visual signals can support offline coordination.} $$
ColorSwarm shows how a rover or drone could use basic colored lights as a backup communication layer when traditional signals are unavailable.
What we learned
I learned that hardware projects require constant testing, debugging, and adapting. Small details like LED direction, resistor placement, pin choice, and ground connections can completely change whether a system works.
I also learned how Arduino and Python can communicate through serial commands, and how computer vision can translate color into movement. Most importantly, I learned that even a simple signal system can become powerful when it is designed around real-world constraints.
What's next for ColorSwarm
The next step for ColorSwarm would be to move the color detection fully onboard so the rover would not need to stay connected to a laptop. I would also improve the LED system by using brighter lights, better mounting, and stronger camera filtering.
In the future, I would like to test ColorSwarm with multiple vehicles. One rover could detect a command, act on it, and rebroadcast the same signal to another rover, creating a true visual relay swarm.
Log in or sign up for Devpost to join the conversation.