Spisu treści:

Mysz 3D AIR - Arduino + przetwarzanie: 5 kroków
Mysz 3D AIR - Arduino + przetwarzanie: 5 kroków

Wideo: Mysz 3D AIR - Arduino + przetwarzanie: 5 kroków

Wideo: Mysz 3D AIR - Arduino + przetwarzanie: 5 kroków
Wideo: ILU POLICJANTÓW POTRZEBA ABY OBEZWŁADNIĆ OJCA BEZ SPRZĘTU 2024, Listopad
Anonim
Mysz 3D AIR | Arduino + Przetwarzanie
Mysz 3D AIR | Arduino + Przetwarzanie

Mysz 3D AIR | Arduino + Processing Jestem studentem wzornictwa przemysłowego, a w zeszłym roku w ramach kursu "Technologia jako materiał RAW" zbudowałem ten projekt jako moją pracę końcową. Większość czasu pracuję z SolidWorks, oprogramowaniem CAD do projektowania i generowania. Obracanie bryły na ekranie odbywa się za pomocą środkowego przycisku myszy. Szukałem czegoś bardziej intuicyjnego. W ten sposób zakończyłem pracę z powietrzną myszą 3D, w której rzeczywisty obrót obiektu odbywa się poprzez przesuwanie myszy w powietrzu na wszystkich 3 osiach – w ten sam sposób, w jaki obracasz obiekt, trzymając go w dłoni. Użyłem Arduino, kilku czujników i szkicu przetwarzania. UWAGI: - Na razie jest to tylko demonstracja koncepcji, ponieważ nie ma rzeczywistej wtyczki do pracy z SolidWork (ale oczywiście możesz napisz jedną, jeśli wiesz jak:)- Ponieważ cały sprzęt nie był mój, właściwa mysz 3D już dawno zniknęła, a ja używam kilku zdjęć i filmu, aby spróbować zrozumieć to wszystko i dać ci jakiś pomysł, jeśli chcesz spróbować i zbudować go sam…Ciesz się tym… (To mój pierwszy Instruktaż)Oto demo wideo ukończonego projektu

Krok 1: Sprzęt i inne rzeczy

Sprzęt i inne rzeczy
Sprzęt i inne rzeczy
Sprzęt i inne rzeczy
Sprzęt i inne rzeczy
Sprzęt i inne rzeczy
Sprzęt i inne rzeczy
Sprzęt i inne rzeczy
Sprzęt i inne rzeczy

Nie jest to najtańszy Instructable, ponieważ opiera się na 3-osiowym akcelerometrze + czujnik kompasu. Rzeczy, których będziesz potrzebować: * Mysz - używana jest lepsza (tylko dlatego, że jest używana i tańsza), każda mysz powinna wystarczyć. Musisz mieć trochę miejsca, aby pomieścić czujniki i dodatkowe przewody, więc nie wybieraj bardzo cienkich / bardzo małych myszy.* Moduł kompasu z kompensacją przechyłu - HMC634 - Jest to czujnik 3-osiowy, kupiony w SpurkFun za ~ 149 USD * Konwerter poziomów logicznych - KONIECZNOŚĆ! Ponieważ Arduino ma napięcie 5 V, a czujnik 3 osi ma 3,3 V, potrzebny jest jeden z nich, aby przekonwertować 5 V na 3,3 V. Ma dużą nazwę, ale w SpurkFun kosztuje tylko 1,95 USD.* Duży detektor optyczny / fototranzystor - jest to prosty czujnik optyczny, używany w tym projekcie do wykrywania, kiedy mysz jest podnoszona z powierzchni roboczej. Kupiony w SpurkFun za 2,25 USD Jeśli nie masz wystarczająco dużo miejsca, aby pomieścić tę mysz w wybranej myszy, możesz użyć tej, mniejszej i tańszej. * Jedna (1) dioda LED - nieważne, kolor, ultra jasny będzie działał lepiej.* 2 rezystory - jeden (1) x 100 Ω i jeden (1) x 100 KΩ (dla czujnika optycznego)* Płytka Arduino - DA! Użyłem modelu Diecimila. Nowszy Duemilanove jest dostępny w SpurkFun za około 29,95 USD (powinno też działać) + zainstalowane oprogramowanie Arduino.* Zainstalowane oprogramowanie do przetwarzania.* Kod źródłowy projektu (nie martw się, pobierzesz go za chwilę) Plus:Niektóre gorący klej (do mocowania rzeczy)Kilka maleńkich śrubek. Około 10cm drewnianej kotwy 6mm (śr.)Niektóre dodatkowe druty. Lutownica. Coś do przecięcia plastiku, użyłem noża do cięcia i pilnika (DO kształtowania). („Ok, nie nienawidź mnie za ten krok, angielski to mój drugi język, jeśli źle zrozumiałem, przepraszam, jestem pewien, że za chwilę zrozumiesz, o co mi chodzi. zobaczysz to na zdjęciach )

