Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

ThimbleKrox - Maussteuerung mit den Fingern

Komponenten und Verbrauchsmaterialien

Arduino Micro
× 1
SparkFun Triple-Axis-Beschleunigungsmesser und Gyro Breakout - MPU-6050
× 1

Notwendige Werkzeuge und Maschinen

3D-Drucker (generisch)
Optional

Apps und Onlinedienste

Arduino-IDE

Über dieses Projekt

Hallo zusammen, hier ist mein erstes Projekt, ThimbleKrox, das ist ein Fingerhut, mit dem Sie den Mauszeiger durch die Bewegung des Zeigefingers (oder eines beliebigen Fingers) steuern können.

Schritt 1:Benötigte Materialien und Werkzeuge

Benötigte Materialien:

  • Arduino Micro
  • MPU-6050
  • ein Kabel zum Verbinden des Arduino und des PCs (Micro-USB zu USB)
  • Jumper (um Arduino und MPU-6050 zu verbinden)
  • ein Gummiband (wenn Sie das Arduino an Ihrer Hand befestigen möchten)

Benötigte Werkzeuge:

  • ein Computer mit installierter Arduino-IDE (um den Code im Arduino zu booten)
  • Lötkolben (nur wenn beim Arduino die Pins nicht vormontiert sind)
  • 3D-Drucker (wenn dein Fingerhut cool aussehen soll)

Schritt 2:Verbindung

Verbinden Sie die Pins des Arduino mit den Pins des MPU-6050:

  • VCC von Arduino an Pin VCC
  • GND an GND stecken
  • Pin 2 an SDA
  • Pin 3 an SCL.

Schritt 3:3D-Druck (optional)

Wenn Sie möchten, dass Ihr Fingerhut gut aussieht und Sie einen 3D-Drucker haben, können Sie den physischen Fingerhut drucken.

Ich habe es in zwei Versionen gemacht, eine klare, die daher keine Träger benötigt und nicht zu sperrig ist, eine zweite, die ich stattdessen im Steampunk-Stil versucht habe, ohne sie zu sperrig zu machen (es ist immer noch sperriger als die klare one ), aber dieser erfordert, dass Träger gedruckt werden und nur in Farbe am besten zurückkehren (für PLA kam ich gut mit Tempera zurecht). Beide müssen mit dem Teil mit den beiden inneren Vorsprüngen unten bedruckt werden

Schritt 4:Montage

Mit dem 3D-gedruckten Fingerhut

Um alles mit der gedruckten Kausche zu montieren, ist es nach dem Herstellen der Verbindungen erforderlich, die MPU-6050 in die obere Vertiefung des Kauschengehäuses einzuführen, die Kabel in die untere Vertiefung

Ohne den 3D-gedruckten Fingerhut

In diesem Fall erfolgt die Montage eher laienhaft, dh indem man den MPU-6050 im letzten Fingerglied des interessierten Fingers positioniert und mit Klebeband oder einem Gummiband blockiert.

Schritt 5:Code und Kalibrierung

Das erste, was Sie tun müssen, um den Code auszuführen, ist die Installation der erforderlichen Bibliotheken Wire.h, I2Cdev.h, MPU6050.h und Mouse.h

Danach ist es mein Rat, den ThimbleKrox-Kalibrierungscode zu laden, den Fingerhut aufzusetzen und den seriellen Monitor zu öffnen (Strg + Umschalt + M).

Sie sollten jetzt etwa Folgendes sehen:

richtig | gx =3165 gy =469 gz =-1055 | ax =15232 ay =2064 az =-4496 

Wo wird die Richtung angezeigt, in die Sie bei korrekter Kalibrierung den Zeiger bewegen möchten, und dann einige Werte, die für die Kalibrierung erforderlich sind.

Jetzt müssen Sie den Code erneut öffnen und zu den mit "//kalibrierungslinie" gekennzeichneten Zeilen gehen und die Zahlenwerte ändern, bis Sie die richtige Richtung erhalten. (Jedes Mal, wenn Sie einen Wert im Code ändern, müssen Sie ihn im Arduino neu hochladen.)

Bsp.

Serienmonitor:

links | gx =3165 gy =469 gz =-1055 | ax =5232 ay =2064 az =-4496 

Kalibrierungscode:

if (ax> =15000) {//Kalibrierungslinie
rechts ();
}

Der serielle Monitor markiert "links", aber wir möchten, dass diese Zeile mit "rechts" markiert wird, daher müssen wir den Wert "15000" auf "5000" ändern. Dies liegt daran, dass wir in diesem Fall sicherstellen müssen, dass die erkannte "Achse" größer ist als der Wert im Code. Wir verstehen, dass es größer sein muss, weil im Code ein Hauptzeichen ist, und dass wir auf die "Axt" des seriellen Monitors achten müssen, weil im Code "Axt" steht. (nur die Zahlenwerte des Codes müssen geändert werden)

Nach dem Neuladen des Codes im Arduino haben wir:

Serienmonitor:

richtig | gx =3165 gy =469 gz =-1055 | ax =5232 ay =2064 az =-4496 

Kalibrierungscode:

if (ax> =5000) { // Kalibrierungslinie
rechts ();
}

Wenn alle Kalibrierungslinien im Kalibrierungscode angepasst wurden und daher die Kausche der Kalibrierungsversion funktionsfähig ist, müssen die Werte des Hauptcodes angepasst werden, damit sie mit dem Kalibrierungscode übereinstimmen.

Bsp.

Kalibrierungscode:

if (ax> =5000) { // Kalibrierungslinie
rechts ();
}

Hauptcode:

if (ax> =15000) {//Kalibrierungslinie
rechts ();
}

Der Hauptcode muss geändert werden in:

if (ax> =5000) { // Kalibrierungslinie
rechts ();
}

