Skip to content

Commit 56dc11f

Browse files
author
tobiassiegrist
committed
feat: spellchecking completed
1 parent f2b5a60 commit 56dc11f

File tree

13 files changed

+53
-53
lines changed

13 files changed

+53
-53
lines changed

content/german/components/humi-temp-sensor.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,26 +5,26 @@ tags: ["gpio"]
55

66
## Funktionsweise
77

8-
Der im CrowPi benutzte DHT11 Temperatur- und Luftfeuchtigkeitssensor arbeitet für die Messung der Temperatur mit einem NTC-Temperatursensor.
8+
Der im CrowPi verwendete DHT11 Temperatur- und Luftfeuchtigkeitssensor arbeitet für die Messung der Temperatur mit einem NTC-Temperatursensor.
99
Dies ist ein temperaturabhängiger elektrischer Widerstand. Je nach Umgebungstemperatur leitet dieser den Strom besser oder schlechter. Diese
1010
Differenzen lassen sich messen und anhand von Referenzwerten kann die Temperatur ausgewertet werden. Das ist ein sehr einfaches Prinzip,
11-
welches häufig zum Einsatz kommt bei der Messung von Temperaturen. Für die Feuchtigkeit liegt zwischen zwei Elektroden ein spezielles
12-
Granulat. Je mehr Feuchte in diesem Granulat festgehalten wird, desto einfacher kann der Strom fliessen. Es ändert sich also auch hier der
11+
welches häufig bei der Messung von Temperaturen zum Einsatz kommt. Für die Feuchtigkeit liegt zwischen zwei Elektroden ein spezielles
12+
Granulat. Je mehr Feuchtigkeit in diesem Granulat festgehalten wird, desto einfacher kann der Strom fliessen. Es ändert sich also auch hier der
1313
elektrische Widerstand. Die Übertragung der Messdaten erfolgt dann etwas speziell über einen einzelnen digitalen Ausgang am Sensor. Dieser
1414
wird in kurzen Pulsen im Mikrosekundenbereich angesteuert.
1515

1616
Java mit Pi4J ist leider nicht in der Lage diese Pulse genügend schnell zu verarbeiten. Die Verzögerungen durch die vielen Schichten einer
1717
Applikation bis zur Hardware benötigen einfach zu viel Zeit. Deshalb wurde in diesem Beispiel ein Linux Treiber verwendet, welcher die
1818
Messwerte des Sensors in eine Datei schreibt. Diese wird von Java ausgelesen und so kann dennoch mit dem Sensor gearbeitet werden. Das ist
19-
keine optimale Lösung aber es ermöglicht immerhin die Arbeit mit dem Sensor innerhalb des CrowPi. Besser wäre eine separate Ansteuerung
19+
keine optimale Lösung, aber sie ermöglicht immerhin die Arbeit mit dem Sensor innerhalb des CrowPi. Besser wäre eine separate Ansteuerung
2020
mittels eines Mikrocontrollers. Diese können aufgrund der Einfachheit ihres Aufbaus viel schneller auf die eingehenden Impulse reagieren
2121
und sind so in der Lage zuverlässigere Resultate als der Raspberry Pi zu liefern.
2222

2323
## Voraussetzungen
2424

2525
### DIP Switches
2626

27-
Für diese Komponente werden keine spezifischen DIP-Switches benötigt, so dass diese in der Standardkonfiguration belassen werden können:
27+
Für diese Komponente werden keine spezifischen DIP-Switches benötigt, sodass diese in der Standardkonfiguration belassen werden können:
2828

2929
{{< dip-switches >}}
3030

content/german/components/ir-receiver.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@ tags: ["gpio"]
55

66
## Funktionsweise
77

8-
Mithilfe von Infrarot können über einige Meter Distanz digitale Informationen übertragen werden, was zum Beispiel oft für die Fernbedienung
9-
eines Fernsehers genutzt wird. Die Übertragungsart gleich hierbei etwas dem Prinzip des Morsens, da die Infrarot-LED im Sendegerät eine
8+
Mithilfe von Infrarot können über einige Meter Distanz digitale Informationen übertragen werden, was beispielsweise oft für die Fernbedienung
9+
eines Fernsehers genutzt wird. Die Übertragungsart gleicht hierbei dem Prinzip des Morsens, da die Infrarot-LED im Sendegerät eine
1010
Abfolge von Bits durch unterschiedlich lange Pausen zu dem Empfängergerät überträgt. Da jedoch auch viele andere Dinge in der Natur wie
1111
beispielsweise unsere Sonne ein Infrarot-Licht emittieren, wird für die elektronische Verwendung nur eine Frequenz von 38kHz verwendet.
1212

