Obsah:

3D AIR myš - Spracovanie Arduino +: 5 krokov
3D AIR myš - Spracovanie Arduino +: 5 krokov

Video: 3D AIR myš - Spracovanie Arduino +: 5 krokov

Video: 3D AIR myš - Spracovanie Arduino +: 5 krokov
Video: Leap Motion SDK 2024, November
Anonim
3D AIR myš | Spracovanie Arduino +
3D AIR myš | Spracovanie Arduino +

3D AIR myš | Spracovanie Arduino + Som študent priemyselného dizajnu a minulý rok som v rámci kurzu s názvom „Technológia ako materiál RAW“postavil tento projekt ako svoju záverečnú prácu. Väčšinu času pracujem s CAD softvérom SolidWorks na navrhovanie a vytváranie návrhov.. Otáčanie pevného tela na obrazovke sa vykonáva pomocou stredného tlačidla myši. Hľadal som niečo intuitívnejšie. Takto som skončil s 3D vzduchovou myšou, kde sa skutočné otáčanie objektu vykonáva pohybom myši vo vzduchu na všetkých 3 osiach - rovnako ako by ste otáčali predmet, keby ste ho držali v ruke. Použil som Arduino, niekoľko senzorov a náčrt spracovania. POZNÁMKY:- Zatiaľ je to len ukážka konceptu, pretože v SolidWorku neexistuje žiadny skutočný doplnok na prácu (ale samozrejme, neváhajte napíšte jeden, ak viete, ako na to:)- Keďže všetok hardvér nebol môj, skutočná 3D myš je už dávno preč a ja používam niekoľko fotografií a videa, aby som v tomto všetkom dal zmysel a poskytol vám nejaký nápad, ak si ho chcete vyskúšať postaviť sami … Užite si to … (Je to môj prvý návod na použitie) Tu je video demo hotového projektu

Krok 1: Hardvér a veci

Hardware a veci
Hardware a veci
Hardware a veci
Hardware a veci
Hardware a veci
Hardware a veci
Hardware a veci
Hardware a veci

Nie je to najlacnejšie inštruovateľné, pretože je založené na 3 -osovom akcelerometri + senzore kompasu. Muška, ktorú budete potrebovať:* Myš - použitá je lepšia (iba preto, že sa používa a je lacnejšia), mala by to urobiť každá myš. Potrebujete nejaký priestor na umiestnenie senzorov a niekoľko ďalších káblov, takže nehľadajte extra tenké / extra malé myši.* Kompasový modul s kompenzáciou náklonu - HMC634 - Toto je 3 -osový senzor, kúpený v SpurkFun za ~ 149 dolárov* Konvertor logickej úrovne - POTREBNÉ! Pretože Arduino je 5 V a 3 -osový snímač je 3,3 V, potrebujete jeden z nich na premenu 5 V na 3,3 V. Má veľké meno, ale na SpurkFun stojí iba 1,95 dolára.* Veľký optický detektor / fototranzistor - Jedná sa o jednoduchý optický senzor, ktorý sa v tomto projekte používa na detekciu zdvihnutia myši z pracovného povrchu. Kúpené v SpurkFun za 2,25 dolárov Ak nemáte dostatok miesta na umiestnenie tejto myši do vami vybranej myši, môžete použiť túto, menšiu a lacnejšiu. * Jedna (1) LED - nevadí farba, ultra jasný bude fungovať lepšie.* 2 rezistory - jeden (1) x 100Ω a jeden (1) x 100KΩ (pre optický senzor)* doska Arduino - DA! Použil som model Diecimila. Novší Duemilanove je k dispozícii na SpurkFun za približne 29,95 dolárov (mal by tiež fungovať) + nainštalovaný softvér Arduino.* Nainštalovaný softvér na spracovanie.* Zdrojový kód projektu (Nebojte sa, stiahnete si ho za sekundu.) Plus: Niektoré horúce lepidlo (na upevnenie vecí na mieste) Niekoľko drobných skrutiek. Asi 10 cm drevenej kotvy s priemerom 6 mm (niektoré priemery). Niekoľko ďalších drôtov. Spájkovačka. Niečo na rezanie plastov, použil som rezací nôž a pilník (PRE tvarovanie). („Dobre, neznášaj ma za tento krok, angličtina je môj 2. jazyk, ak som si to zmýlil, ospravedlňujem sa, som si istý, že za sekundu pochopíš, o čo mi ide. uvidíte to na obrázkoch “)

Krok 2: Elektronika

Elektronika
Elektronika
Elektronika
Elektronika

