Arduino Mega 2560 - Anet A8 Plus Auto feeder to a Nikon LS-50 ED
Link to two YouTube videos if you like to watch a DIY feeder robot inaction.
Short video, one cycle: https://youtu.be/XbZT7E5hNCo
Long video, the different fail modes: https://youtu.be/s09VTPgzJRQ
I bought the scanner back in 2005 together with my father and brother, our idea was to scan in our family slide archive, mainly Kodachrome.
Back then we never got the calibration to work with Kodachrome, so the scanner was placed in wardrobe. 2016 I made a new try, researched and bought a Kodachrome target from Wolf Faust, possible one of the last ones. Now the scan result was great, but very slow and time consuming. After one or two magazine the scanner went back to the wardrobe.
2021, Corona, got some extra spare time, and started a small DIY project to built a autoloader to the scanner. After some researched I decided to use a 3D printer as a base for the project. Give the required accuracy and at the same time low cost.
Aspecial gripper head was pieced together with a micro gripper from Pololu and some servos and special machined parts of aluminium. The control card to the 3D printer was replaced with a generic stepper controller board (RAMPS 1.4) to a Arduino Mega 2560. From start the robot did not have any sensors, but due to many different error types, sensors was added, and in the current version:
- Load sensors in X and Z direction.
- Range sensor, ToF, to check if a slide is in the gripper.
- 2 x 5 mW Laser with detection modules, to detect if the slide are correctly placed back in the magazine.
- Sensor for the locking mechanism for the push out pin
The first version was ready in April last year and with additional add ons; sensors, locking mechanism for the press out pin and revision of the control code, the auto feeder robot is now quite reliable. One ortwo slide are rejected or dumped per magazine. The feeder can handle following frame types; paper, thin plastic and CS 1.8 mm. The process is not very fast, the Scanning takes 2:20, and shifting slide take 2:40, total 5 min for each slide. 12 slides per hours, but I can load the robot feeder with a magazine and after 4 hours the scan is done.
The robot main parts are:
1x Anet A8 Plus 3D printer (simple but easy to re-built)
1x Arudino Mega 2560
1x RAMPS 1.4 controller board
3x A4988 stepper controller
1x 12 V 20 A Power supply (original was 24 V, same form factor)
1x Pololu micro gripper
1x SG90 mini servo (The original servo too slow and weak)
2x K-power WK-DP0037 micro servo
1x SpringRC SM-S3317M Medium servo
2x Hyuduo 0-100 g load cell
2x Loadcell amplifier IC HX711
1x Arduino Nano Every (reads the load cells IC HX711)
1x ToF VL53LOX
1x DIY audio line signal detection circuit based on Project 38, ESP, sound-au.com
1x DIY 5V power supply step down from 12 V to servos (the built in onMega 2560 too small)
2x Arceli 5 mW 650 nm red laser module
2x light detection module
The additional Arduino Nano was added then the update frequents of the ICHX711 is low and direct stop function for the steeper motors could not be achieved only with the Mega 2560. The Nano reads continuously the load sensors IC HX711 and trigger an alarm pin if the alarm level passed. The steeper moves until end of position or if alarm is triggered. The alarm levels are communicated from Mega to Nano with two PWM signals.
The scanner software used can be run in batch mode, continuous scanning then new slide is placed in scanner, and after each scan a beep sound trigger the Robot.
The code is based on the following libraries:
- AccelStepper.h by Mike McCauley
- HX711.h, load cell communication
- VL53L0X.h, ToF sensor communication
- And standard libraries for communication and EEPROM etc.
The rescued LCD panel from the 3D printer is used to control the robot, menu system based on:
In the menu there is calibration function, the robot moves around and calibration input for position of the gripper in the critical potions, the ToF alarm level, gripper open value and X and Z force trigger levels. The calibration values are stored in the built-in EEPROM.
In total the robot has now scanned 4000 slides, and we have about 3000 to go.
Question is is worth the time? I don't think I have saved any time or money, but at the same time without the project I had never scanned the slides at all. It is just too boring.
The robot is consuming servos, the gripper and swing servos are good for about 1500 slides, after that they need to be replaced. They burnout. Tried both low cost 2, 5€ per unit and 12 € per unit for the gripper servo, same service life. Now I using the low cost SG90. The wing servo is only available in version for about 12 €, I have not found a low cost version exist in that from factor.