We decided to change from the donkey long robot to individual projects. I will be doing a GPS box that will only unlock at a certain location. The box will have a readout that tells you the distance you are from the location.
We scraped the Donkey Kong idea for motor control reasons and are now working on a reverse geocache box. This box will only open in one spot on earth. If you guess wrong it will give you a distance of how far away you are from there you can triangulate the exact location that it will open. We are now working on servo motors for the latch mechanism.
We could not get our car to slow down because of the broadcasting capabilities of the car that we had. Without the car slowed down we could not get the car to turn consistently. Therefore we had scraped the Donkey Kong idea, we are each now making reverse geocache boxes. These boxes will use gps chips and will only open in one spot on the earth. If you guess wrong it will give you a distance of how far away you are, you can from there triangulate the exact location and claim your prize. I am learning how servo motors work for the latch.
This week I used the new motor driver I installed last week to allow the car to do a near perfect figure 8. I have also put the different car movements into functions making my code much easier to read and write. I now have implemented a HC-SR04 ultrasonic sensor into my car and I have began experimenting with it. So far I used the sensor to make the car stop and reverse when an object comes within 25 centimeters of it. I plan to keep improving on this to the point where the car will be able to drive flawlessly avoid all obstacles.
This week I produced a prototype for my project. Currently it uses two potentiometers to control two servo motors that have mirrors attached to them. The servos change the angle that the mirrors reflect the laser and thus “moves” the laser over a surface.
Initially, I attempted to control the servos with an equation based off of the millis() function. The equation was:
Ideally this equation would draw a circle with the laser. However, I had a problem with the speed of the servos. If the value after millis () is to large then the values change to fast for the motors to move and it results in an octagon. But whenever I decreased that number–thus increasing the length of the sine wave in the equation–it would only result in 3 values for the servo to use, instead of a different value every cycle. I’m not sure what is causing this but I am going to move on. What I plan to do next week is develop a code that would relate the angles of the servos to points on an X-Y coordinate plane that the laser is projected onto.
Another week, another post. I am almost surprised at my progress this week. I started the week with completely new hardware. Not only did I manage to get that hardware working to the point where I was before, but I was able to get all of the background math working as well. So now I have a leg that follows a natural walk cycle similar to that of a real dog. Continue reading So I guess I have a leg now…
This week we were experimenting to get the controler to have the car do programable moves. We also are seeing if aciators are strong enough to flip the car.
This week I soldered wires on to the backs of the buttons of the remote for the flipper car. From there I used transistors to bridge the switch with the arduino. With me doing this I was able to control the car by controlling the remote. I didn’t get the timing down to do a square.
I realized that the h-bridge motor driver I was using for both my front and back motors wouldn’t work because it would go into a thermal shutdown. To fix this problem I wired a separate motor driver that is able to handle up to 3.6 amps to my back motor. The motor that I used for this was a DRV8871 DC Motor Driver. It works very similar to the h-bridge using 2 different inputs to alter the direction of the motor. A minor feature I add to the car was an on and off switch I salvaged from the original car itself. I did this so I would not have to constantly remove and replace a wire every time I had to upload new code to my arduino.
Well, this was a busy week. I managed to build a leg, make that leg move in some kind of way similar to natural movement, and made a few decisions for the future. I first built a leg with a stepper, as shown in the video, but later decided to try it with servos only. It was difficult to make loops for both types of motors, but once I switched to a common motor, things began working much better. Since the video was taken, the new servo leg can perform much more natural and walk-like movement. I also researched how to gain more precision from a servo to make it less twitchy. I found a few ways to change the PWM settings of the servo to allow rotations of less than 1 degree. I also looked into new servos to use for the project later on, as well as servo controllers. The servo controller I decided on can move the servo at 0.025 degrees at a time, which is incredibly precise. I ordered more powerful and nicer servos with the controller. An added benefit is that the controller allows me to control all 8 motors with only 2 wires from the Arduino. Moving forward I plan to work on the math required to implement my dorito shaped walk cycle into my code, as well as begin planning the manufacturing of the robot.