Krok 2: Elektronika

Elektronika
Elektronika
Elektronika
Elektronika

Wszystko musi być ze sobą lutowane… w pewnym sensie… UWAGA: 3-osiowy czujnik jest drogim drobiazgiem, dokładnie sprawdź okablowanie przed włączeniem wszystkiego… Zobacz załączone schematy dla całego okablowania użytego w tym projekcie. Załączony kod źródłowy może działać tylko wtedy, gdy używasz tych samych numerów PIN, co ja, ale możesz je zmienić podczas łączenia, o ile zmienisz odpowiednie numery w kodzie. Podłączenie czujnika 3-osiowego do konwertera poziomów logicznych:Sensor VCC -> Arduino 3V3Sensor GND -> Arduino GndSensor SDA -> Converter TXI (Chan1)Converter TXO (Chan1) -> Arduino ANALOG IN 4Sensor SCL -> Converter TXI (Chan2)Converter TXO (Chan2) -> Arduino ANALOG IN 5Converter GND (przynajmniej jeden z nich) -> Arduino GndConverter HV -> Arduino 5VConverter LV -> Arduino 3V3Czujnik optyczny do Arduino:Patrz załączony obrazDigital in = Pin 11 na ArduinoLED:GND do niektórych GND (użyłem jednego z czujników optycznych) + do Arduino PIN 13 (Zrobiono to, ponieważ ten pin ma już wbudowany rezystor, jeśli używasz innego, upewnij się, że używasz rezystora, aby nie spalić diody LED)

Krok 3: Przygotowanie myszy

Przygotowanie myszy
Przygotowanie myszy
Przygotowanie myszy
Przygotowanie myszy
Przygotowanie myszy
Przygotowanie myszy

To tutaj czujniki znajdują swoje miejsce w obudowie myszy. Znajdź najlepsze miejsce do zamocowania czujnika 3-osiowego. Upewnij się, że jest wypoziomowany i pamiętaj o orientacji (będziesz wiedział, kiedy będziesz mieć czujnik w ręku) Możesz go naprawić w dowolny sposób, użyłem 2 krótkich kawałków drewnianej kotwy, wywierconych, aby przyjąć 2 małe śruby, i przyklejony na gorąco do płyty głównej myszy. W przypadku czujnika optycznego ukształtuj prostokątny otwór w dolnej części myszy, chodzi o to, aby czujnik cały czas „widział” stół. Gdy mysz jest podniesiona, a stan czujnika jest „otwarty” (brak tabeli do zobaczenia), mysz przełącza się w tryb 3D (uruchamia szkic przetwarzania) Ukształtuj kolejny otwór do wyprowadzenia dodatkowych przewodów (z czujników do Arduino) z obudowa z tworzywa sztucznego. Mój znajdował się po prawej stronie myszy. Napraw diodę LED tam, gdzie jest wyświetlana. W tym projekcie dioda LED jest wskaźnikiem trybu 3D. Kładę mój obok silikonowego kółka myszy. Gdy mysz jest podniesiona, koło ma ładny niebieski blask.

Krok 4: Kod źródłowy

Kod dla Arduino został napisany przez Shachara Geigera, mojego nauczyciela, i został zmodyfikowany przeze mnie do tego projektu. Kod kostki 3D jest podstawowym kodem znalezionym na stronie internetowej Przetwarzania. Trochę to zmodyfikowałem. W kodzie ten fragment konwertuje surowe informacje pochodzące z czujnika (zwykle -180 do 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;Zapis.szeregowy(z); Informacje z czujnika i Arduino trafiają do szkicu Processing dla każdej oddzielnej osi, ale z poprzedzającą literą osi (dla np. X12 Y200 Z130), poniższy kod usuwa literę i pozostawia tylko wartości do wysłania do COM port while(port.available() == 0){}znak odczyt = 0;while (odczyt != 'x') {while(port.available() == 0){}odczyt = (znak)port.read ();}X = port.read();while (odczyt != 'y') {while(port.available() == 0){}odczyt = (char)port.read();}Y = port.read();while (odczyt != 'z') {while(port.available() == 0){}czytanie = (char)port.read();}Z = port.read(); Ten fragment kodu usuwa wszystkie wartości ujemne… 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);} Załączony plik ZIP zawierał zarówno kod Arduino, jak i Processing

Krok 5: Wideo

To jest to… To jest gotowy projekt w filmie. Wystąpiła niewielka usterka (Widać, że sześcian czasami „przeskakuje” w filmie), Dzieje się tak z powodu osi Z, może ci się nie przydarzyć…

Zalecana: