Hi, my name is Nathan. I’m a rising junior and I go to the Bay School of San Francisco. I had two starter projects, an electronic die and a Theremin. I picked the Electronic die because it seemed like an interesting alternative to a regular set of dice. I had completed the starter project quickly, so I did another starter project, and early electronic music instrument called a Theremin. My main project started out as an RC tank, but evolved into a fully autonomous tank that can drive to a destination, and avoid obstacles. While I have worked on large projects using Arduino before (Flight Computer for a Near-Space Balloon), I had almost always been working as part of a team, and this program gave me a chance to work on a large program by myself.
Final Project: Robot Tank — GPS Navigating and Ultrasonic Object Avoidance
Here is my code for both the autonomous GPS and Ultrasonic navigation, and the Remote Control (non-autonomous):
Here is the direct link to my Bill of Materials, contained within the GitHub repository above:
Below are the Schematics for both configurations of my Robot Tank. (Note: The part designators, ex. U1 for the Arduino Mega, correspond to the Item # column in the BOM)
While my design has taken a direction of its own, inspiration came from Paul Bleisch.
GPS and Ultrasonic Navigation Schematic:
Remote Control Schematic:
Final Project Milestone 3: Ultrasonic Navigating Tank
I’m Nathan, and this is the third milestone for my final project, a robot tank. Now, instead of a wireless controller or a GPS and compass controlling the tank, one Ultrasonic sensor is used. The Ultrasonic sensor outputs a distance to the nearest object in its field of view. If this distance is determined to be too small by the Arduino Uno, the tank will turn until the distance that the Ultrasonic sensor reads is larger than what the Arduino determines to be “too small,” then the tank will drive forward again.
Final Project Milestone 2: GPS Navigating Tank
I’m Nathan, and this is the second milestone for my final project, an RC robot tank. Like in the previous milestone, the tank has a drive-train (two electric motors, tank treads, and a plastic plate for mounting other parts), an Arduino Uno, a motor shield, and the power source. Unlike the previous milestone, now, instead of a wireless dongle, the tank has a GPS and an electric compass, allowing it to drive straight to a set destination. The way the tank does this is to first determine its location in latitude/longitude relative to the destination. These values are then used to determine the angle (off of North) that the tank must drive in order to reach its destination. Then, the electronic compass’ heading is read (in degrees), and is converted from 0 to 360 degrees to -180 to 180 degrees. This value is then compared to the angle determined by the GPS data, and the tank will turn to ensure that it is heading in the correct direction.
Final Project Milestone 1: RC Tank
I’m Nathan, and this is the first milestone of my full project, an RC tank. It currently has five major parts: the drive-train, an Arduino Uno, the wireless dongle, the motor shield, the power source, and. The drive-train includes two electric motors, two tank treads, and a plastic plate to mount other parts on. The Arduino interprets the information from the wireless dongle, and outputs information to the motor shield. The wireless dongle is part of a wireless PS2 controller, which was attached to the Arduino to allow a wireless controller to be used to control the RC tank. The motor shield is what allows signal from the Arduino to control the two motors included on the drive-train. The final part of this tank is the power source, which is divided into two parts. First, a set of four non-rechargeable 1.5 volt AA batteries power the Arduino and the wireless dongle. Second, a set of four rechargeable 1.2 volt AA batteries power the motor shield and the motors.
Looking back on the program, a lot of the problems that I had spent a lot of time trying to fix seemed trivial. I had a lot of problems with my tank not working as I thought it would, and for a while I could not figure out what the issue was. Usually, the issue was that my power supply was not large enough, or that my wireless controller (for controlling the tank manually) was not registering button presses. The biggest problem that I encountered was attempting to integrate the code for GPS navigation and Ultrasonic object avoidance. these two systems would fight each other, because the GPS would tell the tank to go straight, but the Ultrasonic sensors would tell the tank to turn, causing the tank to get stuck in a loop. I was able to overcome all of the problems that I have encountered so far in this program, and I feel that my skills both as a coder and as an engineer have improved as a result.
Starter Project 2: Theremin
I’m Nathan, and this is my second starter project, an early electronic music instrument called a Theremin. It uses seven resistors, two electrolytic capacitors, one non-polarized capacitor, four LEDs, two different Integrated Circuits, two buttons, a voltage regulator, a Piezo (Speaker), and a wire. The wire has a current flowing through it, which will change if something that contains metal gets too close. This change in current causes the Integrated Circuits to send a pulse to the Piezo, which emits a tone. In addition, the Integrated Circuits light up a series of LEDs, which correspond to the tone the Piezo is emitting.
Starter Project: Electronic Dice
I’m Nathan, and this is my starter project, an Electronic Die. The lights that show a readout of 1-6 are Light Emitting Diodes (LEDs). Also included are Resistors (tan ceramic and differently colored bands), which reduce the flow of electric current by converting it to heat. One band on the edge, gold colored in this case, denotes the quality of the resistor. The other bands denote a number, and place value, showing the strength of the resistor. A small glass piece is a Diode, which only allows electricity to pass through in one direction. The black rectangular shape is the microchip, which generates a random number, and decides which LEDs to light up. A Piezoelectric switch, which is two plates of metal that connect when touched/moved, can send a signal to the microchip to generate a new number. The last part is the battery holder, which holds a small electronic watch-sized battery.