Forum: Mikrocontroller und Digitale Elektronik Praktische Realisierung zum Auslesen von 96 Lichtsensoren


von Markus E. (markus_e283)


Lesenswert?

Hallo Community,

ich habe eine Idee zu einem Projekt, dass einen Messprozess 
automatisieren soll. Jetzt bin ich gerade dabei zu überlegen wie die 
konkrete Implementierung aussehen soll.

Erstmal das Projekt:
Ziel ist es in einer Platte mit 96 Einbuchtungen die Änderung der 
optischen Dichte verschiedener Flüssigkeiten über die Zeit zu messen. 
Dazu möchte ich einen 600nm Laserpointer an eine in XY-Richtung 
steuerbare Lenkeinheit festmachen (kann man sich vorstellen wie den 
Druckkopf eines 3D-Druckers) und die einzelnen Einbuchtungen in ca. 
10min Abständen abfahren. Unter den Einbuchtungen sollen Photodioden 
angebracht werden, die die Intensität des nicht gestreuten Lichts des 
Laserpointers messen.

Das klingt erstmal einfach, wenn man es nur für eine einzige Einbuchtung 
realisieren will. Für 96 Einbuchtungen scheint es aber bei der 
Skalierung zu einigen Problemen zu kommen. Ich würde das Auslesen der 
Sensoren gerne mit einem Raspberry Pi umsetzen, da damit die spätere 
Kommunikation mit der Lenkeinheit einfach wäre. Wie ich aber nun sehe 
scheinen die meisten Raspberries nur 2 SPI Anschlüsse zu haben und wenn 
ich z.B. einen MCP3008 als ADC nutzen würde, könnte ich maximal 16 
Sensoren auslesen.

Das Problem liegt also darin wie man am besten 96 Sensoren ausliest 
(oder eine andere Methode findet um alle Positionen zu messen).

Gibt es hier Ideen für eine (am besten einfache) Variante um die 96 
Sensoren auszulesen?
Oder weiß jemand ob es so eine Art "Flächensensor" gibt? Ich stell mir 
das wie einen Display vor bei dem jeder Pixel ein Lichtsensor ist (würde 
dann die Intensität und dazugehörigen Koordinaten ausgeben).

Natürlich freue ich mich auch über komplett andere Ideen wie die 
Realisierung der Messung dieser 96 Einbuchtungen umsetzen könnte.

Grüße,
Markus

von Rüdiger B. (rbruns)


Lesenswert?

Warum verfährst du nich die Platte ?

von Andreas B. (bitverdreher)


Lesenswert?

Warum faehrst Du nicht einen Sensor unten parallel mit dem Laser oben 
mit?

von Harald K. (kirnbichler)


Lesenswert?

Markus E. schrieb:
> und wenn ich z.B. einen MCP3008 als ADC nutzen würde, könnte
> ich maximal 16 Sensoren auslesen.

Du kannst beliebig viele dieser ADCs an den SPI-Bus anschließen, wenn Du 
die Chipselect-Leitungen davon mit Deiner Software passend ansteuerst.

von Rahul D. (rahul)


Lesenswert?

Eigentlich brauchst du doch nur einen ADC (mit einem Kanal) und "einen" 
Multiplexer für die 96 Sensoren.

Oder du verwendest 12 deiner ADC und schaltest due Chip-Select-Leitungen 
der einzelnen ICs.

Ums Multiplexing (ob Signal- oder Steuerleitung) wirst du nicht 
herumkommen, wenn du keine externe "Intelligenz" (Microcontroller oder 
dergl.) verwendest.

von Andreas B. (bitverdreher)


Lesenswert?

Rüdiger B. schrieb:
> Warum verfährst du nich die Platte ?

Oder vielmehr: Platte in x und Laser mit Sensor in Y Richtung. Das 
vereinfacht die Mechanik erheblich.

von Klaus K. (Gast)


Lesenswert?

> Das Problem liegt also darin wie man am besten 96 Sensoren ausliest
> (oder eine andere Methode findet um alle Positionen zu messen).

Dieses Problem wurde 1970 durch die Erfindung des Ladungsgekoppelten 
Sensors - CCD gelöst. 2009 gab es den Nobelpreis dafür.

https://de.wikipedia.org/wiki/CCD-Sensor

von Rainer W. (rawi)


Lesenswert?

Markus E. schrieb:
> Das Problem liegt also darin wie man am besten 96 Sensoren ausliest
> (oder eine andere Methode findet um alle Positionen zu messen).

Größere Arrays von Photosensoren inklusive Ausleseelektronik und WLAN 
Interface gibt es für kleines Geld. Ein Eigenbau lohnt da nicht.
https://www.az-delivery.de/products/esp32-cam-modul-esp32-wifi-bluetooth-modul-inklusive-kamera?variant=32376084136032

Beim Auslesen kannst du mehrere Kanäle zusammenfassen, um auf deine 
erforderliche Auflösung zu kommen (Binning)

: Bearbeitet durch User
von Falk B. (falk)


Lesenswert?

Markus E. schrieb:

> scheinen die meisten Raspberries nur 2 SPI Anschlüsse zu haben

Das reicht locker. Die Anzahl von SPI-IC an einem SPI ist nahezu 
unbegrenzt. Naja, nicht wirklich, aber deutlich höher als 2!

 und wenn
> ich z.B. einen MCP3008 als ADC nutzen würde, könnte ich maximal 16
> Sensoren auslesen.

Nö.

> Das Problem liegt also darin wie man am besten 96 Sensoren ausliest
> (oder eine andere Methode findet um alle Positionen zu messen).

Mit einem passenden Multiplexer vor dem ADC oder einem Bus ala I2C etc., 
welcher 96 einzelne Sensoren mit ADC digital abfragt.

von Michael B. (laberkopp)


Lesenswert?

Rahul D. schrieb:
> Eigentlich brauchst du doch nur einen ADC (mit einem Kanal) und "einen"
> Multiplexer für die 96 Sensoren.

Richtig, weil der Laser zu einer Zeit nur an eine Stelle scheint.

Markus E. schrieb:
> Unter den Einbuchtungen sollen Photodioden angebracht werden,

Wie wertest du die Photodioden aus, Transimpedanzverstärker oder 
Sperrstrom ?

Klar ist: eine Photodiode ist ein 2-pol, schliesst man einen Pol nicht 
an (Analogschalter) ist sie nicht vorhanden. Nur sind 96 Analogschalter 
auch nicht witzig. Die Frage ist also: geht es mit einer Matrix von 12 x 
8.

Die Antwort hängt vom erlaubten Fehler ab den die Analogschalter (CD4051 
gut genug?) bringen.

: Bearbeitet durch User
von Andreas B. (bitverdreher)


Lesenswert?

Michael B. schrieb:
> Rahul D. schrieb:
>> Eigentlich brauchst du doch nur einen ADC (mit einem Kanal) und "einen"
>> Multiplexer für die 96 Sensoren.
>
> Richtig, weil der Laser zu einer Zeit nur an eine Stelle scheint.

Deswegen braucht man auch nicht mehrere Sensoren oder Multiplexer 
sondern nur einen Sensor, den man mit dem Laser mitfuehrt.
Aber das hatte ich ja schon erwaehnt. Man kann sich das Leben auch 
kompliziert machen.

: Bearbeitet durch User
von Norbert (der_norbert)


Lesenswert?

Markus E. schrieb:
> azu möchte ich einen 600nm Laserpointer an eine in XY-Richtung
> steuerbare Lenkeinheit festmachen (kann man sich vorstellen wie den
> Druckkopf eines 3D-Druckers) und die einzelnen Einbuchtungen in ca.
> 10min Abständen abfahren. Unter den Einbuchtungen sollen Photodioden
> angebracht werden, die die Intensität des nicht gestreuten Lichts des
> Laserpointers messen.

Das setzt aber schon einmal eine gute mechanische Zentrierung (und 
Wiederholbarkeit derselben) voraus.
Laser sind ja nicht gerade berühmt dafür Arm-dicke Strahlen zu erzeugen. 
Und Photodioden nicht für Teller-große Sensorabmessungen.
Der mechanische Aspekt dürfte um ein Vielfaches aufwendiger in der 
Realisation sein als der Elektronische.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Rüdiger B. schrieb:
> Warum verfährst du nich die Platte?

Andreas B. schrieb:
> Warum faehrst Du nicht einen Sensor unten parallel mit dem Laser oben
> mit?
Jeder dieser beiden Ansätze ist besser als der geplante Weg, weil es 
damit nur 1 einziges Messystem gibt, das kalibriert werden muss. Und 
eben nicht 96 davon. Und wie bei Langzeitmessungen üblich könnte man das 
eine einzige Messsystem auch zwischendurch mal auf Zuverlässigkeit und 
Langzeitstabilität kontrollieren und ggfs. nachjustieren.

: Bearbeitet durch Moderator
von Rahul D. (rahul)


Lesenswert?

