This is a simple Arduino project to make a spider walk up and down on a wall. In oder to define the upper and lower limit of the spider walk, it uses a sensor and a timer which is programmed during the setup step, when Arduino power is turned on. The motion is provided by a servo which turns a pulley with a rope connected to the spider. The servo holder is 3D printed and the pulley is from a sewing machine. Very simple, but effective. I used this at a party of my 3 year old children and they liked very much, the spider walks like in the song.
The spider is not very pretty, because is the one made by my son, of course you can showcase your abilities and make a good looking spider to make all this very scary, eventually could be a good tool for the next Halloween.
HOW IT WORKS
1) turn on by using the on/off switch
2) press the button to start the setting process for the lower limit of the movement
3) the spider first go up until it reach the upper limit, then it moves down
4) press again the button to inform that the spider reached the lower limit
5) all set. from now on the spider goes up and down forever by random time, but always keeping itself between the upper and lower limits initially set.
You can see better in the following video:
Beside an Arduino or something compatible, you need small amount of material, as showed in the picture.
optional, a protoboard to make tests
All 3d printed parts are printed in PLA filament with 10% infill and no support.
The Servo holder is a 3D print object, the STL file is available for download. It works with a FS90 micro servo, which is very common to find in shops.
I used a pulley from a sewing machine and I 3D designed a shaft to attach it with 4 screws to one of the servo standard shafts. The final result should be something like in the photo.
I used a micro-switch and I attached to it a 3d printed piece used to guide the rope.
Basically the code is composed by two C++ classes which makes all the stuff, while Arduino standard setup and loop functions are minimal. Notice that all sensor are declared INPUT_PULLUP to avoid resistors and make the project simple. Recap then when using INPUT_PULLUP, the HIGH and LOW signals of the Arduino Pin are inverted.