Bluetooth Voice Controlled Moving Lamp
π Overview
A robot desk lamp that does what you tell it: two servos form a two-link arm with the lamp on top, a phone app sends commands over Bluetooth, and the Arduino drives the servos so the lamp turns, tilts, and switches on and off - even by voice.
Every structural part is 3D printed (base, turntable, both arm links) and the author provides a custom Android app, making this a complete mechanical, Bluetooth, and mobile project.
π§° What you need
- Arduino board x1
- Servos x2 (high-torque, to drive the two arm links)
- Desk lamp/LED light + relay (for switching)
- Bluetooth module (HC-05 or similar)
- 3D-printed parts: base, turntable, upper and lower arm (STLs provided by the author)
- Wire, diodes, screws, bearings
π§ Step by step
Gather the parts
The servos need enough torque - a two-link arm plus a lamp head adds up
An HC-05 Bluetooth module is cheap and works well
Build the base
Print the base with a cable routing hole and mounting points underneath
Add ballast or anti-slip feet so the offset centre of gravity cannot tip it over
Fit the turntable
The turntable provides horizontal rotation for the whole lamp
Bearings cut friction so it turns smoothly
Fit the lower arm
The lower servo sets the main tilt angle
Leave a channel inside the arm so the cable cannot twist
Fit the upper arm
The upper servo fine-tunes the lamp head angle
Working together, the two links let the lamp nod up and down
Fit the diode and routing
Protect the servo signal lines and use thicker wire for power
A diode across the supply protects against reverse polarity
Tidy the wiring
Run all cables inside or alongside the arms so they cannot tangle
Secure the loom in sections with zip ties
Route the top servo
Run the top servo cable through the arm down to the controller
Leave enough slack at the moving joints
Finish the frame
Once the mechanics are done, turn each joint by hand to check it moves freely
Adjust friction so the servo can drive it without wobble
Wire the electronics
Servos to Arduino PWM pins and the relay for the light
Connect the Bluetooth module to serial and match the logic levels
Arduino code
The firmware parses serial commands and maps them to servo angles and the light relay
Hard-code the angle limits so the mechanism cannot collide with itself
Android app
The author provides a custom app that sends button and voice commands
You can also write your own - a simple Bluetooth serial link is enough
Common problems
Servo jitter usually means the supply is too weak; use 5V 2A or better
No response to commands: check the baud rate and command format
Debug until it works
Test each command one at a time and tune the angle range for every move
Adding voice commands makes the whole thing feel much smarter
Command list
Test the phrases one by one: light on, light off, turn around, look up
Write the common commands on a card and stick it to the base
Wrap-up
You learn the full Arduino + Bluetooth + mobile app pipeline
The arm mechanism can be reused for other ideas later
π‘ Tips
- Power the servos separately from the Arduino, sharing only ground, to avoid voltage sag and jitter
- Set a safe angle range for each joint in code so the arm cannot over-travel and damage itself
- The Bluetooth name defaults to HC-05; rename it beforehand for easier pairing