Zum Inhalt springen

Filmbilder verlässlich elektronisch zählen


Friedemann Wachsmuth

Empfohlene Beiträge

Weil der @FilmCurlCom Interesse gezeigt hatte, hier mal ein par Details zu meinem noch sehr frankensteinigen Filmbildzähler auf Arduino-Basis.

 

Teilekosten bisher < 5€, Arbeitsaufwand zum Nachbauen ca. 1 Stunde. Ich würde mich freuen, wenn andere mit/weiter entwickeln bzw. ihr eigenes Vorankommen hier auch dokumentieren.

 

Zum Zählen werden zwei Gabellichtschranken eingesetzt. Ich habe in der Bastelkiste ein paar Omron EE-SX1106 gefunden, andere Typen mit kleinem Schlitz tun es aber auch.  Ideal wären wohl die Omron EE-SX1107, erfordern aber (einfaches) SMD-Löten. Da der Schlitz in den SX1106 etwas zu tief ist, habe ich ihn 2mm hoch mit Sugru aufgefüllt. So ist sichergestellt, dass S8-Perfolöcher immer "gesehen" werden.

 

Da wir die Laufrichtung des Films erkennen wollen um auf- oder abwärts zu zählen, benötigen wir zwei dieser Gabellichtschranken. So sieht es auf meinem Versuchsplatinchen aus:

 

IMG_9764.thumb.JPG.ecc4e21db5dbe5ed3b3d53daa3215fe7.JPG

 

Das praktische ist, dass das 2.54mm Rastermaß von Lochrasterplatinen genau "passt": Wie oben montiert (also mit einer Lochreihe Abstand) erhalten wir perfekten "Gray-Code". Das bedeutet, dass wenn der Film hier durchgezogen wird, sich laufend folgendes Muster widerholt:

 

1. Beide Lichtschranken unterbrochen

2. Lichtschranke A offen, B unterbrochen

3. Lichtschranke A offen, B auch offen

4. Lichtschranke A unterbrochen, B noch offen

... und wieder von vorn. Wir erhalten damit vier Zustandswechsel pro Filmbild, was eine sehr genaue Erkennung und zuverlässige Richtungserkennung erlaubt.

 

Doch zunächst zur Elektronik. Erstmal wollen wir das Signal der Fototransistoren ein bisschen aufpolieren:

 

IMG_9765.thumb.JPG.2465d0dfb66eb1a95d42a7506765b282.JPG

 

Das ist etwas unübersichtlich, daher hier ein Schaltplan:

 

5988c0d7363eb_2017-08-07at21_34.png.a5f3e1a29415b64ec76cab6c491da877.png

 

Die Transistoren sind beliebige NPN-Typen. Vcc ist 5V (weil der Arduino mir die liefert). Der Vorwiderstand für die IR-Diode ist hier nicht mit eingezeichnet, der sitzt bei mir mit auf dem Lichtschrankeplatinchen (und ist zur Zeit mit einem Spindelpoti gereiht, um "dimmen" zu können, dazu später mehr). Collector der Gabellichtschranken hängen an VCC, der Emitter geht an X1-2 bzw. X1-3.

 

Die offenen Enden rechts kommen direkt an Pin 2 und 3 des Arduinos (oder Clons), denn das sin ddie Hardware-Interrupt-Leitungen. Der Arduino ist damit nur minimal beschaltet:

 

IMG_9766.thumb.JPG.26e9bd9178b626c974fd542405caeaea.JPG

 

Braun und Rot sind 5V Vcc, schwarz und weisses Kabel sind die Eingangspins mit Hardware-Interrupt.

 

Warum Interrupt? Weil wir schnell sein wollen. Es darf niemals ein Puls verloren gehen. Gray-Code und Quadraturdecoder will ich hier jetzt nicht genauer erläutern, das Thema findet man erschöpfend im Internet behandelt. Im Grunde tun wir nichts anderes als eine Computermaus, in der (so sie noch eine Kugel hat) auch zwei Gabellichtschranken pro Bewegungsrichtung verbaut sind. 

 

