3D AIR myš - Zpracování Arduino +: 5 kroků
3D AIR myš - Zpracování Arduino +: 5 kroků
Anonim

3D AIR myš | Arduino + Processing Jsem student průmyslového designu a v loňském roce jsem v rámci kurzu „Technologie jako materiál RAW“postavil tento projekt jako svou závěrečnou práci. Většinu času pracuji s CAD softwarem SolidWorks pro návrh a tvorbu. Otočení pevného tělesa na obrazovce se provádí prostředním tlačítkem myši. Hledal jsem něco intuitivnějšího. Tak jsem skončil s 3D vzduchovou myší, kde se skutečné otáčení předmětu provádí pohybem myši ve vzduchu na všech 3 osách - stejným způsobem, jakým byste objekt otáčeli, pokud byste jej drželi v ruce. Použil jsem Arduino, několik senzorů a skicu pro zpracování. POZNÁMKY:- V tuto chvíli je to jen ukázka konceptu, protože pro práci s SolidWorkem neexistuje žádný skutečný plug-in (ale samozřejmě neváhejte napište jeden, pokud víte, jak:) nějaký nápad, pokud si ho chcete zkusit postavit sami … Užijte si to … (Je to můj první návod) Zde je video demo hotového projektu

Krok 1: Hardware a věci

Nejde o nejlevnější instruktáž, protože je založen na 3osém akcelerometru + kompasovém senzoru. Muška, kterou budete potřebovat:* Myš - použitá je lepší (jen proto, že je používaná a levnější), měla by ji dělat jakákoli myš. Potřebujete mít nějaký prostor pro umístění senzorů a nějaké další dráty, takže nechoďte pro extra tenké / extra malé myši.* Modul kompasu s kompenzací náklonu - HMC634 - Toto je 3osý senzor, zakoupený na SpurkFun pro ~ 149 $* Převodník logické úrovně - POVINNOST! Protože Arduino je 5V a 3osý senzor je 3,3V, potřebujete jeden z nich k převodu 5V na 3,3V. Má velké jméno, ale na SpurkFun stál pouze 1,95 $.* Velký optický detektor / fototranzistor - Jedná se o jednoduchý optický senzor, který se v tomto projektu používá k detekci zvedání myši z pracovní plochy. Koupeno na SpurkFun za 2,25 $ Pokud nemáte dostatek místa pro umístění této myši do vámi vybrané myši, můžete použít tuto, menší a levnější. * Jedna (1) LED - nevadí barva, ultra jasný bude fungovat lépe.* 2 rezistory - jeden (1) x 100Ω a jeden (1) x 100KΩ (pro optický senzor)* deska Arduino - DA! Použil jsem model Diecimila. Novější Duemilanove je k dispozici na SpurkFun za přibližně 29,95 $ (mělo by také fungovat) + nainstalován software Arduino.* Nainstalován software pro zpracování.* Zdrojový kód projektu (nebojte se, stáhnete si ho za sekundu). Plus: Některé horké lepidlo (k upevnění věcí na místě) Pár drobných šroubků. Asi 10 cm dřevěné kotvy o průměru 6 mm. Některé dráty navíc. Páječka. Něčím, čím jsem plast nařezal, jsem použil řezací nůž a pilník (PRO tvarování). („Dobře, nenáviď mě za tento krok, angličtina je můj druhý jazyk, pokud jsem to špatně pochopil, omlouvám se, jsem si jistý, že za sekundu pochopíš, o co jde. uvidíte to na obrázcích “)

Krok 2: Elektronika

Všechno je třeba pájet dohromady … Svým způsobem … POZNÁMKA: 3osý snímač je drahá maličkost, dvakrát zkontrolujte zapojení, než vše zapnete … Podívejte se na připojená schémata pro všechna zapojení použitá v tomto projektu. Připojený zdrojový kód může fungovat pouze tehdy, pokud používáte stejná čísla pinů jako já, ale při připojování je můžete změnit, pokud změníte příslušná čísla v kódu. Připojení 3osého snímače k převodníku logické úrovně: Senzor VCC -> Arduino 3V3Sensor GND -> Arduino GndSensor SDA -> Převodník TXI (Chan1) Převodník TXO (Chan1) -> Arduino ANALOG IN 4Sensor SCL -> Převodník TXI (Chan2) Převodník TXO (Chan2) -> Arduino ANALOG IN 5Converter GND (alespoň jeden z nich) -> Arduino GndConverter HV -> Arduino 5VConverter LV -> Arduino 3V3 Optický snímač na Arduino: Viz přiložený obrázek Digitální vstup = Pin 11 na ArduinoLED: GND k některým GND (použil jsem jeden z optických senzorů)+ na Arduino PIN 13 (To bylo provedeno, protože tento pin již má integrovaný odpor, pokud použijete jiný, ujistěte se, že používáte odpor, abyste LED diodu nespálili)

Krok 3: Příprava myši

Zde nacházejí senzory své místo uvnitř pouzdra myši. Najděte nejlepší místo pro upevnění 3osého senzoru. Ujistěte se, že je vyrovnán a dbejte na orientaci (Budete vědět, kdy budete mít senzor v ruce) Můžete to opravit, jak chcete, použil jsem 2 krátké kusy dřevěné kotvy, vyvrtané tak, aby přijaly 2 malé šrouby a za horka přilepené k základní desce myši. U optického senzoru vytvarujte ve spodní části myši obdélníkový otvor. Jde o to, aby senzor neustále „viděl“tabulku. Když je myš zvednuta a stav senzoru je „otevřený“(není vidět žádná tabulka), myš se přepne do 3D režimu (spustí skicu zpracování) Vytvarujte další otvor pro vedení dalších vodičů (od senzorů k Arduinu) ven z plastové pouzdro. Můj byl umístěn na pravé straně myši. Opravte LED, kde se zobrazí. V tomto projektu je LED indikátorem 3D režimu. Položím své vedle silikonového kolečka myši. Když je myš nadzvednuta, kolo mělo pěknou modrou záři.

Krok 4: Zdrojový kód

Kód pro Arduino napsal Shachar Geiger, můj učitel, a byl pro tento projekt upraven mnou. Kód 3D krychle je základní kód, který najdete na webových stránkách Zpracování. Trochu jsem to upravil. V kódu tento kus převádí nezpracované informace pocházející ze snímače (obvykle -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; Serial.write (z); Informace ze senzoru a Arduina přejdou do náčrtu zpracování pro každou samostatnou osu, ale s předcházejícím písmenem osy (pro exp. X12 Y200 Z130) následující kód vynechá písmeno a ponechá pouze hodnoty, které mají být odeslány 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 (reading! = 'z') {while (port.available () == 0) {} reading = (char) port.read ();} Z = port.read (); Tento kus kódu zahodí všechny 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);} Připojený soubor ZIP obsahoval Arduino i zpracovávací kód

Krok 5: Video

To je ono … Toto je hotový projekt ve videu. Dochází k menší závadě (můžete vidět, že kostka ve videu někdy „skáče“), To je kvůli ose Z, to se vám nemusí stát …