Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

ThimbleKrox: Vingergemonteerde Muizenbesturing met Arduino Micro & MPU-6050

Onderdelen en Benodigdheden

Arduino Micro×1
SparkFun MPU-6050 Versnellingsmeter/Gyroscoop Breakout×1

Benodigde Tools en Machines

  • 3D Printer (optioneel)

Apps en Online Diensten

  • Arduino IDE

Over dit Project

Hallo allemaal, hier is mijn eerste project: ThimbleKrox, een vingertop waarmee je de muisaanwijzer kunt besturen via bewegingen van je wijsvinger (of een andere vinger).

Stap 1: Materialen en Tools

Materialen:

  • Arduino Micro
  • MPU-6050
  • Micro USB naar USB kabel
  • Jumper kabels (voor verbinding Arduino-MPU)
  • Elastiek (optioneel, voor bevestiging aan hand)

Tools:

  • Computer met Arduino IDE
  • Solderbout (alleen als Arduino geen headers heeft)
  • 3D Printer (optioneel, voor mooie behuizing)

Stap 2: Aansluiting

Verbind de pinnen van de Arduino met de MPU-6050:

  • VCC → VCC
  • GND → GND
  • Pin 2 → SDA
  • Pin 3 → SCL

Stap 3: 3D Printen (Optioneel)

Er zijn twee versies: een transparante (geen supports nodig, minder voluminieus) en een steampunk-stijl (wel supports nodig, beter met verf). Beide worden geprint met de uitstulpingen naar beneden.

Stap 4: Montage

Met 3D-geprinte vingertop: Plaats de MPU-6050 in de bovenste kaviteit, kabels in de onderste.
Zonder 3D-print: Bevestig de MPU-6050 op de laatste falange met tape of elastiek.

Stap 5: Code en Kalibratie

Installeer de benodigde bibliotheken: Wire.h, I2Cdev.h, MPU6050.h, Mouse.h.

Laad de kalibratiecode, dra de vingertop en open de Seriële Monitor. Je ziet richtingen (links/rechts/omhoog/omlaag) en ruwe sensorwaarden. Pas de drempelwaarden in de code aan (gemarkeerd met "// calibration line") tot de richtingen kloppen. Herhaal voor alle vier richtingen. Vervolgens kopieer de gekalibreerde waarden naar de hoofdcode en upload deze.

Stap 6: Project Afronden

Dra je vingertop en geniet van muisbesturing met je vinger!

Code

Hoofdcode (ThimbleKrox)

// Muisaanwijzer besturing via vingermoving
// Kalibratie: draai "ThimbleKrox calibration code" en volg tutorial
// Regels met "//calibration line" moeten worden aangepast
// Geschreven door Magform

#include <Wire.h>
#include <I2Cdev.h>
#include <MPU6050.h>
#include <Mouse.h>

MPU6050 mpu;
int16_t ax, ay, az, gx, gy, gz;
int vx, vy;
int sensibility = 10; // Gevoeligheid instellen

void setup() {
  Serial.begin(9600);
  Wire.begin();
  mpu.initialize();
  if (!mpu.testConnection()) { while (1); }
}

void up() { Mouse.move(0, -sensibility); }
void down() { Mouse.move(0, sensibility); }
void left() { Mouse.move(-sensibility, 0); }
void right() { Mouse.move(sensibility, 0); }

void loop() {
  mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
  
  if (ax >= 15000) right();      // calibration line
  if (ax <= -9000) left();       // calibration line
  if (ay <= -8000) up();         // calibration line
  if (ay >= 10000) down();       // calibration line
  
  // Optioneel: klikken via gyroscoop (work in progress)
  /* if (gy >= 20000) { Mouse.click(MOUSE_RIGHT); delay(100); }
  if (gy <= -20000) { Mouse.click(MOUSE_LEFT); delay(100); } */
  
  delay(10);
}

Kalibratiecode

// Kalibratiecode voor ThimbleKrox
// Volg tutorial op hackster.io
#include <Wire.h>
#include <I2Cdev.h>
#include <MPU6050.h>
#include <Mouse.h>

MPU6050 mpu;
int16_t ax, ay, az, gx, gy, gz;
int vx, vy;
int Nwrong = 1;

void setup() {
  Serial.begin(9600);
  Wire.begin();
  mpu.initialize();
  while (Nwrong != 0) {
    if (!mpu.testConnection()) {
      Serial.print("Foute verbinding nummer: ");
      Serial.println(Nwrong);
      Nwrong++;
      delay(1000);
    } else Nwrong = 0;
  }
}

void up() { Serial.print(" up "); }
void down() { Serial.print(" down "); }
void left() { Serial.print(" left "); }
void right() { Serial.print(" right "); }
void rightclick() { Serial.print(" RightClick "); }
void leftclick() { Serial.print(" LeftClick "); }

void loop() {
  mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
  
  if (ax >= 15000) right();      // calibration line
  if (ax <= -9000) left();       // calibration line
  if (ay <= -8000) up();         // calibration line
  if (ay >= 10000) down();       // calibration line
  
  /* if (gy >= 20000) { rightclick(); delay(100); }
  if (gy <= -20000) { leftclick(); delay(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.println(az);
  
  delay(5000);
}

GitHub: https://github.com/Magform/ThimbleKrox

3D-Print Modellen

Beschikbaar op Thingiverse: transparante versie (geen supports) en steampunk versie (met supports).

Schema

Aansluitschema beschikbaar in de originele documentatie.

Productieproces

  1. Bouw een Internet-gecontroleerde Video-streamende Robot met Arduino & Raspberry Pi
  2. Je plafondventilator bedienen met Alexa: Stap-voor-stap handleiding
  3. Slimme spaarpot bouwen: Muntenacceptor besturen met Arduino Nano
  4. Arduino Power Control Center: N-FET, P-FET, Relais & RTC Kit
  5. Een LED bedienen via Bluetooth met Arduino – Eenvoudige DIY Handleiding
  6. DIY Arduino Luchtbevochtiger Controller met Relais – Veilige Hoogspanningsopstelling
  7. Twee Stappenmotors Sturen met Arduino Nano & Joystick – Simpele Tutorial
  8. Een Arduino LED besturen met Cortana via Bluetooth op Windows 10
  9. Je TV bedienen met Alexa via Arduino IoT Cloud – stapsgewijze handleiding
  10. Naadloze Smartphone-besturing van Huisverlichting met 1Sheeld
  11. 25 kHz 4-pins PWM-ventilatorbesturing met Arduino Uno – Bouw, Code & Test