Tartalomjegyzék:

Giroszkóp által vezérelt platform labirintus -rejtvényhez: 3 lépés
Giroszkóp által vezérelt platform labirintus -rejtvényhez: 3 lépés

Videó: Giroszkóp által vezérelt platform labirintus -rejtvényhez: 3 lépés

Videó: Giroszkóp által vezérelt platform labirintus -rejtvényhez: 3 lépés
Videó: Horizon: Forbidden West (The Movie) 2024, November
Anonim
Giroszkóp által vezérelt platform labirintus rejtvényhez
Giroszkóp által vezérelt platform labirintus rejtvényhez

Ezt az oktatható anyagot a Dél -Floridai Egyetem Make -tanfolyamának projektkövetelményének teljesítése érdekében hozták létre (www.makecourse.com)"

Ez az egyszerű projekt egy önkiegyenlítő platform ihlette, amely visszajelzést kap a gyorsulásmérő szenzorától. Nézze meg, ha még nem tette meg.

A projekt az Arduino UNO -t használja - Könnyen használható mikrokontroller, amelyet az online vásárlási webhelyekről szerezhet be! Ebben az oktatóanyagban megmutatom, hogyan készíthet saját programozható dönthető platformot - a tervezési folyamattól az alkatrészek beszerzéséig, a 3D nyomtatási fájlokig, az összeszerelésig és a programozásig. Tarts ki és lépjünk előre!

1. lépés: Szükséges alkatrészek és 3D nyomtatott alkatrészek

Szükséges alkatrészek és 3D nyomtatott alkatrészek
Szükséges alkatrészek és 3D nyomtatott alkatrészek
Szükséges alkatrészek és 3D nyomtatott alkatrészek
Szükséges alkatrészek és 3D nyomtatott alkatrészek
Szükséges alkatrészek és 3D nyomtatott alkatrészek
Szükséges alkatrészek és 3D nyomtatott alkatrészek

A projekthez használt összetevők listája:

1. Arduino UNO mikrokontroller.

2. Kenyeretábla jumper vezetékekkel.

3. Egy doboz.

4. Körkörös platform

5. Labirintus.

6. Linkek - 3 nem

7. Alap három szervó felszerelésére.

8. Giroszkóp/gyorsulásmérő érzékelő. (MPU6050)

9,1 négyzetméteres vezetékek (500 cm) - 4 nem

10. 3 mm átmérőjű acélgolyók.

A projekthez használt alkatrészek nagy része 3D nyomtatással készült, és csatoltam az stl. nyomtatásra kész fájlok.

Szerelje össze az összes alkatrészt az ábrák szerint. A labirintust a kör alakú platformra melegen ragasztják, hogy úgy nézzen ki, mint a képen. A három szervót fel kell ragasztani a doboz fedelére szerelt 3D nyomtatott alapra. A doboz tartalmazza az Arduino UNO -t és a kenyértáblát az ábra szerint összeállítva. A kenyértábla beállításáról a következő lépésben lesz szó.

Összeszerelés után a végső prototípusnak úgy kell kinéznie, mint az utolsó képen.

2. lépés: A kenyértábla beállítása

Kenyértábla beállítása
Kenyértábla beállítása
Kenyértábla beállítása
Kenyértábla beállítása
Kenyértábla beállítása
Kenyértábla beállítása

Az összeszerelés után az Arduino, gyorsulásmérő érzékelő, szervók a következőkben leírtak szerint csatlakoznak.

A kenyértáblán lévő pozitív és negatív sínek az Arduino 5 V -os és GND -hez vannak csatlakoztatva. Az érzékelő az érzékelőhöz forrasztandó fél méteres vezetékek segítségével csatlakozik az Arduino -hoz úgy, hogy az érzékelő VCC és GND csapjait a kenyérpult +ve és -ve síneihez kell csatlakoztatni. Az érzékelő SCL és SDA csapjait az Arduino A5 és A4 analóg csapjaihoz kell csatlakoztatni. A három szervó PWM csapjai az Arduino 2, 3, 4 csapjához vannak csatlakoztatva, az összes szerv +ve és -ve csapjai pedig a kenyértábla +ve és -ve síneihez vannak csatlakoztatva. ezzel a kapcsolataink elkészültek.

3. lépés: A projekt kódja

letöltheti az MPU6050 és a Servo könyvtárakat az internetről, és felhasználhatja a projekthez. Fordítsa össze és töltse fel az alábbi kódot az Arduino -ba, és a projekt készen áll. Döntse meg az érzékelőt, és láthatja, hogy a labirintus ugyanabba az irányba dől! A rejtvény megoldása némi időt vesz igénybe, mivel egy kicsit kihívást jelent, de szórakoztató vele játszani.

#befoglalni

#befoglalni

#befoglalni

Szervo szervo1;

Szervo szervo2;

Szervo szervo3;

MPU6050 érzékelő;

int servoPos1 = 90;

int servoPos2 = 90;

int servoPos3 = 90;

int16_t ax, ay, az;

int16_t gx, gy, gz;

üres beállítás ()

{

Szervo1.csatlakozás (2);

Szervo2.csatlakozás (3);

Szervo3.rögzítő (4);

Wire.begin ();

Sorozat.kezdet (9600);

}

üres hurok ()

{

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

ax = térkép (ax, -17000, 17000, 0, 180);

ay = térkép (ay, -17000, 17000, 0, 180);

Soros.nyomtatás ("ax =");

Soros.nyomat (ax);

Soros.nyomtatás ("ay =");

Soros.println (ay);

ha (ax <80 && ay <80) {

Servo1.write (servoPos1 ++);

Servo2.write (servoPos2--);

Servo3.write (servoPos3--); }

ha (120 -as fejsze) {

Servo1.write (servoPos1--);

Servo2.write (servoPos2 ++);

Servo3.write (servoPos3--); }

if (ax> 120 && ay> 0) {

Servo1.write (servoPos1--);

Servo2.write (servoPos2--);

Servo3.write (servoPos3 ++); }

ha (ax == 90 && ay == 90) {

Szervo1.írás (0);

Szervo2.írás (0);

Szervo3.írás (0);

}

}

Ajánlott: