Marblevator, Golf

by gzumwalt in Workshop > 3D Printing

4517 Views, 50 Favorites, 0 Comments

Marblevator, Golf

Im,age00a.JPG
Image00b.png
Marblevator, Golf, Finished

I always looked forward to the time my father and I spent on the golf course when I was much, much younger. So this model, "Marblevator, Golf", is an animatronic design combining 3D printing, electronics and software in order to whimsically imitate our golf outings of years ago, while at the same time simulating our sons and grandsons golf outings today.

As usual, I probably forgot a file or two or who knows what else, so if you have any questions, please do not hesitate to ask as I do make plenty of mistakes.

Designed using Autodesk Fusion 360, sliced using Ultimaker Cura 4.12.1 Engineering profile, and 3D printed in PLA and TPU on Ultimaker S5s.

Supplies

  • Soldering iron and solder.
  • Thick cyanoacrylate glue.
  • AWG 28 stranded wire.
  • 2mm heat shrink tubing.
  • Double sided servo tape.

Parts.

I acquired the following parts:

  • One Arduino Nano 33 ioT with two header pin blocks.
  • Two 12 pin socket blocks.
  • One 500ma USB power supply.
  • One USB to Micro USB cable.
  • One prototype board (Adafruit Perma-Proto 1/2 Sized Breadboard).
  • Six miniature servos (smraza S51 9g).
  • Two 470mfd 25vdc electrolytic capacitors.
  • One 16mm by 2mm diameter steel pin.
  • One 85mm by 1.5mm diameter brass rod.
  • One 6mm ball bearing.
  • Eight 3mm diameter by 1mm thick neodymium magnets.

I've include the file "Parts.pdf" describing how I 3D printed the parts for this model.

This is an extremely high precision 3D print and assembly model using at times very small precision 3D printed parts in very tight spaces. Prior to assembly, test fit and trim, file, sand, etc. all parts as necessary for smooth movement of moving surfaces, and tight fit for non moving surfaces. Depending on you printer, your printer settings and the colors you chose, more or less trimming, filing and/or sanding may be required. Carefully file all edges that contacted the build plate to make absolutely certain that all build plate "ooze" is removed and that all edges are smooth. I used small jewelers files and plenty of patience to perform this step.

The model also uses threaded assembly thus an M8 by 1.25 tap and die will assist with thread cleaning if necessary.

Wiring.

Image02a.JPG
Image02b.JPG
Image02c.JPG
Image02d.JPG
Image02e.JPG
Image02f.JPG
Image02g.JPG
Image02h.JPG
Image02i.JPG
Image02j.JPG
Image02k.JPG
Image02l.JPG

For the model wiring, I performed the following steps:

  • Cut the prototyping board leaving only pins 1 through 15.
  • Soldered the VUSB shorting pads on the bottom of the Nano 33 ioT.
  • Soldered the header pin blocks to the Nano 33 ioT.
  • Pressed two 12 pin socket blocks onto the header pins as shown.
  • Positioned the Nano 33 ioT on the prototyping board as shown, then soldered the socket blocks to the prototyping board.
  • Soldered a wire between the Nano 33 ioT ground pin and the ground bus on the prototyping board.
  • Soldered a wire between the Nano 33 ioT VUSB pin and the positive bus on the prototyping board.
  • Soldered a red and black wire between the two buses on the prototyping board.
  • Soldered two 470mfd electrolytic capacitors, one each on each power bus, as shown.
  • Soldered three 6 pin header pin blocks onto the prototyping, the first block aligned with the Nano 33 ioT pins D6 through D11, and the remaining two on the ground and power bus adjacent to the first block.
  • Removed the plastic connector shell from each of the servos (as an option, I cut off the connectors and soldered a connector pin to each wire).
  • Insulated each connector pin with heat shrink tubing.



Software.

I've included the Arduino sketch "Marblevator_Golf_Sketch.ino". The sketch is designed to operate in two modes, servo home and normal.

For servo setup, set the constant "SERVO_HOME" to "1", then compile and download the sketch to the Nano 33 ioT. In this mode, the servos are set to their home position for assembly and alignment purposes.

For normal operation, set the constant "SERVO_HOME" to "0", then compile and download the sketch to the Nano 33 ioT. In this mode, the animation runs in an endless loop.

Lift and Senior Servo Mount Assembly.

Image03a.JPG
Image03b.JPG
Image03c.JPG
Image03d.JPG
Image03e.JPG
Image03f.JPG
Image03g.JPG
Image03h.JPG

To assemble the lift and senior servo mount, I performed the following steps:

  • After homing the lift servo, attached "Cam, Lift.stl" to the servo such that the cam was at its lowest position, then secured in place with a servo arm screw.
  • Pressed the 16mm by 2mm diameter pin into "Lift.stl".
  • Slid the pin into the cam slot, slid the servo and lift into the servo mount and lift hole on "Base.stl", then secured the servo to the base using two servo screws.
  • After homing the senior head and torso servos, pressed one "Spline.stl" onto each servo such that two points of the spline hexagonal holes were aligned front to back.
  • Mounted both servos onto "Servo, Mount.stl" using two servo screws each.
  • After homing the senior hip servo, attached "Cam, Hip.stl" to the servo such that the index line on the cam pointed straight down, then secured in place with a servo arm screw.
  • Mounted the servo mount assembly to the base using two "Bolt (8M by 1.25 by 10).stl".


Junior Servo Mount Assembly.

Image04a.JPG
Image04b.JPG
Image04c.JPG
Image04d.JPG
Image04e.JPG
Image04f.JPG

