Light Plotter with Intel Edison (14 / 16 étapes)

Étape 14 : Rassembler tout le Code

Il s’agit d’une vue d’ensemble du code qui a été discuté lors des étapes précédentes. Mon fichier final est joint pour votre usage.

Le code se compose de ces classes

  • crayon optique
  • SVGHandler
  • moteurs pas à pas
  • lightPlotter
  • cmdInterface

LightPen classe

Cette classe gère la communication avec les ESP8266 wifi contrôle RGB LED via une interface HTML. Il a trois fonctions

setColourRGBTuple() Cette fonction est utilisée pour définir la couleur actuelle à une valeur RGB fournie sous la forme d’un tuple (R, G, B), où les valeurs R, G et B sont compris entre 0 et 255 (base 10 - décimale)

setColourHexString() Cette fonction est utilisée pour définir la couleur actuelle à une valeur RGB fournie sous la forme d’une chaîne hexadécimale de « #rrggbb », où les valeurs rr, gg et bb sont entre 00 et ff (base 16 - hex)

setColour() Cette fonction est appelée par setColourRGBTuple ou setColourHexString pour appliquer la couleur à LEDS via une demande de HTML. Si nous avons appelé cette fonction directement entre les étapes moteurs il pourrait entraîner un retard et interférer avec la douceur de notre progression. Pour éviter cela, il est appelé dans un fil, pour qu’il fonctionne simultanément avec le code pas à pas.

Classe SVGHandler

Fonctionnement de cette classe a été expliqué dans l’étape « Coordonnées XY de SVG an » bref il lit dans un SVG (qui est censé pour avoir des coordonnées absolues chemin unique et linéaire des objets seulement) et les stocke sous forme de liste de coordonnées de début et de fin de lignes, ainsi que de la couleur de la ligne. Les segments forment une liste de listes, chaque segment ayant la forme [x 0 y0 x1 y1 RGB]. x et y coordonnées sont normalisées des flotteurs (mise à l’échelle afin que le minimum est 0 et la valeur maximale est 1).

Classe de moteurs pas à pas

Cette classe est décrite à l’étape « Code Python pour conduire les steppers ». Il gère la communication I2C avec les moteurs pas à pas et offre une fonction de simple step() qui se déplace le stepper ou recule d’un cran.

Classe LightPlotter

La classe LightPlotter toutes ces autres classes rassemble dans un système qui peut dessiner avec la lumière. Au cours de l’initialisation, il y a quelques variables clés qui sont configurés

  • les deux moteurs sont définis comme motor1 (moteur gauche) et motor2 (moteur de droite), ce sont des instances de la classe de moteurs pas à pas
  • Le nombre d’étapes horizontales entre motor1 et motor2 est définis (xRes). Cela doit être déterminée expérimentalement et dépendra du diamètre de vos poulies et la distance entre les moteurs.
  • Le temps par défaut entre les étapes (Steptime est) est défini. une valeur de 10 ms (0,01) bien fonctionné pour moi, mais vous devrez déterminer à quelle vitesse vous pouvez passer sans étapes manquantes.
  • La durée de l’étape maximale (stepTimeMax) est également définie, mais c’est vraiment juste une sécurité pour certains calculs, elle n’a pas un intérêt matériel, j’ai choisi 1 seconde, ce qui n’était jamais atteint dans la pratique.
  • usableArea. Comme décrit dans la l’étape de la « Compréhension la géométrie d’un String traceur », les extrémités directement sous les moteurs et directement entre les moteurs (en haut) devrait être évitée, si je définis une variable « usableArea » qui est un pourcentage de la surface théorique. 70 % (ou 0,7) est un bon point de départ.
  • Parfois, vous souhaiterez peut-être déplacer votre image entière vers le bas (par exemple, pour dessiner des pieds d’un personnage sur le sol), la variable "Décalage_y" s’occupe de cette

Elles sont fonctions de la classe lightPlotter

  • setOrigin
  • goTo
  • runSteppers
  • stepMotors

setOrigin() permet d’indiquer l’abaque de lumière qu’il est actuellement à (0,0) qui est utilisé dans l’étalonnage.

runSteppers() est une fonction de commodité qui prend dans un certain nombre de mesures que chaque moteur doit tourner, ainsi que l’intervalle entre les étapes pour chaque moteur. À l’aide de fils les deux moteurs sont tous deux capables d’être renforcée en même temps.

goTo() prend une (X, Y) coordonner et calcule le nombre d’étapes requises par chaque moteur pour se déplacer afin d’obtenir la LED à cet endroit. En outre, il détermine le délai entre les étapes pour s’assurer que les deux moteurs prennent le même temps pour arriver à leur destination. Une fois ces détails sont calculées, goTo() fait usage de la fonction runSteppers() pour obtenir les moteurs se déplaçant.

cmdInterface Class

Cette classe utilise la très cool Python module « cmd », ce qui nous permet de créer facilement une interface de ligne de commande pour notre plotter de lumière.

Les fonctions qui sont précédées de « do_ » peuvent être appelées depuis la ligne de commande lorsque le script est exécuté. Vous pouvez voir qu’ils sont tous correspondent presque directement aux fonctions des diverses classes, dans la plupart des cas, elles comprennent un bit de vérification des erreurs pour s’assurer que les arguments sont sain d’esprit. L’étape de « Comment utiliser le système » décrira comment utiliser ceux-ci.

  • do_plotsvg
  • do_movesteps
  • do_invertMotor
  • do_disableMotor
  • do_enableMotor
  • do_setrgb
  • do_goxy
  • do_goxyrgb
  • do_setusable
  • do_setorigin
  • do_setyoffset
  • do_exit
  • lightPlotter_003.py

Articles Liés

Getting Started with Intel Edison - programmation Python

Getting Started with Intel Edison - programmation Python

Ce guide est pour tous les programmeurs python qui ont toujours demandé, que vousce qui est le meilleur moyen d'entrer dans « IoT "(Internet of Things) , maintenant puisque vous l'avez fait à cette page, achète-toi un Edison Intel sur Amazon ou un en
Getting Started with Intel® Edison Breakout Mini Board

Getting Started with Intel® Edison Breakout Mini Board

Intel propose 2 plates-formes matérielles différentes de travailler avec Intel® Edison development board.Le module core d'Intel® Edison est appelé Module Intel® Edison Compute, tandis que les cartes de 2 extension sont appelés Intel® Edison Arduino e
Intel Edison Gas système de capteurs pour détecter les biogaz / fuite de GPL

Intel Edison Gas système de capteurs pour détecter les biogaz / fuite de GPL

Je fais partie de ces 300 + instructables membres de la communauté qui a reçu le Conseil Edison Intel et le kit de développement Intel IoT spécialisés offerts par instructables sous le thème environnement et Agriculture. Un de la proposition soumise
Voiture RC ITO avec Intel Edison (IntelIoT)

Voiture RC ITO avec Intel Edison (IntelIoT)

PréfaceLaissez-nous d'abord comprendre ce que nous essayons d'atteindre ici. Nous avons toutes sortes de jouets RC pour nos enfants et puis, il y a des jeux vidéo et mobiles. Un c'est sûr que tout le monde adore les voitures, que ce soit le vrai, ou
Moniteur de paramètres environnementaux distance Intel Edison IoT

Moniteur de paramètres environnementaux distance Intel Edison IoT

Il s'agit d'un projet très basique entièrement réalisé en javascript par le biais de l'IDE « Intel XDK IoT edition ». Lorsque vous avez terminé, vous aurez un système de surveillance des paramètres environnementaux (température, lumière et l'air de q
Voiture télécommande contrôle et suivi avec Intel Edison

Voiture télécommande contrôle et suivi avec Intel Edison

Je suis habituellement prolixe, mais pour cette partie, je vais essayer d'être succinct. Ce projet est :Un Edison d'Intel, un récepteur GPS, un lecteur Bluetooth OBD II + (capteurs de voiture de rechange en option) + une voiture.Ajouter dans certains
Intel Edison capteur tableau de bord à l’aide de franc-bord/Python/fiole (programmation minimale nécessaire)

Intel Edison capteur tableau de bord à l’aide de franc-bord/Python/fiole (programmation minimale nécessaire)

Tout d'abord, je tenais à vous remercier pour l'opportunité de travailler avec un Edison et pour un par Intel/Instructables étant donné leur concours d'ITO. Je pense que c'est un excellent moyen de faire de développement communautaire et encourager l
Sac à dos de Geiger avec Intel Edison

Sac à dos de Geiger avec Intel Edison

Nous sommes un groupe de décideurs qui aiment passer des nuits et week-ends bricoler avec technologie ici au FabLab Verona (Vérone est une ville du Nord de l'Italie) et avec ce instructable nous voulons décrire le projet nous avons réalisé pour le co
Intel IoT EDI - surveillance un environnement confortable et sécuritaire (avec Intel Edison)

Intel IoT EDI - surveillance un environnement confortable et sécuritaire (avec Intel Edison)

Avant pour commencer, je tiens à remercier Intel et Instructables pour cette occasion : J'ai été sélectionné entre autres vainqueur d'un merveilleux Intel IoT Edison & Grove Kit... C'était très surprenant pour moi, et je suis très reconnaissant pour
IMPACT DE L’ÉQUIPE ! Smart casque - Intel Edison, Sparkfun 9DOF

IMPACT DE L’ÉQUIPE ! Smart casque - Intel Edison, Sparkfun 9DOF

Edison Intel avec Sparkfun 9DOF LSM9DS0 IMU3ème place @ l'Intel IoT Roadshow NYC 2015Ce Instructable est un casque Smart d'Ito de Edison Intel qui utilise un 9DOF de Sparkfun pour collecter des données par le casque afin de mesurer la tête tramas et
Sismographe de nuage avec Intel Edison

Sismographe de nuage avec Intel Edison

Nous sommes un groupe de décideurs qui aiment passer des nuits et week-ends bricolageavec technologie ici au FabLab Verona (Vérone est une ville du Nord de l'Italie) et avec ce instructable nous voulons décrire le projet nous avons réalisé pour le co
Pompe à eau Intel Edison Motion Sensor

Pompe à eau Intel Edison Motion Sensor

Apprenez à construire un système de pompe à eau automatique grâce à l'utilisation d'un capteur de mouvement et une pompe à eau.Matériel requis :Pompe à eau Mini 1 x 6v2 x Grove IR Distance interrupteur1 x Relais Bosquet (30 a)1 x capteur d'eau Grove1
T.E.E.T.H. - Ajout d’ITO à votre domicile avec Intel Edison

T.E.E.T.H. - Ajout d’ITO à votre domicile avec Intel Edison

DENTS est synonyme de minuterie encourageant tout le monde à la santé. Il utilise petit facteur de forme du Conseil Intel Edison pour mettre à niveau votre porte brosse à dents à un appareil à la page d'accueil d'Ito. Cette mise à jour intelligente e
Mouvement de caméra de sécurité activé à l’aide d’Intel Edison

Mouvement de caméra de sécurité activé à l’aide d’Intel Edison

L'objectif de ce projet est de faire une caméra de sécurité qui est activée par un senor de la motion. Un détecteur de mouvement à infrarouge passif (PIR) surveille en permanence pour n'importe quel mouvement dans son champ de vision. Quand un mouvem