Zum Inhalt springen

DIY Cinegraph


ruessel

Empfohlene Beiträge

vor 3 Minuten schrieb ruessel:

Leider haben sie den 35mm Film in Streifen geschnitten, obwohl ich Fett auf der Tüte was anderes geschrieben hatte, ich wollte den Negativfilm als Rolle.

Das bekommst du bei Fuji/Eurocolor. Wenn ich einen Film nicht geschnitten haben will, gebe ich deshalb meine Filme bei Rossmann statt im DM ab. Rossmann arbeitet regional allerdings mit verschiedenen Labors zusammen (Eurocolor, Allcop, Orwonet).

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das musst du ausprobieren. Meine Erfahrungen sind zwischen einer und 3Wochen. Bei mir im Rossmann haben die auch mal erst nach einer Woche die Filmeinwurfbox gelehrt. Da kann dann das Labor nichts für. Ich dachte schon der Film wäre verschollen.

Soll es schneller gehen, wirst du wohl ein Labor wie Studio13 bemühen müssen. Mit Glück gibt es noch kleinere Labore oder Läden mit Minilab in der Umgebung.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Nein.

Ich bin noch nicht soweit, da ich mich mit Arduiono beschäftige, finde ich immer neue Sachen die ich unbedingt mal ausprobieren muss. Zur Zeit der Wärmebildsensor, wollte da mal zwischendurch eine Polaroidkamera mit bauen.

Für das Projekt bin ich an der LED Steuerung dran, ich sehe noch nicht klar welcher Farbraum der ideale ist. Dann sind Sensoren für die Fimabschaltung gekommen, müssen auch getestet werden. Kurzum, ich zeige hier das Ergebnis sobald ich einen deutlichen Fortschritt gemacht habe. Im Hintergrund laufen ja noch andere Sachen bei mir, nicht nur 8mm bis 70mm.  Gestern war ich beim Zoll und habe den 7 Zoll Touchscreen abgeholt, da muss es auch weiter gehen...... noch viel zu tun..... und der Garten braucht auch ein wenig Zeit.

Link zu diesem Kommentar
Auf anderen Seiten teilen

On 6/22/2019 at 10:27 AM, ruessel said:

Ich bin noch nicht soweit, da ich mich mit Arduiono beschäftige, finde ich immer neue Sachen die ich unbedingt mal ausprobieren muss...

 

Ja das kenne ich nur zu gut, so geht es mir auch immer wieder, aber das ist ja das Schöne an einem Hobby, wenn etwas "dazwischen" kommt, dann ruht das eine Projekt eben und man beschäftigt sich eine Zeit mit etwas Anderem. Das geht im Berufsleben leider nicht, weil man immer von Terminen getriggert wird. Ich baue gerade einen Projektor um und habe einem Eumig MARK8 einen Gleichstrommotor verpasst, die Steuerung wollte ich auch mit einem ARDUINO angehen, habe mich jetzt aber doch dazu entschlossen, den ESP32 zu verwenden, weil er doch deutlich leistungsstärker ist und einfach mehr Spaß macht. Ausserdem will ich statt der ARDUINO IDE die angeblich bessere PlatformIO testen, mal sehen wie gut die ist?

 

Wünsche dir weiter viel Erfolg bei deinem Projekt und werde es mit Adleraugen beobachten ?

 

Liebe Grüße aus Wien

Klaus

Link zu diesem Kommentar
Auf anderen Seiten teilen

WHAU, das ist aber eine feine Arbeit, RESPEKT ?

Was ich aber nicht ganz verstehen kann ist, wofür du für dieses Projekt ein 5V Netzteil mit 40A brauchst?

Auf diesem Adafruit Neopixel Shield sind SK6812 LED drauf und die brauchen pro LED 50mA also wären das selbst bei 40 LEDs doch nur 2A ?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Zitat

Was ich aber nicht ganz verstehen kann ist, wofür du für dieses Projekt ein 5V Netzteil mit 40A brauchst?

 

Wir haben doch  von "Zwischendurch" geschrieben. Es gibt soviel interessantes mit WS2812B + Arduino, nur bei 300 Leds pro Meter, kommt einiges zusammen.

 

Cinemaleinwand für Outdoor.....

 

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Stand der Dinge.

