Your Smartphone is a Sensorpack

Your Smartphone is a Sensorpack

In diesem Recipie zeigen wir dir wie du ZigSim Pro eine App die Sensordaten aus deinem Handy streamen kann verwendest und mit verschiedenen Softwareumgebungen zum laufen bekommst.

Zig Sim Pro

ist eine App die aufs Smartphone oder Tablet geladen werden kann. Sie gibt dir Zugriff auf sehr viele Sensoren die in deinem Handy verbaut sind und kann diese Sensordaten Wireless an deinen Computer senden. Wir können dadurch nicht nur beobachten was ein Handy alles potentiell aufzeichnen kann sondern wir können diese Daten auch für interaktionen nützen.

Dokumentation

Eine Ausgezeichnete Dokumentation findest du hier:

https://1-10.github.io/zigsim/

Zig Indicator Datastream etablieren

Hier kannst du ein Helperprogramm (Zig Indicator) herunterladen um die Verbindung zwischen deinem Smartphone und deinem PC zu testen:

Zig Indicator hilft dir herauszufinden welche Einstellungen für deine Übertragung die Richtige ist.

Um die Verbindung herstellen zu können sind folgende Eckdaten wichtig:

  • PROTOCOL
    • UDP/TCP
  • IP ADDRESS
    • z.B. 172.20.10.2 (beide Geräte müssen im selben Netzwerk sein.)
  • PORT NUMBER
    • z.B. 50000
  • MESSAGE FORMAT
    • JSON / OSC
  • OUTPUT PORT NUMBER
    • z.B. 50000

Einen ersten Test zu starten musst du die Einstellungen in deiner App (Zig Sim Pro) und dem Helperprogramm (Zig Indicator) abgleichen:

In der Smartphone App

  1. Settings:
    1. Protocol unbedingt UDP einstellen!
    2. IP gleich wie in Zig Indicator
    3. Port gleich wie in Zig Indicator
    4. Message Format unbedingt JSON einstellen!
  2. Sensors: Sensoren auswählen in diesem Beispiel (Acceleration, Quaternion, Compass)
  3. Start: Clickst du auf «Start» so sollten deine Sensoren nun gestreamt werden und im ZigIndicator abgefangen werden können.

Clickst du nun bei Zig Indicator auf Start kannst du die Sensorwerte empfangen:

Wenn dieser erste Versuch erfolgreich hergestellt werden konnte können die Folgenden Experimente gestartet werden:

P5.js

Github Code Download

Github Code Package

Um Zig Sim mit P5.js nutzen zu können müssen wir einige kleinigkeiten installieren. Diese Anleitung befasst sich mit der Installation in Visual Studio Code. Als erstes lädst du das Codepackage herunter und speicherst es an einem Ort der auf deinem Computer dafür geeignet ist. Der Ordner soll während dem ganzen Prototypen nicht verschoben werden.

Installation

Du brauchst Node.js für die folgenden Schritte falls du es noch nicht installiert hast, ist es ratsam dies jetzt zu tun.

In Visual Studio Code öffnest du den Ordner zigsimp5 mit dem Terminal und installierst die Dependecies in dem du folgenden Befehl ausführst.

npm init -y

npm install express ws
npm install osc ws
sudo npm install -g http-server

App Einstellungen

In der Smartphone App

  1. Settings:
    1. Protocol unbedingt UDP einstellen!
    2. IP gleich wie in Zig Indicator
    3. Port gleich wie in Zig Indicator
    4. Message Format unbedingt OSC einstellen!

Im Server.js Script eventuell die IP und den Port (Zeile 17-21) anpassen:

// Set up UDP socket for OSC
const udpPort = new osc.UDPPort({
localAddress:"172.20.10.2",
localPort:50000
});

Beispiel Scripts starten

Nachdem du alle dependencies installiert hast und die App Einstellungen, sowie Scripanpassungen vorgenommen hast, sollte es möglich sein das Server.js script im Terminal zu starten und die Beispiele zu starten: Öffne das Terminal im Ordner zigsimp5 und füre folgenden Befehl aus:

# Terminal 1
cd zigsimp5
node server.js

Öffne ein zweites Terminal und führ folgenden Befehl aus:

# Terminal 2 
cd zigsimp5/public 
http-server

Im Terminal solltest du nun eine IP angezeigt bekommen die du in einem Browser öffnen kannst:

