Turinys:
- 1 žingsnis: medžiagos
- Įrankiai
- Medžiagos
- 2 žingsnis: Padarykite plokštes
- 3 žingsnis: sukurkite jungtis
- 4 žingsnis: sukurkite grandinę
- 5 žingsnis: Užbaikite ir pritvirtinkite jungtį
- 6 veiksmas: prijunkite ir įkelkite kodą
- 7 žingsnis: darykite ką nors šaunaus
- 8 žingsnis: variantai ir pastabos
- Variacijos
- Pastabos
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-13 06:57
Sukurkite 3D sąsają naudodami šešis rezistorius, aliuminio foliją ir „Arduino“. Paimkite tai, „Wii“. Atnaujinti: daug išsamesnis šio projekto paaiškinimas pateikiamas „Make Magazine“. Gali būti lengviau vykdyti jų nurodymus, ir manau, kad jų kodas yra naujesnis. Pagrindinis tikslas buvo sukurti 3D rankos padėties jutimo sistemą, kurią galėtų sukurti dauguma žmonių, tuo pačiu išlaikant tam tikrą funkcionalumą. Norėdami sužinoti galimų programų idėją, peržiūrėkite demonstracinį vaizdo įrašą. Jei manote, kad galite sukurti paprastesnį ir vienodai tikslų, arba šiek tiek sudėtingesnį ir tikslesnį, pasidalykite komentarais! Pasidaryk pats 3D sąsaja: „Kic McDonald“„Tic Tac Toe“„Vimeo“.
1 žingsnis: medžiagos
Įrankiai
- Arduino
- Apdorojimas
- Vielos pjaustytuvai
- Lituoklis
- Dėžutės pjaustytuvas
Medžiagos
- (3) 270 000 rezistorių
- (3) 10k rezistoriai
- Lituoklis
- Viela
- Aliuminio folija
- Kartonas
Neprivaloma:
- Juosta (pvz.: škotiška)
- Ekranuotas laidas (pvz., Bendraašis kabelis, ~ 3 ')
- (3) aligatoriaus spaustukai
- 3 kontaktų antraštė
- Užsegamas užtrauktuku
- Susitraukiantys vamzdeliai arba karšti klijai
2 žingsnis: Padarykite plokštes
Šis jutiklis veiks naudojant paprastas RC grandines, kiekvienos grandinės jutimo atstumas yra viename matmenyje. Radau, kad lengviausias būdas šiam tikslui sutvarkyti tris talpines plokšteles yra kubo kampe. Supjaustiau kartoninės dėžutės kampą į 8,5 colio kubą, o po to supjaustiau šiek tiek aliuminio folijos, kad tilptų kaip šiek tiek mažesni kvadratai. Juostelė ant kampų neleidžia juos laikyti. Neužklijuokite viso perimetro, mums to reikės vėliau už aligatoriaus spaustukų pritvirtinimą.
3 žingsnis: sukurkite jungtis
Norėdami prijungti „Arduino“prie plokščių, mums reikia tam tikros ekranuotos vielos. Jei laidas nėra ekranuotas, patys laidai akivaizdžiau veikia kaip kondensatoriaus dalis. Be to, pastebėjau, kad aligatoriaus spaustukai tikrai palengvina daiktų prijungimą prie aliuminio, tačiau tikriausiai yra ir daug kitų būdų.
- Iškirpkite tris vienodo ilgio ekranuotus kabelius. Aš pasirinkau apie 12 ". Kuo trumpesnis, tuo geriau. Bendraašis kabelis veikia, bet kuo lengvesnis/lankstesnis, tuo geriau.
- Pasukite paskutinį pusę colio, kad atskleistumėte ekraną, ir paskutinį ketvirtį colio, kad atskleistumėte laidą.
- Prisukite aligatoriaus spaustukus prie laidų ant laidų ir lituokite juos kartu.
- Įdėkite šiek tiek termiškai susitraukiančius vamzdelius arba karštus klijus, kad viskas būtų kartu.
4 žingsnis: sukurkite grandinę
„Grandinė“yra tik du rezistoriai vienam aliuminio gabalui. Norint suprasti, kodėl jie ten yra, padeda žinoti, ką mes darome su „Arduino“. Ką mes darysime su kiekvienu kaiščiu iš eilės:
- Nustatykite kaištį į išvesties režimą.
- Į kaištį įrašykite skaitmeninį „žemą“. Tai reiškia, kad abi kondensatoriaus pusės yra įžemintos ir jis išsikraus.
- Nustatykite kaištį įvesties režimu.
- Skaičiuokite, kiek laiko reikia įkrauti kondensatoriui, laukiant, kol kaištis pakils „aukštai“. Tai priklauso nuo kondensatoriaus ir dviejų rezistorių verčių. Kadangi rezistoriai yra fiksuoti, bus galima išmatuoti talpos pokytį. Atstumas nuo žemės (jūsų ranka) bus pagrindinis kintamasis, prisidedantis prie talpos.
270k rezistoriai suteikia įtampą kondensatoriams įkrauti. Kuo mažesnė vertė, tuo greičiau jie bus įkrauti. 10k rezistoriai taip pat turi įtakos laikui, bet aš visiškai nesuprantu jų vaidmens. Mes padarysime šią grandinę kiekvieno laido pagrindu.
- Lituokite 10k rezistorių prie laido galo priešais aligatoriaus spaustuką
- Lituokite 270k rezistorių tarp skydo ir vielos (plokštės). Apsaugosime laidą ta pačia 5 V įtampa, kurią naudojame kondensatoriams įkrauti
5 žingsnis: Užbaikite ir pritvirtinkite jungtį
Baigę 3 jungtis, galbūt norėsite pridėti termiškai susitraukiančius vamzdžius arba karštus klijus, kad izoliuotumėte juos vienas nuo kito, nes kartu lituosite ekranavimo/5 V taškus.
Man buvo lengviausia lituoti dvi atokiausias jungtis ir tada pridėti trečią. Lituodami tris jungtis, pridėkite ketvirtą laidą, skirtą ekranui tiekti/5 V.
6 veiksmas: prijunkite ir įkelkite kodą
- Prijunkite jungtį prie „Arduino“(8, 9 ir 10 kaiščiai)
- Užfiksuokite aligatoriaus spaustukus ant plokščių (8: x: kairė, 9: y: apačia, 10: z: dešinė)
- Suteikite maitinimą prijungdami ketvirtąjį laidą (mano raudoną laidą) prie „Arduino“5 V
- Prijunkite „Arduino“, paleiskite „Arduino“aplinką
- Įkelkite kodą į lentą (pastaba: jei esate ne Šiaurės Amerikoje, tikriausiai turėsite pakeisti #define maitinimo tinklą į 50, o ne 60).
„Arduino“kodas pridedamas kaip „Interface3D.ino“, o apdorojimo kodas pridedamas kaip „TicTacToe3D.zip“
7 žingsnis: darykite ką nors šaunaus
Jei pažvelgsite į serijinį langą „Arduino“aplinkoje, pastebėsite, kad jis išskiria neapdorotas 3D koordinates 115200 baudų dažniu, maždaug 10 Hz = 60 Hz / (2 pilni ciklai * 3 jutikliai). Kodas atlieka kiekvieno jutiklio matavimus tiek kartų, kiek įmanoma, per du elektros tinklo dažnio ciklus (kuris yra stebėtinai stabilus), kad būtų atšaukta bet kokia jungtis. Pirmas dalykas, kurį padariau, buvo paprastas 3D piešinys „Tac Toe“sąsaja. Jei norite pradėti nuo veikiančios demonstracinės versijos, kodą rasite čia, tiesiog įmeskite aplanką „TicTacToe3D“į aplanką Apdorojimo eskizai. Trys naudingi dalykai, kuriuos parodo „Tic Tac Toe“kodas:
- Linearizuoja neapdorotus duomenis. Įkrovimo laikas iš tikrųjų atitinka galios dėsnį, palyginti su atstumu, todėl jūs turite paimti kvadratinę šaknį iš vieno per tam tikrą laiką (ty atstumas ~ = kv. (1/laikas))
- Normalizuoja duomenis. Pradėdami eskizą, judindami ranką, laikykite nuspaudę kairįjį pelės mygtuką, kad nustatytumėte erdvės, su kuria norite dirbti, ribas.
- „Impulso“pridėjimas prie duomenų, kad būtų sumažintas bet koks nervingumas.
Praktiškai, naudojant šią sąranką su aliuminio folija, galiu gauti didžiausios folijos matmenų diapazoną (didžiausias mano išbandytas gabalas yra 1,5 kvadratinės pėdos).
8 žingsnis: variantai ir pastabos
Variacijos
- Sukurkite didžiulius jutiklius
- Optimizuokite rezistorius ir koduokite greitai vibruojančius dalykus ir naudokite juos kaip pikapą/mikrofoną
- Tikriausiai yra ir kitų gudrybių, kaip atsieti sistemą nuo kintamosios srovės (didžiulis kondensatorius tarp plokščių ir žemės?)
- Aš eksperimentavau, kad apsaugotų plokštes apačioje, tačiau atrodo, kad tai tik sukelia problemų
- Padarykite RGB arba HSB spalvų rinkiklį
- Valdyti vaizdo ar muzikos parametrus; sekti taktą ar melodiją
- Didelis, šiek tiek sulenktas paviršius su keliomis plokštėmis + projektorius = sąsaja „Mažumų ataskaita“
Pastabos
„Arduino“žaidimų aikštelėje yra du straipsniai apie talpinį jutimo jutimą („CapSense“ir „CapacitiveSensor“). Galų gale aš pakeičiau dizainą, su kuriuo susidūriau draugo „Fizinio skaičiavimo“(Sullivan/Igoe) kopijoje, kurioje aprašoma, kaip naudoti „RCtime“(grandinėje buvo pritvirtintas kondensatorius ir vienas rezistorius, ir išmatavau potenciometras). Mikrosekundinis laikas buvo atliktas naudojant šiek tiek optimizuotą kodą iš „Arduino“forumų. Vėlgi: tik pradėjęs nuo daugybės tenmino schemų, aš visiškai nesuprantu, aš gerai žinau, kad yra geresnių būdų, kaip atlikti talpinį atstumo jutimą, bet aš norėjau padaryti kuo paprastesnį dalyką, kuris vis dar yra funkcionalus. Jei turite vienodai paprastą ir funkcionalų dizainą, paskelbkite jį komentaruose! Ačiū Dane'ui Kouttronui, kad jis toleravo visus mano pagrindinius elektronikos klausimus ir padėjo man suprasti, kaip veikia paprasta heterodino tenmino grandinė (iš pradžių aš ketinau juos naudoti ir, jei jis sureguliuotas teisingai, tikriausiai būtų tikslesnis).
Pirmasis prizas „Instructables“knygų konkurse