17 hours ago •
In the upper leg joint--in spite of all my best efforts at making the joint tight--I continue to have slipping. To correct this, I modified the joint, inserting machine screws to prevent slippage.
I printed (4) axles with shorter threads, then attached the servo horns.
I slide this piece ("axle shorter thread") through "bearing linearb."
Thread "fat pieceb" onto this.
Drill holes 25 mm deep using a 7/64 inch drill bit. Install (4) 20 mm M3 machine screws.
Add the servo horn and back bearing piece, then install on all four legs.
This is a significant operation requiring about 20 hours of print time and 8 hours of installation time.
06/03/2018 at 20:12 •
Here's the first version of a head--with flapping ears synchronized to barks.
I don't have a dog, so we had to visit a friend and record their dog's bark. Of course, Juston (the dog) just stood silently for all the many things that normally trigger a bark (treat, knock on the door, promise of a car ride). Finally, he was induced to talk.
This "Dog Head Module" is a 3d printed head with two servo motors that can be used to flap ears. It can be added to any dog robot (wheels or legs) and modified (the raw head files are available on this site).
My wife, Annelle, made a clay head for scanning.
The head is fairly large and was scanned on a Makerbot Digitizer.
The resulting scan file (included) was too large to import into Tinkercad. I reduced the file size (included) then imported the head into Tinkercad and made holes for the servo motors and wires.
I mounted the micro servo motors in their 3d printed brackets, then melted (using a soldering iron) the bracket into the head.
I added a servo horn extender to the servo horn so that the ear would move a reasonable amount.
Bearing brackets (3d printed) were melted onto the dog's head. They accommodate the 1 1/4 inch by 2-56 machine screws that allow the ear to move.
A bearing adapter piece must be melted to each ear.
A finished (not painted) ear looks like this.
Back to the art shop (Annelle) for a paint job.
Assembled, the head looks like this.
I used an Adafruit sound module board and trigger the bark file (included on this site) with an Arduino. I coordinated the ear flapping servo motors with the bark sound.
You could put square 8x8 led modules in for the eyes. The mouth could be cut away and modified to move for the bark . . . this is just a starting place.
05/25/2018 at 20:27 •
This low cost module using four roller switches and a 3d printed bracket can be used to provide tilt information for a robot.
The idea is to use four roller ball tilt switches (about $.50 each from Amazon) and a 3d printed bracket to detect tilt. I designed a four degree tilt to each of the four "arms" so that the balls would roll downhill when the robot is level. By assigning the numbers "1" for north, "2" for east, "4" for south, and "7" for west it is possible to read each switch then add the numbers and know whether there is tilt and in what direction.
The leds shown below are just for testing--not part of the finished sensor.
I start with the tilt switch holder and insert the tilt switches. The "not active" end is pointed toward the center (longer wire, silver instead of brass). The "active" end--when lower than the other end--will result in continuity between the end wires.
I use wire wrap wire (then solder it) to connect the pins. The center position I tie to ground on the Arduino. Direction one goes to A0, direction two goes to A1, direction four goes to A2 and direction seven goes to A3 (since I used 12 Arduino Uno pins for servo control, I'm running low on input/output pins).
The final assembly, fastened to the dog using a wood screw, looks like this.
05/24/2018 at 19:55 •
To make the module stand requires power and control. Here's a schematic of the power components.
Let's look at the physical wiring. I connected the + and - power blocks using number 18 stranded wire.
I added an Arduino Uno to control the servo motors.
Pins 0 through 11 are connected as follows:
A top view of the connected wiring is shown below.
The starting position for the servo motors on the legs is shown below.
Because each spline on a servo shaft/horn represents about 15 degrees, the servo motors must be operated until a satisfactory position is achieved and that value should be recorded.
The .ino Arduino sketch for standing/sitting on this site as module test 0524.
Here's the standing routine.
05/11/2018 at 19:42 •
Today I tested the more powerful leg.
The original leg--using 20 kg-cm servos--could exert 1250 grams of "push" on a scale. The new leg--using 40 kg-cm servos--measured 3300 grams of "push" before the upper plywood test jig lifted. In other words, I'm getting nearly three times the lift with the new motors. The original leg used three $18. motors while the new leg uses one $18. motor and two $38. motors; so my cost per leg just went up $40.
The extra torque was too much for the upper axle piece and it sheared at the connection where it holds the leg.
I reprinted the axle at 100% fill and it is now holding for test purposes. I'm in the process of redesigning the connection for more strength.
An unexpected benefit of the new motors involves a stiff gear train that resists external movement. If I raise the leg in the air and remove power to the servo motors, the leg stays in place.
This is a major benefit in that the motors draw virtually no current (thus no wasted heat and battery energy) unless they are moving.
I'm working on stronger connections and I've ordered enough parts to complete four legs.
04/22/2018 at 00:27 •
I assembled a Google AIY Vision Kit tonight (took about two hours). This will be great for the dog since it will allow the detection of humans and whether they are smiling. I am using the default mode--have not explored the many options at this time.
When no face is detected, the light on top is not illuminated.
When a face is detected (and it will easily detect a single face at a distance of 20 feet) the light turns blue.
When there is a smile, the light turns yellow. A big smile will turn the light bright yellow and trigger a piezo buzzer.
04/21/2018 at 18:59 •
I've completed the addition of two larger, more powerful motors (twice the torque of the original servo motors). The files for the changed parts are available on this site.
First, I added the aluminum servo horn to the new shoulder axle.
Next, I disconnected the existing elbow joint.
Now, I set the new motor and bracket in a similar position to the old--so I wouldn't mix things up too much.
I mounted the motor to the upper leg.
I attached the aluminum servo horn and back bearing to the ankle servo connector.
I attached this assembly to the lower leg.
I attached the lower leg to the elbow assembly.
I pushed the shoulder axle through the linear bearing and attached it to the upper leg motor bracket.
I attached the servo horn to the servo motor and tightened the locking screw through the hole in the axle/shaft.
I checked the total leg mass and it came in at 986 grams--which is 86 grams more than the original.
04/14/2018 at 00:11 •
The left rear leg has to come off for new motors (twice the torque) in the shoulder and elbow joints. First, the wires have to be disconnected.
Next, the leg is removed from the body.
The total leg assembly will require design tweaking to keep the weight down and minimize some sharp edges (I don't want to get hurt--the motors are getting pretty powerful now). A good leg assembly could be a "module" for the Robotics Module Challenge.
I put the existing leg assembly on the scales and it came in at 900 grams.
The shoulder motor and bearings (existing) are 351 grams.
The new (larger and heavier motor) shoulder motor and printed bearing comes in at 280 grams.
At least it's going in the right direction--I would love to have the new leg weigh the same or less as the old leg.
04/11/2018 at 19:12 •
Before changing the servo motors, I need to know something about the motion limits and power requirements of the large motors (FT 5335 M from Pololu).
Using an Arduino, any commands lower than 30 degrees do not correspond to movement, thus 30 degrees represents the most clockwise position (viewed from the top).
The 150 degree command is the last one that works in the counter clockwise position, thus I have about 120 degrees available for movement.
At 7.4 volts, two amps minimum is needed to during unloaded motor travel. About .12 amps are required to stay in position with no force applied.
03/30/2018 at 19:22 •
The dog stands, but just barely. As long as the voltage remains solid, motors don't overheat and all four legs share the lift in a fairly even manner, she will stand.
It's time for more torque. I'm trying a larger servo motor (1/4 scale) that provides double the torque of my current motors (550 oz. in versus 277) at slightly more than double the cost ($39.95 each).
Here's what the new motor looks like compared to the old one.
Now, to start the knee change design process. First, I measured the new servo and printed a template to see if the motor and screw holes would align.
Too precise! The motor has to be "angled in" to fit the cable; thus the length of the slot must be slightly larger than the length of the servo body to work.
Just adding a millimeter here and there resulted in a hole too large. Time to adjust again and reprint the template.
This is a good fit--now to add some depth and sides.
That looks good. Next, it needs to blend with the upper leg attachment bracket.
During the 4 1/2 hour print, filament on the spool was tangled and a weak layer was printed in the bracket. Time to change filament and print again.
This looks pretty good.
I think this will work--of course I'll have to create a new receiving bracket for the lower leg.