In meinem Beispiel ist es 127.0.0.1:8080 oder 127.20.10.2:8080 öffne ich eine dieser Adressen sehe ich das aktive Script.

Scripts auswählen

Code Beispiele

Als Beispiele haben wir dir folgendes Vorbereitet:

AllDataDisplay.js

Dieses Script zeigt dir diverse Sensordaten als Rohe Zahlen im Display an.

Zig Sim Pro

  • Acceleration
  •  Gyro
  • Quaternion
  • Compass
  • GPS
  • Touch
  • MicLevel
  • Battery

Orientation_Loudness.js

Dieses Script zeigt dir die Wirkweisen von drei Sensoren in P5.js:

  1. Microphone Level als Würfel der grösser wird – je lauter desto roter
  2. Accelerometer als Scrolling Data Plott für x, y und z Achse
  3. Quaternion Ausrichtung als Achsendarstellung für x, y und z Achse

Zig Sim Pro

  • Acceleration
  • MicLevel
  • Quaternion

Beautyfied_Phone_Orientation_Loudness_Acc.js

Dieses Script vereint die obenren drei Sensorwerte in eine Darstellungsform:

  1. Orientierung (Quaternion – Wert) -> Cube Ausrichtung
  2. Lautstärke (Microphone Level) -> Grösse
  3. Accelerometer -> Farbigkeit des Cubes

Zig Sim Pro

  • Acceleration
  • MicLevel
  • Quaternion

ARKit_Device_DataDisplay_RawData.js
Dieses Script ist als Hello World des ARKits gedacht
Folgendes sollte im Zig Sim Pro App eingestellt werden:
Zig Sim Pro
  • ARKit
  • Tracking Type: Device
  • Feature Points: On

ARKit_Device_DataDisplay_VIZ.js
Dieses Script baut auf dem ersten Example auf und zeigt dir zusätzlich die Punkte live in einer 3D Visualisierung an.
Zig Sim Pro
  • ARKit
  • Tracking Type: Device
  • Feature Points: On

ARKit_Device_Scanner.js
Dieses Script ist ein primitver 3D Scanner der bis zu 10000 Trackingpunkte speichert und die Umgebung simpel darstellen und speichern kann.
Zig Sim Pro
  • ARKit
  • Tracking Type: Device
  • Feature Points: On

ARKit_Face_Featurepoints_DataDisplay.js

Dieses Script ist der Datadump für die Messpunkte die aus einem Gesicht gewonnen werden können.

Zig Sim Pro
  • ARKit
  • Tracking Type: Face
  • Feature Points: On

ARKit_Face_EyeHeadOrientation_VIZ.js

Dieses Script ist ein rudimentärer «Spiegel» der deine Kopfbewegungen, dein Blinzeln und deine Blickachse aufzeigt.

Zig Sim Pro

  • ARKit
  • Tracking Type: Face
  • Feature Points: On

ARKit_Face_EyeHeadOrientation_VIZ.js

Dieses Script ist ein rudimentärer «Spiegel»der ein simples Gesicht animiert.

Zig Sim Pro

  • ARKit
  • Tracking Type: Face
  • Feature Points: On
ImageDetection_QR.js

Dieses Script Zeigt dir die Basisdaten des QR Detectors an.

Zig Sim Pro

  • Image Detection
  • Tracking Type: QR

ImageDetection_QR_Datastream_Beautyfied.js

Dieses Script Zeigt dir die Funktionsweise des QR Detectors an. Es ist auch Möglich verschiedene Typen von QR Codes zu identifizieren.

Zig Sim Pro

  • Image Detection
  • Tracking Type: QR

Die Beispiele die wir im P5 gezeigt haben sind auch in anderen Programmierumgebungen nutzbar.

MaxMSP

Diese App habe ich auf Federico Fonderaro`s Video auf seinem Youtube Channel»Amazing Max Stuff» entdeckt und alle nachfolgenden Beispiele basieren auf seinem gezeigten Video. Falls euch diese Beispiele helfen, lasst ihm ein Like da oder bezahlt ihm einen Kaffee! Federico bringt immer wieder interessante Videos raus – eine Empfehlung!

Touch Designer

Das Example Script von ZigSim findest du auch auf unserem Github account. Das Tutorial findest du hier: https://1-10.github.io/zigsim/tutorial.html#using-touchdesigner