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 - Muisbediening met je vingers

Componenten en benodigdheden

Arduino Micro
× 1
SparkFun Triple Axis Accelerometer en Gyro Breakout - MPU-6050
× 1

Benodigde gereedschappen en machines

3D-printer (algemeen)
Optioneel

Apps en online services

Arduino IDE

Over dit project

Hallo allemaal, hier is mijn eerste project, ThimbleKrox, een vingerhoed waarmee je de muisaanwijzer kunt besturen door middel van de beweging van de wijsvinger (of een willekeurige vinger).

Stap 1:Benodigde materialen en gereedschappen

Benodigde materialen:

  • Arduino Micro
  • MPU-6050
  • een kabel om de Arduino en de pc met elkaar te verbinden (micro-USB naar USB)
  • Jumper (om de Arduino en de MPU-6050 aan te sluiten)
  • een elastiek (als je de Arduino aan je hand wilt bevestigen)

Benodigd gereedschap:

  • een computer waarop de Arduino IDE is geïnstalleerd (om de code in de Arduino op te starten)
  • Soldeerbout (alleen als de Arduino de pins-connectoren niet voorgemonteerd heeft)
  • 3D-printer (als je wilt dat je vingerhoed er cool uitziet)

Stap 2:Verbinding

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

  • pin VCC van arduino om VCC vast te pinnen
  • pin GND naar GND
  • pin 2 naar SDA
  • pin 3 naar SCL.

Stap 3:3D-printen (optioneel)

Als je wilt dat je vingerhoed er goed uitziet, en als je een 3D-printer hebt, kun je de fysieke vingerhoed afdrukken.

Ik deed het in twee versies, een doorzichtige versie waarvoor daarom geen dragers hoeven te worden afgedrukt en die niet te omvangrijk is, een tweede die ik in steampunk-stijl probeerde te doen zonder het te omvangrijk te maken (het is nog steeds omvangrijker dan de doorzichtige versie one ), maar deze vereist dat steunen worden afgedrukt en alleen het beste terugkeren als ze gekleurd zijn (voor PLA kon ik goed overweg met tempera). Beide moeten worden bedrukt met het onderdeel met de twee interne uitsteeksels aan de onderkant

Stap 4:Montage

Met de 3D-geprinte vingerhoed

Om alles met de bedrukte huls te monteren, is het na het maken van de aansluitingen noodzakelijk om de MPU-6050 in de bovenste holte van de huls te steken waarin de kabels in de onderste holte zitten

Zonder de 3D-geprinte vingerhoed

In dit geval wordt de montage op een meer amateuristische manier gedaan, dwz door de MPU-6050 in de laatste falanx van de geïnteresseerde vinger te plaatsen en deze te blokkeren met plakband of een elastiek.

Stap 5:Code en kalibratie

Het eerste dat u moet doen om de code uit te voeren, is door de vereiste bibliotheken te installeren, namelijk Wire.h, I2Cdev.h, MPU6050.h en Mouse.h

Hierna is het mijn advies om de ThimbleKrox kalibratiecode te laden, de vingerhoed om te doen en de seriële monitor te openen (Ctrl + Shift + M).

Je zou nu zoiets als dit moeten zien:

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

Waar wordt de richting getoond waarin, indien correct gekalibreerd, u de aanwijzer wilt laten gaan en vervolgens enkele waarden die nodig zijn voor kalibratie.

Nu moet u de code opnieuw openen en naar de regels gaan die zijn gemarkeerd met "// kalibratielijn" en de numerieke waarden wijzigen totdat u de juiste richting krijgt. (Elke keer dat u een waarde in de code wijzigt, moet u deze opnieuw uploaden in de Arduino)

Bijvoorbeeld

Seriële monitor:

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

Kalibratiecode:

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

De seriële monitor markeert "links", maar we willen dat deze regel als "rechts" wordt gemarkeerd, dus we moeten de waarde "15000" wijzigen in "5000". Dit komt omdat we in dit geval ervoor moeten zorgen dat de gedetecteerde "ax" groter is dan de waarde in de code. We begrijpen dat het groter moet zijn omdat er in de code een groot teken staat en dat we naar de "ax" van de seriële monitor moeten kijken omdat er in de code "ax" staat. (alleen de numerieke waarden van de code hoeven te worden gewijzigd)

Na het herladen van de code in de Arduino hebben we:

Seriële monitor:

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

Kalibratiecode:

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

Wanneer alle kalibratielijnen in de kalibratiecode zijn aangepast en daarom de vingerhoed van de kalibratieversie functioneel is, moeten de waarden van de hoofdcode worden aangepast om overeen te komen met de kalibratiecode.

Bijvoorbeeld

Kalibratiecode:

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

Hoofdcode:

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

De hoofdcode moet worden gewijzigd in:

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

Nu is het tijd om de hoofdcode te uploaden

Stap 6:Voltooi het project

Dit is het moment om je vingerhoed te dragen en ermee te spelen!

Code

  • ThimbleKrox-code
  • ThimbleKrox kalibratiecode
ThimbleKrox-codeArduino
Hoofdcode voor ThimbleKrok
//Code om de muisaanwijzer te besturen door middel van een vingerbeweging//Om het apparaat te kalibreren, voert u "ThimbleKrox-kalibratiecode" uit en volgt u de tutorial op https://www.hackster.io/projects /dd8881///De regels die moeten worden gewijzigd voor kalibratie hebben "//calibration line" //code geschreven door Magform#include #include #include #include MPU6050 mpu;int16_t ax, ay, az, gx, gy, gz;int vx, vy;int sensibility=10; // Wijzig deze waarde om de gevoeligheid van het apparaat void setup () { Serial.begin (9600); Draad.begin(); mpu.initialiseren(); if (!mpu.testConnection()) { // controleer de verbinding met de MPU-6050, als er geen verbinding is, stop dan met werken terwijl (1); }}void up(){ Mouse.move(0, -sensibility); }nietig neer(){ Mouse.move(0, gevoeligheid); }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) { // kalibratielijn rechts (); } if(ax<=-9000){ //kalibratielijn left(); } if(ay<=-8000){ //kalibratie line-up(); } if(ay>=10000){ //calibration line down(); }// verwijder commentaar op de volgende regels om de rechterklik in te stellen met een sprint omhoog en de linkerklik met een sprint naar beneden (gedeelte Werk in uitvoering)/* if(gy>=20000){ //kalibratielijn Mouse.click(MOUSE_RIGHT); vertraging (100); } if(gy<=-20000){ //kalibratielijn Mouse.click(MOUSE_LEFT); vertraging (100); }*/vertraging(10);}
ThimbleKrox kalibratiecodeArduino
Code voor kalibratie van ThimbleKrox
//Code om de ThimbleKrox te kalibreren//Voer deze code uit om het apparaat te kalibreren en volg de tutorial op https://www.hackster.io/projects/dd8881///The lines that need te wijzigen (zoals de andere code) voor kalibratie hebben "//calibration line" //code geschreven door 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; Serieel.begin(9600); Draad.begin(); mpu.initialiseren(); while(Nwrong!=0){ if (!mpu.testConnection()) { Serial.print("Verkeerd verbindingsnummer:"); Serial.print (Nwrong); Nwrong++; vertraging (1000); }anders{ Nwrong=0; } }}void up(){ Serial.print("up"); }void down(){ Serial.print("down"); }void left(){ Serial.print(" left "); }nietig recht(){ Serial.print("rechts"); }void rightclick(){ Serial.print(" RightClick ");; }void leftclick(){ Serial.print(" LeftClick ");; } void loop() { mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); if (ax> =15000) { // kalibratielijn rechts (); } if(ax<=-9000){ //kalibratielijn left(); } if(ay<=-8000){ //kalibratie line-up(); } if(ay>=10000){ //calibration line down(); }// verwijder commentaar op de volgende regels om de rechterklik in te stellen met een sprint omhoog en de linkerklik met een sprint naar beneden (gedeelte Werk in uitvoering)/* if(gy>=20000){ //calibration line rightclick(); vertraging (100); } if(gy<=-20000){ //kalibratielijn leftclick(); vertraging (100); }*/ Serial.print(" | gx="); Seriële.print(gx); Serial.print(" gy ="); Serial.print(gy); Serial.print(" gz ="); Seriële.print(gz); Serial.print(" | ax="); Seriële.print(ax); Serial.print(" ay ="); Serial.print(ay); Serial.print(" az ="); Serial.print(az); Serieel.print("\n"); vertraging (5000); }
ThimbleKrox
https://github.com/Magform/ThimbleKrox

Aangepaste onderdelen en behuizingen

ThimbleKrox 3D-afdrukbaar model
Voor degenen die liever de modellen uit het ThingiverseCAD-bestand op thingiverse.com nemen Ondersteuning vereistGeen ondersteuning vereist

Schema's


Productieproces

  1. Bouw uw internetgestuurde videostreamingrobot met Arduino en Raspberry Pi
  2. Schakel Alexa Control in op je plafondventilator
  3. Bedien muntvangers met Arduino
  4. Arduino-controlecentrum
  5. Arduino met Bluetooth om een ​​LED te bedienen!
  6. Arduino-luchtbevochtigerbediening
  7. Arduino Nano:bedien 2 stappenmotoren met joystick
  8. Bedien uw led met Cortana
  9. Volledige controle over uw tv met Alexa en Arduino IoT Cloud
  10. Bedien uw lichtsysteem met een smartphone
  11. 25 kHz 4-pins PWM-ventilatorregeling met Arduino Uno