Camera met Digitale Film

De camera is ontworpen rond een Raspberry Pi 3 A+, een 5 MP cameramodule en goedkope 1,54-inch e-paper displays. De volledige bouw kost ongeveer € 127, inclusief zes fotocartridges. De projectbestanden bevatten alles wat nodig is voor de constructie.

Moeilijkheidsgraad

Dit is een gemiddeld DIY-project. De mechanische assemblage en het solderen zijn redelijk eenvoudig, maar dit is waarschijnlijk niet een geschikt project voor een eerste kennismaking met elektronica. Je moet comfortabel zijn met solderen, het gebruik van een Raspberry Pi via SSH, het installeren van Linux-pakketten, het inschakelen van interfaces zoals SPI en het uitvoeren van basisprobleemoplossing als hardware zich anders gedraagt dan verwacht.

Het is niet nodig om zelf PCB's te ontwerpen of de software te schrijven.

Onderdelen en geschatte kosten

OnderdeelAantalGeschatte kosten
3D-print filament€ 4,00
Raspberry Pi 3 A+1€ 32,00
8 GB microSD-kaart1€ 8,00
WeAct 1,54″ zwart/wit/rood/geel e-paper module6€ 53,34
Waveshare Li-polymer Battery HAT1~$ 18,99
12 × 12 mm drukknop1€ 1,00
5 MP OV5647 autofocus camera + 15 cm lintkabel1€ 5,59
2×4 haakse female 2,54 mm headers6€ 2,00
2×4 haakse male 2,54 mm header1€ 1,00
M2 schroeven~€ 2,00
Totaal met zes cartridges~€ 127

Hardware-opmerkingen

  • Display modules: Er is gebruikgemaakt van de WeAct Black/White/Red/Yellow 1,54-inch SPI e-paper modules. De exacte headers zijn mechanisch van belang; controleer daarom de dimensietekeningen in de projectbestanden voordat je bestelt.
  • Raspberry Pi: De Raspberry Pi 3 A+ is gekozen vanwege de kleinere vormfactor die in de behuizing past. Een standaard full-size Raspberry Pi past niet in de meegeleverde behuizing zonder deze opnieuw te ontwerpen.
  • Cameramodule: De gebruikte module heeft de standaard 15-pins lintkabelconnector voor de Pi 3/4. Sommige Pi-modellen, waaronder de Zero-familie en nieuwere modellen, gebruiken een andere connector; controleer de compatibiliteit voor aankoop.

3D-printen

Voor de constructie is de volgende kleurverdeling gebruikt:

  • Grijs voor de camerabody.
  • Rood voor de ontspanknop/accenten.
  • Wit voor de fotocartridges.
  • Zwart voor de displaystandaard voor zes foto's.

De cartridges bevatten een uitdagende "bridge" rond het gebied van de duimgreep. Op een Bambu X1C zorgden de standaard bridge-instellingen voor een ontsierde onderkant. De volgende instellingen werkten goed:

  • Bridge flow ratio: 1.8
  • Bridge speed: 10 mm/s

Let op dat je printer en filament anders kunnen reageren; gebruik deze waarden als startpunt. De cartridge maakt gebruik van een geprinte scharnier- en snap-fit constructie, waardoor er geen schroeven nodig zijn.

Schroeven

De bouw vereist ongeveer de volgende schroeven:

  • Shutter button frame: 4× M2×6 mm
  • 8-pin header lock plate: 2× M2×8 mm
  • Main cover: 4× M2×8 mm
  • Front cover: 2× M2×6 mm
  • Camera module: 4× M2×8 mm
  • Camera cover: 4× M2×6 mm

Totaal benodigd:

  • 10× M2×8 mm
  • 10× M2×6 mm

Kanttekening: M2×8 is iets te lang voor de cameramodule, terwijl M2×6 iets te kort is. Wees hier voorzichtig mee.

Raspberry Pi-installatie

Gebruik Raspberry Pi Imager om de nieuwste compatibele Raspberry Pi OS (zonder desktopomgeving) te installeren op een 8 GB microSD-kaart. Configureer tijdens het imagen de Wi-Fi met de volgende gegevens:

  • Hostname: polaroid
  • Gebruikersnaam: polaroid

De camera is via het lokale netwerk bereikbaar via: ssh polaroid@polaroid.local

  1. Kopieer de inhoud van de meegeleverde map epaper-polaroid naar de Raspberry Pi.
  2. Installeer de vereiste Python-pakketten:

``bash sudo apt update sudo apt install -y python3-pil python3-numpy python3-gpiozero ``

  1. Schakel SPI in via sudo raspi-config:

Interface Options / PeripheralsSPIEnable

De camera kan handmatig worden gestart vanuit de projectmap met: python3 main.py

De camera automatisch opstarten

Om de camera software automatisch te starten bij het opstarten van de Raspberry Pi, kan een systemd-service worden geconfigureerd.

