.. _`tp2/arduino`: Kognidoor-Arduino ================= :Kontakt: Britta Kemper , Alexander Neumann , Michael Adams :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 `_. RSB-Schnittstellen ------------------ Diese Komponente hat keine eigenen Schnittstellen, sondern nutzt :term:`nanopb`-Definitionen, welche von :ref:`tp2/dispatcher` ü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. .. code-block:: bash protoc -I={PFAD ZU .PROTO FILE} --nanopb_out={OUT PFAD, z.B. ~/Arduino/RST} 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 ( ; 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 \) 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. 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" 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 und die Adafruit TSL2591 Library .