1.30.1.1.3.1. Kognidoor-Arduino¶
Kontakt: | Britta Kemper <britta.kemper@dmwschwarze.de>, Alexander Neumann <alneuman@techfak.uni-bielefeld.de>, Michael Adams <madams@techfak.uni-bielefeld.de> |
---|---|
CITK: | Code steht unter https://synergy.cit-ec.de/git/kognihome-tp2.kognidoor-arduino.git zur Verfügung. |
Vorbedingung: | Der Arduino-Sketch wurde auf den Arduino geflashed. Siehe dazu Installation |
Quickstart: | Die Komponente wird nicht gestartet, sondern läuft als Sketch auf einem Arduino Mega 2560. |
1.30.1.1.3.1.1. RSB-Schnittstellen¶
Diese Komponente hat keine eigenen Schnittstellen, sondern nutzt nanopb-Definitionen, welche von KogniDoor RSB Bridge über eine serielle Verbindung weitergereicht werden.
Diese Dateien enden auf pb.h bzw. pb.c und werden aus *.proto
-Dateien generiert. Dazu muss ProtoBuf auf dem System
installiert sein.
protoc -I={PFAD ZU .PROTO FILE} --nanopb_out={OUT PFAD, z.B. ~/Arduino/RST}
1.30.1.1.3.1.2. Installation¶
Die Installation des KogniDoor Arduino gestaltet sich aufgrund der schlechten Toolchain der Arduino IDE schwierig, da Quelldateien durch die Arduino IDE im System hin- und her kopiert werden und dadurch oft Abhängigkeiten (insbesondere RST) nicht erfüllt werden. Der aktuelle (08.03.2017) Stand beschreibt folgenden Weg:
- Download Arduino 1.8.1 (<https://www.arduino.cc/en/Main/Software> ; Linux 64 Bit)
- Entpacken und install.sh ausführen
- Nach dem Klonen des GIT (git clone https://synergy.cit-ec.de/git/kognihome-tp2.kognidoor-arduino.git) den Inhalt des RST/door Ordners in den Arduino Bibliotheksordner RST (normalerweise unter ~/Arduino zu finden) verschieben (Damit sind die Dateien mit < > (z.B. #include <DoorStatus.pb.h>) erreichbar und man umgeht so den kläglichen Versuch der Arduino IDE Unterordner einzubinden).
- RST gilt somit als Bibliothek
- Kompilieren (und natürlich das Beste hoffen, es ist schließlich Arduino ¯\_(ツ)_/¯)
Todo
- Aufsetzen und einrichten der Arduino-SDK beschreiben.
1.30.1.1.3.1.3. Unterkomponenten¶
Beleuchtung E-Ink Display
Die Beleuchtung des E-Ink Displays wird mittels APA102 LEDs realisiert. Die LEDs benötigen eine Spannungsversorgung von 5 V und kommunizieren mit dem Arduino Mega 2560 über SPI. Softwareseitig muss für den Betrieb der APA102 LEDs auf dem Arduino die Bibliothek “FastLED” <http://fastled.io/> installiert sein.
Pin Farbe Vcc Rot GND Schwarz CLK Weiß MOSI Grün Messung Lichtintensität E-Ink Display
Der Lichteinfall wird durch den Lichtsensor TSL25911 gemessen. Der Lichtsensor TSL25911 benötigt eine Spannungsversorgung zwischen 3,3 und 5 V und kommunizieren mit dem Arduino Mega 2560 über I2C.
Pin Farbe Vcc Rot GND Schwarz SCL Grün SDA Braun Für den Betrieb des TSL25911 Lichtsensors benötigt man die Adafruit Sensor Library <https://github.com/adafruit/Adafruit_Sensor> und die Adafruit TSL2591 Library <https://github.com/adafruit/Adafruit_TSL2591_Library>.