Inhaltsverzeichnis:

DIY 3D-Controller - Gunook
DIY 3D-Controller - Gunook

Video: DIY 3D-Controller - Gunook

Video: DIY 3D-Controller - Gunook
Video: I Made my own Space Mouse for Fusion 360 using Magnets (DIY) 2024, November
Anonim
DIY 3D-Controller
DIY 3D-Controller

Erstellen Sie eine 3D-Schnittstelle mit sechs Widerständen, Aluminiumfolie und einem Arduino. Nehmen Sie das Wii. Update: Eine viel gründlichere Erklärung dieses Projekts finden Sie im Make Magazine. Es könnte einfacher sein, ihren Anweisungen zu folgen, und ich denke, ihr Code ist aktueller. Das grundlegende Ziel hier war es, ein 3D-Handpositionserfassungssystem zu entwickeln, das die meisten Leute bauen können, während es dennoch einen gewissen Anschein von Funktionalität bewahrt. Um einen Eindruck von möglichen Anwendungen zu bekommen, sehen Sie sich das Demo-Video an. Wenn du denkst, dass du ein einfacheres und genauso genaues oder etwas komplexeres und genaueres bauen kannst, teile es in den Kommentaren!DIY 3D-Schnittstelle: Tic Tac Toe von Kyle McDonald on Vimeo.

Schritt 1: Materialien

Materialien
Materialien
Materialien
Materialien

Werkzeuge

  • Arduino
  • wird bearbeitet
  • Kabelschneider
  • Lötkolben
  • Teppichmesser

Materialien

  • (3) 270k Widerstände
  • (3) 10k Widerstände
  • Lot
  • Kabel
  • Aluminiumfolie
  • Karton

Optional:

  • Klebeband (z. B.: Scotch)
  • Abgeschirmter Draht (z. B.: Koaxialkabel, ~3')
  • (3) Krokodilklemmen
  • 3-poliger Header
  • Kabelbinder
  • Schrumpfschlauch oder Heißkleber

Schritt 2: Machen Sie die Platten

Mach die Platten
Mach die Platten
Mach die Platten
Mach die Platten

Dieser Sensor arbeitet mit einfachen RC-Schaltungen, wobei jeder Schaltungsabstand in einer Dimension liegt. Ich fand, dass man drei kapazitive Platten für diesen Zweck am einfachsten in der Ecke eines Würfels anordnen kann. Ich schneide die Ecke eines Kartons in einen 8,5-Zoll-Würfel und schneide dann etwas Aluminiumfolie, damit sie in etwas kleinere Quadrate passt. Klebeband an den Ecken hält sie an Ort und Stelle. Kleben Sie nicht den gesamten Umfang ab, wir werden es brauchen später zum Anbringen der Krokodilklemmen.

Schritt 3: Stellen Sie die Anschlüsse her

Machen Sie die Anschlüsse
Machen Sie die Anschlüsse
Machen Sie die Anschlüsse
Machen Sie die Anschlüsse
Machen Sie die Anschlüsse
Machen Sie die Anschlüsse

Um den Arduino mit den Platten zu verbinden, benötigen wir einen abgeschirmten Draht. Wenn der Draht nicht abgeschirmt ist, wirken die Drähte selbst offensichtlicher als Teil des Kondensators. Außerdem habe ich festgestellt, dass es mit Krokodilklemmen wirklich einfach ist, Dinge mit Aluminium zu verbinden – aber es gibt wahrscheinlich auch viele andere Möglichkeiten.

  • Schneiden Sie drei gleiche Längen des abgeschirmten Kabels ab. Ich habe etwa 12 Zoll gewählt. Je kürzer, desto besser. Koaxialkabel funktioniert, aber je leichter / flexibler, desto besser.
  • Streifen Sie den letzten halben Zoll oder so ab, um die Abschirmung freizulegen, und den letzten Viertel Zoll, um den Draht freizulegen.
  • Verdrehen Sie die Krokodilklemmen mit den Drähten auf den Drähten und löten Sie sie zusammen.
  • Fügen Sie etwas Schrumpfschlauch oder Heißkleber hinzu, um die Dinge zusammenzuhalten.

Schritt 4: Machen Sie die Schaltung

Mach den Kreislauf
Mach den Kreislauf
Mach den Kreislauf
Mach den Kreislauf
Mach den Kreislauf
Mach den Kreislauf
Mach den Kreislauf
Mach den Kreislauf

Die "Schaltung" besteht nur aus zwei Widerständen pro Stück Aluminium. Um zu verstehen, warum sie da sind, hilft es zu wissen, was wir mit dem Arduino machen. Was wir nacheinander mit jedem Pin tun werden, ist:

  • Stellen Sie den Pin auf den Ausgabemodus.
  • Schreiben Sie ein digitales "Low" auf den Pin. Dies bedeutet, dass beide Seiten des Kondensators geerdet sind und er sich entlädt.
  • Stellen Sie den Pin in den Eingabemodus.
  • Zählen Sie, wie lange es dauert, bis der Kondensator aufgeladen ist, indem Sie darauf warten, dass der Pin "high" wird. Dies hängt von den Werten für den Kondensator und die beiden Widerstände ab. Da die Widerstände fest sind, ist eine Kapazitätsänderung messbar. Der Abstand vom Boden (Ihrer Hand) ist die primäre Variable, die zur Kapazität beiträgt.

Die 270k-Widerstände liefern die Spannung zum Laden der Kondensatoren. Je kleiner der Wert, desto schneller werden sie aufgeladen. Die 10k-Widerstände beeinflussen auch das Timing, aber ich verstehe ihre Rolle nicht vollständig. Wir werden diese Schaltung an der Basis jedes Drahts herstellen.

  • Löten Sie den 10k-Widerstand an das Ende des Drahtes gegenüber der Krokodilklemme
  • Löten Sie den 270k Widerstand zwischen Schirm und Draht (Platte). Wir schirmen den Draht mit den gleichen 5 V ab, die wir zum Laden der Kondensatoren verwenden

Schritt 5: Fertigstellen und Anbringen des Steckers

Fertigstellen und Anbringen des Steckverbinders
Fertigstellen und Anbringen des Steckverbinders
Fertigstellen und Anbringen des Steckverbinders
Fertigstellen und Anbringen des Steckverbinders
Fertigstellen und Anbringen des Steckverbinders
Fertigstellen und Anbringen des Steckverbinders

Sobald die 3 Anschlüsse fertig sind, möchten Sie vielleicht Schrumpfschlauch oder Heißkleber hinzufügen, um sie voneinander zu isolieren, da Sie die Abschirmung / 5 V-Punkte zusammenlöten.

Für mich war es am einfachsten, die beiden äußersten Anschlüsse zusammenzulöten und dann den dritten hinzuzufügen. Nachdem Sie die drei Stecker verlötet haben, fügen Sie einen vierten Draht zur Versorgung des Schirms / 5 V hinzu.

Schritt 6: Verbinden und Code hochladen

Verbinden und Code hochladen
Verbinden und Code hochladen
Verbinden und Code hochladen
Verbinden und Code hochladen
  • Stecken Sie den Stecker in den Arduino (Pins 8, 9 und 10)
  • Schnappen Sie die Krokodilklemmen auf die Platten (8:x:links, 9:y:unten, 10:z:rechts)
  • Stellen Sie die Stromversorgung bereit, indem Sie das vierte Kabel (mein rotes Kabel) in die 5 V des Arduino stecken
  • Stecken Sie das Arduino ein, starten Sie die Arduino-Umgebung
  • Laden Sie den Code auf das Board hoch (Hinweis: Wenn Sie sich außerhalb von Nordamerika befinden, müssen Sie #define mains wahrscheinlich auf 50 statt 60 ändern).

Der Arduino-Code ist als Interface3D.ino angehängt und der Processing-Code ist als TicTacToe3D.zip angehängt

Schritt 7: Machen Sie etwas Cooles

Wenn Sie sich das serielle Fenster in der Arduino-Umgebung ansehen, werden Sie feststellen, dass es rohe 3D-Koordinaten bei 115200 Baud ausspuckt, bei ungefähr 10 Hz = 60 Hz / (2 volle Zyklen * 3 Sensoren). Der Code nimmt so oft wie möglich Messungen an jedem Sensor über den Zeitraum von zwei Zyklen der Netzfrequenz (die überraschend stabil ist) vor, um jede Kopplung aufzuheben. Das erste, was ich damit gemacht habe, war ein einfaches 3D-Tic Tac-Toe-Schnittstelle. Wenn Sie mit einer funktionierenden Demo beginnen möchten, ist der Code hier verfügbar, legen Sie einfach den Ordner "TicTacToe3D" in Ihrem Ordner "Processing sketches" ab. Drei hilfreiche Dinge, die der Tic Tac Toe-Code demonstriert:

  • Linearisiert die Rohdaten. Die Ladezeit folgt tatsächlich einem Potenzgesetz in Bezug auf die Entfernung, daher müssen Sie die Quadratwurzel von eins über die Zeit ziehen (d. h. Entfernung ~= sqrt(1/time))
  • Normalisiert die Daten. Wenn Sie die Skizze starten, halten Sie die linke Maustaste gedrückt, während Sie Ihre Hand bewegen, um die Grenzen des Raums zu definieren, mit dem Sie arbeiten möchten.
  • Hinzufügen von "Momentum" zu den Daten, um Jitter auszugleichen.

In der Praxis kann ich mit diesem Setup mit Aluminiumfolie einen Bereich der größten Folienabmessung erzielen (das größte Stück, das ich getestet habe, ist 1,5 Quadratfuß groß).

Schritt 8: Variationen und Hinweise

Variationen

  • Baue massive Sensoren
  • Optimieren Sie die Widerstände und den Code für schnell vibrierende Dinge und verwenden Sie sie als Tonabnehmer/Mikrofon
  • Es gibt wahrscheinlich noch andere Tricks, um das System vom Wechselstrombrummen zu entkoppeln (ein riesiger Kondensator zwischen den Platten und der Erde?)
  • Ich habe mit der Abschirmung der Platten auf der Unterseite experimentiert, aber es scheint nur Probleme zu geben
  • Erstellen Sie einen RGB- oder HSB-Farbwähler
  • Steuern Sie Video- oder Musikparameter; einen Beat oder eine Melodie sequenzieren
  • Große, leicht gebogene Fläche mit mehreren Platten + einem Projektor = Schnittstelle „Minority Report“

Anmerkungen

Auf der Arduino-Spielwiese gibt es zwei Artikel über kapazitive Berührungserkennung (CapSense und CapacitiveSensor). Am Ende ging ich mit einer Umkehrung eines Designs, über das ich in der Kopie eines Freundes von "Physical Computing" (Sullivan / Igoe) gestolpert war, und beschrieb, wie RCtime verwendet wird (die Schaltung hatte den Kondensator und einen Widerstand fest und maß den Wert von a Potentiometer). Das Mikrosekunden-Timing wurde mit etwas optimiertem Code aus den Arduino-Foren erreicht. Nochmals: Nur wenn ich mit Tonnen von Theremin-Schaltplänen beginne, die ich nicht ganz verstehe, bin ich mir bewusst, dass es bessere Möglichkeiten gibt, kapazitive Distanzmessungen durchzuführen. aber ich wollte etwas so einfach wie möglich machen, das noch funktionsfähig ist. Wenn Sie ein ebenso einfaches und funktionales Design haben, posten Sie es in den Kommentaren!Danke an Dane Kouttron, der alle meine grundlegenden Elektronikfragen toleriert und mir geholfen hat, zu verstehen, wie eine einfache heterodyne Theremin-Schaltung funktioniert (ursprünglich wollte ich diese verwenden - und, wenn es richtig gestimmt ist, wäre es wahrscheinlich genauer).

Erster Preis im The Instructables Book Contest

Empfohlen: