II've been working on the torso drive system. I want to be able to rotate the torso a full 180 degrees left and 180 degrees right. I envision a sentry mode where the robot scans left and right stopping at different intervals, appearing to be on guard.
This is the motor that will rotate the torso. I mounted a surplus electric auto window motor (plenty of torque) under the metal plate that the torso mounts to. I wanted a system that would "self-adjust" and maintain a constant pressure on the underside of the torso mount. I mounted the motor to a platform that has one end on a hinge and the other end of the platform is spring loaded. The idea is that it presses up against the torso mounting plate and the friction provides the movement. I had to add a third spring (two pushing and the third pulling). It rotated fine in one direction but skipped a little in the opposite direction.
It seems that driving in one direction causes the motor to work with the springs and in the other directions it is fighting the springs. Here's the torso mounting plate and the stacked shelves with the speaker and amplifier in place.
Well, I think I have a blown Oopic micro controller. Not sure what I did wrong. The Oopic was going to control the direction and speed of the torso motor. One minute, it was working and the next it wasn't. I'm looking into what I can do to replace it. I have communicated with both the Oopic tech folks and the Magnevation people who make the motor controller board. I need to find out why it failed and if there is something I overlooked when hooking the two together.
I purchased a second Oopic chip to replace the blown one and I'm back in business. I also got a different torso drive motor from MECI. It is a surplus windshield wiper motor and only draws about 1 Amp in run mode. I have not measured the startup current but it runs nicely with the Magnevation Dual PWM Driver Board. I now need to modify the motor mount to accommodate the new motor. Additionally, I have to find a way to mount the drive wheel as this motor has a threaded drive shaft.
I created a new motor mount for the new motor. I made this one out of 1/2 inch acrylic. Acrylic is great stuff to work with. I cut the pieces on my scroll saw and shape them on the rotary sander. A little liquid acrylic weld and they fuse together in no time.
Here's another shot of the motor mount. MECI says that the motor has a 3/8 inch threaded shaft, but don't believe them. It's a metric 8 mm threaded shaft. I had to order some metric threaded rod and coupling nuts from McMaster-Carr.
Here's detail around how I configured my torso rotation position sensors. These sensors allow me to position the torso in 13 different positions around a 180 degree arc. This type of circuit is applicable to many applications.
Here it is in place. The sensors are around the back of the lazy-Susan. So the flag will rotate around the back to the right side when the torso rotates to the left. That's my old motor. I ended up using a motor from Dewert. It had a smaller spike on startup. The large spike on the power line caused by the surplus Windshield Wiper motors from MECI were causing my Oopic Controller to get confused. Also, the noise on the line was getting into the Stereo Amplifier (even with a noise filter installed.) I'll have to update the photo with the new motor.
Close up of the sensors and the position flag mounted to the inside edge of the lazy-susan. This "flag" proved to be too small. Sometimes the flag would pass by the sensor before the Oopic would see it. I decided to go with a large flag arrangement. I could just widen the flag a little, but I decided to go even wider
Here you can see the larger flag (black horizontal stripe). It can cover three flags (plus some overhang) at once. This allowed me enough time to see the flag and stop the torso, while all three sensors are still covered. It also gave me some additional resolution. I can position the torso in between each of the 30 degree sensors (when only two flags are covered). This resulted in a 15 degree resolution which I needed at both extremes.
Here's my initial test of the torso rotation system. Click on the picture to see it in action. The torso rotation is controlled by the Oopic II controller. There is no radio control needed, so it will be able to move while unattended. Shown here is just a test program moving the torso between several of the positional sensors I installed. I like to think of it as a Sentry Mode, constantly scanning the area for intruders.
I have the 7 sensors wired to my Oopic controller so that each sensor is represented by a different position of an 8 bit word (10000000). The most significant bit is tied to a "1" since it is not used. So here's the "truth table" for the positioning sensors. As an example, when the torso is facing forward, the sensors are showing "10011100". The first bit being the unused bit that is fixed at "1". Then you see the middle three sensors are covered by the flag so they come back a "1's". So "10011100" in binary is 156 in decimal. When the robot is first powered I have it seek the middle position.
I start it rotating in one direction and if I see "192" (far right) or "129" (far left) first, I know it going in the wrong direction so I reverse the direction until I see "156" (center). Hope this makes sense.
In hind-sight, I should have tied the extra bit to "0". That would have made figuring out the binary and decimal numbers easier and would have made more sense. If I am back in inside sometime soon, I may do that and recode the program.