Water-shooting robot
An early robot that raises, aims, and fires timed water bursts at targets, without a pump.
My partWrote the firmware
In short
An early Arduino mechatronics project: a stepper-driven lift sets nozzle height, a servo aims, a solenoid valve fires timed bursts, and a simple ballistic and water-level model estimates the required height for each target.
- What it is
- A small mechatronic system that hits predefined targets with water bursts, without a pump.
- Why it matters
- Hitting a target with a gravity-fed stream depends on nozzle height and on how much water is left; both change from shot to shot.
- My part
- I wrote the firmware and organized the repository into firmware, test sketches, CAD, and documentation.
Step by step
- 1
Model
Required nozzle height is estimated from target distance and the current water height.
- 2
Actuate
Stepper lift, servo aim, and a solenoid valve on a relay, each with its own bring-up test sketch.
- 3
Calibrate
Steps per millimetre and predicted versus actual height are logged over serial.
For engineersHow it is built, its limits, and its keywords.
How it works
Firmware on an Arduino steps through a table of target distances and angles, moves a lead-screw lift with a stepper, rotates the nozzle with a servo, opens a relay-driven solenoid for a timed burst, and updates a modeled water level with a Torricelli-style relation after each shot.
Limits
- The physics is deliberately simplified, and the README says empirical tuning is needed.
- Wiring documentation is a placeholder and exact part numbers are not recorded.
- There are no test results or media in the repository; it is early mechatronics work, not a finished system.
Keywords
- Arduino
- mechatronics
- stepper
- servo
- solenoid
- C++