Snake in a Basket
"Snake In A Basket" is a model I designed for an upcoming project. As I posted videos as the project progressed, a number of followers desired to have this model "as-is", so here it is!
The model uses an infrared sensor to detect passers by and when detected, the model animates then turns off awaiting another unsuspecting visitor.
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 comment as I do make plenty of mistakes.
Designed using Autodesk Fusion 360, sliced using Ultimaker Cura 4.12.1, and 3D printed in PLA on Ultimaker S5s.
Supplies
- Soldering iron and solder.
- Thick double sided tape.
- Thick cyanoacrylate glue.
Parts.
I acquired the following parts:
- One N20 50RPM gear motor.
- Five 3mm diameter by 1mm thick neodymium magnets.
- One PIR "HC-SR312 IR Human Sensor for Arduino".
- One Nano 33 IoT.
- One USB power source with connector compatible with the Nano 33 IoT.
- One DRV8833 Motor Drive Module 1.5A Dual H Bridge DC Gear Motor Driver Controller Board.
- Two Plastic Reed Switch Contact Normally Open (N/O) Magnetic Induction Switch (2.5mm×14mm)
I 3D printed the following parts at .1mm layer height, 20% infill and no supports:
- Two "Axle, Basket Lid.stl".
- One "Basket Lid Lift Cam.stl".
- One "Basket Lid Lift.stl".
- One "Basket Lid.stl".
- One "Basket.stl".
- One "Bolt (M6 by 6mm).stl".
- Two "Bolt (M6 by 8mm).stl".
- Two "Bolt (M6 by 10mm).stl".
- One "Cartridge Cover.stl".
- Two "Cartridge Leg.stl".
- One "Cartridge.stl".
- One "Electronics Mount.stl".
- One "Gear, Motor (2m 11t).stl".
- Two "Reed Arm.stl".
- One "Snake Head.3mf".
- One "Snake, Chain Green.stl".
- One "Snake, Chain Yellow.stl".
- One "Sprocket.stl".
This mechanism is a high precision print and assembly using at times very small precision 3D printed parts in confined spaces with highly precise alignment. I 3D printed all parts using the Ultimaker Cura 4.12.1 "Engineering Profile" on my Ultimaker S5s, which provides a highly accurate tolerance requiring minimal if any trimming, filing, drilling or sanding. However, prior to assembly, I still test fitted and trimmed, filed, drilled, sanded, etc. all parts as necessary for smooth movement of moving surfaces, and tight fit for non moving surfaces. Depending on your slicer, printer, printer settings and the colors you chose, more or less trimming, filing, drilling and/or sanding may be required to successfully recreate this model. I carefully filed all edges that contacted the build plate to make absolutely certain that all build plate "ooze" is removed and that all edges are smooth using small jewelers files and plenty of patience.
This mechanism also uses threaded assembly, so I used a tap and die set (M6 by 1) as required for thread cleaning.
Downloads
Assemble the Snake.
To assemble snake, I performed the following steps:
- Carefully pressed the five neodymium magnets into the magnet holes in the end of "Snake, Chain Green.stl".
- Joined the green snake chain with "Snake, Chain Yellow.stl" by starting with the magnet end slipping the chains between my forefinger and thumb to engage the two.
- Pressed "Snake Head.3mf" onto the top of the chain assembly.
Assemble the Basket.
To assemble the basket, I performed the following steps.
- Secured "Basket Lid.stl" to "Basket.stl" using two "Axle, Basket Lid.stl". The lid must pivot freely on the axles.
- Slid "Basket Lid Lift.stl" into the lid lift slots on the rear of the basket. The lift must slid freely in the slots.
Assemble the Electronics Mount.
To assemble the electronics mount, I performed the following steps:
- Using double sided tape, attached the Nano 33 IoT and H-Bridge to "Electronics Mount.stl".
- Inserted one reed switch into each of two "Reed Arm.stl".
- Inserted each reed arm assembly into the electronics mount assembly.
- Pressed the PIR sensor into the PIR sensor hole in the electronics mount assembly.
- Wired the electronics mount assembly as per the schematic.
Assemble the Cartridge.
To assemble the cartridge, I performed the following steps:
- Positioned "Sprocket.stl" in the sprocket hole in "Cartridge.stl".
- Pressed "Basket Lid Lift Cam.stl" onto the sprocket shaft.
- Pressed "Cartridge Cover.stl" onto the cartridge assembly.
- Secured each of two "Cartridge Leg.stl" to the rear (lift cam) side of the cartridge assembly using two M6 by 8mm bolts.
- Secured the electronics mount assembly onto the front side of the cartridge assembly using two M6 by 10mm bolts. The electronics mount assembly is placed over the legs and the bolts pass through the electronics mount assembly, through the leg holes and into the cartridge.
- Pressed the basket assembly onto the cartridge assembly and secured in place with small dots of glue.
- Slid the snake assembly through the basket hole, engaged the snake with the sprocket, then rotated the lift cam clockwise until the snake was fully down. At this point, the lift cam flat should be horizontal. If not, remove the snake, rotate the lift cam 24 degrees clockwise, then reinsert the snake. Repeat this procedure until the lift cam flat is horizontal when the snake is fully down. When complete, secure the cam to the sprocket using one "Bolt (M6 by 6mm).stl".
- Pressed the motor into the cartridge assembly motor mount.
Software.
To install the software, I performed the following steps:
- Loaded the file "SnakeInABasket.ino" into the Arduino environment.
- Edited the file to set the TEST_MODE flag to true.
- Connected the Nano 33 IoT to my computer using a suitable USB cable.
- Download the software to the Nano 33 IoT.
- Started a debug window.
- Waved my hand in front of the PIR sensor to start the motor.
- Made certain the motor was rotating clockwise when viewed from the motor shaft end of the motor.
- Manually rotated the cam lift clockwise until the about 100mm of the snake was out of the basket, then adjusted the up reed switch position until the motor stopped then reversed.
- Manually rotated the cam lift counter clockwise until the snake has was fully inside the basket, then adjusted the down read switch position until the motor stopped.
- When satisfied with the up and down reed switch positions, I applied small dots of glue between the arms and electronics mount to secure them in position.
- Edited the file so set the TEST_MODE flag to false.
- Pressed "Gear, Motor (2m, 11l).stl" onto the motor shaft.
- Downloaded the software to the Nano 33 IoT.
With the final software installed, when you walk by the PIR sensor, the snake will take a couple of "peeks", then extend out of the basket and return.
And that is how I 3D printed, assembled and adjusted "Snake In A Basket".
I hope you enjoyed it!