====== Agenten ======
Agenten sind die Geräte auf dem Feld, mit denen die Spieler direkt in Kontakt kommen. In den Geräten arbeitet ein [[https://de.wikipedia.org/wiki/Raspberry_Pi|Raspberry Pi]] Computer((
ein kleiner Pi Zero reicht aus
)) auf dem eine Betriebssoftware läuft: der RLGAgent.
Der Raspi ist mit einem [[:rlgs:de:agents#platine|Breakout Board]] verbunden, über das verschiedene Ein- und Ausgabe Geräte angeschlossen werden.
{{ :de:rlg:capture_point.gif}}Im Moment ist das einzige **Eingabegerät** nur ein Taster. Wenn man diesen Taster drückt, sendet der Agent zwei Nachrichten an den Commander. Einmal beim **runter** drücken und einmal beim **loslassen**.
Die **Ausgabegeräte** sind:
* 5 farbige LED-Streifen in der Reihenfolge: weiß, rot, gelb, grün, blau.
* 4 Sirenen mit unterschiedlichen Signal Arten. Sirenen werden über ein Relais Board angeschlossen.
* Ein 12 Volt Buzzer für ein akustisches Signal im Nahbereich
* Ein LCD mit 20 Spalten und 4 Zeilen
Alle beschriebenen Geräte (egal ob Ein- oder Ausgabe) sind **optional**. Das heisst, ein Agent muss nicht alles besitzen. Bisher haben wir noch keinen Agenten gebaut, an den alles angeschlossen war. Agenten gibt es für unterschiedliche Anwendungen.
Ein **Sirenen Agent** ist einfach eine Kiste mit einer großen Batterie und 3 Sirenen. Die stellen wir irgendwo aufs Feld und da muss auch keiner näher dran. Daher hat sie meist auch keinen Taster.
Eine **"Flagge"** ist ein Eroberungspunkt und hat 5 Lichter, einen Buzzer und eine Taste. Da er üblicherweise im Zentrum der Action steht, sollte er sehr robust, Farb- und Wasserfest sein. Auf der rechten Seite seht Ihr einen solchen Agenten, den wir in ein DN75 PVC Rohr eingebaut haben. Länge etwas über einen Meter.
**Spawn Agenten** (siehe mitte rechts) stehen im Spawn. Sie haben ein LCD Display um Spielstände anzuzeigen, sowie einen Taster (um Respawns zu zählen), einen Buzzer und Lichter.
===== Software =====
Wenn die Agenten Software auf einem normalen PC läuft, dann wird die Hardware in einem Fenster simuliert. Das ist sehr hilfreich während der Entwicklung neuer Spielmodi und auch für Euch erleichtert es den Umgang. Ihr könnt nämlich alles auf Eurem eigenen Computer ausprobieren. Dazu gibt es auch eine vorkonfigurierte virtuelle Maschine. Diese führt ihr einfach aus und das System ist bereits komplett eingerichtet.
===== Hardware =====
==== Platine ====
Um den Anschluss des Raspberry Pi Computers zu erleichtern, gibt es ein Breakout Board. Das könnt Ihr euch direkt bei einem beliebigen Platinen Dienst fertigen lassen oder direkt bei. Die zugehörige [[:de:downloads#rlg-agent_breakbout_board|Gerber Datei]] findet Ihr in der Download Sektion.
[{{ :common:led-mosfet.png?200|
Montage der LEDs und Mosfets
}}]
=== Elektronische Bauteile ===
* 6x LEDs farbig: weiß (2x), rot, gelb, grün, blau. Das lange Pin kommt immer in das obere Loch.
* 6x IRLZ34 N-Channel MOSFET. Der Metallkühler kommt nach oben / hinten.
* 6x 220 Ω Widerstände
* 6x 1 kΩ Widerstände
* 12x 10 kΩ Widerstände
* 2x 6x6mm Mikrotaster. Die Pins sind immer rechts und links vom Schalter.
* 40 pol Wannenstecker bei Kabel Anschluss an Raspi, oder 40 pol Buchsenleiste bei Aufse
[[https://docs.google.com/spreadsheets/d/1Vppac1BBRDuqU5dzp8OEhHbIwt_u1fa9a87Q6I1nV9s/edit?usp=sharing|Die Liste der benötigten Bauteile steht hier.]]
=== Boardbeschreibung ===
{{:common:pcb-13-overview.png?600}}
^ Block ^ Pin ^ Belegung/Usage ^
| Main Terminal | 1 | Masserückleitung für **LED weiß** |
| | 2 | Masserückleitung für LED rot |
| | 3 | Masserückleitung für LED gelb |
| | 4 | Masserückleitung für LED grün |
| | 5 | Masserückleitung für LED blau |
| | 6 | Masserückleitung für 12 Volt Summer |
| | 7 | Signal Leitung für Sirenen Relais 1 |
| | 8 | Signal Leitung für Sirenen Relais 2 |
| | 9 | Signal Leitung für Sirenen Relais 3 |
| | 10 | Signal Leitung für Sirenen Relais 4 |
| | 11 | Taste 1 |
| | 12 | Taste 2 |
| | 13 | I2 C Data SDA |
| | 14 | I2 C Clock SCL |
| | 15 | 5 Volt |
| | 16 | 5 Volt |
| | 17 | 3,3 Volt |
| | 18 | 3,3 Volt |
| | 19 | Masse |
| | 20 | Masse |
== Anschluss für LCD ==
| LCD | 27 | Ground |
| | 28 | I2 C Clock SCL |
| | 29 | I2 C Data SDA |
| | 30 | 5 Volt |
== Pull / Up / Down für Sirenen ==
| Pull | 21 | UP | 24 | 3,3 Volt |
| Pull | 22 | UP | 25 | 5 Volt |
| Pull | 23 | DOWN | 26 | Masse |
[{{:common:pulldown-demo.png?200|Platine mit angeschlossenem LCD und Pull DOWN Einstellung für Relais Board}}]
Die LEDs auf der Platine zeigen die Signale genau so an, wie sie auch durch die LED Streifen angezeigt würden. Sie dienen als Kontroll-Leuchten.
==== 12V LED-Streifen ====
Diese Bauteile haben immer 2 Anschlüsse. 12 Volt und Masse. Wir schließen die 12 Volt Leitungen direkt an die Batterie an. Die Massen verbinden wir mit den jeweiligen Pins 1-5.
==== 12V Buzzer ====
Der Buzzer wird genau wie die LEDs angeschlossen. 12V Eingang mit dem Plus Pol der Batterie verbinden. Die Masse Rückleitung kommt an Pin 6.
==== Sirenen ====
Sirenen ziehen -bei Benutzung- ziemlich viel Strom. Mehr Strom, als wir mit den Mosfets schalten können. Daher verwende ich dafür Relais Boards. Die gibt es in verschiedenen Größen, ich verwende in der Regel 4er Boards.
/Users/tloehr/Nextcloud/Documents/develop/electronics/4-kanal-relais-pinout.jpeg
Die werden dann ebenfalls an unser Breakout Board angeschlossen. Von Pin 16 nehmen wir uns 5V, Pin 19 liefert Masse und die 4 Signal-Leitungen schließen wir an die Pins 7 bis 10 an.
=== High-Trigger / Low-Trigger ===
Diese Boards kommen in unterschiedlichen Versionen. Ein High-Trigger Board löst das Relais aus, sobald der zugehörige Signal Pin auf HIGH gesetzt wird (also 3,3V bzw. 5V). Bei einem Low-Trigger Board ist das genau umgekehrt. Hier zieht das Relais, sobald der Signal Pin auf LOW bzw. Masse geschaltet wird.
Unser Board kann mit beidem umgehen, ihr müsst es aber entsprechend einstellen. Damit direkt nach dem Einschalten des Agenten die Relais auch sauber abgeschaltet bleiben, gibt es einen Pull-UP bzw. DOWN Widerstand. Ihr stellt das RLG-Board dann wie folgt ein.
Außerdem müsst Ihr die Konfiguration in der Agenten-Software prüfen.
==== LCDs ====
Als LCD Anzeige verwenden wir ein 20×4 Zeichen Display, das von einem Hitachi HD44780 Treiber gesteuert wird. Diese Kombinationen gibt es fertig zu kaufen bzw. Ihr müsst vorher nich die Pins drauflöten und die beiden Dinger anschließende zusammenstecken.
Auf den Controllern sind 4 Pins rausgelegt, 5V (VCC), Masse (GND) und die beiden I2 C Leitungen. Verbindet sie entsprechend. An dem Poti auf der Rückseite des Controllers könnt ihr den Kontrast einstellen. Der Jumper steuert die Hintergrundbeleuchtung - an oder aus.
{{:common:lcd.jpg?400}}
{{:common:lcd.png?400}}