A DIY USB powered bead dispenser
Contains an Arduino sketch that accepts user input (i.e., an integer) and then starts a Nema 14 stepper motor. While the motor rotates, the attached infrared beam module counts objects which break the beam. The motor will stop when the object count equals the provided number by the user. This repo includes all 3d stl files and the construction manual.
bead-dispenser-demo-sm.mp4
bead-dispenser-field.mp4
This DIY bead dispenser was used as a companion apparatus for Sarah Pope-Caldwell’s Nifty Shifty Game Battery. Specifically, the dispenser receives a signal (i.e., a positive integer) from the game, which starts a NEMA 14 stepper motor releasing the number of requested beads. The Arduino sketch was developed by Steven Kalinke.
Initially, Dylan T Guenther provided us with his modifications from thingiverse dispenser, and then Raik Pieszek made significant modifications to meet our requirements. You will find all the stl
files within the repository’s stl
directory.
We are aware the stepper motor and infrared beams are underpowered by the low voltage/current constraints of the USB 2 protocol (i.e., 5V @ 0.5A). However, throughout the entire hardware engineering process, we tested the dispenser to run with standard USB 2.0 power only and have not observed any drawbacks by under-powering it. The dispenser was also running in high humidity conditions (Congo) for approx. 8h per day over five to six weeks conducted by Elisa Felsche. Please refer to the hardware components sections for further details.
As of Summer 2022, we will work on a version 2 with some soft- and hardware improvements, which are listed below:
Check the issue tab for open issues!
- Use Gewindemuffen, -hülse, or Stangenmutter to replace the plastic pillows, Or better use Gewindestifte/Madenschrauben (M5/60mm) (https://www.fenau.eu/gewindeterminal-mit-innengewinde-linksgewinde-fuer-seil-von-o-3-mm-bis-o-8-mm-v2a.html)
- Make a design that allows flexible adjustment for the disk hole sizes
- Heat space for stepper motor
- Motor Thron
- Universal mount for the flexible funnel sizes
Component | Description | Approx. Price |
---|---|---|
Arduino Uno | https://www.amazon.com/Arduino-A000066-ARDUINO-UNO-R3/dp/B008GRTSV6 | |
Adafruit Motor Shield (2.3) | https://www.amazon.com/Adafruit-Motor-Stepper-Shield-Arduino/dp/B00PUTH3B0 | |
… alternatively version 2.0 (cheaper) | https://www.roboter-bausatz.de/p/motor-shield-v2.0-fuer-arduino?sPartner=8&gclid=CjwKCAjw1JeJBhB9EiwAV612y0uTo-yNJ4GlXUTTYTJsgV14ZZIoj7A12Il0sJB5pGVDDNJmeDUyexoCM9cQAvD_BwE | |
Stepper Motor (Nema 14) Option 1 | Polou SY35ST28-0504A (200 steps / 1.8°, 0.1Nm holding torque, 10V @ 0.5A, 20Ω Phase resistance) – Datasheet – https://www.robotshop.com/de/de/10-v-05-a-13-oz-in-zweipoliger-schrittmotor.html | |
Stepper Motor (Nema 14) Option 2 | Joy-it Nema14-01 (200 steps / 1.8°, 0.1Nm holding torque, 8V @ 0.4A, 20Ω Phase resistance) — Datasheet — https://joy-it.net/en/products/NEMA14-01 or https://www.conrad.de/de/p/joy-it-schrittmotor-nema14-01-0-1-nm-0-4-a-wellen-durchmesser-5-mm-2142507.html | |
Adafruit IR Beam Break Sensor Pair (3mm, preferably with DuPont Connectors) | https://www.mouser.de/ProductDetail/Adafruit/2167?qs=GURawfaeGuCJ0J7vogtCzg%3D%3D | |
USB Wire (Type B from the Arduino to whatever you need on your computer) | Note, we had some difficulties with USB Adapters, a direct connection is preferred, e.g., USB C to Type B: USB-Kabel USB 2.0 USB-B Stecker | |
Pellets | We tested a variety of beads/pellets. A rule of thumb: beads should be a non-reflective surface, as the IR signal can be reflected around the pellet. Wood is good material; we used these wood balls: https://www.holz-allerlei.de/holzkugeln-ohne-bohrung/143/holzkugeln-6-mm-oe-ohne-bohrung?c=34 | |
Soldering Iron | ||
Crimp tool and DuPont Connectors | … to easily connect the IR beam break sensors | |
Threading tap to create threads | … for screws and nuts (M4) |
-
Place the Shield stacking headers on the Adafruit shield (terminals are optional for this setup) and solder them its bottom
-
You may need to buy stacking headers as the Adafruit shield does not come with them (it did actually for our case)
Soldering stacking headers to the Motorshield (they may come pre-soldered for Motor Shield v.2.3)
Either use a Multimeter and figure out the two wires having the lowest resistance; those make a coil pair. If you do not have a Multimeter, connect their wire tips: Now turn the stepper motor: If the rotation resistance is high, the two cables belong together (i.e., making a coil pair).
Left: Polou SY35ST28-0504A (M1: black, green; M2: red, blue). Right: Joy-it Nema14 (M1: red, gray; M2: yellow, green).
Docs & Datasheet: https://www.adafruit.com/product/2167
Left Image: The receiver is on the left; it has three wires. The transmitter is on the right; it has two wires.
If your IR break beam sensors came with DuPont (see JST connector - RE) connectors, you can skip this step. If not, use a crimp tool to add crimps.
Left: IR Breakbeam Sensors w/o DuPont Connectors. Right: IR Breakbeam Sensors w/ DuPont Connectors.
The receiver (photodiode/sensor) has three colored wires; connect the
- black wire to the ground (there are two, which one doesn’t matter)
- red wire to the 5V Pin (important!)
- white wire to Pin 4 in the Digital I/O array
The transmitter LED (sender) has two colored wires; connect the
- black wire to the ground (the one that is left)
- red wire to the 3V Pin (important!)
Use M4 threading taps for the following 3D components:
- Depending on the 3D printer, the bottom of the disk may be a bit rough, therefore creating resistance. Use fine sandpaper to reduce friction.
- Depending on the 3D printer, the disk’s hole may be too narrow for the stepper motor’s D-shaft. Roll a thin layer of sandpaper to increase the inner diameter.
Left: Increase inner disk diameter. Right: Sandpaper the bottom of the disk.
Our model is composed of seven components; these are from bottom to top:
- Box
- Slide
- Door
- Roof
- Dispenser
- Disk
- Funnel
Component | STL File | Isometric Preview |
---|---|---|
Box — Housing for the Arduino & Adafruit Shield | Download | |
Slide — To fixate the Arduino’s plate with the slide | Download | |
Door — Sliding door that closes the box | Download | |
Roof — Coveres the box, and provides a housing for a NEMA 14 stepper motor | Download | |
Dispenser — Holding the disc and provides a tube | Download | |
Disk — Revolving magazine to release beads or other objects | Download | |
Funnel — Bead funnel/storage unit | Download | |
Lid — Get yourself some Pringles. Use the Pringle’s lid to seal the funnel. (optional) | — |