Umsetzung physischer Interaktionskonzepte für Asterics Grid mittels NFC
Es sollen 2 physische Interaktionskonzepte für Asterics Grid mittels NFC umgesetzt werden:
Use Cases
- Klient verwendet ein analoges Kommunikationsbuch (Mehrseitiger Ausdruck von digitalem Grid)
- Die Zellen des Grids werden mit NFC-Tags versehen und beschrieben
- Der Klient verwendet einen kompakten NFC-Reader (oder speziellen Stift oder Smartwatch/Accessoires) und stellt ihn auf die Zelle (oder zeigt auf die Zelle).
- Die Zelle wird gelesen und die zugehörige Aktion in AG ausgeführt.
- Klient verwendet 3D-Objekte oder Karten mit NFC-Tags:
- Die Objekte/Karten werden mit NFC-Tags versehen und beschrieben
- Der Klient verwendet das Smartphone oder einen kompakten NFC-Reader und stellt die Objekte/Karte drauf.
- Die Zelle wird gelesen und die zugehörige Aktion in AG ausgeführt.
Beispieldateien / Fotos / Videos / Ressourcen
Unter diesem Nextcloud-Ordner können Beispiele gefunden werden: NFC-Tag-interaction
Mögliche NFC-Geräte
Folgendes kann als NFC-Reader/Writer verwendet werden:
- Asterics Grid (Smartphone, Chrome) über Web-NFC <-> integriertem NFC-Device
- Asterics Grid (Desktop/Smartphone) über Web-Bluetooth <-> NFC-Bridge-App <-> integriertem NFC-Device
- Asterics Grid (Desktop/Smartphone) über Web-Bluetooth <-> Eigenentwicklung NFC-Gerät
- NFC-Reader/Writer (pico/w)
- NFC-reader/Writer (Espruino board)
siehe auch Kommunikation mit NFC-Gerät
Erstellen eines Grids (NFC-Tags schreiben) vs. Verwenden eines Grids (NFC-Tags lesen)
Es muss grundsätzlich zwischen dem Erstellen und dem Verwenden eines Grids unterschieden werden, die Workflows sehr unterschiedlich sind.
Vorgänge beim Erstellen eines Grids
- Ausdruck der Gridseiten/Objekte
- Öffnen des Grids am Smartphone und Editieren der Zelle
- Zuordnung der Zelle zu einem NFC-Tag
- Auswählen der Zelle, dann Draufhalten/Drauflegen des Smartphones auf das NFC-Tag
- Es wird eine Verbindung zum NFC-Gerät (siehe #m%C3%B6gliche-nfc-ger%C3%A4te) aufgebaut.
- Es wird das Tag beschrieben
Vorgänge beim Verwenden eines Grids
- Es wird das entsprechende Grid am Smartphone/Tablet/Desktop geöffnet.
- Es wird zwischen NFC-Gerät und Asterics Grid eine Verbindung aufgebaut.
- Es wird der NFC-Gerät auf das Tag gelegt, oder das Objekt mit dem Tag auf den Reader gelegt.
- Es wird das Tag ausgelesen und die zughörige Aktion in AG gesucht und ausgeführt.
Variante Keyboard-Emulation (Bluetooth HID Keyboard)
- Es wird das entsprechende Grid am Smartphone/Tablet/Desktop geöffnet.
- Das NFC-Gerät wird als Bluetooth HID Keyboard mit dem Smartphone/Tablet/Desktop gepaired.
- Es wird das NFC-Gerät auf das Tag gelegt, oder das Objekt mit dem Tag auf das NFC-Gerät gelegt.
- Es wird das Tag ausgelesen und als Tastaturinput (z.B. Text/Ziffern, welche im Tag gespeichert sind) über Bluetooth HID an AG gesendet.
NDEF format und Links
- Wissenswertes über NFC, Reader und Tags
- Google-Tutorial für WebNFC-Verwendung
- Übersicht NFC-Tag-Typen/Chips
- MDN-Tutorials über WebNFC
- WebNFC: NDEF-Record Types
- WebNFC: NDEFMessage
- puck-js-NFC-Reader-Prototype
- NFC-Controller Chips (aktiv):
Kommunikation mit NFC-Gerät
Um mit dem NFC-Gerät kommunizieren zu können und Tagdaten schreiben, oder lesen zu können, sind folgende Spezifizkationen notwendig:
Tag-Messageformat
Das hier beschriebene Tag-Messageformat beschreibt Tagdaten mittels JSON-Syntax und definiert jene Daten, welche eine Asterics Grid (AG)-Zelle beschreiben.
{
"grid-url" : "https://grid.asterics.eu",
"label" : "label text" ,
"long-text": "long text of cell" ,
"image-url": "url to image" ,
"cell-id" : "id of cell (optional)"
}
grid-url
: URL zu Asterics Grid Applikation. Könnte später erweitert werden, um explizit eine URL der zu verwendenden Griddatei angeben zu können.
Schnittstelle zu NFC-Gerät
Über die hier spezifizierte Schnittstelle, können Daten im Tag-Messageformat and das NFC-Gerät gesendet werden, oder von diesem gelesen werden.
Die Kommunikation mit der Eigenentwicklung des NFC-Geräts soll mit Web-Bluetooth umgesetzt weden.
Hierfür erstellt das NFC-Gerät ein Bluetooth-UART-Service mit 2 Kommunikationskanälen (Characteristics) zur Verfügung:
- Schreiben (Tx)
- Lesen (Rx)
Die Schnittstelle soll kompatibel zum puck-js Bluetooth-UART-Service sein, damit clientseitig die Kommunikation mit den unterstützen Geräten immer gleich ist und die puck.js Javascript Bibliothek verwendet werden kann. Siehe:
Schreibvorgang
Das NFC-Gerät empfängt Tag-Messagedaten über Bluetooth und schreibt diese mittels NDEF-Messageformat und der NFC-API des Geräts auf das Tag.
Lesevorgang
Das NFC-Gerät liest über die NFC-API des Geräts die NDEF-Messagedaten und konvertiert diese in das Tag-Messageformat. Abschließend werden die Tag-Messagedaten an den Bluetooth-Client gesendet.
Tasks Praktikum
-
Recherche Accessoires / Smartwatches mit NFC-Funktion und Bluetooth (Milena)
-
Recherche State of the art bzgl. physischer Interaktionskonzepte für therapeutische Zwecke (Milena)
-
Erstellung NFC-basierter Kommunikationstafeln welche mit Aktionen von Asterics Grid verknüpft sind. (Milena)
-
Erstellung von NCF-basierten 3D-Objekten / Kuscheltieren welche mit Aktionen von Asterics Grid verknüpft sind. (Milena)
-
Implementierung einer simplen Webseite zum Schreiben und Lesen von NFC-Tags (Petranka)
- Eingabemaske für NDEF-Daten
- Verwenden des Tag-Messageformates (JSON) für die Beschreibung der Tagdaten (siehe Kommunikation NFC-Gerät)
- Senden und Empfangen von NDEF-Daten über Web-Bluetooth
-
Asterics Grid git Repository clonen (Petranka)
- und lokal zum Laufen kriegen
- Doku lesen und Sourcecode anschauen
- Asterics Grid-Suchfunktion im Sourcecode suchen
-
Implementierung des Ausführens einer zugehörigen Aktion in Asterics Grid über integrierte Suchfunktion. (Petranka)
-
Implementierung eines benutzerfreundlichen Workflows für das Zuordnen von Asterics Grid - Zellen zu einem NFC-Tag (Petranka)
-
Evaluierung der Interaktionskonzepte mit Klient*innen (z.B. Kindern im VKKJ Ambulatorium) (Milena, Petranka)
Tasks ASSIST HEIDI
- Implementierung eines (kompakten) NFC-Gerätes (ASSIST HEIDI)
- Auf Basis von Pico/w
- Optional Erweiterung für FABI
- oder mittels puck-js+NFC-Reader PN532+Akku (Javascript)
- siehe puck-js-NFC-Reader-Prototype
- Tutorial pucks-js+PN532
- puck-js+WebNFC tutorial
Tasks Inclusion International
- Implementierung NFC-Bridge-App (Alija)
- Android App - Getting Started - Hello World (Milena)
- Bitte die App dann so erweitern, dass man die Felder des Tag-Messageformats (siehe Kommunikation NFC-Gerät) eingeben kann und am Tag speichern kann.
- Android NFC API (Milena, Alija)
- Video-Tutorial for NFC Android App creation (Milena, Alija)
- Implementierung eines kompakten NFC-Gerätes/Stiftes inkl. Akku (Martin, Alija)
Links Smartwatch Variante
- Asterics Grid (Desktop/Smartphone) über Web-Bluetooth <-> NFC-Bridge-App <-> Smartwatch/NFC-Accessoires
- Smartwatches normally don't support being used as generic NFC reader:
- Stackoverflow: Is there an NFC API for the Smartwatch 3
- NFC tag read API not working
- LG Watch Sport NFC support
- but there is one device on Alibaba:
- Portable bluetooth RFID reader
- Smartwatches normally don't support being used as generic NFC reader: