Motion Sensing Ferris Wheel

by zhoukp in Craft > Art

358 Views, 1 Favorites, 0 Comments

Motion Sensing Ferris Wheel

WechatIMG56.jpeg

This 2D Ferris wheel allows you to freely control the direction in which the Ferris wheel turn, and will continue to turn until a motion is detected, or when your hand it close to the proximity sensor. It can also hold customizable keychains/objects with a set diameter. Its motion sensor also allows for customization on the gestures for different uses.

Supplies

Phsyical needs.jpg
  1. 3D Printer
  2. 5 pieces of 5mm wide wooden stick (customizable but based on the hole etched in the 3D printed Base Layer - see Step 1)
  3. Continuous Rotation Motor (Used in this project: https://www.adafruit.com/product/2442?gclid=CjwKCAjwuYWSBhByEiwAKd_n_odu0yV1TP8or-cGB-wH0XGAQJh4WNjoNqu3llvBLVGt7V0XB-c1CxoCoQgQAvD_BwE)
  4. 1x Breadboard
  5. 1x Arduino Nano RP2040
  6. 1x APDS9960 Motion Sensor
  7. Suitable wires to connect to the breadboard
  8. Tape/Velcro to secure motor onto a wall
  9. Power Source (Battery)

3D Print Required Components

3D prints and wires.jpg
Carts and Wood.jpg

Things to Print

  1. 5x Cart - Resize to appropriate sizes based on the size of the base
  2. 1x Base Layer - Resize to personal preference (hole on the side to hold the carts are 5mm wide, and 4.9mm wide in the middle to accommodate the continuous Rotation Motor)

I was lucky enough to find a few good designs online:

  • Link to Cart and Base Layer: https://www.prusaprinters.org/prints/151467-motorized-ferris-wheel-key-holder (Resize the hanging hole and Base Layer holes to be the size of the wooden sticks used)

Note

  • When editing the sizes of the designs, make sure that the holes in the design are slightly bigger than the ones measured for the wooden sticks (about ~0.5mm larger).
  • Make sure to check the design after slicing, as there might be some errors in the slicing that causes the designs to misprint or underprint.

Assemble

Breadboard Configuration.jpg
Breadboard.jpg
Motor and Base.jpg
Connect Wall.jpg
WechatIMG55.jpeg
WechatIMG56.jpeg

Assembling the Ferris Wheel

  1. Assemble the cart into the individual holes in the Base Layer (the two holes should be the same size) and push the wooden stick through (the wood should fit comfortably between).
  2. Measure out the total depth needed for the stick without much protruding from the side of the holes.
  3. Do this to all 5 carts
  4. Fit the Continuous Motor through the center hole of the Base Layer (apply glue if needed - but caution not to glue the base of the motor to the bottom of the Base Layer)
  5. Use velcro to secure the moto onto a wall
  6. Attach Continuous Motor, APDS9960 Motion Sensor to the breadboard with the Arduino RP2040 connected
  7. I used A1 as output for the servo motor, however, feel free to change this to whatever you like.
  8. Connect the Battery pack to Arduino

The Code

The code itself is not hard, but very customizable. The 2 different gestures incorporate APDS9960's motion gesture recognition, which is left and right for gesture = 3 and gesture = 4. The two other gestures (up, down) for more customizing, such as starting or stopping.


In general, this program will start the motor, and continue to spin at a slow pace until your hand is very close to the APDS9960 proximity sensor. It will then stop, and check for gestures - if no gesture is given, and hand moved away, it will continue to spin. Once gesture is recognized, it will either turn clockwise or anti-clockwise, depending on the gesture. To restart the initial spin, unplug and plug the battery supply.

Downloads

The End

That's it! Have fun with customizing the gestures, or even coming up with your own design for the carts - just make sure that the hole sizes are appropriate and in proportion to the size of the base layer.