Jonathan M. RC Tank
Rising junior at SAR high school
I chose this project for two reasons. One because I taught tanks were really cool and always wanted to make one, and two because I have had very minimal experience with coding and knew that was not what I wanted to do and I thought the tank would be a project with a large focus on the mechanical element (boy was I wrong).
Looking back on my time at BSE, I realized I have learned many valuable life lessons. One of such lessons is that in the real world there are not people over your shoulder to help you out at every turn in the way. I spent an entire week trying to add a transistor to my boost in order to change the speed wirelessly , only to find out that it would not work and my instructor knew this the whole time. As frustrated as I was at the time, looking back on it now, I realized two things: A. Its ok to fail as long as you learn a lot from the processes and B. I learned all about how transistors work and the difference between all the different types.
Final Milestone: What I have accomplished: My last modification was adding a rotating laser turret. This was done by stabilizing the battery holder and then mounting a servo onto the holder. The servo is a motor that has very precise movement and is perfect for the precise movement of an aiming system for the laser.
My Code:
http://jonathan-m.github.io/BSE/
BOM:
Jonathan M – BlueStamp Bill of Materials
Second Milestone:
What I have accomplished: After completing the basic needs of the tank I moved on to the modification stage. These modifications are things that are nonessential to the basic functionality of my tank. I have added things that enhance the overall experience and help add to the realism. Additionally I found flaws in my original design and found solutions. The first thing I added was a back up beeper, this was because when heavy machinery backs up, there is a beeper to alert people around it. Whenever I think of a tank, I always think of the beeper which is why it was the first addition I made. I originally thought it would be a quick and easy thing to add but the Arduino only has one internal clock so using I could not add a delay to get that classic beeping effect without having a delay before any other action could be completed. It turns out there is a function called a “millis()” timer which logs a number every time the clock ticks, effectively creating a second timer. Similar to the beeper I added a horn. This horn turns on when you press a button on the controller just like on a regular car or tank. One mistake I made was to not have a proper way to hold the battery onto the tank. This is crucial because the battery accounts for a large percentage of the weight of the tank and thus, a large effect on the center of gravity on the tank therefore changing how the tank moves and climbs. A cool thing I got to add was a 3D printed holder for my battery. In doing this I learned how to properly design things using 3D software and then transform that into an actual thing that can be printed layer by layer that you designed. The last thing I added addressed a problem I was having previously with the lack of speed on my tank. I added a 9 volt battery to the dc barrel jack of the Arduino, thus creating more power for the motors to draw and therefore increases the speed. Additionally I added a switch to control when the boost is engaged effectively saving the battery on the 9 volt battery to help conserve power use.
First Milestone:
What I have accomplished: Over the past few weeks I have been working on constructing the basic needs of a tank. These needs are things such as basic movement and establishing wireless control. Originally I started out with the mechanical gearbox in a 12.7:1 ratio. This means that for every 12.7 rotations of the motor, the axle on the gearbox rotates once. This made the tank extremely fast in theory, although it had so little torque that the tank could not move itself. It was for this reason that I changed the gear setup in order to octuple the torque. However, this came at a trade off though, as the new ratio was 114.7:1 taking a large toll on the overall speed of my tank. I used Bill Porter’s PS2 controller library to help connect what I press on the controller to translate into a set action on my tank.
Problems: I had a few problems figuring out how to mount the Arduino onto my base platform, understanding how DC brushed motors work and how they integrated into my project and soldering the motor shield to the Arduino without creating a short.
How the circuit works: When a button is pressed on the controller a signal in the form of a wavelength of light is sent. Depending on the pattern of light sent, the receiver then interprets that and tells the Arduino which button is pressed. From there the Arduino sends a signal to the motor shield which in turn sends the signal to the motors.
Future Goals: Some future improvements I hope to add are:
• A rotating turret
• A laser on top of the turret
• Some horns and backup beepers
• A turbo to boost the speed
• A holder for the battery on top
My starter project was called the “TV-B-Gone” and was a kit from Adafruit. The point of my project is to be a universal remote to turn on and off virtually all TV’s. I tried it out on TV’s from two different brands and it turned both of them on and off seamlessly.
Remote controls for TV’s work by sensing patterns of infrared light but each brand uses a different pattern for their remote so the micro-controller has to rotate through around 95 different codes. Each one corresponding to a code for an individual manufacturer. Adjacent to the microcontroller is a part called a ceramic oscillator which helps the micro-controller keep its sense of time and ensure the sequencing is correct. From there the signal goes into a series of transistors which take that pulse and amplify the signal to ensure that the LED’s have enough power. Transistors not only amplify the signal but in other uses can also act as a logic gate by reversing the electronic signal. After being amplified the current then goes to the infrared LED’s. These LED’s use an invisible form of light called infrared and are the things that pulse to create a pattern that is discernible by the receiver in the TV.
Over the course of this project I had few issues including some poor soldering joints when I was first starting out and the over oxidation of my soldering iron.
My Project: