Inhaltsverzeichnis:

3D AIR-Maus - Arduino + Verarbeitung - Gunook
3D AIR-Maus - Arduino + Verarbeitung - Gunook

Video: 3D AIR-Maus - Arduino + Verarbeitung - Gunook

Video: 3D AIR-Maus - Arduino + Verarbeitung - Gunook
Video: 3D Printed Full 6 DOFs Space Mouse - "Space Mushroom" 2024, Juli
Anonim
3D AIR-Maus | Arduino + Verarbeitung
3D AIR-Maus | Arduino + Verarbeitung

3D AIR-Maus | Arduino + ProcessingIch studiere Industriedesign und habe letztes Jahr im Rahmen eines Kurses mit dem Titel "Technologie als RAW-Material" dieses Projekt als meine Abschlussarbeit erstellt. Ich arbeite die meiste Zeit mit SolidWorks, einer CAD-Software für Konstruktion und Konstruktion. Das Drehen eines Festkörpers auf dem Bildschirm erfolgt mit der mittleren Maustaste. Ich war auf der Suche nach etwas intuitiverem. So habe ich die 3D-Luftmaus gemacht, bei der die eigentliche Drehung eines Objekts durch Bewegen der Maus in der Luft auf allen 3 Achsen erfolgt - genauso wie Sie das Objekt drehen würden, wenn Sie es in der Hand halten würden. Ich habe den Arduino, ein paar Sensoren und eine Verarbeitungsskizze verwendet. HINWEISE: - Derzeit ist dies nur eine Demonstration des Konzepts, da es kein tatsächliches Plug-In gibt, um mit SolidWork zu arbeiten (aber natürlich gerne schreibe einen, wenn du weißt wie:)- Da die gesamte Hardware nicht von mir war, ist die eigentliche 3D-Maus schon lange weg, und ich benutze ein paar Fotos und ein Video, um zu versuchen, einen Sinn in all dem zu machen und dir zu geben eine Idee, wenn Sie versuchen möchten, selbst einen zu bauen … Genießen Sie es … (Es ist mein erstes Instructable) Hier ist die Video-Demo des fertigen Projekts

Schritt 1: Hardware und Sachen

Hardware und Zubehör
Hardware und Zubehör
Hardware und Zubehör
Hardware und Zubehör
Hardware und Zubehör
Hardware und Zubehör
Hardware und Zubehör
Hardware und Zubehör

Es ist nicht das billigste Instructable, da es auf einem 3-Achsen-Beschleunigungsmesser + Kompasssensor basiert. Sie benötigen: * Eine Maus - eine gebrauchte ist besser (nur weil sie gebraucht und billiger ist), sollte jede Maus tun. Sie benötigen etwas Platz, um die Sensoren und einige zusätzliche Kabel unterzubringen, also entscheiden Sie sich nicht für extra schlanke / extra kleine Mäuse.* Kompassmodul mit Neigungskompensation - HMC634 - Dies ist der 3-Achsen-Sensor, gekauft bei SpurkFun für ~ 149 $* Logikpegelkonverter - EIN MUSS! Da der Arduino 5 V und der 3-Achsen-Sensor 3,3 V hat, benötigen Sie einen davon, um die 5 V in 3,3 V umzuwandeln. Es hat einen großen Namen, kostet aber bei SpurkFun nur 1,95 US-Dollar. * Großer optischer Detektor / Fototransistor - Dies ist ein einfacher optischer Sensor, der in diesem Projekt verwendet wird, um zu erkennen, wenn die Maus von der Arbeitsfläche abgehoben wird. Gekauft bei SpurkFun für 2,25 $ Wenn Sie nicht genug Platz haben, um diese in Ihrer gewählten Maus unterzubringen, können Sie diese kleinere und billigere verwenden. * Eine (1) LED - egal welche Farbe, ultrahell funktioniert besser.* 2 Widerstände - Ein (1) x 100Ω und ein (1) x 100KΩ (für den optischen Sensor)* Arduino Board - DA! Ich habe das Diecimila-Modell verwendet. Ein neueres Duemilanove ist bei SpurkFun für ca. 29,95 $ erhältlich (sollte auch funktionieren) + Arduino-Software installiert.* Verarbeitungssoftware installiert.* Der Quellcode des Projekts (Keine Sorge, Sie können ihn in einer Sekunde herunterladen.)Plus:Einige Heißkleber (um die Dinge zu befestigen) Ein paar winzige Schrauben. Ungefähr 10 cm eines 6 mm (Durchmesser) Holzankers. Einige zusätzliche Drähte. Lötkolben. Etwas, um den Kunststoff zu schneiden, benutzte ich ein Schneidemesser und eine Feile (ZUM Formen). ("Ok, hasse mich nicht für diesen Schritt, Englisch ist meine zweite Sprache, wenn ich das falsch verstanden habe, tut es mir leid, ich bin sicher, du wirst in einer Sekunde verstehen, was ich vorhabe. Wenn Sie werden es in Bildern sehen")