1313
Um zu vermeiden, dass eine Fernbedienung über eine oder gar mehrere Sekunden komplett still gehalten werden muss, werden die einzelnen Bits
14-
in sehr kurzen zeitlichen Abständen übertragen. Dies klingt im ersten Moment natürlich praktisch, bedeutet jedoch auch dass das empfangende
14+
in sehr kurzen zeitlichen Abständen übertragen. Dies klingt im ersten Moment natürlich praktisch, bedeutet jedoch auch, dass das empfangende
1515
Gerät sehr präzise zeitliche Messungen durchführen können muss. Genau dies war jedoch beim CrowPi mit der Verwendung von Java in Kombination
1616
mit Pi4J nicht möglich, da eine Genauigkeit von rund 60 Mikrosekunden (0.00006 Sekunden) benötigt wird, was sich mit dem Design der Java
1717
Virtual Machine nicht umsetzen lässt.
@@ -22,10 +22,10 @@ ausgewertet, geprüft und weitergegeben werden. Ein grosser Teil der Logik ist s
2222
aufzufinden, das Erkennen der Signale findet jedoch nicht mit Pi4J statt. Sollten sich hier in Zukunft neue Möglichkeiten ergeben, so würde
2323
sich die Komponente regulär via GPIO auslesen lassen.
2424

25-
Eine saubere Alternative, welche sich weiterhin mit Pi4J umsetzen lässt, wäre einen dedizierten Mikrocontroller für das Empfangen der
25+
Eine saubere Alternative, die sich weiterhin mit Pi4J umsetzen lässt, wäre einen dedizierten Mikrocontroller für das Empfangen der
2626
Infrarot-Signale zu verwenden, welcher dann über einen anderen Bus wie beispielsweise [I²C]({{< ref "hardware/i2c" >}}) oder [SPI]({{< ref
2727
"hardware/spi">}}) die Signale an den Raspberry Pi sendet. Auf dem CrowPi ist dies jedoch nicht vorhanden, sodass diese Möglichkeit nicht
28-
bestand.
28+
besteht.
2929

