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>.