Cov txheej txheem:
- Kauj Ruam 1: Het Materiaal
- Kauj ruam 2: De Bekabeling
- Kauj ruam 3: Tsev qiv ntawv 1
- Kauj ruam 4: Tsev qiv ntawv 2
- Kauj ruam 5: De Code
Video: ITTT Rolando Ritzen - Motion Control Arcade Glove: 5 Kauj Ruam
2024 Tus sau: John Day | [email protected]. Kawg hloov kho: 2024-01-30 09:25
Een handschoen tuag je kan gebruiken als cov lus tsa suab tswj nyob rau ntawm cov tsheb ciav hlau. De gimmick van dit project yog dat alles suab tswj yog, suav nrog het schieten. (Je schiet door te "ntiv tes bangen")
Kauj Ruam 1: Het Materiaal
Het materiaal dat je gaat nodig hebben is vrij simpel. 1x Arduino pro micro ntawm Arduino Leonardo1x MPU6050 gyroscope
4 x kab
Kauj ruam 2: De Bekabeling
Zoals je in het schema in de afbeelding ziet yog de bekabeling super simpel. MPU VCC> Arduino VCCMPU av> Arduino av MPU SCL> Pin 3MPU SDA> Pin 2
Kauj ruam 3: Tsev qiv ntawv 1
Voor dit project heb je een paar custom libraries nodig van deze link:
Rub tawm een ZIP cov ntaub ntawv los ntawm de "Clone lossis rub tawm" pob kws rechts bovenaan.
Kauj ruam 4: Tsev qiv ntawv 2
Qhib de Zip cov ntaub ntawv thiab nyem rau ntawm daim duab "Arduino". En uit deze Arduino map wil je de mapjes "I2Cdev" en "MPU6050" pakken en in je Arduino libraries zetten (Cov Ntaub Ntawv Cov Ntaub Ntawv> Arduino> tsev qiv ntawv)
Kauj ruam 5: De Code
#suav nrog
#include #include #include #include
MPU6050 mpu;
int16_t ax, ay, az, gx, gy, gz;
int16_t accx, accy, accz; koj vx, vy; ntab kaum;
// chaws rau kev ua kom zoo inputint readIndex = 0; const int numReadings = 20; int angleReadings [numReadings]; int tag nrho = 0; ntab nruab nrabAngle = 0.0;
int oldZ = 0;
int newZ = 0;
teeb tsa tsis muaj dab tsi () {Serial.begin (115200); Hlau.begin (); Nas.begin (); mpu.initialize (); yog (! mpu.testConnection ()) {thaum (1); }
rau (int thisReading = 0; thisReading <numReadings; thisReading ++) {angleReadings [thisReading] = 0; }}
void voj () {
tag nrho = tag nrho - angleReadings [readIndex];
angleReadings [readIndex] = kaum sab xis; tag nrho = tag nrho + angleReadings [readIndex]; readIndex = readIndex + 1; yog (readIndex> = numReadings) {readIndex = 0; }
yog (gz> 30000) {Serial.println ("Bang"); Nas.click (); // Tua los ntawm rab phom thim rov qab (ntiv tes tsoo)}
// nco, nco, nco;
mpu.getMotion6 (& ax, & ay, & az, & gx, & gy, & gz); mpu.getAcceleration (& accx, & accy, & accz); //Serial.println(gy); // Serial.println (lub kaum sab xis);
oldZ = newZ;
vx = (gx + 1000) / 150; vy = - (gz - 200) / 150; Mouse.move (vx, vy); ncua (20);
Dit stukje code heeft een beetje uitleg nodig omdat je het waarschijnlijk een klein beetje moet aanpassen.
Wat er waarschijnlijk gaat gebeuren yog dat cursor uit zichzelf hla je scherm gaat bewegen (van rechts naar links, van boven naar onder of diagonaal) en dit stukje code zorgt er voor dat je curor stil blijft staan als je geen input geeft Je moet de values in "gx + 1000" en "gz - 200" aanpassen totdat je het resultaat krijgt dat je wil en ik denk dat de values values wil nodig hebt afhankelijk zijn van je scherm resolutie. Als de cursor uit zichzelf van rechts naar links beweegd wil je "gx + x" aanpassen. Als de cursor uit zichzelf van boven naar onder beweegd wil je de "gz - x" aan passen. Als het diagonaal beweegd, dan kies je een van de twee qhov tseem ceeb om aan te passen totdat hij nog maar hla een li beweegd en dan pas je de andere aan.
Serial.print ("gx =");
Serial.print (gx); Serial.print ("| gz ="); Serial.print (gz); Serial.print ("| gy ="); Serial.println (gy); yog (gx> 32000) {Serial.println ("Flick Right"); // Rov qab qhib dua thaum rab phom mus rau sab xis Keyboard.write ('r'); ncua (250); } Serial.print ("accx ="); Serial.print (accx); Serial.print ("| accy ="); Serial.print (accy); Serial.print ("| accz ="); Serial.println (accz); // working // angle = atan2 ((float) (ay - 16384), (float) (ax - 16384)) * (180.0 /PI) * -1; angle = atan2 ((ntab) ay, (ntab) ~ ax) * (180.0 / PI); // ntab kaum = atan2 ((ntab) ay, (ntab) -ax) * (180.0 /PI); //Serial.println(averageAngle); }
Pom zoo:
Arduino Tsheb Rov Qab Chaw Nres Tsheb Ceeb Toom - Cov Kauj Ruam ntawm Kauj Ruam: 4 Kauj Ruam
Arduino Tsheb Rov Qab Chaw Nres Tsheb Ceeb Toom | Cov kauj ruam ib kauj ruam: Hauv txoj haujlwm no, kuv yuav tsim qhov yooj yim Arduino Tsheb Rov Qab Tsheb Nres Tsheb Nres Sensor Siv Arduino UNO thiab HC-SR04 Ultrasonic Sensor. Qhov no Arduino raws Lub Tsheb Rov Qab ceeb toom tuaj yeem siv rau Kev Tshawb Fawb Txog Tus Kheej, Robot Ranging thiab lwm yam
Tsev Automation Kauj Ruam ntawm Kauj Ruam Siv Wemos D1 Mini Nrog PCB Tsim: 4 Kauj Ruam
Tsev Automation Kauj Ruam Ib Leeg Siv Wemos D1 Mini Nrog PCB Tsim: Tsev Automation Kauj Ruam los ntawm Kauj Ruam siv Wemos D1 Mini nrog PCB Tsim cov tub ntxhais kawm ntawv qib siab. Tom qab ntawd ib tus ntawm peb cov tswv cuab tuaj
Iron Man Glove: 6 Kauj Ruam
Iron Man Glove: Nov yog lub hnab looj tes teeb kuv nyiam nws ua rau nws pheej yig (nws tsuas yog them kuv 2 $ rau hnab looj tes thiab teeb nyem) thiab yooj yim los tsim nws coj kuv li ib teev los tsim
Infigo - (Artificial Intelligence Powered Wearable Glove): 9 Cov Kauj Ruam
Infigo - (Artificial Intelligence Intelligence Powered Wearable Glove): Infigo yog AI (Artificial Intelligence) siv lub hnab looj tes hnav raws li cov hauv paus ntsiab lus ntawm Kev Pab Cuam Technology (AT) uas yuav txhim kho kev tsim khoom ntawm cov neeg tsis muaj peev xwm
Iron Man Glove: 4 Kauj Ruam (nrog Duab)
Hnab looj tes rau txiv neej Hlau: Txoj haujlwm no suav nrog ob daim duab los qhia uas koj hnav ntawm koj txhais caj npab. Ib ntawm koj txhais tes thiab ib qho tom qab koj lub dab teg. Thaum koj yoj koj lub dab teg nce ntu ntu ntawm koj lub xib teg teeb tsa kom ua raws lub davhlau ruaj khov thiab riam phom ntawm Iron Man cov khaub ncaws