Benutzer-Werkzeuge

Webseiten-Werkzeuge


projekte:2018:magictable

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
Letzte ÜberarbeitungBeide Seiten der Revision
projekte:2018:magictable [2019/01/13 19:09] – angelegt svenprojekte:2018:magictable [2019/01/13 20:28] – [Installation im Lab] sven
Zeile 10: Zeile 10:
     * Visuelle Programmierumgebung für die Früherziehung von Softwarentwicklung     * Visuelle Programmierumgebung für die Früherziehung von Softwarentwicklung
  
 +
 +====== Installation im Lab ======
 +
 +{{ :projekte:2018:20190113_194415.jpg?300|}}
 +
 +Rechner, Beamer und Kamera sind über dem mittleren Tisch vor der Küchenzeile montiert.
 +
 +Der Rechner hat die IP 192.168.1.18 und den Hostnamen magictable.flka.space.
 +
 +Username: fabi
 +
 +Password: <Standard>
 +
 +The project is installed at ''/home/fabi/projects/magic-table''
  
 ===== Programmierumgebung ===== ===== Programmierumgebung =====
  
-Quellen[[https://github.com/fablab-ka/magic-table| Github Repo]]+=== Quellen === 
 + 
 +[[https://github.com/fablab-ka/magic-table| Github Repo]] 
 + 
 +==== Architektur ==== 
 + 
 +=== CV-Server === 
 + 
 +Der CV-Server nutzt eine kalibrierte Webcam um Marker mittels [[https://opencv.org/ | OpenCV]] zu erfassen und sendet deren Positionen und Orientierungen relativ zur Kamera via Websocket an alle verbundenen clients. 
 + 
 +=== Content Engine === 
 + 
 +Die Content Engine ist ein Client für den CV-Server. Sie stellt einen Webserver bereit welcher eine Webapp bereitstellt die sich via Websocket an den CV-Server verbindet und anhand der Daten ein Bild generiert welches mittels Kalibriertem Beamer wieder projeziert wird. 
 + 
  
-Architektur: 
 {{ :projekte:2018:magictablearchitecture.png?600 |}} {{ :projekte:2018:magictablearchitecture.png?600 |}}
  
-===== Visuelle Programmierumgebung ===== 
  
 +== CV-Server Websocket Interface ==
 +
 +Interface um marker updates zu übermitteln. Clients die sich mit dem Server verbinden bekommen messages mit dem folgenden Format:
 +
 +    [
 +      {
 +        ids: number[];
 +        marker: number[][][];
 +        transform: number[][];
 +      }, 
 +      ...
 +    ]
 +
 +Das JSON-Array enhält eine Liste aller Messages die auf einmal vom Server verschickt wurden (sollte meistens genau eine Nachricht enthalten).
 +
 +Jedes Objekt darin hat
 +
 +**ids** - Liste aller Marker ids in dieser message. Eine Marker ID ist eine nummer von 1-255 welche im Marker eindeutig encodiert ist.
 +
 +**marker** - Liste aller Eckpunkt-Koordinaten der Marker (''[<marker index>][<eckpunkt index>][x, y]'')
 +
 +**transform** Liste der Marker Matrizen welche die Orientierung der Marker im dreidimensionalen Raum relativ zur Kameraposition beschreiben.
 +
 +== Web Interface (HTTP) ==
 +
 +Die Content Engine veröffentlicht eine Webapp die mit einem Browser erreichbar ist. 
 +
 +
 +===== Visuelle Programmierumgebung für Kids =====
 +
 +Spielerisch programmieren lernen.
 +
 +
 +==== Idee ====
 +Das Spiel projeziert mittel Beamer ein Spielfeld auf einen Tisch. Ein kleiner **Roboter** fährt sobald er eingeschaltet wurde an den Startpunkt der Karte. **Programmierblöcke** die auf den Tisch gelegt werden werden vom Spiel ausgewertet und interpretiert in dem der Roboter versucht den Anweisungen zu folgen.
 +
 +==== Roboter ====
 +
 +{{ :projekte:2018:2019-01-12.png?400 |}}
 +
 +ESP8266 basierter Roboter mit 2 Rädern.
 +
 +=== BOM ===
 +  * Wemos D1
 +  * Wemos Battery Shield
 +  * Wemos Motor Shield
 +  * 3V Getriebe DC Motor
 +  * Lipo Akku
 +  * 2 LEDs
 +  * Lasercut & 3D Printed Parts: [[https://a360.co/2D9jxc7 | 3d Model]]
 +  * 3cm O-Ring
 +
 +=== Firmware ===
 +https://github.com/fablab-ka/magic-table/tree/master/robot/firmware
 +
 +registriert sich unter magicrobot.flka.space und kann via HTTP oder Websocket angesprochen werden.
 +
 +{{ :projekte:2018:20190113_152549.mp4 |}}
 +
 +
 +=== Websocket Interface ===
 +
 +Message format:
 +''#<direction><velocity><amount>''
 +
 +**direction:** 
 +Eine Nummer mit folgenden Werten und Bedeutungen.
 +
 +  * 0 - Stop
 +  * 1 - Rotate Left
 +  * 2 - Rotate Right
 +  * 3 - Forward
 +  * 4 - Backward
 +
 +**velocity**:
 +The Velocity of the movement. Values are between 0 and 1023.
 +
 +**amount**:
 +The Amount of the Movement. Values are between 0 and 1023.
 +For rotations 1023 means a full rotation.
 +For linear movements 1023 means 10cm.
 +
 +
 +==== Programmierblöcke ====
 ===== Table Top Gaming ===== ===== Table Top Gaming =====
  
 TBD TBD
projekte/2018/magictable.txt · Zuletzt geändert: 2019/01/13 20:51 von sven

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki