Sisukord:

Güroskoopanduriga juhitav platvorm labürindi mõistatusele: 3 sammu
Güroskoopanduriga juhitav platvorm labürindi mõistatusele: 3 sammu

Video: Güroskoopanduriga juhitav platvorm labürindi mõistatusele: 3 sammu

Video: Güroskoopanduriga juhitav platvorm labürindi mõistatusele: 3 sammu
Video: Instructional video - LEGO SUMO III - Programming 2024, November
Anonim
Güroskoobi anduriga juhitav platvorm labürindile
Güroskoobi anduriga juhitav platvorm labürindile

See juhend oli loodud Lõuna -Florida ülikooli Make kursuse projektinõude täitmiseks (www.makecourse.com)"

See lihtne projekt on inspireeritud isetasakaalustavast platvormist, mis võtab kiirendusmõõturi andurilt tagasisidet. Kontrollige seda, kui te pole seda juba teinud.

Projekt kasutab Arduino UNO - Lihtne kasutada mikrokontrollerit, mille saate veebipoe veebisaitidelt! Selles juhendis näitan, kuidas saate oma programmeeritavat kallutusplatvormi luua - alates projekteerimisprotsessist kuni osade hankimise, 3D -printimisfailide, kokkupaneku ja programmeerimiseni. Pidage kinni ja liigume edasi!

Samm: nõutavad komponendid ja 3D -prinditud osad

Nõutavad komponendid ja 3D -trükitud osad
Nõutavad komponendid ja 3D -trükitud osad
Nõutavad komponendid ja 3D -trükitud osad
Nõutavad komponendid ja 3D -trükitud osad
Nõutavad komponendid ja 3D -prinditud osad
Nõutavad komponendid ja 3D -prinditud osad

Projektis kasutatud komponentide loend:

1. Arduino UNO mikrokontroller.

2. Leiblaud koos hüppajajuhtmetega.

3. Karp.

4. ümmargune platvorm

5. Labürint.

6. Lingid - 3 ei

7. Alus kolme servo paigaldamiseks.

8. Güroskoop/kiirendusmõõturi andur. (MPU6050)

9,1 ruutmeetri juhtmed (500 cm) - 4 ei

10. 3mm dia terasest kuulid.

Enamik projekti jaoks kasutatud osi on 3D -trükitud ja olen lisanud stl. failid printimiseks valmis.

Pange kõik osad kokku, nagu joonistel näidatud. Labürint on ümmarguse platvormi külge kuumliimitud, et välja näha nagu pildil. Kolm servot tuleks kuumalt liimida 3D -prinditud alusele, mis on paigaldatud karbi kaanele. Karp sisaldab joonisel näidatud viisil kokku pandud Arduino UNO ja Breadboardi. Leivalaua seadistamist arutatakse järgmises etapis.

Pärast kokkupanekut peaks lõplik prototüüp välja nägema nagu viimasel pildil.

2. samm: leivaplaadi seadistamine

Leivalaua seadistamine
Leivalaua seadistamine
Leivalaua seadistamine
Leivalaua seadistamine
Leivalaua seadistamine
Leivalaua seadistamine

Pärast kokkupanekut ühendatakse Arduino, kiirendusmõõturi andur, servod järgmiselt.

Leivalaua positiivsed ja negatiivsed rööpad on ühendatud vastavalt Arduino 5 V ja GND -ga. Andur ühendatakse Arduinoga, kasutades poolemeetriseid juhtmeid, mis tuleb andurile joota, nii et anduri VCC- ja GND -tihvtid ühendatakse vastavalt leivalaua +ve ja -ve rööbastega. Anduri SCL- ja SDA -tihvtid ühendatakse Arduino A5 ja A4 analoogpistikutega. Kolme servo PWM -tihvtid on ühendatud vastavalt Arduino 2, 3, 4 kontaktiga ja kõigi servode +ve ja -ve tihvtid on ühendatud leivaplaadi +ve ja -ve rööbastega. sellega on meie ühendused tehtud.

3. samm: projekti kood

saate Internetist alla laadida MPU6050 ja Servo raamatukogud ning seda projekti jaoks kasutada. Koostage ja laadige Arduinosse järgmine kood ja projekt on valmis. Kallutage andurit ja näete, et labürint kaldub samas suunas! Mõistatuse lahendamine võtab natuke aega, kuna see on pisut keeruline, kuid lõbus mängida.

#kaasake

#kaasake

#kaasake

Servo Servo1;

Servo Servo2;

Servo Servo3;

MPU6050 andur;

int servoPos1 = 90;

int servoPos2 = 90;

int servoPos3 = 90;

int16_t kirves, ay, az;

int16_t gx, gy, gz;

tühine seadistus ()

{

Servo1.kinnitus (2);

Servo2.kinnitus (3);

Servo3.kinnitus (4);

Wire.begin ();

Seriaalne algus (9600);

}

tühine tsükkel ()

{

sensor.getMotion6 (& ax, & ay, & az, & gx, & gy, & gz);

kirves = kaart (kirves, -17000, 17000, 0, 180);

ay = kaart (ay, -17000, 17000, 0, 180);

Seeria.print ("ax =");

Serial.print (kirves);

Seeria.print ("ay =");

Serial.println (ay);

kui (kirves <80 && ay <80) {

Servo1.write (servoPos1 ++);

Servo2.write (servoPos2--);

Servo3.write (servoPos3--); }

kui (kirves 120) {

Servo1.write (servoPos1--);

Servo2.write (servoPos2 ++);

Servo3.write (servoPos3--); }

kui (kirves> 120 && ay> 0) {

Servo1.write (servoPos1--);

Servo2.write (servoPos2--);

Servo3.write (servoPos3 ++); }

kui (kirves == 90 && ay == 90) {

Servo1.kirjutada (0);

Servo2.kirjutada (0);

Servo3.kirjutage (0);

}

}

Soovitan: