Table des matières:

Graffiti virtuel : 8 étapes
Graffiti virtuel : 8 étapes

Vidéo: Graffiti virtuel : 8 étapes

Vidéo: Graffiti virtuel : 8 étapes
Vidéo: 12 Levels of Graffiti: Easy to Complex | WIRED 2024, Novembre
Anonim
Graffitis virtuels
Graffitis virtuels

J'ai vu quelques systèmes de graffitis virtuels sur le Web, mais je n'ai trouvé aucune information publiée sur la façon d'en créer un (voir la page de liens finale). J'ai pensé que ce serait génial pour mes ateliers de graffiti, alors j'en ai fait un moi-même et j'ai publié tout ce dont vous avez besoin pour créer le vôtre ici ! pression et distance de l'écran, * les modèles dégoulinent de peinture si vous vous déplacez trop lentement ! Notes * cette instructable est de niveau assez élevé, mais faites-le moi savoir si j'ai raté quelque chose d'important, * la configuration informatique est pour Linux. Si vous le faites fonctionner sur d'autres systèmes, veuillez poster vos instructions ! Compétences dont vous aurez besoin * travail du bois pour fabriquer l'écran de rétroprojection en bois, * circuits électroniques et programmation des microcontrôleurs Atmel AVR (ou arduino), * pouvoir en installer bibliothèques sur votre ordinateur pour permettre au traitement de communiquer avec la wiimote.

Étape 1: Comment ça marche

Comment ça fonctionne
Comment ça fonctionne

* La bombe aérosol a une LED infrarouge qui brille à travers l'écran du projecteur et est vue par la caméra de la wiimote. * La wiimote envoie les coordonnées X et Y de la canette à l'ordinateur via une liaison radio bluetooth. * L'ordinateur exécute un programme de peinture simple qui utilise un projecteur pour « peindre » les lignes pendant que vous dessinez avec la boîte. Il s'occupe également de mapper la caméra Wiimote à l'écran à l'aide d'un système de calibrage à 4 points. * Le spray peut également détecter sa distance par rapport à l'écran et la pression de la buse: plus vous vous en éloignez plus le point dessiné est gros, plus vous appuyez fort sur la buse, plus le point de peinture devient opaque.

Étape 2: les composants

Les composants
Les composants

Voici tous les éléments dont vous avez besoin pour vous réunir:

* ordinateur - doit être d'environ 1,4 Ghz, bluetooth et un port usb, * environnement de traitement, * logiciel virtualGraffiti, téléchargement à partir de l'étape "configuration de l'ordinateur", * nintendo wiimote - acheter d'occasion sur ebay, * projecteur - il faudra être lumineux si vous prévoyez d'utiliser pendant la journée ou à l'intérieur avec des lumières allumées, * écran de projection arrière - faites-vous, * bombe aérosol virtuelle - fabriquez-vous, * récepteur de bombe aérosol virtuel - fabriquez-vous. usb->série intégré) 21 £ * paire radio rx/tx 9 £ * composants pour bombe aérosol de construction 18 £ plus boîtier en option 12 £ * boîtier en option pour récepteur 8 £ * nintendo wiimote - acheter d'occasion sur ebay 20 £

Étape 3: Écran de projection arrière

Écran de projection arrière
Écran de projection arrière

L'écran doit être juste ce qu'il faut de transparence ! S'il n'est pas assez transparent, l'image ne sera pas visible et la LED infrarouge ne sera pas visible par la caméra de la wiimote. S'il est trop transparent, le projecteur sera aveuglant et l'image sera délavée. (Bien que voir la dernière page pour les moyens d'atténuer cela).

J'ai utilisé du lycra, qui est extensible donc je peux l'étirer pour le rendre plus transparent. Pour le moment, je le tiens avec des punaises, mais je passe au velcro quand j'ai accès à une machine à coudre. J'ai réalisé un cadre en bois avec l'aide d'un atelier et d'un menuisier (merci Lou !) j'avais besoin qu'il s'effondre pour pouvoir le transporter sur mon vélo. Si vous en faites un pour un lieu fixe, ce sera plus facile à faire. Faites-le simplement au format 4:3 et suffisamment rigide pour rester debout. J'ai trouvé que les gens ont tendance à appuyer un peu sur le matériau de l'écran, il doit donc être un peu robuste.

Étape 4: Bombe aérosol

Aérosol
Aérosol
Aérosol
Aérosol

C'est la partie la plus compliquée du projet et c'est la partie la plus longue du projet qui a été la plus longue à réaliser. La bonne nouvelle est que vous n'avez pas besoin de tout cela pour faire fonctionner un système amusant. Le plus simple est juste d'avoir un circuit avec un interrupteur, une LED infrarouge et une résistance. Lorsque vous appuyez sur l'interrupteur, la LED s'allume et est vue et suivie par la caméra de la wiimote.

Cette version est plus avancée, car elle mesure également la distance par rapport à l'écran et la pression de la buse. Ces deux choses sont importantes lorsque vous faites de la peinture au pistolet. Je voulais faire un système de formation, il était donc important de rendre le système aussi "réel" que possible (dans les limites de mes coûts). Le circuit est assez simple. Jetez un œil au schéma de circuit ci-joint pour voir par vous-même. Vous avez besoin de compétences de base en soudure et d'être capable de mettre un circuit sur veroboard. En outre, vous devriez vous sentir satisfait de la programmation de microcontrôleurs. Construire un circuit à partir de zéro par rapport à l'utilisation d'une carte arduino option 1: si vous souhaitez utiliser une carte arduino dans une bombe aérosol. Utilisez arduino tel quel et divisez par deux le débit en bauds du tx radio dans le code de la bombe aérosol. option 2: vous voulez économiser de l'argent mais vous n'avez pas de programmeur de fusibles. Construisez la carte et utilisez un cristal externe de 16 MHz. Réduisez de moitié le débit en bauds comme dans l'option 1. option 3: vous voulez économiser encore plus d'argent et vous disposez d'un programmeur de fusibles. Construisez le plateau, mais omettez le cristal externe. Utilisez le programmeur de fusibles pour régler l'atmel afin qu'il utilise son horloge interne. Je pense que ce programmeur parallèle DIY vous permettra de programmer des fusibles. J'utilise le programmeur olimex. Vue d'ensemble du circuit Le microcontrôleur mesure la sortie du capteur de distance pointu 2d120x (bonnes informations sur ce capteur ici) et du potentiomètre linéaire. Il mesure également la sortie du potentiomètre LED PWM. Ceci est utilisé pour ajuster la puissance lumineuse de la LED. La LED IR que j'utilise est de 100mA et la longueur d'onde de crête est de 950nm (idéal pour wiimote). Le microcontrôleur utilise PWM pour faire clignoter la LED très rapidement. Nous utilisons un mosfet de puissance IRF720 afin que le micro ne brûle pas sa sortie. Je voulais également ajouter de la capacité pour une LED plus lumineuse à l'avenir. Il y a une LED d'état qui clignote à chaque fois qu'un paquet de données est diffusé sur la radio. Si tout fonctionne bien, ce voyant devrait clignoter à environ 15 Hz. Enfin, le module émetteur radio est attaché à la broche 3 (broche numérique 1 pour arduino) du microcontrôleur afin que nous puissions envoyer les informations que nous mesurons à l'ordinateur. Vous avez également BESOIN d'une antenne fixée à la carte du récepteur. J'ai utilisé un morceau de fil de 12 cm de long. C'est la moitié de ce qui est recommandé sur cette excellente page d'informations. Programmation du microcontrôleur Après avoir construit le circuit, vous devrez télécharger le programme (ci-joint). J'utilise l'environnement de programmation/les bibliothèques arduino. Vous pouvez le compiler avec l'IDE Arduino, puis le programmer comme vous le faites habituellement. Mon circuit est simplifié en utilisant l'horloge interne 8MHz du micro. Si vous l'utilisez, vous devrez définir les paramètres des fusibles pour utiliser le RC interne calibré à 8 MHz: 1111 0010 = 0xf2 Cela signifie que vous aurez besoin d'un programmeur capable d'écrire des fusibles../avrdude -C./avrdude.conf -V -p ATmega168 -P /dev/ttyACM0 -c stk500v2 -U lfuse:w:0xf2:m Si vous n'avez pas ce genre de programmeur (disons que vous avez juste l'arduino carte), utilisez simplement un cristal de 16 MHz entre les broches 9 et 10 et tout devrait fonctionner (non testé - vous aurez peut-être besoin d'un condensateur). Vous devrez également modifier le code du programme afin que le baud de l'émetteur soit réduit de moitié. Test Après avoir tout rassemblé et le programme chargé, vous devez ajuster la luminosité de la LED IR. Je voulais juste maximiser le rendement lumineux sans griller la LED, alors j'en ai fait exploser quelques-unes et j'ai fini avec une moyenne de tirage d'environ 120 mA. Si vous avez un multimètre, vous pouvez ajuster cela assez facilement, sinon ajustez simplement le potentiomètre pour qu'il soit assez haut mais pas complètement ! Vous pouvez également vérifier les entrées analogiques sur les broches 26, 27 et 28 du potentiomètre de réglage PWM, le capteur de distance et le potentiomètre de buse. Si vous avez un oscilloscope, vous pouvez vérifier le train d'impulsions sortant de la broche 3 dans le module radio TX. Vérifiez la sortie pwm de la LED sur la broche 11. Vous pouvez utiliser une caméra de téléphone portable (ou la plupart des caméras CCD) pour voir la LED IR s'allumer lorsque vous appuyez sur le bouton de la buse.

Étape 5: Récepteur de bombe aérosol

Récepteur de bombe aérosol
Récepteur de bombe aérosol
Récepteur de bombe aérosol
Récepteur de bombe aérosol

Si vous utilisez le simple spray, vous n'avez pas besoin de ce morceau.

Sinon, j'utilise simplement une carte arduino, avec le récepteur radio branché sur la broche 2. Cela permet d'obtenir facilement les données dans un ordinateur via la puce USB -> série sur la carte arduino. Si je devais créer un circuit personnalisé, j'utiliserais probablement une carte d'évaluation FTDI USB -> série UART. Vous avez également BESOIN d'une antenne fixée à la carte du récepteur. J'ai utilisé un morceau de fil de 12 cm de long. C'est la moitié de ce qui est recommandé sur cette excellente page d'informations. Chargez le croquis graffitiCanReader2.pde dans l'arduino. Avec la canette sous tension, vous devriez voir les LED d'état sur la canette et la carte du récepteur clignoter rapidement. Chaque fois que la LED de la boîte clignote, un paquet de données est envoyé. Chaque fois que la LED de la carte réceptrice clignote, un paquet de données valide est reçu. Si vous ne voyez pas cela, c'est qu'il y a quelque chose qui cloche avec la liaison radio. Quelque chose à essayer est de connecter le TX de la canette au RX du récepteur avec un morceau de fil. Si cela ne fonctionne pas, vous avez probablement un décalage dans le débit en bauds de virtualwire (voir le code). En supposant que vous ayez beaucoup de clignotements sur la carte du récepteur, vous devriez pouvoir surveiller cela sur votre port série USB. Si vous surveillez le port série (généralement /dev/ttyUSB0) à 57600, vous devriez voir des données cracher comme Got: FF 02 Got: FF 03… Le premier nombre est la pression et le second la distance. Vous pouvez maintenant lancer le traitement et utiliser ces informations pour faire de jolies images ! Chargez le croquis de traitement joint (canRadioReader.pde). Démarrez le programme et vérifiez la sortie du programme. Vous devriez obtenir une fréquence (qui vous indique combien de mises à jour par seconde le récepteur reçoit - vous voulez certainement qu'elle soit d'au moins 10 Hz). Vous obtiendrez également une mesure de distance et de buse. Testez la canette en déplaçant le potentiomètre de la buse et en déplaçant un morceau de carton devant le capteur de distance. Si tout fonctionne, passez à l'étape suivante: préparer l'ordinateur à parler à la wiimote !

Étape 6: Configuration de l'ordinateur: Traitement et Wiimote

Computer Setup: Processing et la Wiimote
Computer Setup: Processing et la Wiimote

Notre principal ici est de faire parler le traitement à la wiimote. Ces instructions sont spécifiques à Linux, mais tout devrait fonctionner sur un mac et Windows avec quelques recherches sur la façon de traiter les données de la wiimote. Après avoir installé le traitement, j'ai trouvé quelques instructions sur le forum, mais j'ai encore eu quelques problèmes. Voici ce que je devais faire:

  1. installer le traitement
  2. installer les bibliothèques bluez: sudo apt-get install bluez-utils libbluetooth-dev
  3. créer./processing/libraries/Loc et./processing/libraries/wrj4P5
  4. téléchargez bluecove-2.1.0.jar et bluecove-gpl-2.1.0.jar et placez-les dans./processing/libraries/wrj4P5/library/
  5. téléchargez wiiremoteJ v1.6 et placez le.jar dans./processing/libraries/wrj4P5/library/
  6. téléchargez wrj4P5.jar (j'ai utilisé alpha-11) et placez-le dans./processing/libraries/wrj4P5/library/
  7. téléchargez wrj4P5.zip et décompressez-le dans./processing/libraries/wrj4P5/lll/
  8. téléchargez Loc.jar (j'ai utilisé la bêta-5) et placez-le dans./processing/libraries/Loc/library/
  9. téléchargez Loc.zip et décompressez-le dans./processing/libraries/Loc/lll/

Ensuite, j'ai utilisé du code inspiré de Classiclll pour faire fonctionner les boutons et la barre de détection. Le code/croquis ci-joint dessine juste un cercle où la 1ère source infrarouge est trouvée par la wiimote.

Pour vérifier votre bluetooth, appuyez sur les boutons un et deux de la wiimote, puis essayez $hcitool scan sur le terminal. Vous devriez voir la nintendo wiimote détectée. Si ce n'est pas le cas, vous devrez examiner plus en détail votre configuration Bluetooth. Si tout va bien, chargez le programme wiimote_sensor.pde (attaché) et démarrez-le. Dans la partie inférieure de l'écran, vous devriez voir: BlueCove version 2.1.0 sur bluez essayant de trouver une wii Appuyez sur les boutons 1 et 2 sur la wiimote. Après sa détection, agitez votre source infrarouge (la bombe aérosol) devant elle. Vous devriez voir un cercle rouge suivre votre mouvement ! Assurez-vous que cela fonctionne avant de continuer. Si vous ne parvenez pas à le faire fonctionner, recherchez le forum de traitement.

Étape 7: tout configurer

Tout mettre en place
Tout mettre en place

Téléchargez le logiciel virtualGraffiti ci-dessous. Extrayez-le dans votre répertoire de carnet de croquis, puis suivez ces étapes !

* mettez la bombe aérosol sous tension, vérifiez que le voyant LED d'état clignote. * allumez l'ordinateur, branchez le récepteur de la bombe aérosol, * l'écran de configuration et le projecteur, * vérifiez que le voyant d'état du récepteur de la bombe aérosol clignote, * démarrez le traitement et chargez le programme virtualGraffiti, * vérifiez que vous obtenez à la fois l'indicateur série RX et TX Les LED clignotent sur la carte arduino, * appuyez sur les deux boutons de la wiimote, * effectuez un étalonnage en 4 points lorsque vous y êtes invité (mettez la bombe aérosol sur chaque cible à tour de rôle, puis appuyez sur la buse jusqu'à ce que l'écriture devienne rouge). * s'amuser!

Étape 8: Ressources, liens, remerciements, idées

Liens Voici les liens qui ont été précieux pour faire fonctionner ce projet: Info RF: https://narobo.com/articles/rfmodules.html Arduino: www.arduino.cc Traitement: www.processing.org Utilisation de la wii avec traitement: https://processing.org/discourse/yabb2/YaBB.pl?num=1186928645/15 Linux: www.ubuntu.org Wiimote: https://www.wiili.org/index.php/Wiimote, https://wiki.wiimoteproject.com/IR_Sensor#Wavelengths Calibration 4 points: https://www.zaunert.de/jochenz/wii/Merci ! Sans un grand nombre de personnes publiant leur travail, ce projet aurait été beaucoup plus difficile et plus coûteux. Un grand merci à toute l'équipe open source, aux personnes qui ont piraté la wiimote, Classiclll pour avoir rendu la wiimote facile à utiliser avec le traitement, Jochen Zaunert pour le code à faire l'étalonnage, l'équipe de traitement, l'équipe arduino, Lou pour l'aide à la menuiserie, et tous ceux qui explorent, font et ensuite publier leurs découvertes en ligne ! Les systèmes d'autres personnes * Je viens juste de trouver https://friispray.co.uk/, avec un logiciel open source et un howto * ce système permet l'utilisation de pochoirs: cool ! https://www.wiispray.com/, pas de code ni de howto * système de graffiti virtuel d'yrwall, pas de code ni de howto. Idées d'exploration * utilisez 2 wiimotes pour faire un suivi de volume 3D et supprimez le capteur de distance dans la boîte: https://www.cl.cam.ac.uk/~sjeh3/wii/. Ce serait bien car le capteur de distance est actuellement la partie la plus faible du système. Cela signifierait également que nous pourrions utiliser un écran de rétroprojection approprié pour des images plus vives. * utiliser une wiimote dans la bombe pour détecter l'angle de la bombe aérosol. Cela ajouterait du réalisme au modèle de peinture en aérosol.

Conseillé: