IllustraBot

De Kernel Fablab Lannion

Plus d'informations sur le projet.

Code

Le code est disponible dans notre dépôt github.

Pour accéder en écriture au dépôt, il vous faut créer un compte github puis demander à user:jerome de vous ajouter en tant que collaborateur (pensez à donner votre user github).

Une fois ceci fait, vous pouvez récupérer le code en local :

git clone https://github.com/fablab-lannion/IllustraBot.git
cd IllustraBot

Plus d'information sur Github

Serveur WebSocket sur RPi

(Inspiré de la page: Lowpowerlab)

Installation

Installation de la librairie Python Tornado

pi@raspberrypi ~ $ sudo aptitude update
pi@raspberrypi ~ $ sudo aptitude install python-pip python-dev
pi@raspberrypi ~ $ sudo pip install Tornado
pi@raspberrypi ~ $ cd IllustraBot/RaspberryPi/pyserial-2.6
pi@raspberrypi ~/IllustraBot/RaspberryPi/pyserial-2.6 $ python setup.py install
pi@raspberrypi ~/IllustraBot/RaspberryPi/pyserial-2.6 $ cd ../SPI-Py
pi@raspberrypi ~/IllustraBot/RaspberryPi/SPI-py $ python setup.py install

Configurer le serveur

L'objectif est de donner au serveur websocket le type d'interface et les modifications à faire sur le gcode.

botname = 'test' # défini le type de robot à utiliser (parmi la liste suivante)
sourceMaxX = 500 # la valeur max de l'axe X sur la source
sourceMaxY = 700 # la valeur max de l'axe Y sur la source
config = ... défini la liste possible des robots configurés

Les types de robots sont:

  • 'type' : 'dev'
    • pour les connexions série (type arduino)
    • champs liés:
      • 'arduinoDev': '/dev/ttyUSB0',
      • 'arduinoDevSpeed': 115200,
  • 'type': 'socket',
    • pour les connexions gcode over socket (exemple: parrot)
    • champs liés:
      • 'socketIP': '192.168.1.100'
      • 'socketPort': 9999,
  • 'type': 'file',
    • pour envoyer le gcode dans un fichier
    • champs liés:
      • 'file': '/tmp/gcode'
  • 'type': 'spi',
    • pour envoyer le gcode sur un dev SPI
    • champs liés:
      • aucun (pour le moment)

Les autres champs à configurer pour chaque robot:

  • 'sizeX': la taille de l'axe X du robot
  • 'sizeY': la taille de l'axe Y du robot
  • 'inverseAxes': inverser l'axe Y et Z (0 ou 1)
  • 'trapezeFactor': si projection trapezoidale, facteur de multiplication du segment haut du trapeze,
  • 'floor': passer le gcode de flottant à entier (0 ou 1)
  • 'moveToLenght': transformer les coordonnées cartésiennes en longueurs pour les robots à base de poulies,
  • 'extraLenght': longueur à ajouter

Lancer le serveur (inclus dans le dépot Git):

pi@raspberrypi ~/IllustraBot/RaspberryPi/ $ python websocket-server.py &

NOTE: Le serveur websocket est fonctionnel et transmet le GCode vers un port série