-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathE02_Spektralmessung.qmd
176 lines (136 loc) · 9.3 KB
/
E02_Spektralmessung.qmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
---
title: "Spektralmessung"
author: "Pia Bereuter"
date: today
other-links:
- text: Kapitel PDF
icon: file-pdf
href: chapters/E02_Spektralmessung.pdf
code-links:
- text: Ausgangsdaten
icon: file-zip
href: data/E02_Spektralmessung.zip
resources:
- data/E02_Spektralmessung.zip
abstract: "Diese Übung führt einen Spektralsensor ein und zeigt wie Spektralmessungen durchgeführt werden können. Der AS7262 Spektralsensor misst über 6-Kanäle im sichtbaren Bereich und kann für spektroskopische Messungen eingesetzt werden."
---
## Einführung
Ziel dieser Übung ist es den AS7262 Spektralsensor kennen zu lernen und die Sensordaten auszulesen. Der *AS7262* ist ein Spektralsensor, der über eine I2C Schnittstelle mit dem Raspberry Pi verbunden wird und einer Python Library angesteuert werden kann.
**Unterlagen:** *<i class="bi-file-zip"></i> E02_Spektralmessung.zip*
**Vorbereitung**
- Schaut das Video von AMS zum [AS7262 Spektralsensor](https://www.youtube.com/embed/KKyHxXyaVPM?si=hvO1IVbdwbjnDI40) (bis Minute 2:20)
- Lest das White Paper von @Jensen2020 über Spektralsensoren
- Konzentriere Dich da auf die Beschreibung der *Multi-channel spectral sensors* und in welchen Gebieten diese Sensoren eingesetzt werden.
- Studiert das Datenblatt zum AS7262 Spektralsensor @ams2022
- In welchen Temperaturbereichen kann der Sensor eingesetzt werden?
::: {.content-visible when-format="html"}
{{< video https://www.youtube.com/embed/KKyHxXyaVPM?si=hvO1IVbdwbjnDI40 >}}
:::
::: {.content-visible unless-format="html"}
![ams Spectral ID iSPI Eval Kit [Youtube Video](https://www.youtube.com/embed/4vdliMRtxBY)](images/youtube_ams_as7262.png)
:::
| **Unterlagen** | |
| ---------- | ------------------------------------------------------------ |
| Produkt | [AS7262 Breakout](https://shop.pimoroni.com/products/as7262-6-channel-spectral-sensor-spectrometer-breakout) |
| Datenblatt | [AS7262](https://ams.com/documents/20143/36005/AS7262_DS000486_5-00.pdf) |
| GitHub | [as7262-python](https://github.com/pimoroni/as7262-python) |
| Video | [ams Spectral ID iSPI Eval Kit](https://www.youtube.com/watch?v=KKyHxXyaVPM) |
## Spektrometer
Spektrometer, sind Sensoren, die das Licht auf einzelne Bänder der Wellenlänge (in Nanometer nm) messen. Für das menschliche Auge wird das sichtbare Spektrum zwischen 360nm bis 830nm angegeben, wobei sich der Bereich unter optimalen Bedingungen in UV und NIR erstrecken kann [@sliney2016].
Auf kleinen Chip verbaute Spektralsensoren ermöglichen zahlreiche neue Anwendungen, die früher mit grossen Spektroskopen durchgeführt wurden. Die Spektralsensorsysteme finden Anwendung wie Farbbestimmung, Authentifizierung und Spektralanalyse von Substanzen, Materialien, Lebensmitteln und Flüssigkeiten und werden in den Bereichen von Konsumgütern, Industrie und Medizin eingesetzt.
Ein Multispektralsensor liefert die Antwort auf die Frage, ob eine orangefarbene Probe eine Mischung aus Rot und Gelb oder ein reines Orange ist. Multispektralsensoren teilen das gewählte Spektrum in Spektralkanäle auf (siehe @fig-as7262) und sind so angeordnet, dass die Spektralkanäle kontinuierlich gut abgedeckt sind. Die Messung erfolgt im sichtbaren Bereich radiometrisch [@Jensen2020]. Das heißt, der Sensor misst die spektrale Leistungsverteilung der Messung.
## AS7262 Multispektralsensor\index{AS7262}
Der AS7262 ist ein sehr kompakter Multispektralsensor, der über 6 Spektralkanäle im sichtbaren Bereich misst. Der Sensor eignet sich für spektroskopische Messungen wie *Farbmessung, Absorption, Bestrahlungsstärke, Reflexion* und *Transmission*. Der Sensor ist auf einem Breakout Board verbaut und kann über die I2C Schnittstelle mit dem Raspberry Pi verbunden werden, zusätzlich sind zwei LEDs verbaut, die den Messbereich für Messungen beleuchten können.
AS7262 - 6-Kanal Spektral Sensor (@fig-as7262)
- 6 Spektralkanäle (450, 500, 550, 570, 600, 650nm)
- 2 on-board Beleuchtungs-LEDs
- I2C interface (address: 0x49)
- Python Library
- werkseitig kalibriert
![links: Spektrale Sensitivität des AS7262, oben: AS7262 Breakout von Pimoroni, unten: AS7262 Photodioden Array ](images/AS7262_wide.jpg){#fig-as7262}
## Übungsaufbau
- Schliesse den Raspberry Pi an Monitor, Keyboard und Maus an oder verbinde Dich mit diesem über SSH (und SFTP).
- Erstelle auf dem Raspberry Pi im `Documents` Ordner einen neuen Ordner `AS7262`, in welchem Du Änderungen und neue Dateien für diese Übung speichern kannst.
- Schliesse den Sensor **AS7262** an den Raspberry Pi über die Breakout Garden **I2C** Schnittstelle korrekt an (siehe [E01 Luftqualität](E01_Luftqualitaet.qmd)), so dass die Beschriftung der Anschlüsse am Sensor und bei der Schnittstelle übereinstimmen.
- Kontrolliere mit dem Befehl `i2cdetect -y 1` ob der Raspberry Pi mit dem Sensor verbunden ist. Der Sensor sollte auf der Adresse `0x49` erkannt werden.
- Aktiviere die virtuelle Environment von Python mit `source ~/.env/bin/activate` und kontrolliere, ob die Library `as7262` installiert ist mit `python -c "import as7262"`. Bei einer Fehlermeldung muss die Library in der aktivierten virtuellen Environment mit `pip install as7262` installiert werden.
Wechsle in den Ordner *Documents* und kopiere mit folgenden Befehlen die Library auf Deinen Raspberry Pi.
``` bash
cd Documents
git clone https://github.com/pimoroni/as7262-python
cd as7262-python/examples
```
## Aufgabe 1: Spektralmessungen durchführen
Teste das Beispiel `spectrum.py` im Ordner *examples*. Dieses Beispiel gibt die Messungen der einzelnen Spektralkänale aus.
Startet das Script mit `python spectrum.py`^[Nicht vergessen zuerst die korrekte virtuelle Environment mit den installierten Libraries über `source ~/.env/bin/activate` zu starten]. Mit `Ctrl+c` kann das Script wieder gestopppt werden. Die Ausgabe sollte in etwa so aussehen (gekürzt):
``` bash
python spectrum.py
Orange: 30.22943878173828
Red: 14.262250900268555
Orange: 22.67207908630371
Yellow: 14.271308898925781
Green: 13.56598949432373
Blue: 6.527451515197754
Violet: 7.2663960456848145
```
Folgendes Code Snippet zeigt eine gekürzte Version des `spectrum.py` Python Beispiels für die Ausgabe der Spektralmessungen der 6 Kanäle:
```{.python}
#!/usr/bin/env python
from as7262 import AS7262
as7262 = AS7262()
as7262.set_gain(64) # <1>
as7262.set_integration_time(17.857) # <1>
as7262.set_measurement_mode(2) # <1>
as7262.set_illumination_led(1) # <1>
try:
while True:
values = as7262.get_calibrated_values() # <2>
print("""
Red: {}
Orange: {}
Yellow: {}
Green: {}
Blue: {}
Violet: {}""".format(*values))
except KeyboardInterrupt:
as7262.set_measurement_mode(3)
as7262.set_illumination_led(0)
```
1. Sensor konfigurieren, setzen des Gains, der Integrationszeit, des Messmodus und der Beleuchtungs LED
2. Kalibrierte Messwerte auslesen und darstellen
::: {#exr-spektralmessung}
**AS7262 Messwerte interpretieren**\
Führt einige Messungen mit unterschiedlichen Lichtquellen und Materialien durch und notiert Euch die Messwerte. Was beobachtet Ihr?
- Messung mit Tageslicht
- Messung mit LED-Taschenlampe des Smartphones
- Messung mit LED-Taschenlampe und Farbfilter (Mäppli)
- Messung mit weissem Papier
:::
::: {.content-hidden unless-meta="solution"}
::: {#sol-spektralmessung}
Die menschlichen Augen haben *Rezeptoren* für die Farben *Rot, Grün* und *Blau*, und für Grauwerte über das sichtbaren Spektrum. Der AS7262 hat 6 Spektralkanäle, die im sichtbaren Spektrum liegen. Die Messwerte der Spektralkanäle können als *Farbwerte* interpretiert werden, wobei die Farbwerte der Spektralkanäle nicht direkt mit Wahrnehmung des menschlichen Auges korrelieren.
:::
:::
## Aufgabe 2: Spektralmessungen mit Visualisierung in der Konsole
Das Beispiel `bargraph.py` zeigt die Messwerte der Spektralkanäle in einem Balkendiagramm an. Die Messwerte werden in der Konsole ausgegeben, nach einem Weissabgleich. Der Weissabgleich wird benötigt damit der Sensoren die Messwerte korrekt in Referenz zu Weiss interpretiert.
Für diese Aufgabe benötigt Ihr ein weisse Blatt Papier, mit welchem der Sensor den Weissabgleich durchführt. Dafür hält ihr dieses circa 5cm vor den Sensor, drückt eine Taste und der Sensor führt den Weissabgleich durch. Danach könnt Ihr das Papier wieder wegnehmen und die Messungen durchführen.
::: {#exr-spektralmessung-graph}
**Verteilung der Spektralkanäle untersuchen**
- Führt verschiedene Messungen durch mit unterschiedlichen Lichtquellen und Materialien und interpretiert die Ausgabe des `bargraph.py`.
- Studiert den Code und versucht die Funktionsweise zu verstehen.
:::
::: {.content-hidden unless-meta="solution"}
::: {#sol-spektralmessung}
Je höher die spektrale Auflösung dest besser kann eine Spektralmessung die spektrale Antwort von Materialien oder Licht messen und so Rückschlüsse auf das Objekt zulassen. Beispielsweise in der Fernerkundung mit der Messung des Verhältnisses zwischen Rot und NIR kann auf Vegetation und auch den Wasserstress geschlossen werden.
:::
:::
``` bash
python bargraph.py
Setting white point baseline.
Hold a white sheet of paper ~5cm in front of the sensor and press a key...
Baseline set. Press a key to continue...
```
![Beispiel Ausgabe von `bargraph.py` Spectrometer Bar Graph](images/as7262_bargraph.png)
::: {.content-visible when-profile="chapter"}
## Referenzen
:::