Raspberry Pi-powered analog film automatic scanner
You'll need these items to build RoboScan: * A digital camera with a macro lens: must be compatible with libgphoto2 with image capture and preview support. * A Raspberry Pi: you may choose a Pi 4 if your camera supports USB 3, otherwise a Pi 2 or 3 is fine. * A 28BYJ-48 Stepper Motor with ULN2003A driver: easy to find and cheap (about $6) * 3D-print an adapter to integrate the stepper motor in the legos: use the stepper mount and axis adapter provided by this project (you'll need some bolts to attach the motor to the adapter): https://create.arduino.cc/projecthub/fredrikstridsman/lego-stepperbot-df26b9. * Adafruit White LED Backlight Module. * A LED driver such as Recom Power RCD-24-0.70/PL/B or Sparkfun FemtoBuck LED Driver. * A 50V, 47 μF capacitor * A high-power LED, such as New Energy LST1-01G03-4095-01: a 4000K white LED, with a CRI (Color Rendering Index) of 95. * Build the lego part: https://www.mecabricks.com/en/models/r121kn4gvlB.
Put a 50V, 47 μF capacitor between the LED+ and LED - pins of the driver.
| ULN2003A Stepper Motor driver | Raspberry Pi | | ----------- | ----------- | | IN1 | GPIO 5 | | IN2 | GPIO 6 | | IN3 | GPIO 13 | | IN4 | GPIO 19 | | POWER+ | 5V power (such as the one next to the Ground) | | POWER - | Ground (such as the one next to the 5V power) |
| Recom Power RCD-24-0.70/PL/B | Raspberry Pi | | ----------- | ----------- | | 1 - +Vin | 5V power (the one not already used by the stepper motor) | | 3 - PWM/ON/OFF | GPIO 18 | | 4 - GND | Ground (such as the one next to the GPIO 18) |
Untested - make sure to solder the jumper that can be closed with a glob of solder to double the output current from 330mA to 660mA. | Sparkfun FemtoBuck LED Driver | Raspberry Pi | | ----------- | ----------- | | V-/PGND | Ground (any remaining) | | V+/VIN | 5V power (the one not already used by the stepper motor) | | D-/DGND | Ground (such as the one next to the GPIO 18) | | D+/CTRL | GPIO 18 |
First build the Angular frontend:
bash cd scanner-frontend npm install ng build --prod cd ..
Then deploy the docker-compose: ```bash cd docker
export DOCKERHOST=tcp://piscanner:2376 DOCKERTLS_VERIFY= docker-compose up -d --build cd .. ```
The camera must be connected to the Raspberry Pi via USB. It must be compatible with libgphoto2.
Simply navigate to http://piscanner/ (adjust the hostname to your Raspberry Pi)
You can improve the machine learning inference performance by using a Google Coral Edge TPU USB Accelerator plugged on a USB port of the Raspberry Pi. To do so, you have to change the file src/Dockerfile. Replace:
Dockerfile CMD ["python", "webapp.py", "--destination", "/storage/share", "--archive", "/storage/archive", "--temp", "/storage/tmp"]by:
Dockerfile CMD ["python", "webapp.py", "-tpu", "--destination", "/storage/share", "--archive", "/storage/archive", "--temp", "/storage/tmp"]