My name is Max and I am a rising senior at the Urban School in San Francisco. My starter project is the MintyBoost phone charger, which charges any device via USB cable using two AA batteries. I chose this in part because it sounded cool, but largely because my phone is constantly running out of battery, so a portable charger could prove useful. My main project is a three wheeled, omnidirectional robot controlled by a wireless PS2 controller. I chose to make an omnidirectional robot because I love that it can move in any direction as opposed to the linear movement of a typical RC car. Also I was interested in working with motors – my robot uses three.
A file containing my documentation can be found below which is based on Nick’s project. It contains my BOM, build plan, code, schematics, and how I overcame code-related challenges.
Max’s Omnidirectional Robot Documentation
Main Project: Omnidirectional Robot
Final Video
I first found out about Blue Stamp when a college counselor at my school posted information on the program on my school bulletin board. I was intrigued, but nervous because I knew nothing about engineering. I contacted Dave asking if this was a place for someone with no background knowledge, to which he replied that Blue Stamp was great place to be introduced to engineering. Dave was correct and I am proof of this.
One of the most powerful experiences I had in this program was when I finished my starter project, a USB phone charger powered by two AA batteries. I had followed a neat instruction manual and was ready to record a video of myself explaining my starter project, but first I had to check in with a staff member and review my understanding. I approached Robin and began to talk about what the instruction manual had said about resistors, capacitors, diodes, power inductors, and integrated circuits. I had basically finished reading off an instruction manual when he stopped me and bluntly told me to go back, take my time, and really learn about these components. I returned to my computer, somewhat taken aback, only to realize that he was right. A quick Google search of each of these items and I quickly found out how much there was to know about each part, way beyond the 1-2 sentence descriptions that the manual gave. After a process much longer than reading a manual, I returned to Robin with an actual understanding of these components and explained them in much greater detail than I had previously. This time around I received a much more satisfying response.
I could fire off a long list of the skills, concepts, and lessons I have learned from Blue Stamp, from soldering to coding to things to keep in mind when choosing a startup partner (oddly specific, surprisingly fascinating). This program has taught me more about engineering and entrepreneurship than I could have hoped for, through a mixture of staff lessons, guest speakers, and the process of building my projects. However, the greatest takeaway has been a newfound passion to build, explore, and grow as both an engineer and a person.
Working on my main project was both awesome and frustrating; for every time something worked, I probably spent at least an hour staring intensely at my project, trying to determine why it was not working the way I had planned. Although through Blue Stamp I have learned a lot about coding and engineering, the biggest difference between me before the program and me after the program is my ability to conceive, work, and follow through on a project on my own, regardless of whether or not the project involves engineering. The staff was instrumental in helping me realize this. Rather than fix any problem I had for me, they implored me to solve it, to not only stop the problem from ever happening again, but to understand why it was not working and what ‘fixing it’ was actually doing. I joined Blue Stamp hoping it would show me how to build a robot, but the program instead showed me was that by being resourceful and tenacious, I could build a robot and much more on my own!
I would like to thank Dave and Robin for creating Blue Stamp and building it to what it is today. It was an amazing experience that has changed me on multiple levels in ways that will surely prove invaluable to me throughout my life.
Parents Night
Omnidirectional Robot, Milestone #3: Finished left analog stick code
Although I am investigating an add on feature for my robot, it is currently finished and works great! I worked out the kinks of the left analog stick code, which was the biggest challenge I faced throughout the project. I had previously ran into two primary issues with the left analog stick code. The first was rather straightforward; I did not realize that trigonometric functions in the Arduino use radians, not degrees when measuring an angle, and all I had to do was change any angle value from degrees to radians (1 radian ~ 57.2 degrees). The second had to do with calculating the wheel-specific code. After calculating the polar coordinates of the left analog stick, the Arduino then determines how much each wheel should move and in what direction based on a cosine function unique to each wheel. The geometry is simple enough, but having only applied my knowledge of trigonometry in a classroom, it was amazingly satisfying to use this knowledge to create something on my own! If you compare the second and third milestone video, in the third the robot moves much more smoothly and in the correct direction. I explain how I figured out the left analog stick code in much greater detail in my documentation.
Omnidirectional Robot, Milestone #2: Attached all components onto base
For my second milestone, I have built the base of the robot and attached the motors, wheels, breadboard, Arduino, and batteries to the base as they will be when the robot is completed. Currently, my right analog stick (rotation) works perfectly, but I still need to work out the left analog stick, which moves the robot but not well. Rotational movement was fairly straightforward to program; the analog sticks are measured with x and y axes. I just mapped the minimum x value to the value that tells the motors to reverse and the maximum x value to the value that tells the motors to move forward. Then, I had all the sticks move at this one motor value, so that they would rotate clockwise when I moved the stick to the right, and counter clockwise when I moved the stick to the left. When I have finished this, I will be finished with the original project, although I am exploring add-ons I could work on after the program is over.
Omnidirectional Robot, Milestone #1: Powered motors and Arduino with batteries
This is my first milestone for my main project, an omnidirectional robot. I have already programmed the Arduino and powered a single motor from my laptop, but here I powered all three motors with a 7.2 V battery and the Arduino with a 4.5 V battery. The second battery is necessary because the Arduino can be powered by jumper wires via its VIN pin. However, the VIN pin appears to be capable of both powering and being powered, and when connected to the same line as the motors, the motors begin to spaz. This, paired with the motors each needing as much current as possible (I was not close to the 4 amp maximum), I chose to have the Arduino powered by a separate, smaller battery. Another issue that arose was deciding on a resistance value to use for the 7.2 V battery. Before I understood maximum voltage and current, I accidentally powered a motor using the 7.2 V battery without any resistors. Although the motor controller was capable of handling 7.2 volts, it had a maximum current of 4 amps, and consequentially the motor controller short circuited and stopped working. At this point I realized I needed resistors, and decided on a 2 ohm resistor (I am currently using two 1 ohm resistors in series), which did not blow out the motor controllers but still sufficiently powered the motors. As of now, the electrical side to my project is finished. The next step is to build the base of the robot and finish the code.
My Starter Project: MintyBoost Charger
My starter project is the MintyBoost phone charger, which powers anything that can connect using a USB drive using two AA batteries. In building the MintyBoost, I learned how to solder and the basic functions of resistors (as well as how to read their color code), capacitors, diodes, power inductors. Instructions are clearly documented online so as long as you know how to solder it is not that difficult. I had fun making it and I use it almost every day!