To assemble the junior servo mount, I performed the following steps:

  • After homing the junior head servo, I pressed the remaining spline onto the servo such that two points of the spline hexagonal hole were aligned front to back.
  • Mounted the servo onto "Junior, Servo, Mount.stl" using two servo screws.
  • Bent 3mm of each end of the 85mm by 1.5mm brass wire down 90 degrees, slid "Junior, Lever, Arm, Left.stl" onto one end as shown, slid "Junior, Spline, Lever, Arm, Left.stl" onto the other end as shown, then secured both into position on the wire with a final 1mm bend on each end.
  • After homing the junior arm servo, I pressed the spline onto the servo such that the spline arm was straight down, then secured in place with a servo arm screw.
  • Attached the junior servo mount assembly to the base assembly using two 8M by 1.25mm by 10 bolts.

Base Assembly.

Image05a.JPG
Image05b.JPG
Image05c.JPG
Image05d.JPG
Image05e.JPG
Image05f.JPG
Image05g.JPG
Image05h.JPG
Image05i.JPG
Image05j.JPG
Image05k.JPG
Image05l.JPG
Image05m.JPG
Image05n.JPG
Image05o.JPG
Image05p.JPG
Image05q.JPG
Image05r.JPG
Image05s.JPG
Image05t.JPG
Image05u.JPG
Image05v.JPG
Image05w.JPG
Image05x.JPG
Image05y.JPG
Image05z.JPG
Image05z1.JPG
Image05z2.JPG
Image05z3.JPG
Image05z4.JPG
Image05z5.JPG
Image05z6.JPG
Image05z7.JPG
Image05z8.JPG
Image05z9.JPG
Image05z10.JPG
Image05z11.JPG
Image05z12.JPG
Image05z13.JPG
Image05z14.JPG
Image05z15.JPG
Image05z16.JPG

To assemble the base, I performed the following steps:

  • Secured the protoboard assembly into the base assembly with double sided tape such that the USB connector faced toward the front of the base assembly.
  • Attached the servo signal pins to the protoboard starting with the senior head servo on D6, followed by the senior hip on D7, lift on D8, senior shoulder on D9, junior arm on D10 and junior head on D11, with each servo power and ground pins on the power and ground pins adjacent to the signal pin.
  • Slid "Rack.stl" into "Legs.stl" as shown.
  • Positioned the rack slot over the hip servo cam, then slid the legs down pressing them into the leg slots in the senior servo mount assembly.
  • Attached "Return.stl" to the base assembly using four 8M by 1.25 by 10mm bolts.
  • Slid "Green.stl" onto the base assembly.
  • Pressed one "Gear (1m, 14t).stl" onto the longer hexagonal end of "Axle, Servos.stl" (this is the shoulder axle).
  • Pressed the remaining 1mm 14t gear upside down onto the longer hexagonal end of the remaining servo axle (this is the head axle).
  • Positioned the shoulder axle assembly into "Frame, Shoulder.stl" as shown.
  • Positioned the head axle assembly into the shoulder frame assembly as shown.
  • Slid the shoulder frame assembly onto the leg frame, aligning the gear index marks straight forward, pressed the axles into the splines, then made sure the gear teeth on the leg frame aligned with the gear teeth on the rack such that the shoulder frame was vertical.
  • Slid "Torso.stl" onto the shoulder frame, then secured the torso and shoulder frame in place with two "Axle, Frames.stl".
  • Inserted "Gear, Head (1m, 14t).stl" into the shoulder frame with the gear index mark facing straight forward.
  • Glued "Head, Face.stl" onto "Head.stl".
  • While holding the head gear in position, slid "Shoulder.stl" onto the shoulder frame such that the index mark faced forward, the gear engaged with the shoulder gear and the shoulder leading edge was parallel with the torso, secured it in place with "Frame, Shoulder, Bushing.stl", then pressed the head assembly onto the head gear.
  • Pressed "Junior, Legs.stl" onto the base assembly.
  • Slid the junior lever arm left into "Junior, Torso.stl" such that the left arm lever faced to the rear of the torso, slid the arm into the shoulder socket hole in the torso, slid the torso onto the legs, then secured the torso to the legs using two "Bolt, (8M by 1.25 by 5).stl".
  • Pressed "Junior, Arm, Left.stl" onto the left arm lever hexagonal shaft.
  • Glued "Junior, Head, Face.stl" onto "Junior, Head.stl".
  • Pressed "Junior, Axle, Head.stl" into the head assembly.
  • Slid the head axle through the torso then pressed it into the junior head servo spline.
  • Pressed "Flag.3mf" into the hand of junior arm such that the bottom of the flag staff was level with the green.
  • Pressed "Putter, Offset.3mf" into "Arms.stl".
  • Glued the arm assembly to senior shoulder.
  • Pressed four magnets each into senior torso and "Torso, Cover.stl", then attached the cover to the torso.

Final Assembly.

Image06a.JPG
Image06b.JPG
Image06c.JPG

Prior to final assembly, I set the sketch constant "SERVO_HOME" to "0", then compiled and downloaded the sketch to the Nano 33 ioT. Next I adjusted the sketch initial positions and limits for proper animation as well as the physical positions of the putter and flag. With the animation operating as I desired, I performed the final assembly steps:

  • Routed the USB cable into the hole in "Enclosure.stl", around the outside of the base, and into the Nano 33 ioT usb connector.
  • Slid the enclosure onto the assembly then secured in place using eight 8M by 1.25 by 10 bolts.
  • Glued "Legs.stl" to the front of senior leg frame with small two dots of glue.

And that is how I 3D printed, wired, assembled and programmed "Marblevator, Golf".

I hope you enjoyed it!