Inhoudsopgave:
- Stap 1: Hoe het werkt
- Stap 2: De componenten
- Stap 3: Achterprojectiescherm
- Stap 4: Spuitbus
- Stap 5: Spuitbusontvanger
- Stap 6: Computer Setup: Processing en de Wiimote
- Stap 7: Alles instellen
- Stap 8: bronnen, links, bedankt, ideeën
Video: Virtuele graffiti: 8 stappen
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:20
Ik heb een paar virtuele graffiti-systemen op internet gezien, maar kon geen informatie vinden over hoe je er een kunt maken (zie de laatste pagina met links). Ik dacht dat het geweldig zou zijn voor mijn graffiti-workshops, dus ik heb er zelf een gemaakt en heb hier alles gepubliceerd wat je nodig hebt om je eigen graffiti te maken! Kenmerken * alle open source en hardware, * kosten < £ 100 exclusief projector en computer, * detecteert het mondstuk van het blik druk en afstand van het scherm, * modellen verf druipen als je te langzaam beweegt!Opmerkingen * dit instructable is vrij hoog niveau, maar laat het me weten als ik iets belangrijks heb gemist, * de computer setup is voor Linux. Als je het werkend krijgt op andere systemen, post dan je instructies! Vaardigheden die je nodig hebt * houtbewerking om het houten doorzichtprojectiescherm te maken, * elektronische circuits en programmeren van Atmel AVR-microcontrollers (of arduino), * sommige kunnen installeren bibliotheken op uw computer zodat de verwerking met de wiimote kan praten.
Stap 1: Hoe het werkt
* De spuitbus heeft een infrarood LED die door het projectorscherm schijnt en gezien wordt door de camera van de wiimote. * De wiimote stuurt de X- en Y-coördinaten van het blikje via een bluetooth-radioverbinding naar de computer. * De computer draait een eenvoudig tekenprogramma dat een projector gebruikt om de lijnen te "schilderen" terwijl u met het blikje tekent. Het zorgt ook voor het in kaart brengen van de Wiimote-camera op het scherm met behulp van een 4-punts kalibratiesysteem. * De spray kan ook de afstand tot het scherm en de spuitmonddruk detecteren: hoe verder je weg bent, hoe groter de getekende stip, hoe harder je op de spuitmond drukt, hoe ondoorzichtiger de verfstip wordt.
Stap 2: De componenten
Hier zijn alle stukjes die je nodig hebt om bij elkaar te komen:
* computer - moet ongeveer 1,4 Ghz zijn, bluetooth en een usb-poort, * verwerkingsomgeving, * virtualGraffiti-software, downloaden via de stap "computer setup", * nintendo wiimote - tweedehands kopen van ebay, * projector - het moet wees helder als je van plan bent om overdag te gebruiken of binnen met lichten aan, * achterprojectiescherm - maak jezelf, * virtuele spuitbus - maak jezelf, * virtuele spuitbusontvanger - maak jezelf. Kosten * arduino voor blikontvanger (ingebouwde usb->serieel) £21 * radio rx/tx-paar £9 * componenten voor het bouwen van spuitbus £18 plus optionele behuizing £12 * optionele behuizing voor ontvanger £8 * nintendo wiimote - tweedehands kopen op ebay £20
Stap 3: Achterprojectiescherm
Het scherm moet precies de juiste hoeveelheid doorzichtigheid hebben! Als het niet transparant genoeg is, is het beeld niet zichtbaar en is de infrarood LED niet zichtbaar voor de camera van de wiimote. Als het te transparant is, zal de projector verblinden en wordt het beeld vervaagd. (Zie de laatste pagina voor manieren om dit te verminderen).
Ik heb lycra gebruikt, dat rekbaar is, zodat ik het kan uitrekken om het transparanter te maken. Op dit moment houd ik het vast met punaises, maar ik studeer af naar klittenband als ik toegang krijg tot een naaimachine. Ik heb een houten frame gemaakt met behulp van een werkplaats en een timmerman (bedankt Lou!) Ik moest het in elkaar laten storten zodat ik het op mijn fiets kon vervoeren. Als je er een maakt voor een vaste locatie, is het gemakkelijker om te maken. Maak het gewoon in een beeldverhouding van 4:3 en stijf genoeg om rechtop te blijven. Ik heb gemerkt dat mensen de neiging hebben om behoorlijk op het schermmateriaal te duwen, dus het moet een beetje robuust zijn.
Stap 4: Spuitbus
Dit is het meest gecompliceerde deel van het project en het kostte de langste tijd om goed te krijgen. Het goede nieuws is dat je al deze dingen niet nodig hebt om een leuk systeem te laten werken. Het eenvoudigste is om gewoon een circuit te krijgen met een schakelaar en een infrarood-LED en een weerstand. Wanneer je op de schakelaar drukt, gaat de LED branden en wordt deze gezien en gevolgd door de camera van de wiimote.
Deze versie is geavanceerder, omdat hij ook de afstand tot het scherm en de sproeidruk meet. Beide dingen zijn belangrijk als je daadwerkelijk aan het schilderen bent. Ik wilde een trainingssysteem maken, dus het was belangrijk om het systeem zo "echt" mogelijk te maken (binnen mijn kostenlimieten). De schakeling is vrij eenvoudig. Bekijk het bijgevoegde schakelschema om het zelf te zien. Je hebt basis soldeervaardigheden nodig en om een schakeling op veroboard te kunnen zetten. Je zou ook blij moeten zijn met het programmeren van microcontrollers. Een circuit helemaal opnieuw bouwen versus een arduino-bord gebruiken optie 1: als je een arduino-bord in een spuitbus wilt gebruiken. Gebruik arduino zoals het is en halveer de baudrate van de radio tx in de spraycan-code. optie 2: je wilt geld besparen maar je hebt geen zekeringprogrammeur. Bouw het bord en gebruik een 16MHz extern kristal. Halveer de baudrate zoals in optie 1. optie 3: je wilt nog meer geld besparen en je hebt een zekeringprogrammeur. Bouw het bord, maar laat het externe kristal weg. Gebruik de zekeringprogrammeur om de atmel in te stellen om zijn interne klok te gebruiken. Ik geloof dat je met deze doe-het-zelf parallelle programmeur zekeringen kunt programmeren. Ik gebruik de olimex programmer. Overzicht van het circuit De microcontroller meet de output van de scherpe 2d120x afstandssensor (grote info over deze sensor hier) en de lineaire potentiometer. Het meet ook de output van de LED PWM-potentiometer. Hiermee wordt de lichtopbrengst van de LED aangepast. De IR-LED die ik gebruik is 100mA en de piekgolflengte is 950nm (ideaal voor wiimote). De microcontroller gebruikt PWM om de LED zeer snel te laten knipperen. We gebruiken een IRF720 power mosfet zodat de micro zijn output niet doorbrandt. Ook wilde ik in de toekomst capaciteit toevoegen voor een helderdere LED. Er is een status-LED die knippert telkens wanneer een datapakket op de radio wordt uitgezonden. Als alles goed werkt, zou dit lampje rond de 15 Hz moeten knipperen. Ten slotte is de radiozendermodule bevestigd aan pin 3 (digitale pin 1 voor arduino) van de microcontroller, zodat we de informatie die we aan het meten zijn naar de computer kunnen sturen. U hebt ook een antenne nodig die op de ontvangerkaart is bevestigd. Ik gebruikte een stuk draad van 12 cm lang. Dit is de helft van wat wordt aanbevolen op deze uitstekende infopagina. De microcontroller programmeren Nadat je de schakeling hebt gebouwd, moet je het programma uploaden (bijgevoegd). Ik gebruik de Arduino programmeeromgeving/bibliotheken. Je kunt dit compileren met de arduino IDE en het vervolgens programmeren zoals je dat gewoonlijk doet. Mijn circuit is eenvoudiger gemaakt door de interne 8MHz-klok van de micro te gebruiken. Als je dit gebruikt, moet je de zekeringinstellingen instellen om de interne 8MHz gekalibreerde RC te gebruiken: 1111 0010 = 0xf2 Dit betekent dat je een programmeur nodig hebt die zekeringen kan schrijven../avrdude -C./avrdude.conf -V -p ATmega168 -P /dev/ttyACM0 -c stk500v2 -U lfuse:w:0xf2:m Als je dit soort programmeur niet hebt bord), gebruik gewoon een 16MHz-kristal tussen pinnen 9 en 10 en het zou allemaal moeten werken (niet getest - mogelijk hebt u een condensator nodig). U moet ook de programmacode aanpassen zodat de zenderbaud wordt gehalveerd. Testen Nadat u alles bij elkaar heeft en het programma heeft geladen, moet u de helderheid van de IR-led aanpassen. Ik wilde gewoon de lichtopbrengst maximaliseren zonder de LED te roosteren, dus ik blies er een paar op en eindigde met een trekgemiddelde van ongeveer 120 ma. Als je een multimeter hebt, kun je dit vrij eenvoudig aanpassen, anders zet je de potentiometer gewoon vrij hoog, maar niet helemaal! U kunt ook de analoge ingangen op pinnen 26, 27 en 28 van de PWM-instelpotentiometer, de afstandssensor en de sproeierpotentiometer controleren. Als je een scoop hebt, kun je de pulstrein die uit pin 3 komt in de radio TX-module controleren. Controleer de pwm-uitgang van de LED op pin 11. U kunt een camera van een mobiele telefoon (of de meeste CCD-camera's) gebruiken om de IR-LED te zien branden wanneer u op de knop van het mondstuk drukt.
Stap 5: Spuitbusontvanger
Als je voor de eenvoudige spuitbusroute gaat, heb je dit bit niet nodig.
Anders gebruik ik gewoon een arduino-bord, met de radio-ontvanger aangesloten op pin 2. Dit maakt het gemakkelijk om de gegevens in een computer te krijgen via de USB -> seriële chip op het arduino-bord. Als ik een aangepast circuit zou maken, zou ik waarschijnlijk een FTDI USB -> seriële UART-evaluatiekaart gebruiken. U hebt ook een antenne nodig die op de ontvangerkaart is bevestigd. Ik gebruikte een stuk draad van 12 cm lang. Dit is de helft van wat wordt aanbevolen op deze uitstekende infopagina. Laad de graffitiCanReader2.pde-schets in de arduino. Als het blikje is ingeschakeld, zou je de status-LED's op het blikje en de ontvangerkaart snel moeten zien knipperen. Telkens als de blik-LED knippert, wordt een datapakket verzonden. Elke keer dat de LED van de ontvangerkaart knippert, wordt een geldig datapakket ontvangen. Als je dit niet ziet, is er iets aan de hand met de radioverbinding. Iets om te proberen is om de TX van het blikje met een stukje draad te verbinden met de RX van de ontvanger. Als dit niet werkt, heb je waarschijnlijk een mismatch in de baudrate van virtualwire (zie de code). Ervan uitgaande dat je veel flitsen op de ontvangerkaart hebt, zou je dit moeten kunnen controleren op je seriële usb-poort. Als je de seriële poort (meestal /dev/ttyUSB0) op 57600 in de gaten houdt, zou je gegevens moeten zien verschijnen als Got: FF 02 Got: FF 03… Het eerste getal is druk en het tweede is afstand. Nu kunt u de verwerking uitvoeren en deze informatie gebruiken om mooie foto's te maken! Laad de bijgevoegde verwerkingsschets (canRadioReader.pde). Start het programma en controleer de uitvoer van het programma. Je zou een frequentie moeten krijgen (die je vertelt hoeveel updates per seconde de ontvanger krijgt - je wilt zeker dat dit minimaal 10 Hz is). U krijgt ook een afstands- en spuitdopmeting. Test het blik door de potentiometer van de spuitmond te verplaatsen en door een stuk kaart voor de afstandssensor te bewegen. Als het allemaal werkt, ga dan verder met de volgende stap - maak de computer klaar om met de wiimote te praten!
Stap 6: Computer Setup: Processing en de Wiimote
Onze belangrijkste hier is het krijgen van verwerking door met de wiimote te praten. Deze instructies zijn specifiek voor Linux, maar het zou allemaal moeten werken op een Mac en Windows met wat onderzoek naar hoe de gegevens van de wiimote verwerkt kunnen worden. Na het installeren van processing vond ik enkele instructies op het forum, maar ik had nog steeds wat problemen. Hier is wat ik moest doen:
- verwerking installeren
- installeer bluez-bibliotheken: sudo apt-get install bluez-utils libbluetooth-dev
- maak./processing/libraries/Loc en./processing/libraries/wrj4P5
- download bluecove-2.1.0.jar en bluecove-gpl-2.1.0.jar en plaats ze in./processing/libraries/wrj4P5/library/
- download wiiremoteJ v1.6 en plaats de.jar in./processing/libraries/wrj4P5/library/
- download wrj4P5.jar (ik gebruikte alpha-11) en plaats het in./processing/libraries/wrj4P5/library/
- download wrj4P5.zip en pak het uit in./processing/libraries/wrj4P5/lll/
- download Loc.jar (ik gebruikte beta-5) en plaats het in./processing/libraries/Loc/library/
- download Loc.zip en pak het uit in./processing/libraries/Loc/lll/
Daarna gebruikte ik code geïnspireerd op Classiclll om de knoppen en sensorbalk te laten werken. De bijgevoegde code/schets tekent gewoon een cirkel waar de 1e infraroodbron wordt gevonden door de wiimote.
Om uw bluetooth te controleren, drukt u op de knoppen één en twee op de wiimote en probeert u vervolgens $ hcitool-scan op de terminal. Je zou de nintendo wiimote moeten zien gedetecteerd. Als je dat niet doet, moet je verder kijken naar je bluetooth-configuratie. Als het allemaal goed is, laad dan het programma wiimote_sensor.pde (bijgevoegd) en start het. In het onderste statusgedeelte van het scherm zou je het volgende moeten zien: BlueCove versie 2.1.0 op bluez probeert een wii te vinden Druk op de knoppen 1 en 2 op de wiimote. Nadat het is gedetecteerd, zwaait u met uw infraroodbron (de spuitbus) ervoor. Je zou een rode cirkel moeten zien die je beweging volgt! Zorg ervoor dat dit werkt voordat u verder gaat. Als je het niet aan het werk krijgt, zoek dan op het verwerkingsforum.
Stap 7: Alles instellen
Download de virtualGraffiti-software hieronder. Pak het uit in je schetsboekmap en volg dan deze stappen!
* power up spuitbus, controleer status LED-lampje knippert. * computer aanzetten, spuitbusontvanger aansluiten, * scherm en projector instellen, * controleren of de status-LED van de spuitbusontvanger knippert, * beginnen met verwerken en het virtualGraffiti-programma laden, * controleren of u zowel RX als TX seriële indicator krijgt LED's knipperen op het arduino-bord, * druk op beide knoppen op de wiimote, * voer 4-punts kalibratie uit wanneer daarom wordt gevraagd (plaats de spuitbus om de beurt over elk doelwit en druk vervolgens op het mondstuk totdat het schrift rood wordt). * veel plezier!
Stap 8: bronnen, links, bedankt, ideeën
Links Hier zijn de links die van onschatbare waarde waren om dit project te laten werken: RF info: https://narobo.com/articles/rfmodules.html Arduino: www.arduino.cc Processing: www.processing.org Wii gebruiken met verwerking: 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 4-punts kalibratie: https://www.zaunert.de/jochenz/wii/Thanks! Zonder veel mensen die hun werk zouden publiceren, zou dit project een stuk moeilijker en duurder zijn geweest. Enorm bedankt aan alle open source-crew, mensen die de wiimote hebben gehackt, Classiclll voor het gebruiksvriendelijk maken van wiimote met verwerking, Jochen Zaunert voor code om kalibratie uit te voeren, verwerkingsploeg, arduino-crew, Lou voor hulp bij het timmeren, en al degenen die verkennen, maken en publiceren hun bevindingen dan online! Andermans systemen * Ik heb net https://friispray.co.uk/ gevonden, met open source software en een howto * dit systeem maakt het gebruik van stencils mogelijk: cool! https://www.wiispray.com/, geen code of howto * yrwall's virtuele graffitisysteem, geen code of howto. Ideas for exploratie * gebruik 2 wiimotes om 3D volumetracking te doen en de afstandssensor in het blikje weg te doen: https://www.cl.cam.ac.uk/~sjeh3/wii/. Dit zou goed zijn omdat de afstandssensor momenteel het zwakste onderdeel van het systeem is. Het zou ook betekenen dat we een goed doorzichtprojectiescherm zouden kunnen gebruiken voor levendigere beelden. * gebruik een wiimote in de bus om de hoek van de spuitbus te detecteren. Dit zou realisme toevoegen aan het spuitverfmodel.
Aanbevolen:
Virtuele aanwezigheidsrobot: 15 stappen
Virtual Presence Robot: Deze mobiele robot interageert met zijn fysieke omgeving door de "virtuele aanwezigheid" weer te geven. van de persoon die het op afstand bestuurt. Het is voor iedereen, waar ook ter wereld, toegankelijk om lekkernijen uit te delen en met je te spelen. Het werk dat hij
Virtuele manometer deel 1.: 4 stappen
Virtuele manometer deel 1.: Manometers worden gebruikt in industrieën zoals olievelden. Ik heb tijdens mijn dagelijkse werk vaak manometers gebruikt, vooral bij hydraulische machines. En ik vroeg me af hoe ik een virtuele manometer kan maken. Dit project is een 2-par
Hoe u een USB-modem omleidt naar een VMware ESXi virtuele machine: 14 stappen
Hoe een USB-modem om te leiden naar een VMware ESXi virtuele machine: Hallo allemaal! Vandaag zal ik je vertellen hoe je een USB-modem omleidt naar een virtuele VMware ESXi-machine. Op dezelfde manier kunt u een geheugenstick en sommige andere USB-apparaten omleiden. Deze al lang bestaande VMware-functie heeft zijn voor- en nadelen, dus we
Virtuele manometer deel 2.: 4 stappen
Virtuele manometer deel 2.: Dit project is het tweede deel van een project dat ik eerder heb gemaakt. In het eerste deel heb ik een virtuele manometer ontworpen die kan worden bediend met de UP- en DOWN-toetsen op het toetsenbord van uw computer. zie Virtuele Manometer Part1Deze keer zullen we contro
Virtualbox virtuele machine: 6 stappen
Virtualbox Virtual Machine: Welkom bij de tutorial over het installeren en gebruiken van VirtualBox