Michael B. schrieb:
> Rahul D. schrieb:
>> Eigentlich brauchst du doch nur einen ADC (mit einem Kanal) und "einen"
>> Multiplexer für die 96 Sensoren.
>
> Richtig, weil der Laser zu einer Zeit nur an eine Stelle scheint.

Würde der alle gleichzeitig bescheinen und man die Messergenbisse auch 
alle "gleichzeit" brauchen, müsste man den selben Aufbau für einen 
Einzelmessung mehrfach haben.

Andreas B. schrieb:
> Deswegen braucht man auch nicht mehrere Sensoren oder Multiplexer
> sondern nur einen Sensor, den man mit dem Laser mitfuehrt.
Wenn der mechanische Aufbau das zulässt...
Man könnte den Laser auch per Spiegel umlenken, was die 
Fehleranfälligkeit durch den X-Y-Tisch (Warum überhaupt 2D?) verringern 
würde.
Ich kenne den Aufbau nicht.
Vielleicht möchte man durch die einzelnen "Einbuchtungen" 
Frendeinstrahlungen verhindern.

> Aber das hatte ich ja schon erwaehnt.
Ja...

von Markus E. (markus_e283)


Lesenswert?

Rüdiger B. schrieb:
> Warum verfährst du nich die Platte ?

Also Platte verfahren geht leider nicht da dafür in dem Setup kein Platz 
übrig ist.

Klaus K. schrieb:
> Dieses Problem wurde 1970 durch die Erfindung des Ladungsgekoppelten
> Sensors - CCD gelöst. 2009 gab es den Nobelpreis dafür.

Die Einbuchtungen sind auf einer Fläche von ca. 12x8cm verteilt also 
fällt da ein CCD-Sensor weg.

Andreas B. schrieb:
> Warum faehrst Du nicht einen Sensor unten parallel mit dem Laser
> oben mit?

Das wäre wohl die eleganteste Lösung aber da muss ich sagen, dass ich 
mir nicht zutraue das umzusetzen.

Rahul D. schrieb:
> Eigentlich brauchst du doch nur einen ADC (mit einem Kanal) und
> "einen" Multiplexer für die 96 Sensoren.
>
> Oder du verwendest 12 deiner ADC und schaltest due Chip-Select-Leitungen
> der einzelnen ICs.

Das wird wohl die beste Methode mit meinen begrenzten Kenntnissen sein.

Und noch für den Kontext: das ganze wird in einen Opentrons OT-2 Liquid 
Handler eingebaut.

: Bearbeitet durch User
von Achim M. (minifloat)


Lesenswert?

Ist der Winkel, mit dem der Laserpointer-Strahl auf die Flüssigkeit 
auftrifft, bei allen 96 Messstellen gleich?

Wenn nein, wird es Probleme mit dem Brechungsindex geben. Der könnte 
sich wie die Absorption, die du eigentlich messen wolltest, ebenfalls 
verändern.

Eventuell muss also ein Suchalgorithmus mit jeweils mechanischem 
Tracking des Maximums mit rein. Naja, ist eh Software...

mfg mf

von Markus E. (markus_e283)


Lesenswert?

Achim M. schrieb:
> Ist der Winkel, mit dem der Laserpointer-Strahl auf die
> Flüssigkeit auftrifft, bei allen 96 Messstellen gleich?

Ja der Winkel ist immer 90° zur Oberfläche der Flüssigkeit. Und um 
kleinen Variationen (z.B. bei der Platte) vorzubeugen wird am Anfang des 
Messprozesses immer eine Kalibration durchgeführt.

von Sven H. (svenhb)


Angehängte Dateien:

Lesenswert?

>> Warum faehrst Du nicht einen Sensor unten parallel mit dem Laser
> oben mit?

>Das wäre wohl die eleganteste Lösung aber da muss ich sagen, dass ich
mir nicht zutraue das umzusetzen.

Google mal nach Bilder von "diy cnc embroidery machine" Die Nähmaschine 
wäre dann der feststehende Laser (oben) mit Sensor (unten).

von Max D. (max_d)


Lesenswert?

Markus E. schrieb:
> Oder weiß jemand ob es so eine Art "Flächensensor" gibt? Ich stell mir
> das wie einen Display vor bei dem jeder Pixel ein Lichtsensor ist (würde
> dann die Intensität und dazugehörigen Koordinaten ausgeben).

https://de.wikipedia.org/wiki/CCD-Sensor
Mit einer Linse davor auch gemeinhin als Kamera bekannt...

von Rüdiger B. (rbruns)


Lesenswert?

Markus E. schrieb:
> Die Einbuchtungen sind auf einer Fläche von ca. 12x8cm verteilt also
> fällt da ein CCD-Sensor weg.

Da bietet sich die Mechanik eines CD Laufwerks an. Natürlich 2*.
Es gibt kleine Lasergravierer die so aufgebaut sind.

von Rainer W. (rawi)


Lesenswert?

Markus E. schrieb:
> Die Einbuchtungen sind auf einer Fläche von ca. 12x8cm verteilt also
> fällt da ein CCD-Sensor weg.

Das ist vielleicht etwas zu kurz gedacht. Da kommt mir doch für den 
Zusammenhang von Platten- und Sensorgröße folgende bekannte Gleichung in 
den Sinn:
1
1/f = 1/G + 1/B

von Tim  . (cpldcpu)


Lesenswert?

Du hast noch nicht beschrieben, welche Anforderungen du an die einzelnen 
Sensoren hast.

- In welchem Wellenlängenbreich sollen die empfindlich sein? [nm]
- Wie viel Licht kommt an? [mW/cm²]
- Wie lang soll ein Messzyklus dauern (Bandbreite) [µs-ms]
- Welches SNR will Du erreichen (Signal/Rauschen) [dB]
- Wie groß soll ein "pixel" maximal oder minimal sein [cm²]

Je nachdem, kann man sich Vieles vorstellen
- Einzelne Phototransistoren mit Multiplexer oder in einer Matrix.
- Man könnte digitale Ambient Light Sensoren (ALS) als Lichtsensor 
nutzen (erfordert wohl einen I²C Multiplexer)
- Photodioden mit geeignetem Read-Out IC. Der MCP3008 ist hier nicht so 
geeignet, aber google mal nach "X-ray AFE, TIA ROIC" oder so etwas ...

: Bearbeitet durch User
von Stephan S. (uxdx)


Lesenswert?

Norbert schrieb:
> Der mechanische Aspekt dürfte um ein Vielfaches aufwendiger in der
> Realisation sein als der Elektronische.

Kreuztisch und 2 Stepper oder (gebrauchten) CNC-Frästisch

von Klaus K. (Gast)


Lesenswert?


von Norbert (der_norbert)


Lesenswert?

Stephan S. schrieb:
> Kreuztisch und 2 Stepper oder (gebrauchten) CNC-Frästisch

Ja, das denkt man zunächst.

Dann wird sich das jeweilige Beleuchtungsmaximum und die umgebende 
Verteilung der Lichtbrechung abhängig davon zeigen, wie opak die 
Flüssigkeit ist. Ähnlich einer X-Y Normalverteilungskurve. Hoch und 
spitz bei Transparenz, zunehmend flacher und verschwommener bei 
zunehmender Opazität.

Ausrichtung: Selbst ein zehntel Grad aus der 90° Achse ändern die Werte.
Der Spaß steigt an mit zunehmender Bauzeit.

von Michi S. (mista_s)


Lesenswert?

Markus E. schrieb:
> einer Platte mit 96 Einbuchtungen

Welche Form sollen die Einbuchtungen haben? Zylinderförmig?


Markus E. schrieb:
> Unter den Einbuchtungen sollen Photodioden
> angebracht werden, die die Intensität des nicht gestreuten Lichts
> des Laserpointers messen.

Dann muß aber auch jede einzelne Photodiode perfekt senkrecht (zur 
Platte) sitzen, oder?

Läßt sich das ganze sicher nicht auf ein auf reflektierend Umdesignen, 
dann bräuchtest Du nur eine Photodiode, die gemeinsam mit dem Laser 
verfahren wird für letztlich beliebig viele Meßpunkte bzw. 
Einbuchtungen?

Dann bräuchte es zwar eine Art halbdurchlässigen Spiegel, der den 
reflektierten Strahl zur Photodiode umleitet aber dafür wäre die ganze 
optische Einheit letztlich nur ein (bewegtes) Teil und Du müßtest bei 
den Meßpunkten nur die jeweilige Einbuchtung treffen und nicht exakt die 
jeweilige Fotodiode.


Michael B. schrieb:
> Nur sind 96 Analogschalter
> auch nicht witzig.

Eventuell wären Reed-Kontakte 'ne Möglichkeit; der Magnet dafür wird mit 
der Lasereinheit mitbewegt und schaltet jeweilige Photodiode durch.

von Andreas B. (bitverdreher)


Lesenswert?

Markus E. schrieb:
> Andreas B. schrieb:
>> Warum faehrst Du nicht einen Sensor unten parallel mit dem Laser
>> oben mit?
>
> Das wäre wohl die eleganteste Lösung aber da muss ich sagen, dass ich
> mir nicht zutraue das umzusetzen.

Zur Erinnnerung:
Andreas B. schrieb:
> Oder vielmehr: Platte in x und Laser mit Sensor in Y Richtung. Das
> vereinfacht die Mechanik erheblich.

Nochmal: Laser und Sensor an eine Gabel, die in x Richtung (hier die 
kuerzere Richtung) bewegt wird und die Platte umfasst. Die Platte selbst 
wird in y Richtung bewegt.
Wenn Du das nicht hinbekommst, dann such Dir einen Mechaniker.

Michi S. schrieb:
> Welche Form sollen die Einbuchtungen haben? Zylinderförmig?
Vermutlich:
https://de.wikipedia.org/wiki/Mikrotiterplatte

von Chris S. (schris)


Lesenswert?

Such mal nach
AS-6408 64 to 8 or 1 Analog Digital Multiplexer
Sowie 12bit 4ch ADC+PGA.
Kann direkt vom Rpi angesteuert werden , oder die 6 Pins mittels i2c 
portexpander. Mit einem 4ch ADC können 256 Kanäle bedient werden, bei 
sehr geringem Preis.
Ich würde nicht 96 plates verwenden sondern zwei weniger, eines nur zum 
messen des Lasers, wegen eventuellen Positionsfehlern  und eins mit 
Wasser/Glyzerin gefüllt, um etwaige Vibrationen zu detektieren welche 
die Messung wegen Abweichung des Laserwinkels beeinflusst.
Laser sollte in diesem Falle ein closed loop laser sein, oder bevor und 
danach braucht es eine Referenzmessung.
Meine 2Cent
Cri

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Markus E. schrieb:
> Die Einbuchtungen sind auf einer Fläche von ca. 12x8cm verteilt also
> fällt da ein CCD-Sensor weg.
Ich habe gestern ein Foto mit meiner Handykamera gemacht. Die hat einen 
ganz winzigen CCD-Chip drauf. Aber trotzdem konnte ich problemlos 
Flächen mit weit über 50mx100m auf ein Bild bannen.

Markus E. schrieb:
> Oder weiß jemand ob es so eine Art "Flächensensor" gibt? Ich stell mir
> das wie einen Display vor bei dem jeder Pixel ein Lichtsensor ist
Schon vor 15 Jahren hatte eine optische Maus eine hochauflösendere 
Kamera eingebaut. Dann musst du nur noch eine Optik davorbauen und 
fertig:
- http://spritesmods.com/?art=mouseeye
- Beitrag "Re: Optical Maus Sensor ADNS2610 mit AVR"

Oder du nimmst einfach gleich eine übliche Kamera, setzt um deine Proben 
herum ein paar Referenzpunkte, die zwischendurch immer wieder mal 
angefahren werden.

Und wie immer bei solchen "Problemen", die garantiert von anderen schon 
gelöst wurden, würde ich schauen, wie die das machen.

: Bearbeitet durch Moderator
von Patrick C. (pcrom)


Angehängte Dateien:

Lesenswert?

96 well plates werden oft fuer QPCR benutzt. Dabei gibt es von basis aus 
2 principen :
A) Statische (zB Halogen) lampe und CCD camera
B) Bewegbares licht (zB Led) das mittels X/Y motors sich oberhalb die 
Wells positionieren.

Beiden functionieren (meistens) mit spiegeln.

Die PCR messung ist umfangreicher weil damit fluorescence gemessen wird 
aber vielleicht kannst du die mechanik/optik von ein altes/defectes 
geraet davon benutzen fuer eine Messaufbau.

Denke an einen BioRad iCycler mit optische unit (principe A) oder BioRad 
CFX cycler (principe B)

Grusz aus die Niederlande / Patrick

von Purzel H. (hacky)


Lesenswert?

Falls eine Kamera nicht tut... zB wegen ders dynamischen Bereiches...
Wuerd ich einen 3D Drucker nehmen. zB einen FLSUN Q5, den gibt's 
mittlerweile fuer 199$. Der faehrt diese Punkte in wenigen Sekunden ab. 
Alles andere ist vergeben Muehe. Der laesst sich ueber G-Code ansteuern.
Und von Unten, falls es denn wirklich mit Durchlicht vermessen werden 
soll.. alles auf's Mal belichten. Ob's homogen ist, ist weniger wichtig, 
kann man ja weg kalibrieren.

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.