Všetko je potrebné spájkovať … Svojím spôsobom … POZNÁMKA: 3 -osý snímač je drahá maličkosť, pred zapnutím všetkého dvakrát skontrolujte zapojenie … Všetky zapojenia použité v tomto projekte nájdete v priložených schémach. Pripojený zdrojový kód môže fungovať iba vtedy, ak používate rovnaké čísla pinov, aké som použil ja, ale môžete ich pri pripájaní zmeniť, pokiaľ zmeníte príslušné čísla v kóde. Pripojenie 3 -osého senzora k prevodníku logickej úrovne: Senzor VCC -> Arduino 3V3Sensor GND -> Arduino GndSensor SDA -> Konvertor TXI (Chan1) Konvertor TXO (Chan1) -> Arduino ANALOG IN 4Sensor SCL -> Konvertor TXI (Chan2) Konvertor TXO (Chan2) -> Arduino ANALOG IN 5Konvertor GND (aspoň jeden z nich) -> Arduino GndConverter HV -> Arduino 5VConverter LV -> Arduino 3V3 Optický snímač na Arduino: Pozri priložený obrázok Digitálny vstup = Pin 11 na ArduinoLED: GND k niektorým GND (použil som jeden z optických senzorov)+ na Arduino PIN 13 (Urobilo sa to, pretože tento pin už má vstavaný odpor, ak použijete iný, použite odpor, aby ste LED nespálili)

Krok 3: Príprava myši

Príprava myši
Príprava myši
Príprava myši
Príprava myši
Príprava myši
Príprava myši

Tu senzory nájdu svoje miesto v kryte myši. Nájdite najlepšie miesto na upevnenie 3 -osového senzora. Uistite sa, že je zarovnaný a dbajte na orientáciu (Budete vedieť, kedy budete mať senzor v rukách) Môžete to opraviť akýmkoľvek spôsobom chcete, použil som 2 krátke kusy drevenej kotvy, vyvŕtané, aby akceptovali 2 malé skrutky a za horúca prilepené k základnej doske myši. Pokiaľ ide o optický senzor, v spodnej časti myši vytvarujte obdĺžnikový otvor. Ide o to, aby senzor „videl“tabuľku stále. Keď je myš zdvihnutá a stav senzora je „otvorený“(žiadna tabuľka sa nezobrazuje), myš sa prepne do 3D režimu (spustí náčrt spracovania) Vytvorte ďalší otvor na vedenie ďalších káblov (od senzorov k Arduinu) von z plastové puzdro. Moja bola umiestnená na pravej strane myši. Opravte diódu LED, kde sa zobrazí. V tomto projekte je LED indikátorom 3D režimu. Svoje položím vedľa silikónového kolieska myši. Keď je myš zdvihnutá, koleso malo príjemnú modrú žiaru.

Krok 4: Zdrojový kód

Kód pre Arduino napísal Shachar Geiger, môj učiteľ, a ja som ho pre tento projekt upravil. Kód 3D kocky je základný kód, ktorý sa nachádza na webovej stránke Processing. Trochu som to upravil. V kóde tento kus prevádza nespracované informácie pochádzajúce zo senzora (zvyčajne -180 až 180 x 10) na 0-255 getHeading (); Serial.write ('x'); x = (x +1800) / 14; Serial.write (x); Serial.write ('y'); y = (y+1800) / 14; Serial.write (y); Serial.write ('z'); z = (z+1800) / 14; Sériové číslo. zápis (z); Informácie zo senzora a Arduina idú do náčrtu spracovania pre každú samostatnú os, ale s predchádzajúcim písmenom osi (napríklad pre X12 Y200 Z130) nasledujúci kód zahodí písmeno a ponechá iba hodnoty, ktoré sa majú odoslať do COM port while (port.available () == 0) {} char reading = 0; while (reading! = 'x') {while (port.available () == 0) {} reading = (char) port.read ();} X = port.read (); while (reading! = 'Y') {while (port.available () == 0) {} reading = (char) port.read ();} Y = port.read (); while (čítanie! = 'z') {while (port.available () == 0) {} reading = (char) port.read ();} Z = port.read (); Tento kus kódu zahodí všetky záporné hodnoty … if ((X! = -1) && (Y! = -1) && (Z! = -1)) {rotateZ (-(float) Y/25,0); rotateX ((float) X/25.0); rotateY ((float) Z/25.0); pX = X; pY = Y; pZ = Z;} else {rotateZ (-(float) pY/25.0); rotateX ((float) pX /25.0);rotateY((float)pZ/25.0);} Priložený súbor ZIP obsahoval Arduino aj spracovateľský kód

Krok 5: Video

To je ono … Toto je hotový projekt vo videu. Vyskytla sa menšia chyba (vo videu môžete vidieť, že kocka niekedy "skáče"), Je to kvôli osi Z, nemusí sa vám to stať …

Odporúča: