Hi, my name is Danny, and this is my first time in BlueStamp Engineering. I am a rising Freshman at UC Riverside. For my starter project, I chose the “BigTime Watch” because I wondered how a digital clock runs without gears. As for my main project, I chose the Omnidirectional Robot. I chose to do the Omnidirectional Robot because I wanted to make a drone and this was the next best thing.
Here is the link to download Danny’s Bill of Materials (BOM)
HTML Code: Photon button control TheOmniRoboButtonsControl
Photon Code: OmniRoboButtons
Here are the links I used to make this happen:
For my third milestone, I made the Omnidirectional Robot move in all directions. I had a challenge with making it Omnidirectional. I was stuck: I could make it move forwards and backwards, but I was unable to make it move left and right. I saw that in the past, students used trigonometry to make it Omnidirectional. I learned how Cos, Sin, Tan, and ArcTan had to do with the way it moved. It was hard trying to understand how to make it move in all directions because I noticed that it would require all three wheels to move at different speeds. I prevailed and learned that you have to use the angle and the amount of distance each of the wheels are from the joystick location. This enables the code to understand how much speed each wheel is going to receive to move in that direction. I am now planning to try to transfer the controls from the PS2 controller to another controller using the Photon.
For my second milestone, I made an MDF (Medium Density Fibreboard) base for the Omnidirectional Robot. I designed the base on SketchUp. With the help of the instructors, I used a CNC (Computer Numerical Control) Mill to cut the MDF. Using VEX bars and screws, I was able to form a base and put the motors in place. I attached all three wheels an equal distance from each other as a way to make it Omnidirectional. The position of the wheel makes it so that the Omnidirectional Robot can move in any direction without turning to face that path. I had trouble with making all the wheels function with the code. There was a problem with the second motor not working, but I changed the wiring and the code to use a PWM (Pulse Width Modulation) pin. This change made the wheels work. Then, I added the third wheel with no problems. My Omnidirectional robot can now rotate and move forwards and backwards, but I am still in the process of making it move left and right.
Electrical Schematic and Final Robot Chassis
For my first milestone, I have made code that makes the wheel spin. Because I didn’t have much experience with Arduino, I had to research online to find out how to write code for the wheel to rotate. I learned that the motors use the writeMicroseconds function to set the speed of the motor. Using the 1000 Microseconds to 2000 Microseconds, I was able to make the wheels spin at a constant rate. I also figured out that 1500 Microseconds is where the wheels do a complete stop, while going 1250 Microseconds means it spins at the same rate in the opposite direction of 1750 Microseconds. After I realized what the wheels spin on, I wanted to control the wheels and not just set them at a constant rate. Using the PS2 controller, I had trouble figuring out how to connect it to the Arduino. I went through the code of the past BlueStamp students’ portfolios as reference to see how they got the controller to connect. I saw they used the PS2 code from Bill Porter, and I used his library to get the controller to connect. Now I can control one of my motor’s speed with the right analog stick on the PS2 Controller. If I move it to the far right, it will spin full speed clockwise, and if I move it to the far left it will spin full speed counter-clockwise. I completed a circuit that allows a 7.4v battery to power the Arduino and the motor at the same time instead of being connected to my computer. However, I realized I would need a base to make it move.
Hello, this is my starter project. I made the “BigTime Watch”. This watch is made from an ATMega328 pre-programmed chip, 4 Digit 7 segment display, 32kHz crystal, 10kOhm resistor, 2 0.1uF capacitors, button, and a battery. The watch works with the crystal which is basically the watch. The ATMega328 is programmed to count the time by the vibrations sensed from the crystal and display it on the LED display. The battery powers the ATMega328, and the 10kOhm resistor limits the current from the battery. The 0.1uF capacitors makes sure the current from the battery is smooth and does not dip below the minimum requirements and shut down. A challenge that I faced during the making of the project was the crystal not laying flat. This makes the casing for the watch unable to close correctly. It took time and creativity to bring the crystal down. The instructor helped me with the idea that there is enough wire that it could be placed down by pulling some wire up. There was also the issue of the solder going into 2 of the holes. This was fixed with the soldering wick. The wick takes some of the solder off the board. The start was easy, but near the end, the problems arose and were fixed. Overall the watch came together and works. This project was a success.
Code for HTML