Zum Inhalt springen

Friedemann Wachsmuth

Mitglieder
  • Gesamte Inhalte

    13.257
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    550

Alle erstellten Inhalte von Friedemann Wachsmuth

  1. Mir fällt gerade wieder ein, dass mein damaliger Testptojektor so sehr störte, dass außerordentliche Interrupts ausgelöst wurden. Bin nicht mehr ganz sicher wir ich das gelöst hatte...
  2. Du solltest die Geschwindigkeit via Interrupt (ISR) auslesen. Das ist wesentlich exakter. Desweiteren beachte, dass Du die Messwerte im Falle von Divisionen auch als float castest :) Ich messe die Umdrehungen per Reflektorlichtschranke an der Motorwelle (also optisch), im Prinzip ist das aber das gleiche. Hier mal ein bisschen Code, der zumindest messtechnisch gut funktionierte als ich ihn zuletzt laufen hatte... das ist nix fertiges, aber you get the idea und Debug-Output über die serielle. Ignoriere die rmp3.calls, das funktionierte so nicht richtig :) // Vrtonr 0.4 #include <RogueSD.h> #include <RogueMP3.h> #include <SoftwareSerial.h> // Init RogueMP3 SoftwareSerial rmp3_serial(6, 7); RogueMP3 rmp3(rmp3_serial); RogueSD filecommands(rmp3_serial); #define SONG "/test3.mp3" // Konfiguration Eye byte sollfps = 18; #define DISCSEGS 1 // Wieviele Segmente hat die Scheibe? Bzw. Motorwellenfaktor // Pin Deklarationen const int ledPin = 13; // the pin that the LED is attached to int eye1Int = 0; // Pin 2 // const int emitterPin = 5; // Hier kann man noch Energie sparen // Modes! #define IDLE 1 #define STOP 2 #define RUN 3 #define PLAY 4 // Variablen-Deklarationen fürs Auge unsigned long rtStartMillis = 0; unsigned long rtMillis = 0; unsigned long filmStartMillis = 0; unsigned long currentMillis = 0; byte currentRtFrameCounter = 0; float speedOffset = 0; int lastSpeed = 100; int newSpeed = 100; boolean readLastImpMillis = false; boolean run_init = true; boolean idle_init = true; // Variablen für die ISR volatile long totalFrameCounter = 0; volatile byte rtFrameCounter = 0; volatile unsigned long lastImpMillis = 0; volatile byte mode = IDLE; // Los gehts: Setup void setup() { pinMode(eye1Int, INPUT); digitalWrite(eye1Int, LOW); // pinMode(emitterPin, OUTPUT); // digitalWrite(emitterPin, HIGH); pinMode(ledPin, OUTPUT); Serial.begin(9600); rmp3_serial.begin(9600); Serial.println("rMP3 inited"); rmp3.sync(); rmp3.stop(); rmp3.setvolume(10); rmp3.setspeed (newSpeed); rmp3.playfile(SONG); rmp3.playpause(); // Musik pausieren // char status = 'S'; uint8_t i; // int16_t newtime; // volume = rmp3.getvolume(); // this only gets the right volume // Attach the interrupt for our eye attachInterrupt(eye1Int, count, RISING); } void loop() { switch(mode) { case IDLE: idle(); break; case STOP: stop(); break; case RUN: run(); break; } } // ******************************************************************************************************** void run() { if(run_init) { rmp3.playpause(); // Musik starten run_init = false; Serial.println(" PROJECTOR RUN : AUDIO START "); } // Prüfen, ob der Projektor läuft (wann war der letzte Interrupt?) // TODO: Brauche ich den Semaphor? if (readLastImpMillis) { lastImpMillis = millis(); readLastImpMillis = false; } currentMillis = millis(); currentRtFrameCounter = rtFrameCounter; // if((rtFrameCounter) / DISCSEGS >= sollfps) { if(currentRtFrameCounter >= sollfps) { rtMillis = currentMillis - rtStartMillis; // Wieviele ms hat es gedauert? Serial.print(currentRtFrameCounter); // Serial.print((rtFrameCounter) / DISCSEGS); Serial.print(" f in "); Serial.print(rtMillis); Serial.print(" ms, so "); speedOffset = (float) ((float) rtMillis - 1000)/10; newSpeed = 100 + (int) speedOffset; Serial.print(speedOffset); Serial.print ("% off. FC: "); Serial.print(totalFrameCounter); Serial.print (", Film: "); Serial.print((totalFrameCounter/18)/60,DEC);Serial.print(':'); if((totalFrameCounter/18)%60 < 10) Serial.print('0'); Serial.print((totalFrameCounter/18)%60,DEC); Serial.print (totalFrameCounter/18); Serial.print (", Audio: "); playbackinfo pinfo; pinfo = rmp3.getplaybackinfo(); Serial.print(pinfo.position/60,DEC);Serial.print(':'); if(pinfo.position%60 < 10) Serial.print('0'); Serial.print(pinfo.position%60,DEC); Serial.print(" Diff: "); Serial.print(pinfo.position-(totalFrameCounter/18)); Serial.print(" New Speed: "); Serial.println(newSpeed); rtStartMillis = currentMillis; // ms-Zähler zurücksetzen rtFrameCounter = 0; // Umdrehungszähler zurücksetzen if (newSpeed != lastSpeed) { rmp3.setspeed(newSpeed); // delay(50); lastSpeed = newSpeed; } } if (currentMillis - lastImpMillis > 250) { mode = STOP; } } void idle() { // Serial.println(rtFrameCounter); rtStartMillis = millis(); // Es könnte ja gleich wieder losgehen... if(idle_init) { Serial.print(" PAUSE AT "); playbackinfo pinfo; pinfo = rmp3.getplaybackinfo(); Serial.print(pinfo.position/60,DEC);Serial.print(':'); if(pinfo.position%60 < 10) Serial.print('0'); Serial.println(pinfo.position%60,DEC); idle_init = false; } } void stop() { Serial.println(" PROJECTOR STOP: AUDIO STOP "); rtFrameCounter = 0; // Roundtrip Umdrehungszähler zurücksetzen rmp3.playpause(); // Musik anhalten run_init = true; idle_init = true; mode = IDLE; } // Wieviel Zeit ist seit Projektorstart vergangen? // An welcher Filmbildnummer sind wir jetzt? // An welcher Filmbildnummer müssten wir jetzt sein? // Wie ist die Differenz? In Bildern und in Sekunden? // ISR void count() { volatile static unsigned long last_interrupt_time = 0; volatile unsigned long interrupt_time = millis(); // Cheeeeap debouncing if (interrupt_time - last_interrupt_time > 30) { totalFrameCounter++; rtFrameCounter++; readLastImpMillis = true; mode = RUN; last_interrupt_time = interrupt_time; } }
  3. Ich möcht ja zu gerne mal wissen, wer von den hier anwesenden Forenten jemals eine 122m-ROlle 16mm Tri-X gekauft oder gar verwendet hat... ;)
  4. Ich glaube nicht, dass das am Tonkopf liegt. Klingt eher nach Kondensatorproblem. Was ist das da links unten auf dem Bild für ein einbeinig balancierender MKT? Wie auch immer, ich würde erstmal die KOppelkondensatoren prüfen/tauschen bzw. das SIgnal mit dem Skope verfolgen. Vielleicht haut auch der Arbeitspunkt der Verstärkers ab weil ein Widerstand hochohmig geworden ist... oder ein Elko kriecht und zieht die Spannung runter. Gibt einige Möglichkeiten. :/
  5. http://www.andecfilm.de/de/d_fundgrube.htm
  6. Diesel. ;)
  7. Vermutlich nichts gutes. CD-3 (aus E6) und CD-4 (aus C-41) sind noch relativ verwandt, CD-1 ist anders. Ölgekapselte vs. Wasserlösliche Kuppler spielen da auch noch eine Rolle. Aber Versuch macht kluch... Aber bedenke: je älter, desto kälter. U9165 ist für 20-24° gedacht, sonst löst sich die Emulsion ab.
  8. Für Moviechromes KANN man mit E6 arbeiten. Wird halt fluffig, Pastell, blaue Schatten. Hat aber was. Gerade rot kommt toll. Mach lieber 30° als 38°. Bei Agfachrome brauchst du das alte Agfacolor-Rezept mit CD-1 als Farbentwickler (auch TSS genannt, Formel findest du mit googlen nach U9165, der entsprechenden Orwo-Vorschrift.) an CD-1 zu kommen ist schwer, es ist extrem giftig. Andere Farbentwickler funktionieren leider nur sehr unbefriedigend. Mit passender Chemie bekommt man aber echt tolle Ergebisse hin!
  9. Jau, bestimmt. Belichte etwas reichlich wegen erhöhtem Grundschleier.
  10. Beachte, das CCTV-Linsen meist ziemlich mies sind. Sie sind nicht sonderlich scharf, haben keine plane Schärfeebene, sind nicht auf unendlich gerechnet, starke chromatische Aberration. Oft werden sie am Rand auch extrem weich und vignettieren stark. Die Blenden sind oft nur dreieckig, nur mit Spiel einzustellen. Auch ragen diese Objektive oft zu weit ins Kameragehäuse rein, selbst wenn das Auflagemaß stimmt. Der Preis ist dann echt viel zu hoch. Ich will nicht rumunken, habe aber selber schon (zu) viel Geld für CCTW-WW_Linsen ausgegeben, die letztendlich dann doch alle Mist oder ungeeignet waren. Halte die Augen auf nach dem EBC-Fujinon 5,5/1.8 Fixfocus, das gelegentlich an ZC-1000 hängt oder missachtetes Zubehör ist. Es ist wirklich hervorragend gut.
  11. Wenn Du K40 umkehren willst, belichte ihn 2-3 Blenden über, also wie 5-10 ASA. Soalrisationen deuten auf zu schwaches/kurzes/kaltes Bleichbad hin. Es bleibt eine Notlösung.
  12. Der BW400CN war doch überflüssig wie ein Kropf, der XP2 ist Welten besser und nach wie vor zuhaben. Und nein, der Tri-x wird nicht eingestellt -- er wird nach wie vor gegossen und das bleibt wohl auch noch eine Weile so. Ein schöner Artikel über die magische EInzigartigkeit des Tri-X findet sich hier: http://moreintelligentlife.com/content/features/bryan-appleyard/tri-x-factor?page=full In Kleinbild ist er mein absoluter Lieblingsfilm, ich fotografiere davon 5-10 Patronen pro Monat. Bei Super-8 hat der CHS-II diesen Platz abgelöst, wobei ich den Tri-X immer noch extrem gerne mag und gute Vorräte habe :)
  13. Ja. Vor allem der CD sollte exakt abgemessen werden. Nimm den Rest doch einfach ins nächste Gebinde mit rüber.
  14. Nee, 200D ist Agfa Aviphot Chrome. Ich freu mich riesig drauf.
  15. Ja, den Suchertubus kann man abschrauben. Beosnders gut ist dieses Suppenzoom aber nicht...
  16. Bin wieder da. Her damit, Volker... :)
  17. Oops. Schon wieder 100GB weg? Hab gleich mal Bescheid gesagt.
  18. Wenn du noch zwei Wochen warten kannst, schick ihn mir. Bei mir wartet eh einiges an Foma und dann bade ich ihn dir mit. 10€ Forentenpreis. :)
  19. Unbedingt entwickeln. Ich glaube einige hier haben nicht kapiert, dass Dein Foto nachgestellt ist...
  20. Eigentlich gewinnt man bei Umkehrung eher eine Blende. Hat aber in der Tat mit der jeweiligen Entwicklung zu tun.
  21. Mir klingt das immer noch zu artsyfartsy. Ziellos, bemüht, willkürlich. Aber ich war nicht da — bin also gespannt was du berichtest, Klaus!
  22. Nur der Form halber: Bedenke, dass bei Entwicklung mit C-41 keine Langzeitstabilität garantiert ist. Der Farbentwickler ist die falsche Substanz, die entstehenden Farbstoffe sind u.U. nicht stabil. Gerade in diesem Fall lohnt übrigens Anwendung des Stabibades. (Das ist Theorie. Persönlich ist mir noch kein Colornegbild abgehauen, aber ich mach das auch erst ein paar Jahre...)
  23. Die richtigen Fette gibt's bei Micro-Tools. Bezeichnung kann ich Dur nachher mal raussuchen, oder was abfüllen und zuschicken. Nimm kein Standardfett wie Vaseline, sonst rutscht Dein Zoom sobald es warm ist.
×
×
  • 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.