Ich verwende zur Zeit die "Encoder" lib von Paul Stoffregen, die ist schön schlank, einfach und sehr schnell. Zwar ist sie nicht ganz Lehrbuchkonform (da ein "Flattern" am ISR ggf. hohe Prozessorlast auslösen kann), aber in diesem Fall macht das nichts. 

 

Der Code ist noch fast der Beispielcode:

 

#include <Encoder.h>

// Change these two numbers to the pins connected to your encoder.
//   Best Performance: both pins have interrupt capability
//   Good Performance: only the first pin has interrupt capability
//   Low Performance:  neither pin has interrupt capability
Encoder myEnc(2, 3);
//   avoid using pins with LEDs attached

void setup() {
  Serial.begin(38400);
  Serial.println("Basic Encoder Test:");
}

long oldPosition  = -999;

void loop() {
  long newPosition = myEnc.read();
  if (newPosition != oldPosition) {
    oldPosition = newPosition;
    Serial.println(newPosition);
  }
   if (Serial.available()) {
    Serial.read();
    Serial.println("Reset to zero");
    myEnc.write(0);
  }
}

 

Der tut nichts anderes, als zu zählen – pro Filmbild geht es 4 Punkte hoch, andersrum 4 Punkte runter. Der Zählerstand wird auf der Seriellen ausgegeben. Sendet man irgendein Zeichen an den µC, wird auf Null gesetzt. Ich kann den Filmstreifen ziehen uns reissen so schnell ich will, es geht kein Impuls verloren.

 

hier meine Hilfskonstruktion zum testen:

 

IMG_9767.thumb.JPG.3c7b5090aac9329e24c01040010d5b4a.JPG

 

auf diesem Bild allerdings noch ohne Richtungserkennung (nur eine Gabellichtschranke).

 

Erste lustige Erkenntnis: schwarzer E6-Film ist prima IR-Durchlässig. Wer also entwickelten Film zählen will (mir geht es erstmal nur ums Ablängen von exakt 15.25m für S8-Kassettenbefüllungen in Dunkelheit) muss die IR-LED in der Gabellichtschranke also drosseln. 

 

So, und jetzt bitte gern nachbauen und weiterbasteln. :)

Bearbeitet von F. Wachsmuth (Änderungen anzeigen)
  • Like 5
Link zu diesem Kommentar
Auf anderen Seiten teilen

Wow, Respekt, Friedemann, das sieht ja schon super aus!

 

Danke für's so genaue Erklären, ich werde mir das mal genauer ansehen und selber so etwas auch anstarten.

Melde mich, wenn ich was interessantes zu berichten habe.

Aber so viel mal, mir gefällt schon sehr, dass der Aufbau korrrekt zählt, auch wenn du sehr schnell durchziehst.

Ich hatte immer wieder Probleme mit 16mm Locherkennung bei meiner Scannerautomatisierung, da der Algorithmus dafür recht komplex war.

Das hier liest sich super elegant, ist also wohl viel robuster.

 

Bernhard

Bearbeitet von FilmCurlCom (Änderungen anzeigen)
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 10 Stunden schrieb F. Wachsmuth:

Mir geht es erstmal nur ums Ablängen von exakt 15.25m für S8-Kassettenbefüllungen in Dunkelheit

 

Ein fazinierendes Projekt :-) ich hätte gerne auch etwas zum einfachen Ablängen im Dunkel ;-)

Komme aber auch ohne Zählwerk ganz gut zurecht - habe mal mit Super 8 Film den Lomo Tank

ausgetestet => der gesamte Kassettenfilm passte drauf - mit Zollstock gemessen 15,70m lang !

Link zu diesem Kommentar
Auf anderen Seiten teilen

Am 7.8.2017 um 21:50 schrieb F. Wachsmuth:

(mir geht es erstmal nur ums Ablängen von exakt 15.25m für S8-Kassettenbefüllungen in Dunkelheit)

 

Da ist mir eines aber unklar: Die abgespulte Länge müsste man im Dunklen ja irgendwie anzeigen (LCD oder kleiner Monitor). Das ist natürlich möglich, nur, mag das der unbelichtete Film? ;-)  Und eine IR-Lichtschranke würde dem Film doch auch schaden?  Das Konzept selbst finde ich sehr gut, nur stellen sich mir eben diese Fragen.

Ich könnte mir eine akustische Anzeige vorstellen...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Für IR ist der Film blind. Zumindest diese Lichtschranken sind weit aus dem Filmspektrum raus. 

 

Der Plan ist, dass man die gewünschte Länge im Hellen einstellt und der Mikrocontroller dann rechtzeitig den Wickelmotor anhält. Oder ggf. ein Akkustisches Signal gibt, wenn Threshold erreicht. Nett wäre alternativ sonst auch ein Zugmagnet, der den Film passend abschneidet. :)

 

Zum Einrichten denke ich an ein kleines $3-OLED-Display, dass bei Dunkelheit (Lichtsensor) einfach verlischt. Diese Displays sind absolut dunkel, wenn sie nichts anzeigen, da sie keine Hintergrundbeleuchtung haben.

BCD-Schalter gehen auch, sind aber viel teurer...

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 10 Stunden schrieb F. Wachsmuth:

dass man die gewünschte Länge im Hellen einstellt und der Mikrocontroller dann rechtzeitig den Wickelmotor anhäl

 

Das klingt gut. Ja, die OLED-Displays sind ja sehr preisgünstig auch.  An LCDs, die hier im Einsatz sind,  habe ich eine ganze Schachtel voll (incl. Printbuchsen):

http://www.g-heinrichs.de/wordpress/index.php/attiny/

Sollten reichen. Auch ohne Hintergrundbeleuchtung.

Das Abschneiden des Filmes mittels Zugmagnet wäre dann ja haargenau.  Fast schon zu genau ;-)

Jedenfalls ein prima Projekt für die Praxis.   Bin mittlerweile etwas aus der Übung mit den Arduinos. "Auf Lager" hätte ich ja genug.

 

Das Projekt mit der Vertonung fesselt mich sehr. Das Sync-Signal, das aus der Nizo und aus der Agfa Movexoom 4000 kommt, hab ich mir zumindest mal auf dem Oszi angeguckt ;-) 

 

Bearbeitet von Carena48 (Änderungen anzeigen)
  • Like 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...

Filmvorführer.de mit Werbung, externen Inhalten und Cookies nutzen

  I accept

Filmvorfuehrer.de, die Forenmitglieder und Partner nutzen eingebettete Skripte und Cookies, um die Seite optimal zu gestalten und fortlaufend zu verbessern, sowie zur Ausspielung von externen Inhalten (z.B. youtube, Vimeo, Twitter,..) und Anzeigen.

Die Verarbeitungszwecke im Einzelnen sind:

  • Informationen auf einem Gerät speichern und/oder abrufen
  • Datenübermittlung an Partner, auch n Länder ausserhalb der EU (Drittstaatentransfer)
  • Personalisierte Anzeigen und Inhalte, Anzeigen- und Inhaltsmessungen, Erkenntnisse über Zielgruppen und Produktentwicklungen
Durch das Klicken des „Zustimmen“-Buttons stimmen Sie der Verarbeitung der auf Ihrem Gerät bzw. Ihrer Endeinrichtung gespeicherten Daten wie z.B. persönlichen Identifikatoren oder IP-Adressen für diese Verarbeitungszwecke gem. § 25 Abs. 1 TTDSG sowie Art. 6 Abs. 1 lit. a DSGVO zu. Darüber hinaus willigen Sie gem. Art. 49 Abs. 1 DSGVO ein, dass auch Anbieter in den USA Ihre Daten verarbeiten. In diesem Fall ist es möglich, dass die übermittelten Daten durch lokale Behörden verarbeitet werden. Weiterführende Details finden Sie in unserer  Datenschutzerklärung, die am Ende jeder Seite verlinkt sind. Die Zustimmung kann jederzeit durch Löschen des entsprechenden Cookies widerrufen werden.