Wie schon geschrieben, lerne ich gerade Arduino zu programmieren. Sicherlich mache ich da auch große Fehler, die mich stundenlang beschäftigen. Manches löse ich im Moment nicht, wie z.B. OLED Ausgabe mit dem Farbensensor. Einzeln läuft der Sketch super, beide Softwarezeilen zusammen lassen das OLED dunkel. ?

Beide laufen über den I2C Bus, Adressenkonflikt kann es nicht geben....aber was weiß ich..... nix.

 

Aber ich kann nun die RGBW LEDs über Drehregler einzeln in Helligkeit steuern und der Farbsensor gibt mir über den seriellen Monitor Farbtemperatur, Lux, Rot, Grün, Blau und Weißwert an. Der Farbsensor ist wie eine Kamera mit Shutterwerte, zu kurze Werte geht auf die Auflösung der Farbtreue (max. 4x 16Bit - RGBW), zu lange Werte bremsen den Arduino komplett aus, während der Messung (max. 700 Millisekunden) stoppt der Ardunio bis er die Werte übernommen hat. Dann gehen die Drehregler nur noch stockend.

 

Heute lege ich mal ein Colornegativ drauf, mal schauen ob ich da den Rotstich herausdrehen kann......... wenn ich Zeit habe, mache ich mal ein kurzes Video davon.


 

#include <Adafruit_NeoPixel.h>
#include <Wire.h>
#include "Adafruit_TCS34725.h"


int red,green,blue,white = 0;

// Wichtig: Set pixel COUNT, PIN
#define PIN 6
#define NUMPIXELS 40

//Farbsensor definieren
Adafruit_TCS34725 tcs = Adafruit_TCS34725(TCS34725_INTEGRATIONTIME_154MS, TCS34725_GAIN_1X);

//Neopixel Betriebsart definieren
Adafruit_NeoPixel strip(NUMPIXELS, PIN, NEO_RGBW + NEO_KHZ800);

void setup() {
    //Pins für Poti setzen
    pinMode(0,INPUT);
    pinMode(1,INPUT);
    pinMode(2,INPUT);
    pinMode(3,INPUT);
    
   strip.begin();
   strip.show(); // Alle Leds auf "AUS"
   rainbowCycle(1);//LEDs Regenbogentest

   Serial.begin(9600);

  if (tcs.begin()) {
    Serial.println("Sensor o.k.");
  } else {
    Serial.println("Sensor defekt");
    while (1);
  }
}

void loop() {

    //Potiwerte auslesen
    //Potiwerte von 4096 auf 256 reduzieren
    red = map(analogRead(A8), 0, 4095, 0, 255);
    green = map(analogRead(A9), 0, 4095, 0, 255);
    blue = map(analogRead(A10), 0, 4095, 0, 255);
    white = map(analogRead(A11), 0, 4095, 0, 255);

    //LEDanzahl definieren
    for(int pixel=0;pixel<40;pixel++)
    {
        strip.setPixelColor(pixel, red, green, blue, white);
    }
    strip.show();//Update Regenbogenfarbe
    delay(50);

 uint16_t r, g, b, c, colorTemp, lux;

  tcs.getRawData(&r, &g, &b, &c);
  // colorTemp = tcs.calculateColorTemperature(r, g, b);
  colorTemp = tcs.calculateColorTemperature_dn40(r, g, b, c);
  lux = tcs.calculateLux(r, g, b);

  Serial.print("Color Temp: "); Serial.print(colorTemp, DEC); Serial.print(" K - ");
  Serial.print("Lux: "); Serial.print(lux, DEC); Serial.print(" - ");
  Serial.print("Rot: "); Serial.print(r, DEC); Serial.print(" ");
  Serial.print("Grün: "); Serial.print(g, DEC); Serial.print(" ");
  Serial.print("Blau: "); Serial.print(b, DEC); Serial.print(" ");
  Serial.print("Clear: "); Serial.print(c, DEC); Serial.print(" ");
  Serial.println(" ");
    
}

void rainbowCycle(uint8_t wait) {
  uint16_t i, j;

  for(j=0; j<256*3; j++) { // 3 Regenbogendurchläufe in der Startphase
    for(i=0; i< strip.numPixels(); i++) {
      strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) & 255));
    }
    strip.show();
    delay(wait);
  }
}

