Indholdsfortegnelse:
- Trin 1: Bøj sensor spor
- Trin 2: Brug af seriel kommunikation med Micro: bit
- Trin 3: Prototyping af kredsløbet
- Trin 4: Test af accelerometer og lyssensor
- Trin 5: Lodning af bøjningssensorerne
- Trin 6: Lodning til Micro: bit og samling af handske
- Trin 7: Micro: bit kode
- Trin 8: Seriel kommunikation med P5.js
- Trin 9: P5.js -kode
- Trin 10: Slutprodukt
Video: Kunsthandske: 10 trin (med billeder)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:25
Art Glove er en bærbar handske, der indeholder forskellige typer sensorer til at styre kunstgrafik gennem en Micro: bit og p5.js Fingrene anvender bøjningssensorer, der styrer r, g, b værdier og accelerometeret i Micro: bit kontroller x, y koordinater for grafikken. Jeg skabte dette projekt som mit projekt for min Wearable Technology Class som senior i programmet Technology, Arts and Media på CU Boulder.
Tilbehør:
- Havearbejde handsker
- BBC Micro: Bit
- 3-4 Flex-sensorer
- 10K Ohm modstande
- Tilslutningstråd (rød og sort)
- Wire Clippers
- Brødbræt
- Alligator klip (dobbeltsidet og enkeltsidet)
- Lodde
- Loddekolbe
- Nål
- Tråd
- Voks papir
- Tape
- Saks
- Pen og blyant
Trin 1: Bøj sensor spor
Først vil vi fokusere på at lave hardwaren. På denne måde, når vi kommer til kodning, har vi den egentlige handskekomponent til brug og test.
- For at starte vil vi lave sporene på fingrene, der holder bøjningssensorerne på plads. At have disse spor gør det muligt for bøjningssensorerne at bevæge sig lidt frem og tilbage, samtidig med at de holder dem fast til fingeren for at bøje. Først vender du handsken ud og ind.
- Tag en bøjningssensor og placer den i den midterste højderyg. Brug en pen til at skitsere bøjningssensoren
- Stik tråden gennem nålen. Giv dig selv et generøst stykke. Bind en knude for enden af tråden.
- Start fra toppen og på linjen, bare blæs buen i bøjningssensoren, skub nålen gennem handsken gennem indersiden, og skub den tilbage igennem på den parallelle linje. Træk nålen helt igennem, så knuden sidder på den linje, du tegnede.
- Træk stramt, lav 2-3 knob på den anden side. Dette sikrer, at tråden ikke kommer ud. Sørg for, at den er stram, så bøjningssensoren er sikret mod din finger
- Klip tråden tilbage et par cm. tråd i enden, så knuden ikke bliver fortrudt.
- Gentag trin 2-6 for alle de fingre, du vedhæfter flexsensorer til, indtil det ligner det tredje til sidste billede.
- Vend handsken tilbage, så den vendes på den rigtige måde. Slip dine bøjningssensorer gennem sporene for at sikre, at de passer korrekt på din hånd
Trin 2: Brug af seriel kommunikation med Micro: bit
For at se output fra vores sensorer bruger vi seriel kommunikation. Du kan se, hvordan du konfigurerer koden i Makecode i det næste trin, men først skal vi lære at læse den fra vores terminal. (Bemærk: Jeg bruger en Mac, så disse trin kan variere afhængigt af dit operativsystem. Se andre operativsystemer her).
- Tilslut din Micro: bit
- Åbn din terminal
- skriv 'ls /dev/cu.*'
- Du skulle se noget, der ligner '/dev/cu.usbmodem1422', men det nøjagtige antal afhænger af din computer
- Når du kører kode, vil du skrive 'screen /dev/cu.usbmodem1422 115200' (med dit specifikke serielle portnummer) give dig din Micro: bits serielle output
- Dit output skal ligne billedet ovenfor, afhængigt af hvordan du formaterede dit output!
Trin 3: Prototyping af kredsløbet
Inden vi lodder alle vores komponenter sammen, skal vi prototype kredsløbet og skrive et par linjer med eksempelkode for at læse vores sensorværdier og sikre, at vores komponenter fungerer korrekt.
- Brug kredsløbsdiagrammet ovenfor til at prototype dit kredsløb på brødbrættet ved hjælp af jumperwires, modstande, de ensidige alligatorklemmer og din Micro: bit.
- Tilslut dine bøjningssensorer til ben 0, 1 og 2.
- Jeg brugte denne kode til at teste mine flexsensorer
- Bøj dem et par gange for at se deres aflæsninger og sørg for, at de fungerer korrekt
I koden er den sidste linje "serial.writeLine", hvor vi skriver til vores serielle output. Du kan formatere dette output, som du vil, jeg adskilte hver variabel med et komma og derefter opdelte det på et komma senere, men denne del er op til dig.
(Bemærk: Efter jeg gjorde dette trin fandt jeg ud af, at en af mine bøjningssensorer havde en chip i den ledende maling og derfor ikke fik gode aflæsninger. Derfor viser nogle af billederne mig, at jeg arbejder med 4 sensorer. Efter at have fundet ud af dette gik jeg ned til kun tre sensorer på markøren, midten og ringfingeren. Jeg fandt også, at mine bøjningssensorer havde den mest brede vifte af læsning, der bøjede den "modsatte" måde, og derfor lagde jeg dem på handsken med den resistive maling nedad.)
Trin 4: Test af accelerometer og lyssensor
På dette tidspunkt valgte jeg også at teste accelerometeret og lyssensoren på Micro: bit
- Tilslut din Micro: bit til din computer
- Download denne kode
- Derefter testede jeg accelerometeret, lyset og bøjningssensorerne sammen med denne kode
(Bemærk: Det var på dette tidspunkt, jeg fandt ud af, at du ikke kan bruge stifterne og lyssensoren på samme tid, så jeg brugte ikke lyssensoren i min sidste, men jeg ville have, at du kunne se, hvordan du læser lyssensoren, hvis du har brug for det!)
Trin 5: Lodning af bøjningssensorerne
Nu skal vi begynde at lodde vores komponenter sammen! Dette er en spændende del, men det er vigtigt at gå langsomt og kontrollere, at alt stadig fungerer, mens du går, så du ikke kommer til slutningen, at noget ikke virker, og ikke er sikker på, hvor det gik galt! Jeg foreslår, at du bruger dine dobbeltsidede krokodilleklip her for at kontrollere, at hver sensor stadig fungerer, når ledningerne og modstandene er loddet sammen.
- Tag din bøjningssensor og tape eller sæt en tung genstand på den for at holde den på plads.
- Tag din 10K Ohm modstand og skær det meste af enden af, så ledningen er omtrent lige så lang som ledningen på bøjningssensoren.
- Tag dit loddejern, og tryk det på både modstanden og bøj sensorkablet, indtil de er varme
- Tag dit loddemateriale og pres det ind i det varme jern, da det begynder at smelte over komponenterne. Du har bare brug for nok til at dække ledningerne.
- Fjern jernet. Her tog jeg den anden havehandske på og holdt modstanden og ledningen på plads, mens loddet var afkølet.
- Klip et langt stykke rød ledning og anbring det ved loddetappen, hvor modstanden og bøjningssensoren mødes. Gentag trin 4-5. Dette er den analoge pin wire.
- Klip et langt stykke sort ledning og anbring det for enden af den anden ledning. Gentag trin 4-5. Dette er din jordledning.
- Klip et langt stykke rød ledning og klip den anden ende af modstanden, så den er omtrent lige så lang som den forrige side. Gentag trin 4-5. Dette er din strømledning.
- Gentag trin 1-8 for resten af dine bøjningssensorer.
- Lad dine ledninger være lange, så du har plads til at arbejde med for at gøre dem til den korrekte længde senere, når du sætter dem på Micro: bit.
Trin 6: Lodning til Micro: bit og samling af handske
Nu hvor vores sensorer er klar, skal vi begynde at lodde til Micro: bit og samle handsken. Husk igen at teste, mens du går, ved hjælp af krokodilleklip for at sikre, at komponenterne stadig fungerer, efter at du har loddet dem sammen.
- Læg sensorerne og Micro: bit på handsken for at få en idé om, hvor ledningerne skal gå, og hvor længe de skal være.
- Sæt en rød ledning omkring strømstiften. Brug wire cutters til at fjerne tråden og efterlade åbne huller, som du vil vedhæfte din wire til. Gør dette også for jordledningen.
- Skitsér handsken, du ikke bruger. Dette vil hjælpe os med at lodde alt sammen og få længden på tingene korrekte. Du vil gøre alt baglæns, men så tjek, at du lodder ting på den rigtige måde!
- Placer din Micro: bit omtrent, hvor du vil have den til at ligge på din hånd. Lav mærker, hvor jorden og strømkablerne sidder.
- Tape ledningen, strøm eller jord, på plads.
- Tape din bøjningssensor på plads.
- Skær strømkablet, så det går lige forbi dets mærke på den overordnede strømledning.
- Lod disse stykker sammen.
- Gentag trin 5-8 for de andre strømledninger og for jordledningerne.
- Tag Micro: bit og læg den under de nyligt lodde ledninger. Lodde strømmen og jorden til de korrekte stifter.
- Klip de analoge ledninger, så de går lige forbi enden af stifterne og kan vikle rundt til forsiden.
- Lod lodningerne til de korrekte stifter.
- Jeg fandt ud af, at mine aflæsninger var de bedste og mest konsekvente, når alle ledninger (strøm, jord og analog) rørte både forsiden og bagsiden af stifterne.
- Et spor efter et spor, skub bøjningssensorerne op ad fingrene samtidigt.
- Når sensorerne er på plads, skal du tage handsken på og kontrollere, at pasformen er den rigtige. Hvis du har brug for at tilføje spor eller rette deres placering, skal du gøre det nu.
- Når sensorerne ligger, hvor du vil have dem, skal du notere, hvor du skal binde Micro: bit på plads. Du kan bruge de små huller på hver side af A- og B -knapperne eller bruge hullerne til stifterne. Brug din nål og tråd til at binde den på plads på din hånd
Tillykke! Hardwarekomponenterne til handsken er nu færdige!
Trin 7: Micro: bit kode
Nu vil jeg lede dig gennem Micro: bit -koden. Du er mere end velkommen til at gøre denne kode til det, du vil have, men jeg ville gå igennem og forklare alt, så du kan se, hvad jeg gjorde, hvordan jeg gjorde det, og hvorfor! Du kan finde min kode her.
-
Linje 1-31. Her bruger jeg forudindstillede funktioner, som Micro: bit kommer med.
- Ved at trykke på A reduceres antallet, hvilket er udvalget af tilgængelig grafik. Når du når 0, går det tilbage til det højeste tal.
- Ved at trykke på B øges antallet, når du når det højeste antal tilgængelige grafik, går det tilbage til 0.
- Hvis den aktuelle grafik, du har valgt, ikke er den, der i øjeblikket tegnes, vælges den nye grafik samtidigt ved at trykke på A og B.
- Hvis den aktuelle grafik, du har valgt, er den samme som den, der tegnes, udfyldes samtidig tryk på A og B, hvis den kan få et fyld.
- Ved at ryste Micro: bit indstilles slettevariablen til 1, der fortæller p5.js at slette lærredet og starte med sort. Det sætter kørslen på pause et sekund og sætter det derefter tilbage til 0, så brugeren kan fortsætte med at tegne.
-
Linje 32-64 opsætter mine variabler. Det var vigtigt at bruge mange variabler, så de fleste af værdierne ikke blev hardcoded. De kan ændres med handsken og også let ændres ét sted i stedet for at opdatere en masse værdier overalt. Jeg vil fremhæve et par af de vigtige.
- Lærredsstørrelsen er en, der er god at have i en variabel, der skal opdateres afhængigt af størrelsen på mit lærred. Samme med formen Høj. Når jeg tilføjer eller slipper for grafik, kan jeg opdatere dette nummer her.
- De høje og lave variabler lader mig holde styr på den aktuelle høj og lav for sensorer og har et kontinuerligt kalibreringsområde. Dette er vigtigt, da hver person, der bærer handskerne, vil have forskellige bevægelsesområder og derfor forskellige op- og nedture, som de kan nå.
- Linjerne 66-68 læser de analoge værdier ind fra benene til flexsensorerne
-
Linje 69-74 kalibrerer den høje værdi for pegefingeren.
- Hvis en ny højde er nået, sætter den denne som høj.
- Rekalibrerer rækkevidden for den finger.
- Bruger det nye sortiment til farvekortlægningen
- Linje 75-80 kalibrerer den lave værdi for pegefingeren.
- Linje 81-104 gør det samme som 4 & 5 for mellem- og ringfingrene.
-
Linje 105-107 kortlægger mine flexsensorværdier til farveværdier 0-255 (eller colorLow til colorHigh, hvis jeg ikke gør hele området)
- Den indbyggede kortfunktion fra Makecode gav mig ikke en god kortlægning i betragtning af det begrænsede område, jeg fik fra mine sensorer. Så jeg lavede min egen kortlægningsfunktion.
- Sådan fungerer det. Inputområdet for hver finger bestemmes af den (højeste værdi - den laveste værdi). Farveområdet, som også er (højeste farveværdi - laveste farveværdi) divideres med hvert fingers område. Dette tal afrundes med det laveste hele tal og er kvotienten.
- Den (faktiske sensorværdi - den laveste sensorværdi) giver dig værdien inden for området. Multiplicering af dette med kvotien, vi fandt ovenfor og tilføjede de laveste farveværdier, giver dig en kortlagt værdi fra sensoren til farven inden for farveområdet.
- Linje 109 læser tonehøjdeværdien (op og ned).
- Linje 110-115 kalibrerer høj og lav for denne værdi
- Linje 116 læser rulleværdien (venstre og højre).
- Linje 117-122 kalibrerer høj og lav for denne værdi
- Linjer 123-126 kortlægger pitch and roll-værdierne til lærredets størrelse og afrund dem til hele tal.
- Linje 127 skriver variablerne til det serielle output ved hjælp af serial.writeLine, adskiller hver værdi med et komma og mellemrum ",", til analyse med senere.
Når du har koden, hvordan du kan lide den, skal du downloade den og trække den fra dine downloads til din Micro: bit (du skal se den på "Steder" i venstre side af din finder) for at uploade koden til Micro: bit
Trin 8: Seriel kommunikation med P5.js
For at kommunikere serielt med p5.js har vi brug for et ekstra værktøj. For at lære mere om, hvad der foregår bag kulisserne i seriel kommunikation, foreslår jeg at læse denne artikel.
- Download en version af p5.js -appen fra dette link. Jeg har Alpha 6 -versionen, men enhver vil fungere.
- Brug denne p5.js -skabelon til seriel kommunikation. For at konfigurere det skal du indsætte dit korrekte serielle portnavn for portnavn på linje 12. Dette er det navn, vi fandt ud af i trin 2.
- Tilslut din Micro: bit til din computer
- Åbn den serielle app p5.js.
- Vælg din port fra portlisten, og gør ikke andet. Ikke engang trykke åben! Vælg bare din port fra din liste.
- Tryk på kør i p5.js serielle skabelon. Du burde kunne se den åben, og den vil læse dig nulværdier, da vi ikke har skrevet kode for at analysere vores serielle output endnu.
Nu kan vi kommunikere serielt fra vores Micro: bit til p5.js!
Trin 9: P5.js -kode
Nu hopper vi ind i p5.js -koden. Her læser vi de serielle outputværdier og bruger dem til at skabe kunst.
- Som jeg nævnte i det foregående trin, skal du sørge for, at portnavnet på linje 12 er dit specifikke computerportnavn.
- I funktionen setup (), på linjer 32-33, tilføjede jeg venstre og højre buffer med createGraphics, jeg gjorde dette for at adskille lærredet, så den ene del bruges til at tegne, og den anden del kunne vise retninger og vise hvilken grafik du kigger på eller ruller igennem.
- Funktionen draw () kalder funktioner, jeg lavede for at oprette venstreBuffer og højreBuffer separat. Det definerer også, hvor det øverste venstre hjørne af hver buffer starter.
- DrawRightBuffer () -funktionen viser al teksten til retninger og grafikvalg
-
DrawLeftBuffer () -funktionerne viser al grafikken.
- Linje 93 genererer tilfældigt en værdi for alfa -værdien. Dette er så alle farverne har forskellige gennemsigtighedsværdier for at få det til at se mere interessant ud. Havde jeg haft 4 flex -sensorer, havde jeg brugt den fjerde til dette!
- Linje 94 indstiller slagværdien til r, g, b -værdierne bestemt af flex -sensorerne
- Linje 96-102 kan ikke kommenteres for at teste, hvordan handsken fungerer uden at have handsken ved at bruge musen i stedet. Udskift linje 102 med grafik fra resten af funktionen.
- 104-106 sletter lærredet, når hånden ryster ved at indstille lærredets baggrund til sort
- 108-114 styrer udfyldningen af figurerne, når der trykkes på A+B og vælges, og den aktuelle form er den samme
- 117-312 er, hvor grafikken vises. Dette er hovedparten af koden og delen for at blive kreativ! Jeg foreslår, at man kigger på p5.js -referencen for bedre at forstå, hvordan man styrer formerne. Jeg brugte rullen og tonehøjden til at styre x, y positioner og ændre størrelsen på figurerne og grafikken, og som jeg nævnte tidligere brugte jeg. bøjningssensorer for at styre farven. Det er her, du kan blive kreativ! Spil med hvad p5.js har at tilbyde, og kom med din egen sjove grafik til at styre! Her har jeg også angivet beskrivelsen for currentShape, der vises til højreBuffer.
- 318-460 Jeg har angivet beskrivelsen for det valgte Shape.
-
Linjer 478-498 er serialEvent () -funktionen. Det er her, vi modtager de serielle data.
- På linje 485-486 indstillede jeg proll og ppitch (tidligere roll og pitch) til de tidligere roll- og pitch-værdier.
- På linje 487 delte jeg dataene på ",". Jeg gør dette, fordi jeg skrev de data, der skulle adskilles med kommaer. Du ville sætte det, du adskilte dine variabler med her. Disse variabler lægges i talrækken.
- Så i linjer 488-496 satte jeg variablerne til det tilsvarende element i arrayet og oversatte dem fra en streng til et tal. Jeg bruger disse variabler i hele drawLeftBuffer () -funktionen til at styre grafikken.
Det opsummerer stort set koden og afslutter projektet! Nu kan vi se handsken arbejde i aktion.
Trin 10: Slutprodukt
Her er nogle billeder af den færdige handske samt nogle kunstværker, den genererede! Se demovideoen for at se den i aktion!
Anbefalede:
Sådan gør du: Installation af Raspberry PI 4 Headless (VNC) med Rpi-imager og billeder: 7 trin (med billeder)
Sådan gør du: Installation af Raspberry PI 4 Headless (VNC) med Rpi-imager og billeder: Jeg planlægger at bruge denne Rapsberry PI i en masse sjove projekter tilbage i min blog. Tjek det gerne ud. Jeg ville tilbage til at bruge min Raspberry PI, men jeg havde ikke et tastatur eller en mus på min nye placering. Det var et stykke tid siden jeg konfigurerede en hindbær
Arduino Halloween Edition - Pop -out -skærm med zombier (trin med billeder): 6 trin
Arduino Halloween Edition - Zombies Pop -out -skærm (trin med billeder): Vil du skræmme dine venner og lave skrigende støj i Halloween? Eller vil du bare lave en god sjov? Denne pop-out-skærm fra Zombies kan gøre det! I denne Instructable vil jeg lære dig, hvordan du nemt laver jump-out zombier ved hjælp af Arduino. HC-SR0
Sådan adskilles en computer med nemme trin og billeder: 13 trin (med billeder)
Sådan adskilles en computer med nemme trin og billeder: Dette er en instruktion om, hvordan du adskiller en pc. De fleste af de grundlæggende komponenter er modulopbyggede og nemme at fjerne. Det er dog vigtigt, at du er organiseret omkring det. Dette hjælper med at forhindre dig i at miste dele og også ved at lave genmonteringen til
Ciclop 3d Scanner My Way Trin for trin: 16 trin (med billeder)
Ciclop 3d Scanner My Way Step by Step: Hej alle sammen, jeg kommer til at indse den berømte Ciclop 3D -scanner.Alle trin, der er godt forklaret på det originale projekt, er ikke til stede.Jeg lavede nogle rettelser for at forenkle processen, først Jeg udskriver basen, og end jeg genstarter printkortet, men fortsæt
Sådan styrer du husholdningsapparater med fjernsyn med fjernbetjening med timerfunktion: 7 trin (med billeder)
Sådan styrer du husholdningsapparater med fjernsyn med fjernbetjening med timerfunktion: Selv efter 25 års introduktion til forbrugermarkedet er infrarød kommunikation stadig meget relevant i de seneste dage. Uanset om det er dit 55 tommer 4K -fjernsyn eller dit billydsystem, har alt brug for en IR -fjernbetjening for at reagere på vores