Schritt 2: Elektronik

Elektronik
Elektronik
Elektronik
Elektronik

Alles muss zusammengelötet werden … In gewisser Weise … HINWEIS: Der 3-Achsen-Sensor ist ein teures kleines Ding Überprüfen Sie die Verkabelung, bevor Sie das ganze Ding einschalten … Sehen Sie sich die beigefügten Schaltpläne für alle in diesem Projekt verwendeten Verkabelungen an. Der beigefügte Quellcode kann nur funktionieren, wenn Sie die gleichen PIN-Nummern verwenden, die ich verwendet habe, aber Sie können diese beim Verbinden gerne ändern, solange Sie die entsprechenden Zahlen im Code ändern. Anschließen des 3-Achsen-Sensors an den Logikpegelwandler: 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 (mindestens einer von ihnen) -> Arduino GndConverter HV -> Arduino 5VConverter LV -> Arduino 3V3Optical Sensor to Arduino: Siehe angehängtes BildDigital in = Pin 11 auf der ArduinoLED: GND zu einigen GND (ich habe einen der optischen Sensoren verwendet) + zu Arduino PIN 13 (Dies wurde getan, da dieser Pin bereits einen On-Board-Widerstand hat. Wenn Sie einen anderen verwenden, stellen Sie sicher, dass Sie einen Widerstand verwenden, damit die LED nicht brennt)

Schritt 3: Vorbereiten der Maus

Vorbereitung der Maus
Vorbereitung der Maus
Vorbereitung der Maus
Vorbereitung der Maus
Vorbereitung der Maus
Vorbereitung der Maus

Hier finden die Sensoren ihren Platz im Inneren des Mausgehäuses. Finden Sie den besten Platz, um den 3-Achsen-Sensor zu befestigen. Stellen Sie sicher, dass es nivelliert ist und achten Sie auf die Ausrichtung (Sie wissen, wann Sie den Sensor in der Hand haben) Sie können es beliebig befestigen, ich habe 2 kurze Stücke des Holzankers verwendet, die gebohrt wurden, um die 2 winzigen Schrauben aufzunehmen, und heiß auf die Hauptplatine der Maus geklebt. Für den optischen Sensor formen Sie ein rechteckiges Loch an der Unterseite der Maus. Die Idee ist, dass der Sensor die Tabelle die ganze Zeit "sieht". Wenn die Maus angehoben wird und der Sensorzustand "offen" ist (keine Tabelle zu sehen), wechselt die Maus in den 3D-Modus (führt die Verarbeitungsskizze aus)Formen Sie ein weiteres Loch zum Verlegen der zusätzlichen Drähte (von den Sensoren zum Arduino) aus dem Kunststoffgehäuse. Meins befand sich auf der rechten Seite der Maus. Fixieren Sie die LED, wo sie angezeigt wird. In diesem Projekt ist die LED die 3D-Modus-Anzeige. Ich lege meine neben das Silikon-Mausrad. Wenn die Maus angehoben wird, leuchtete das Rad schön blau.

Schritt 4: Der Quellcode

Der Code für das Arduino wurde von Shachar Geiger, meinem Lehrer, geschrieben und von mir für dieses Projekt modifiziert. Der 3D-Würfelcode ist der Basiscode, der auf der Processing-Website zu finden ist. Ich habe es ein wenig modifiziert. Im Code wandelt dieser Chunk die vom Sensor kommenden Rohinformationen (normalerweise -180 bis 180 x 10) in 0-255 um. 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;Seriell.schreiben(z); Die Informationen des Sensors und des Arduino gehen in die Verarbeitungsskizze für jede einzelne Achse, aber mit einem vorangehenden Achsenbuchstaben (für exp. X12 Y200 Z130) lässt der folgende Code den Buchstaben weg und lässt nur die Werte übrig, die an die COM gesendet werden 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 (lesen != 'z') {while(port.available() == 0){}reading = (char)port.read();}Z = port.read(); Dieser Codeblock löscht alle negativen Werte… 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);} Die angehängte ZIP-Datei enthielt sowohl Arduino- als auch Processing-Code

Schritt 5: Video

Das war's… Dies ist das fertige Projekt in einem Video. Es gibt einen kleinen Fehler (Sie können sehen, dass der Würfel im Video manchmal "springt") Das liegt an der Z-Achse, kann Ihnen nicht passieren…