Hallo,
ich habe in der Uni ein Messsystem aus drei verschiedenen Beleuchtungen
(LEDs rot und grün und blau) und einem Temperatursensor.
Dazu verwende ich eine Kamera, die ein externes Sync Signal ausgibt
(Strobe).
Ich bin nun auf der Suche nach einer möglichst einfachen Variante, die
drei Beleuchtungen an und aus zu schalten.
Die Beleuchtungen selber werden durch die Kamera ausgelöst, ich möchte
sie nur deaktivieren oder aktivieren, um sie auch mal abwechselnd
betreiben zu können.
Ich benötige also ein I2C IC (I2C habe ich in den System zur Verfügung),
der sich über I2C so konfigurieren lässt, dass ich drei GPIO-out
umschalten kann (Beleuchtung enable/disable), nachdem ein GPIO-in (sync)
aktiv war.
Ideal wäre ein autonomer Ablauf, so dass ich nicht nach jedem Frame
umkonfigurieren muss, zumal ich das sync Signal der Kamera nicht auf dem
Kamera PC habe. Sonst könnte ich ja einen I2C GPIO expander ständig nach
dem sync pollen und danach dann umprogrammieren.
Außerdem gut wäre ein ADC Eingang, um einen variablen Widerstand zur
Temperaturmessung verwenden zu können.
Ich möchte es möglichst einfach lösen.
Lösungen mit einem FPGA/CPLD mit integriertem I2C Slave sind denkbar,
aber zu krass.
Genauso ein µC incl. Software und ADC wäre denkbar, aber auch zu
aufwändig.
Gibt es solche Devices vielleicht fertig für derartig einfache Aufgaben?
Sowas wie ein I2C-FPGA oder sowas, den man erst zu Beginn konfiguriert,
bevor es losgeht? Keine Ahnung wie ich es noch beschreiben soll...
Vielen Dank!
Flash schrieb:> Gibt es solche Devices vielleicht fertig für derartig einfache Aufgaben?
die suche mit "I2C IO" ergibt:
https://www.google.com/search?q=i2c+io
Sind solche I2C Port Expander das, was du suchst?
> Außerdem gut wäre ein ADC Eingang
Wenn du einen I2C hast, dann kannst du dort doch auch den ADC
anschließen.
> I2C habe ich in den System zur Verfügung
Kann nicht das "System", das ja den I2C ansteuern muss, diesen Ablauf
steuern? Ich glaube, du solltest etwas mehr über das "System" sagen...
Flash schrieb:> Ich benötige also ein I2C IC (I2C habe ich in den System zur Verfügung),> der sich über I2C so konfigurieren lässt, dass ich drei GPIO-out> umschalten kann (Beleuchtung enable/disable), nachdem ein GPIO-in (sync)> aktiv war.PCF8574 + irgendein Computer, der ihn über I²C steuert.
> Ideal wäre ein autonomer Ablauf,
Das wäre ein programmierbarer Mikrocontroller. Fast jeder kann I²c. Zum
Beispiel Arduino Nano Module.
> Genauso ein µC incl. Software und ADC wäre denkbar,> aber auch zu aufwändig.
Ach so. Was wäre denn aus deiner Sicht weniger Aufwändig als ein
Mikrocontroller-Modul mit USB und dennoch nach Wunsch programmierbar?
Flash schrieb:> Genauso ein µC incl. Software und ADC wäre denkbar, aber auch zu> aufwändig.
Ja ja, wasch mir den Pelz aber mach mich nicht nass.
Am Besten einen Eierlegenden WollmilchSau-Arduino den man nur
kaufen und scnschliessen muss, gelle?
Lothar M. schrieb:> Sind solche I2C Port Expander das, was du suchst?
Das wäre eine Möglichkeit, die ich auch im Startpost angesprochen hatte.
Nachteil ist, dass dann alles vom Host System aus gesteuert werden muss.
Eine einmalige Config und dann autonomes Verhalten wäre besser.
Keine Ahnung wie robust I2C ist, um ein Timing-Regime stabil im Bereich
von 5-10ms aufrecht erhalten kann?
Stefan ⛄ F. schrieb:> Das wäre ein programmierbarer Mikrocontroller. Fast jeder kann I²c. Zum> Beispiel Arduino Nano Module.
Ich habe leider kaum Erfahrungen mit µC, geschweige denn kann ich
Software (nur Python) :D
Brauche ich für ein autonomes System nicht noch einen EEPROM, auf dem
die SW abgelegt wird?
Oder kann man den µC und was er tun soll direkt per I2C zum Startup
beschreiben und spart sich so den EEPROM?
jo mei schrieb:> Am Besten einen Eierlegenden WollmilchSau-Arduino den man nur> kaufen und scnschliessen muss, gelle?
Ich habe expliziet nach einem general purpose IC gefragt und nicht nach
einem µC.
Es gibt 100000 verschiedene IC, die manchmal schwer zu finden sind, weil
sich in der Suche immer ein IC vordrängelt, den man nicht finden möchte.
Wenn ein µC mit 4-5 GPIO und ADC die einzige Möglichkeit ist, sowas zu
realisieren, dann werde ich diese Möglichkeit umsetzen.
Bevor ich aber mir Unbekanntes anfange dachte ich, nachfragen kann nicht
schaden... nass werden darf ich schon. Aber eine Dusche reicht und kein
Vollbad ;)
Flash schrieb:> Ideal wäre ein autonomer Ablauf
Ein Programm kann nur ein MC ausführen und kein dummer IO-IC.
FPGA/CPLD sind viel zu schnell, hätten also keinerlei Vorteile.
Zum System:
Ich möchte Objekte getrennt in RGB aufnehmen und die Beleuchtung eben
steuern.
Getriggert werden die LED-flash durch den Sync der Kamera.
Ob ich nun den sync auf die drei LEDs multiplexe, oder die LEDs separat
via GPIO aktiviere, muss ich mir noch überlegen.
Ich werde auch nochmal prüfen, ob ein I2C Expander und ein I2C ADC
getrennt Sinn ergeben und Platz dafür ist. Vielleicht kann das Host
System dann alles übernehmen.
Flash schrieb:> Oder kann man den µC und was er tun soll direkt per I2C zum Startup> beschreiben und spart sich so den EEPROM?
MCs mit I2C-Bootloader sind mir nicht bekannt, UART-Bootloader sind aber
häufig zu finden.
Was wäre ein in Frage kommender MCU mit 16-24 pins, ADC und möglichst
wenig Gemüse drum herum (Takt, flash usw intern) und günstig?
Speicher und Performance sollten ja bei den Aufgaben nahezu in jedem MCU
ausreichend sein.
Habe gerade den ATTINY auf dem Schirm, da muss ich mal die externe
Beschaltung prüfen. Ich habe nämlich nur sehr wenig Platz im System.
Danke!
Flash schrieb:> Was wäre ein in Frage kommender MCU mit 16-24 pins, ADC und möglichst> wenig Gemüse drum herum (Takt, flash usw intern) und günstig?
Kriegst du ab 1,50€ als Modul.
Ich habe Dir bereits Arduino Nano empfohlen.
https://de.aliexpress.com/popular/arduino-nano.html
Flash schrieb:> Gibt es solche Devices vielleicht fertig für derartig einfache Aufgaben?
Ich glaube nicht, daß jemand Deine Aufgabe verstanden hat. Wie soll man
dann eine Empfehlung abgeben?
Wenn Du sie verstanden hast, dann müßtest Du sie auch beschreiben
können.
Flash schrieb:> Was wäre ein in Frage kommender MCU mit 16-24 pins, ADC und möglichst> wenig Gemüse drum herum (Takt, flash usw intern) und günstig?
ATtiny 2313A. Z.Z. z.B. bei Reichelt als Einzelstück in SO-20 für 0,97
€.
> Habe gerade den ATTINY auf dem Schirm, da muss ich mal die externe> Beschaltung prüfen. Ich habe nämlich nur sehr wenig Platz im System.
Externe Beschaltung für den Controller selber ist minimal ein
100n-Bypass-Kondensator. Dazu kommt natürlich das, was du für deine
Anwendung brauchst...
Das kannst Du mit einem einfachen µC von Atmel machen.
Ein Arduino sollte reichen. Der sollte auch 3-Kanalig PWM können. Hat
auch mehrere Analoge Eingänge.
Allerdings werde ich das Gefühl nicht los, dass Dein Konzept so vage
ist, dass Du die Sache mit Waschen und Bügeln mal außen vor lassen
solltest. Oder was Dir sonst noch einfällt.
Ursprünglich wolltest Du ja 3 LEDs ein- und ausschalten und die
Temperatur begutachten.
Mittlerweile willst Du die Beleuchtung steuern und ganze, recht komplexe
Sequenzen ablaufen lassen. Mit einem simplen Chip, der wohl
hellseherische Fähigkeiten hat.
Ich liebe Salami.