Jetzt ist es an der Zeit, den Hauptcode hochzuladen

Schritt 6:Beenden Sie das Projekt

Jetzt ist es an der Zeit, deinen Fingerhut zu tragen und damit zu spielen!

Code

  • ThimbleKrox-Code
  • ThimbleKrox-Kalibrierungscode
ThimbleKrox-CodeArduino
Hauptcode für ThimbleKrok
//Code zum Steuern des Mauszeigers durch die Bewegung eines Fingers//Um das Gerät zu kalibrieren, führen Sie „ThimbleKrox-Kalibrierungscode“ aus und folgen Sie dem Tutorial unter https://www.hackster.io/projects /dd8881///Die Zeilen, die für die Kalibrierung geändert werden müssen, haben "//kalibrierungszeile" // Code-Schreib von Magform#include #include #include #include MPU6050 mpu;int16_t ax, ay, az, gx, gy, gz;int vx, vy;int Sensibilität=10; // Ändern Sie diesen Wert, um die Empfindlichkeit des Geräts zu ändern Void setup () { Serial.begin (9600); Wire.begin(); mpu.initialize(); if (!mpu.testConnection()) { //Verbindung mit der MPU-6050 prüfen, wenn keine Verbindung besteht, stoppen während (1); }}void up(){ Mouse.move(0, -sensibility); }void down(){ Mouse.move(0, Sensibilität); }void left(){ Mouse.move(-sensibility, 0); }void right () { Mouse.move (Sensibilität, 0); }void loop() { mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); if (ax> =15000) {//Kalibrierungslinie rechts (); } if (ax <=-9000) {//Kalibrierungslinie links (); } if (ay <=-8000) {//Kalibrierungslinie nach oben (); } if (ay> =10000) {//Kalibrierungslinie nach unten (); } // Kommentieren Sie die folgenden Zeilen, um den Rechtsklick mit einem Sprint nach oben und den Linksklick mit einem Sprint nach unten zu setzen (in Arbeit befindlicher Teil)/* if(gy>=20000){//Kalibrierungslinie Mouse.click(MOUSE_RIGHT); Verzögerung (100); } if (gy <=-20000) {//Kalibrierungslinie Mouse.click (MOUSE_LEFT); Verzögerung (100); }*/verzögerung(10);}
ThimbleKrox-KalibrierungscodeArduino
Code zum Kalibrieren von ThimbleKrox
//Code zum Kalibrieren des ThimbleKrox//Um das Gerät zu kalibrieren, führen Sie diesen Code aus und folgen Sie dem Tutorial unter https://www.hackster.io/projects/dd8881///The lines that need (wie der andere Code) für die Kalibrierung geändert werden muss "//kalibrierungszeile" // Code schreiben von Magform#include #include #include #include MPU6050 mpu;int16_t ax, ay, az, gx, gy, gz;int vx, vy;int Nwrong=1;void setup() { Nwrong=1; Serial.begin (9600); Wire.begin(); mpu.initialize(); while(Nwrong!=0){ if (!mpu.testConnection()) {Serial.print("Falsche Verbindungsnummer:"); Serial.print (Nwrong); Falsch++; Verzögerung (1000); }sonst{ Falsch=0; }}}void up () {Serial.print ( "up"); }void down () {Serial.print ( "down"); }void left () {Serial.print ( "links"); } ungültiges Recht () {Serial.print ( "Recht"); } Rechtsklick ungültig () {Serial.print ( "Rechtsklick");; } Ungültiger Linksklick () {Serial.print ( "Linksklick");; } void loop() { mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); if (ax> =15000) {//Kalibrierungslinie rechts (); } if (ax <=-9000) {//Kalibrierungslinie links (); } if (ay <=-8000) {//Kalibrierungslinie nach oben (); } if (ay> =10000) {//Kalibrierungslinie nach unten (); } // Entkommentieren Sie die folgenden Zeilen, um den Rechtsklick mit einem Sprint nach oben und den Linksklick mit einem Sprint nach unten festzulegen (in Arbeit befindlicher Teil)/* if(gy>=20000){//Kalibrierungszeile rightclick(); Verzögerung (100); } if(gy<=-20000){//Kalibrierungslinie leftclick(); Verzögerung (100); } */ Serial.print (" | gx ="); Serial.print (gx); Serial.print("gy="); Serial.print (gy); Serial.print ( " gz ="); Serial.print (gz); Serial.print ( " | ax ="); Serial.print (ax); Serial.print ( " ay ="); Serial.print (ay); Serial.print("az="); Serial.print (az); Serial.print("\n"); Verzögerung (5000); }
FingerhutKrox
https://github.com/Magform/ThimbleKrox

Kundenspezifische Teile und Gehäuse

ThimbleKrox 3D-druckbares Modell
Für diejenigen, die es vorziehen, die Modelle aus der ThingiverseCAD-Datei auf thingiverse.com zu nehmen Support erforderlichKein Support erforderlich

Schaltpläne


Herstellungsprozess

  1. Bauen Sie Ihren internetgesteuerten Videostreaming-Roboter mit Arduino und Raspberry Pi
  2. Aktivieren Sie die Alexa-Steuerung für Ihren Deckenventilator
  3. Münzprüfer mit Arduino steuern
  4. Arduino-Kontrollzentrum
  5. Arduino mit Bluetooth zur Steuerung einer LED!
  6. Arduino-Befeuchtersteuerung
  7. Arduino Nano:Steuerung von 2 Schrittmotoren mit Joystick
  8. Steuern Sie Ihre LED mit Cortana
  9. Volle Kontrolle über Ihren Fernseher mit Alexa und Arduino IoT Cloud
  10. 25-kHz-4-Pin-PWM-Lüftersteuerung mit Arduino Uno