Autonomous Design Project
During COVID I bought an Arduino kit that came with an assortment of motors, sensors, and many common circuitry components. Over time, I built many small projects including alarm systems, joystick controlled fans and more. Eventually I wanted to do a project that combined a lot of these subsystems into one larger device. I chose to do an autonomous tank since RC cars are a great mechanical project but are also very common. So I mixed it up by having a more rugged vehicle that doesn't require any user control.
Main Components
- Tank Chassis and Tracks
- Arduino Redboard - Receives input from sensors and sends signal to motor driver
- Ultrasonic Sensor - Used to measure proximity to surrounding objects
- Servo Motor - Changes the direction that the ultrasonic sensor faces
- 5200 mAh 11.1V LIPO Battery - Supplies power to the motors
- 12V DC Motors - Rotates the tank drive sprocket
- Photoresistor - Detects the amount of ambient light
Auxiliary Components
- Quad-Motor Driver Shield - Receives power from battery and input from Arduino. Supplies motors with the necessary power and signal
- LEDs - Headlights
- Buzzers - Noise Emitter
- Switch - Turns the tank on/off

Dashboard used for testing of motor and battery performance
How Does It Work
When the battery is connected and the switch is turned on, the tank drives forward at a max speed of 5 km/hr. During this time the ultrasonic sensor is continuously reading the proximity of the surface directly in front of the tank. When a surface gets within 20cm, the tank stops. The servo motor attached to the ultrasonic sensor rotates all the way counterclockwise and then clockwise. The ultrasonic sensor gathers data within the 180-degree view, and the Arduino determines which direction has the maximum available space to drive. The tank can then turn on the spot to face that direction and continue driving forward. This is then repeated continuously such that the tank can drive on its own for hours. The Arduino IDE was used to program the microcontroller to take both serial and analog inputs, and control the motors based on the inputs.

Features
- Automatic Headlights - Using photoresistor and LEDs
- Turning on the spot - Achieved by rotating one motor forwards and the other backwards
- Reversing and Power Up Noises - Using Buzzer
- 3-hour battery life

Takeaways
Working with Arduino really opened me up to prototyping and hardware design. I had to learn the basics of electrical and circuit design not to mention the inner workings of all the components in these projects. I also improved my programming skills by creating simple firmware which was new to me. The tank doesn't have a clear function at the moment, so to improve this project I would like to add a camera to incorporate some machine vision as well as attaching an arm to pick up and transport objects. The wiring can quickly get out of hand once you use so many peripheral devices, so I also want to learn more about PCB design to make my hardware more professional.