// Hilfsfunktion für Regenbogenfarben
uint32_t Wheel(byte WheelPos) {
  WheelPos = 255 - WheelPos;
  if(WheelPos < 85) {
    return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3);
  }
  if(WheelPos < 170) {
    WheelPos -= 85;
    return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3);
  }
  WheelPos -= 170;
  return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0);
}

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Miss nur kurz, aber mehrmals, und bilde den Durchschnitt aus einem Ringbuffer. Dann blockiersr Du nichts und kriegst trotzdem gut gelevelte Werte. 

 

Guck mal Zeile 534-543 hier, da mach ich quasi genau das: https://github.com/fwachsmuth/Synkino/blob/master/Synkino_Audio/Synkino_Audio.ino

 

numReadings ist eine Konstante, die einfach sagt, wie viele Messwerte du laufend Mitteln willst. 

delta ist der Wert, den ich laufend Mitteln will.  

 

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

Moin,

muss ich mir anschauen um das zu verstehen.

Mir ist auch noch nicht klar, wie ich mit den gemessenen Werten umzugehen habe. Es sollte ja eine "Automatik" werden, Filmnegativ auflegen, mit weissen Licht durchstrahlen, auf Schalterdruck Rot/Orangewert messen, berechnen und passende RGBW Werte leuchten lassen. So simpel wie sich das anhört ist es nicht, da RGBW berechnet wird. Da sind wir dann voll im Farbkreis berechnen, ist eigentlich über meiner Schulbildung.... aber man kann sich ja weiterbilden ?

Link zu diesem Kommentar
Auf anderen Seiten teilen

 

 

Hier der Code:
 

/**
Version 0.38 Wolfgang Winne 02.07.2019
Farbsensor TCS34725 misst im HSV Farbraum, auch lassen sich die Neopixel in diesen Farbraum regeln.
Der Farbton = Hue wird als Gradzahl zwischen 0° und 360° auf dem Standardfarbkreis angegeben.
Denkt man sich Rot bei 0°, dann liegt Grün bei 120° und Blau bei 240°.
Die Sättigung = Saturation beschreibt die Farbintensität (Reinheit) der Farbe.
Sie wird in Prozent angegeben: 100% = reinste Farbe, 0% = Neutralgrau.
Die Helligkeit = Brightness ist die relative Helligkeit oder Dunkelheit der Farbe.
Sie wird ebenfalls in Prozent angegeben: 100% = volle Helligkeit, 0% = keine Helligkeit (Schwarz).
Das HSB-Farbmodell kann insgesamt 23,6 Millionen Farben darstellen. Diese Zahl ergibt sich aus den 8 Bit für die Helligkeit, 8 Bit für die Farbsättigung und 360 möglichen Werten für den Farbton.

*/
//LEDs
#define NUMBEROFPIXELS 40 //Anzahl der LEDs
#define PIXELPIN 6 //PIN für serielles Steuersignal

#include "Arduino.h"
#include <Adafruit_NeoPixel.h>
#include <NeoPixelPainter.h>

//Farbsensor
#include <Wire.h>
#include "Adafruit_TCS34725.h"
float red;
float green;
float blue;
float Maximum;
float Minimum;
float rd;
float gd;
float bd;

int hx,sx,vx = 0; //LEDS auf 0 (Aus) setzen

// Betriebsart der LEDs
Adafruit_NeoPixel neopixels = Adafruit_NeoPixel(NUMBEROFPIXELS, PIXELPIN, NEO_GRBW + NEO_KHZ800);

// Betriebsart des Farbsensors
Adafruit_TCS34725 tcs = Adafruit_TCS34725(TCS34725_INTEGRATIONTIME_2_4MS, TCS34725_GAIN_1X);

//Parameter Global setzen
NeoPixelPainterCanvas pixelcanvas = NeoPixelPainterCanvas(&neopixels); //Canvas erzeugen, gelinkt zum Neopixel
NeoPixelPainterBrush pixelbrush = NeoPixelPainterBrush(&pixelcanvas); //Brush erzeugen, gelinkt zum Canvas


void setup() {

  Serial.begin(9600);


  //PIN setzen für Poti
    pinMode(8,INPUT);
    pinMode(9,INPUT);
    pinMode(10,INPUT);

  pinMode(PIXELPIN, OUTPUT);

  neopixels.begin();
 
}

void loop() {

  //Sensor auf HSV mappen
  uint16_t r, g, b, c;

tcs.getRawData(&r, &g, &b, &c);
red=r;
green=g;
blue=b;

rd=red/255;
gd=green/255;
bd=blue/255;

Maximum= max(rd,gd);
Maximum=max(Maximum,bd);
Minimum= min(rd,gd);
Minimum=min(Minimum,bd);

float h, s, l = (Maximum + Minimum) / 2;

if (Maximum == Minimum) {
    h = s = 0; // achromatic
} else {
    double d = Maximum - Minimum;
    s = l > 0.5 ? d / (2 - Maximum - Minimum) : d / (Maximum + Minimum);
    if (Maximum == rd) {
        h = (gd - bd) / d + (gd < bd ? 6 : 0);
    } else if (Maximum == gd) {
        h = (bd - rd) / d + 2;
    } else if (Maximum == bd) {
        h = (rd - gd) / d + 4;
    }
    h /= 6;
    }

    //Potiwert lesen und auf 0-255 reduzieren (8Bit)
    hx = map(analogRead(A8), 0, 1024, 0, 255);
    sx = map(analogRead(A9), 0, 1024, 0, 255);
    vx = map(analogRead(A10), 0, 1024, 0, 255);

     HSV brushcolor;
  brushcolor.h = hx; //Farbe
  brushcolor.s = sx; //Farbreinheit
  brushcolor.v = vx; //Farbhelligkeit

  pixelbrush.setSpeed(4096); //Brushgeschwindigkeit
  pixelbrush.setColor(brushcolor); //Brush auf gewählte Farbe setzen
 
 
  neopixels.clear(); //Alles auf Null setzen falls noch LEDs leuchten

  pixelbrush.paint(); //Brush auf Farbe setzen
  pixelcanvas.transfer(); //Transfer Canvas auf Neopixel

  neopixels.show();

//HSV Potiwertausgabe
Serial.print(hx);Serial.print(" ");Serial.print(sx);Serial.print(" ");Serial.print(vx);Serial.print(" ");
Serial.println(" ");

//Sensorausgabe
Serial.print(b);Serial.print(" ");Serial.print(r);Serial.print(" ");Serial.print(g);Serial.print(" ");
Serial.println(" ");
 
}

 

 

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

  • 4 Wochen später...

Heute habe ich mich mit der Motorsteuerung kurz beschäftigt. Kommen weitere Funktionen hinzu wie z.B. Umspulen mit langsamer Ausfedelgeschwindigkeit etc, kommt der Arduino langsam an seine Grenzen.

Ich habe nun den D1 CH340 Arduino Uno für mich gefunden, statt 16 MHz getaktet - 80 MHz!! Und angeblich Pinkompatibel. Beim Chinamann unter 7 Euro zu haben......

https://www.ebay.de/itm/D1-CH340-WiFi-Arduino-UNO-R3-Development-Board-ESP8266-ESP-12E-DE/303220396733?ssPageName=STRK%3AMEBIDX%3AIT&amp;_trksid=p2060353.m2749.l2649

 

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das ist leider das große Problem mit den Libraries, die funktionieren oft nur in einer ganz definierten Umgebung halbwegs passabel, kaum arbeitet man mit eigenen Interrupts, mit der WiFi Verbindung, MQTT oder dergleichen (also mit mehreren unterschiedlichen Libraries), dann funktioniert plötzlich EINIGES nicht mehr so wie es sollte. Und dann beginnt die wirklich mühsame Fehlersuche und die kostet irre viel Zeit, wenn man es überhaupt schafft!

 

Beim ESP8266 solltest ein wenig aufpassen, der hat zwar deutlich mehr Leistung wie ein ARDUINO, aber überlege dir vorher gründlich wie viele Pins du wirklich brauchst, weil besonders viele hat der nicht und wenn du schon umsteigst, dann nimm doch gleich den Nachfolger vom ESP8266 den ESP32, der kostet kaum noch mehr und da hast dann wirklich genügend Reserven und auch Pins.

 

Ich bin auch der Meinung ein ARDUINO sollte da locker reichen, aber du bist Programmieranfänger (wenn ich das recht verstanden habe) und es wird dich noch verdammt viel Zeit kosten zu lernen, einen wirklich brauchbaren Code zu schreiben, das geht nicht über Nacht, auch wenn Viele das denken. Diese Codeschnipsel die man im Internet findet, sind oft nette Beispiele, wie es ungefähr funktionieren könnte, aber mehr schon nicht und viele Codeschnipsel zusammen ergeben noch lange keinen brauchbaren Code.

 

Ich will dich KEINESFALLS demotivieren, aber was du dir vorgenommen hast, ist nicht ganz so trivial, das ist sicher kein einfaches Anfängerprojekt und gerade wenn es um Steuern und Regeln geht, dann solltest dich gleich mal mit der Interrupt Programmierung vertraut machen ?

  • Like 2
Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich habe mir jetzt das Video angesehen ... nur was will uns der Typ damit sagen ... der ESP8266 ist schneller wie der ARDUINO UNO ... tolle Aussage und das zeigt er mit zwei völlig sinnlosen Beispielen. Von Pinkompatibel kann wohl keine Rede sein, ich habe jetzt beide vor mir liegen und sie schauen sich zugegeben sehr ähnlich und beide haben die wichtigsten Interfaces I2C, SPI, Tx, Rx, PWM auch an den gleichen Pins rausgeführt, aber du solltest trotzdem zuvor die Datenblätter der beiden Controller genau studieren, so gleich sind die auch wieder nicht, also Vorsicht.

 

Du solltest auch einen besonders kritischen Blick auf den AD-Wandler des ESP8266 werfen  ... ja genau auf den, weil der hat nur einen Kanal ... und ich denke dir werden auch schnell die nutzbaren Pins ausgehen.

 

Also wenn du schon wechseln willst, dann schau dir zumindest diesen Vergleich mal kurz an ESP6266 zu ESP32

 

http://esp32-server.de/vergleich/

 

aber ich würde trotzdem erst mal beim ARDUINO bleiben, der reicht und ist einfacher zu verstehen und programmieren ?

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Danke für die Hinweise. Ja, bin totaler Anfänger, habe zum nachschlagen immer das Buch Grundkurs C programmieren aufgeschlagen liegen.

Pinkompatibel meinte ich damit, dass das CNC Shield eigentlich darauf ohne Hardwareänderung laufen müsste. Das der ESP32 nochmal schneller ist, hatte ich schon gesehen, aber kein Arduino Aufbau dafür gesehen (passend für CNC Shield).

 

Aber heute ist es zu heiß zum denken (kühle gerade mit viel Grundwasser mein Flachdach ab). Wenn es diese heiße Tage öfters gibt, sollte ich diese Pumpvorgänge mit einer Steuerung automatisieren, da sollte ein UNO völlig ausreichen. ?

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 5 Monate später...

So, nun haben wir 2020 und das Teil habe ich nicht weiter machen können....... leider aus Gesundheitlichen Gründen. 3 völlig unterschiedliche Krankheiten hintereinander geben mir langsam zu denken, kommt da noch mehr? Was soll es, neues Jahr neues Glück. Ich hoffe ich kann mit dem Scanner wieder neu anfangen, sobald die Dinge erledigt sind, die jetzt auch 6 Monate liegen geblieben sind.

 

Euch ein gesundes und erfolgreiches Jahr 2020!

Link zu diesem Kommentar
Auf anderen Seiten teilen

53 minutes ago, ruessel said:

So, nun haben wir 2020 und das Teil habe ich nicht weiter machen können......

 

Ich habe mich schon gewundert wo du hingekommen bist, denn ich verfolge deine Arbeiten mit grossem Interesse. Das tut mir echt leid, dass du aus gesundheitlichen Gründen so aus der Bahn geworfen wurdest, aber ich hoffe es geht dir wieder gut und du hast alles überstanden. Gehe es aber langsam an, die Gesundheit ist doch das WICHTIGSTE was wir haben.

 

Ich selbst habe in meinem Leben noch 44 Arbeitstage und ab Ende März bleibe ich daheim, dann möchte ich ein ähnliches Projekt beginnen, aber zuerst muss ich meine Werkstatt im Keller fertig bekommen. Ich wünsche dir ALLES GUTE für deinen Neustart beim Scanner und vielleicht können wir uns ja im Laufe des Jahres gegenseitig etwas helfen.

 

Ich wünsche euch ALLEN hier im Forum ALLES GUTE im neuen Jahr und vor allem Gesundheit

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.