Perler Bead Sorter

From Hack Manhattan Wiki

Purpose

Create an affordable machine that can help sort unsorted perler beads after workshops and help teach people how to use Arduino.

For general Perler bead content, go to the Perler page.


Design Considerations

Most perler bead designs can be reduced into two mechanical components:

  • Placement: from a pile a beads, the component positions one bead in a consistent position to be scanned
  • Filter: the scanned bead is shifted to the correct bin.

While the goal is to sort beads as many beads as possible, 10 beads per minutes will be used as a default rate to calculate design restrictions going forward.

Placement Design

The ideal time for a sorter to run without human interactions is 24 hours. The container holding the unsorted beads should be a large enough to hold 24 hours * 60 minutes * 10 beads per minute: 14400 beads.

Version 2 hopes to use a tube drop to place the bead in front of the sensor. A rigid, acrylic 6mm inner diameter tube seems to work well. Funnel needs to move up and down 10mm from the rest position.


Tilted disk from version had several issues:

  • Torque required to spin a disk from the center with a load of beads required a nema stepper motor.
    • Possible design using a gears may be viable for a 5v infinite stepper.
  • sensor should have been closer to the exit
  • jam check would often bump out slotted beads

Filter Design

Once the bead is in front of the sensor, the controller can trigger the motion to move the bead to either a filter bin or an unfiltered bin.

Every exhaust bin should be able to safely hold at least the number of beads within the unsorted hopper.

Educational versus Performance

For the simplest sorter to be functional, it needs to consistently sort one color from an unsorted pile. For an unsorted pile of beads consisting of 3 colors, with 1000 per color, and a machine sorting at 12 beads per minute, it would take 8 hours and 19 minutes with 2 reloads.

  • 3000 beads scanned, 1000 filtered, 2000 remaining: 4 hours 10 minutes
  • 2000 beads scanned, 1000 filtered, 1000 remaining: 2 hour 46 minutes
  • 1000 beads scanned, 1000 filtered, 0 remaining: 1 hour 23 minutes

If the sorter was able to sort multiple colors per run, at 8 beads per minute (3 seconds additional per bead), it would sort 3000 beads in 5 hours and 15 minutes without any reloads.

The above numbers are based on a scenario where a pile consists of 3 equal colors. In reality, the unsorted colors will be far more unbalanced and consist for far more colors requiring even more reloads. However, the only difference between filtering one color and filtering multiple colors is a single mechanical component. Additional, this feature can usually be added with a 28byj stepper, ULN2003 driver board, and an end stop for around $10 dollars. To get the best of both versions, there will be a base model and an advanced model that includes the additional components to filter multiple beads.


Parts

Cost is a major consideration to design this machine. Parts listed will be limited to 5v components that match the microcontroller's voltage input.

Electronic Components

-
Part Est Cost per unit Notes Link
Adafruit Metro Mini 328 V2 - Arduino-Compatible - 5V 16MHz - STEMMA QT / Qwiic $14.95 example https://www.adafruit.com/product/2590
Example $0.00 Example Example
Flora Color Sensor with White Illumination LED - TCS34725 $7.95 Example https://www.adafruit.com/product/1356
Adafruit APDS9960 Proximity, Light, RGB, and Gesture Sensor - STEMMA QT / Qwiic $7.50 Example https://www.adafruit.com/product/3595
Power supply $5.00 Optional Offering Example
OLED Breakout Board - 16-bit Color 0.96" w/microSD holder $29.95 Example https://www.adafruit.com/product/684
Monochrome 1.3" 128x64 OLED graphic display - STEMMA QT / Qwiic $19.95 Needs cables https://www.adafruit.com/product/938
RGB LED $2.00 Example https://www.adafruit.com/product/159
Example $0.00 Example Example
Example $0.00 Example Example


Mechanical Components

-
Part Est Cost per unit Motion Notes Link
Standard Servo Example 120 rotation Example Example
Micro Servo Example 120 rotation Example Example
Standard Servo Continuous Example 360 speed Example Example
Micro Servo Continuous Example 360 speed Example Example
28byj $4.95 360 position Example Example
ULN2008 driver board $2.00 Example Mandatory per 28byj Example
Motor $1.50 Example Example https://www.adafruit.com/product/711
Solenoid $7.50 Example Example https://www.adafruit.com/product/2776
Endstop $1.00 Example Example Example
Example $0.00 Example Example Example


Version One Review

The first production model used a tilted disk with grooves to rotate beads up a bowl into a scanning position. During its debut at magfest2023, it was sorting less than 3 beads per minute due to the inconsistencies in the grooves where individual beads were slotted.


User Interface

Base Model

Mechanical Controls:

  • Slider controller
    • Filtered/Unsorted
    • Left/Right (to determine center)
    • Home (code position 90)
  • Agitator
    • Up/Down
    • Center
  • Sensor
    • Save Color (might be able to preserve color using eeprom)

Advanced Model

Advanced model will need additional controls for managing bin colors, a display to show current bin colors and progress, and external memory to save bin configuration after reboot and counts.

Progress/Issues

  • 2022-12-19: V2 model uses wheel in bowl system instead of vibration
  • 2022-01-22: Beads keep flicking out of hopper at exit hole
  • Position beads into a slot where only 1 fits
  • Read the beads color
    • OpenCV implementation probably
  • Dispense bead into correct container
    • Circular container
    • Rail container
 # move stepper motor in bowl
 # detect when deck is full
 # load bead to camera
 # openCV check color
 # identify color and exit
 # unload bed