3030
Für die Verwendung dieser Komponente muss die beigelegte Infrarot-Diode auf dem CrowPi in die 3 Pin-Header eingesteckt werden, da sich diese
3131
nicht direkt auf dem CrowPi befindet. Auf dem nachfolgenden Foto ist angegeben, wo die Infrarot-Photodiode einzustecken ist:
@@ -66,8 +66,8 @@ Nachfolgend wird die Verwendung der Klasse {{< javadoc class="com.pi4j.crowpi.co
6666
## Beispielapplikation
6767

6868
Die Beispielapplikation initialisiert zuerst den Infrarot-Empfänger, wobei hier nicht einmal der übliche Pi4J-Kontext übergeben werden muss,
69-
da wie bereits weiter oben beschrieben von dieser Komponente die Pi4J-Library nicht genutzt wird. Nach erfolgter Initialisierung wird ein
70-
Event Handler registriert, welcher jeden Tastendruck auf der Konsole ausgibt sowie beim Drücken der "CH" Taste eine zusätzliche Ausgabe
69+
da wie bereits weiter oben beschrieben, von dieser Komponente die Pi4J-Library nicht genutzt wird. Nach erfolgter Initialisierung wird ein
70+
Event Handler registriert, der jeden Tastendruck auf der Konsole ausgibt sowie beim Drücken der "CH" Taste eine zusätzliche Ausgabe
7171
vornimmt. Anschliessend wird 30 Sekunden gewartet, bevor der Event Handler wieder deaktiviert wird und die Applikation sich beendet.
7272

7373
{{< code file="src/main/java/com/pi4j/crowpi/applications/IrReceiverApp.java" language="java" >}}

content/german/components/rfid.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ tags: ["spi"]
55

66
## Funktionsweise
77

8-
Bei RFID, abgekürzt für Radio Frequency Identification, handelt es sich um eine Technologie, welche es ermöglicht automatisch und kontaktlos
8+
Bei RFID, abgekürzt für Radio Frequency Identification, handelt es sich um eine Technologie, die es ermöglicht automatisch und kontaktlos
99
mit einer Karte entsprechende Informationen auszutauschen. Dies wird zum Beispiel bei weit bekannten NFC Tags verwendet, jedoch auch für
1010
Anwendungen wie das kontaktlose Zahlen per Kreditkarte.
1111

@@ -15,8 +15,8 @@ eigene Stromversorgung benötigen. Im CrowPi ist die Komponente `MFRC522` verbau
1515
beispielsweise die beiden beigelegten Tags des CrowPi ausgelesen und beschrieben werden. Dies funktioniert dabei mit beliebigen Daten.
1616

1717
Die Technologie dahinter ist sehr komplex und die entsprechenden Informationen dazu sind auf mehrere Standards aufgeteilt, hauptsächlich
18-
ISO-14443 für den allgemeinen Aufbau und die Kommunikation sowie die entsprechenden Spezifikationen von NXP Semiconductors, dem Hersteller
19-
des Lese- und Schreibgeräts sowie von den meisten RFID Karten. Die Einhaltung dieser Standards ist hierbei sehr wichtig, da eine RFID Karte
18+
ISO-14443 für den allgemeinen Aufbau und die Kommunikation, sowie die entsprechenden Spezifikationen von NXP Semiconductors, dem Hersteller
19+
des Lese- und Schreibgeräts, sowie von den meisten RFID Karten. Die Einhaltung dieser Standards ist hierbei sehr wichtig, da eine RFID Karte
2020
bei falschen Schreiboperationen auch permanent beschädigt werden kann. Im Fachjargon wird das Lese- und Schreibgerät "Proximity Coupling
2121
Device" (PCD) genannt, während die verschiedenen Karten "Proximity Integrated Circuit Card" (PICC) heissen.
2222

@@ -81,15 +81,15 @@ Variablen `personA` sowie `personB` gespeichert, welche beide über verschiedene
8181
Anschliessend wird mit der `waitForNewCard` Methode die Anwendung so lange blockiert, bis eine neue Karte vom RFID Gerät erkannt wurde.
8282
Sobald dies der Fall ist, wird die übergebene Funktion ausgeführt, welche die Instanz `personA` von der `Person`-Klasse auf der Karte mit
8383
`writeObject` speichert. Es kann jedes beliebige Java-Objekt gespeichert werden, solange dieses das `Serializable` mit `implements
84-
Serializable` implementiert. Wichtig ist hierbei zu beachten, dass diese Methode eine `RfidException` werfen kann, welche abgefangen werden
84+
Serializable` implementiert. Hierbei gilt zu beachten, dass diese Methode eine `RfidException` werfen kann, welche abgefangen werden
8585
muss. Diese tritt auf, wenn die Karte nicht ordnungsgemäss beschrieben werden konnte.
8686

8787
Nachdem die erste Karte beschrieben wurde, wird der gleiche Prozess für die zweite Karte wiederholt. Da mit `waitForNewCard` grundsätzlich
88-
nur neue Karten erkannt werden und eine Karte nach erfolgter Interaktion in einen Schlafzustand geht, kann hier garantiert werden dass nicht
88+
nur neue Karten erkannt werden und eine Karte nach erfolgter Interaktion in einen Schlafzustand geht, kann hier garantiert werden, dass nicht
8989
sofort die zweite Person auf die gleiche Karte geschrieben wird, sondern sich eine neue Karte annähern oder die bestehende Karte kurzfristig
9090
entfernt werden muss.
9191

92-
Sobald beide Karten beschrieben wurden, wird ein Event Handler mit `onCardDetected` registriert, welcher asynchron jedes Mal aufgerufen wird
92+
Sobald beide Karten beschrieben wurden, wird ein Event Handler mit `onCardDetected` registriert, welcher asynchron jedes Mal aufgerufen wird,
9393
wenn eine neue Karte erkannt wurde. Da der RFID-Standard ein Verfahren gegen Kollisionen besitzt, können sich sogar mehrere Karten
9494
gleichzeitig auf dem Lese- und Schreibgerät befinden. Bei jeder ermittelten Karte wird mit `readObject(Person.class)` versucht, eine vorher
9595
gespeicherte Instanz der `Person`-Klasse auszulesen und in die Variable `person` zu speichern. Wenn dies gelingt, so wird die Person auf der

content/german/components/servo-motor.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ tags: ["pwm"]
55

66
## Funktionsweise
77

8-
Servomotoren sind in einer Vielzahl von Bauformen und Grössen erhältlich. Eine Eigenschaft welche einen Servomotor von einem
9-
normalen Elektromotor unterscheidet ist die Existenz eines Regelkreises. Dieser Regelkreis ermöglicht also erst die Kontrolle über
10-
Drehgeschwindigkeit, Beschleunigung und Winkelposition des Motors. Im Gegensatz zum Schrittmotor sorgt also nicht der physikalische Aufbau
8+
Servomotoren sind in einer Vielzahl von Bauformen und Grössen erhältlich. Eine Eigenschaft, welche einen Servomotor von einem
9+
normalen Elektromotor unterscheidet, ist die Existenz eines Regelkreises. Dieser Regelkreis ermöglicht also erst die Kontrolle über
10+
Drehgeschwindigkeit, Beschleunigung und Winkelposition des Motors. Im Gegensatz zum Schrittmotor sorgt nicht der physikalische Aufbau
1111
für diese Kontrollmöglichkeiten, sondern eine Regelung. Die Regelung im Falle des beim CrowPi beiliegenden Servomotors wird durch ein
1212
simples Potentiometer erreicht. Bei industriellen, hochwertigen Servomotoren werden für die Positionsrückmeldung spezielle Encoder
1313
verwendet. Diese erlauben viel höhere Genauigkeiten als die Bauform mit Potentiometer. Verwendet wird diese vereinfachte Form häufig im
@@ -52,7 +52,7 @@ Nachfolgend wird die Verwendung der Klasse {{< javadoc class="com.pi4j.crowpi.co
5252
## Beispielapplikation
5353

5454
Die Beispielanwendung zeigt auf einfache Art und Weise wie die verschiedenen Methoden der `ServoMotorComponent` zu verwenden sind. Als
55-
Erstes wird demonstriert wie einfach mit der prozentualen Positionierung gearbeitet werden kann. Dazu wird die Methode `setPercent`
55+
Erstes wird demonstriert, wie einfach mit der prozentualen Positionierung gearbeitet werden kann. Dazu wird die Methode `setPercent`
5656
verwendet. Als Zweites folgt dann ein Beispiel einer Positionierung mittels der Funktion `setAngle`, welche einen Winkel in Grad
5757
entgegennimmt. Zuletzt wird eine benutzerdefinierte Skalierung mit dem Beispiel einer Temperaturanzeige genutzt. Mittels `setRange` wird der
5858
Messbereich des Sensors einprogrammiert. Danach wird mit `moveOnRange` der Messwert in eine entsprechende Positionierung des Servomotors

content/german/components/sound-sensor.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,20 +7,20 @@ tags: ["gpio"]
77
## Funktionsweise
88

99
Ein Sound Sensor funktioniert mittels eines Mikrofons. Die vom Mikrofon in elektrische Signale umgewandelten akustischen Schwingungen werden
10-
gegen einen Schwellenwert verglichen. Sobald die elektrischen Signale in ihrer Stärke einen gewissen Schwellwert übersteigen wird am Sensor
10+
gegen einen Schwellenwert verglichen. Sobald die elektrischen Signale in ihrer Stärke einen gewissen Schwellwert übersteigen, wird am Sensor
1111
ein digitaler Ausgang geschaltet. Es wurde Lärm oder ein Geräusch erkannt.
1212

1313
Am CrowPi kann dieser Schwellwert mittels eines Potentiometers eingestellt werden. Am einfachsten geht das, wenn man auf das entsprechende
1414
LED bei den Status LEDS achtet und den entsprechenden Lärm verursacht welcher erkannt werden soll. Wird das Potentiometer nach rechts
15-
gedreht muss das entsprechende akustische Signal lauter sein, um vom Sensor erkannt zu werden. Auf die linke Seite gedreht am Potentiometer
15+
gedreht, muss das entsprechende akustische Signal lauter sein, um vom Sensor erkannt zu werden. Auf die linke Seite gedreht am Potentiometer
1616
macht den Sensor viel empfindlicher gegenüber leisen Geräuschen. Zu finden ist das Potentiometer wie auf diesem Bild gezeigt: {{< img
1717
alt="Potentiometer des Sound Sensor" src="components/sound-sensor-potentiometer.jpg" >}}
1818

1919
## Voraussetzungen
2020

2121
### DIP Switches
2222

23-
Für diese Komponente werden keine spezifischen DIP-Switches benötigt, so dass diese in der Standardkonfiguration belassen werden können:
23+
Für diese Komponente werden keine spezifischen DIP-Switches benötigt, sodass diese in der Standardkonfiguration belassen werden können:
2424

2525
{{< dip-switches >}}
2626

@@ -40,7 +40,7 @@ Nachfolgend wird die Verwendung der Klasse {{< javadoc class="com.pi4j.crowpi.co
4040
| Methode | Bemerkung |
4141
|:---------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------|
4242
| `boolean isNoisy()` | Gibt true zurück, wenn aktuell ein Geräusch vom Sensor erkannt wird |
43-
| `boolean isSilent()` | Gibt true zurück, wenn aktuell stille herrscht. |
43+
| `boolean isSilent()` | Gibt true zurück, wenn aktuell Stille herrscht. |
4444
| `SoundState getState()` | Gibt den aktuellen Zustand des Sensors in Form des SoundState zurück. |
4545
| `void onNoise(SimpleEventHandler handler)` | Setzt den Event Handler, welcher bei auftretendem Lärm am Sensor aufgerufen werden soll. null deaktiviert diesen Event Listener. |
4646
| `void onSilence(SimpleEventHandler handler)` | Setzt den Event Handler, welcher bei verschwundenem Lärm am Sensor aufgerufen werden soll. null deaktiviert diesen Event Listener. |
@@ -52,17 +52,17 @@ Nachfolgend wird die Verwendung der Klasse {{< javadoc class="com.pi4j.crowpi.co
5252

5353
## Beispielapplikation
5454

55-
Bei dieser Komponente wurde ein sehr simples Beispiel gewählt. Damit die Applikation jedoch richtig funktioniert muss erst der Sound Sensor
55+
Bei dieser Komponente wurde ein sehr simples Beispiel gewählt. Damit die Applikation jedoch richtig funktioniert, muss erst der Sound Sensor
5656
so eingestellt werden, dass ein Händeklatschen erkannt wird. Am besten wie in der Funktionsweise beschrieben kurz ausprobieren. Als erstes
5757
wird mit einer simplen Statusabfrage geprüft, ob gerade stille im Raum herrscht. Falls es gerade schon zu laut wäre, würde das Programm
58-
abbrechen. Ist es ruhig registriert das Programm einen `onNoise` Event Handler, welcher mittels einer Zählvariable zählt wie oft schon Lärm
58+
abbrechen. Ist es ruhig registriert das Programm einen `onNoise` Event Handler, welcher mittels einer Zählvariable zählt, wie oft schon Lärm
5959
erkannt wurde. Nach 3x Händeklatschen beendet die Applikation wieder. Für das Zählen in einer Lambdafunktion in Java muss ein spezieller
6060
Datentyp verwendet werden. Man sieht dies am `AtomicInteger count`. Der `AtomicInteger` ist eine spezielle Form eines normalen Integers,
6161
welcher jedoch auch innerhalb einer Lambdafunktion benutzt werden kann.{{< code
6262
file="src/main/java/com/pi4j/crowpi/applications/SoundSensorApp.java" language="java" >}}
6363

6464
## Weitere Möglichkeiten
6565

66-
- Mit der Relaiskomponente kombiniert könnte eine Lampe mittels klatschen ein und ausgeschaltet werden.
66+
- Mit der Relaiskomponente kombiniert könnte eine Lampe mittels Klatschen ein- und ausgeschaltet werden.
6767
- Es könnte eine Alarmanlage gebaut werden, welche anhand von Lärm einen Eindringling erkennt.
6868

content/german/components/step-motor.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,9 @@ Nachfolgend wird die Verwendung der Klasse {{< javadoc class="com.pi4j.crowpi.co
5252

5353
## Beispielapplikation
5454

55-
Die Beispielanwendung zeigt auf einfache Art und Weise wie die verschiedenen Methoden der `StepMotorComponent` zu verwenden sind. Als Erstes
55+
Die Beispielanwendung zeigt auf einfache Art und Weise wie die verschiedenen Methoden der `StepMotorComponent` zu verwenden sind. Zuerst
5656
wird nach einer kurzen Warnung der Motor um 50 Schritte vorwärts gedreht. Anschliessend dreht der Motor rückwärts ebenfalls um 50 Schritte.
57-
Der Motor ist also wieder in Ausgangsposition. Als letztes werden nun mithilfe eines `for-loops` einige Male hin und her gedreht. Dazu wird
57+
Der Motor ist also wieder in Ausgangsposition. Abschliessend wird nun mithilfe eines `for-loops` einige Male hin und her gedreht. Dazu wird
5858
nun die `turnDegrees` Methode verwendet.
5959

6060
{{< code file="src/main/java/com/pi4j/crowpi/applications/StepMotorApp.java" language="java">}}

0 commit comments

Comments
 (0)