Maak het volgende bestand aan: sudo nano /etc/systemd/system/epaper-camera.service

Voeg de volgende inhoud toe:

[Unit]
Description=E-paper Polaroid Camera
After=multi-user.target

[Service]
Type=simple
User=polaroid
WorkingDirectory=/home/polaroid/epaper-polaroid
ExecStart=/usr/bin/python3 /home/polaroid/epaper-polaroid/main.py
Restart=on-failure
RestartSec=2
Environment=PYTHONUNBUFFERED=1

[Install]
WantedBy=multi-user.target

Pas de gebruikersnaam en paden aan als je de Pi anders hebt geconfigureerd.

Voer daarna de volgende commando's uit:

sudo systemctl daemon-reload
sudo systemctl enable epaper-camera.service
sudo systemctl start epaper-camera.service

Controleer de status met: sudo systemctl status epaper-camera.service

Bekijk de live console-output met: journalctl -u epaper-camera.service -f

Stop de service tijdelijk om het programma handmatig uit te voeren met: sudo systemctl stop epaper-camera.service

Beeldverwerking

Omdat het e-paper display alleen zwart, wit, rood en geel kan weergeven, vereisen normale foto's aanzienlijke bewerking om er goed uit te zien. Het meegeleverde bestand imageprocessingtest/testimageprocessing.py is bedoeld om te experimenteren met de beverwerkingspipeline voordat de instellingen op de camera worden toegepast.

Dit script kan worden gebruikt om zaken als contrast, helderheid, verzadiging, scherpte en dithering af te stellen. De uiteindelijke Raspberry Pi-software bevat de instellingen die in de video zijn gebruikt en ondersteunt zowel dithered als non-dithered modi.

E-paper driver

De meegeleverde e-paper driver is een aangepaste versie van de driver van de fabrikant. De driver is gewijzigd zodat het display correct werkt met de Raspberry Pi-setup in dit project, inclusief timeout-afhandeling. Dit voorkomt dat het programma oneindig blijft wachten op een cartridge die niet correct is geïnitialiseerd. Gebruik de meegeleverde driver in plaats van een standaardversie.

Bedrading

Let goed op de oriëntatie van de GPIO-header. Het bekijken van pinout-tekeningen vanuit de tegenovergestelde oriëntatie kan ertoe leiden dat de gehele connector gespiegeld wordt. De tekening in de projectbestanden is de primaire referentie.

Bedradingsschema:

FunctieRaspberry Pi Pin
Push buttonGPIO21 + GND
CSGPIO8
SCLKGPIO11
DCGPIO25
MOSIGPIO10
BUSYGPIO24
RSTGPIO17
GroundGND
Power3.3 V

Ga er niet vanuit dat de draadkleuren van jouw modules identiek zijn aan die in dit project. Verifieer de pinfuncties op je eigen module voor aansluiting. Let op dat de e-paper module wordt gevoed met 3.3 V, niet met 5 V.

Belangrijke opmerkingen over de cartridges

In dit project worden de e-paper modules op een ongebruikelijke manier gebruikt: ze worden herhaaldelijk fysiek verbonden en losgekoppeld van de actieve camera.

Aanbevelingen:

  • Verwijder geen cartridge terwijl er een afbeelding wordt geschreven. Wacht tot de camera aangeeft dat de operatie is voltooid voordat je deze wisselt.
  • De software zet het display in slaapmodus na het schrijven van een afbeelding, om te voorkomen dat het display onnodig continu onder spanning staat.

Solderen: Tijdens de bouw bleek het GND-doorvoergat op de WeAct-modules lastig te solderen omdat het veel warmte absorbeert. Als het soldeertin niet goed hecht aan dit pad, gebruik dan voldoende flux en meer warmte. Een slecht GND-contact zorgde bij het prototype voor intermitterende storingen van de cartridges.

Wat is inbegrepen

De download bevat:

  • Het FreeCAD-project voor aanpassing van het mechanische ontwerp.
  • Klaar-voor-print STL-bestanden voor de camera, cartridges en displaystandaard.
  • Het elektrisch bedradingsschema en de afmetingen van de headers.
  • Een volledige onderdelenlijst.
  • De Raspberry Pi camera-software en de aangepaste e-paper driver.
  • De aparte software voor het testen van de beeldverwerking.

Licentie / Gebruik

Deze bestanden zijn uitsluitend bedoeld voor persoonlijk, niet-commercieel gebruik. Je mag de camera voor jezelf bouwen en de bestanden voor eigen gebruik wijzigen.

Het is niet toegestaan om de ontwerpbestanden, software, gewijzigde versies van de bestanden of fysieke builds gebaseerd op dit project te verkopen, te herdistribueren, te uploaden of commercieel te gebruiken zonder voorafgaande schriftelijke toestemming. Voor commercieel gebruik dient er eerst contact te worden opgenomen met de maker.