Daftar Isi:

Platform Terkendali Sensor Gyro untuk Puzzle Labirin: 3 Langkah
Platform Terkendali Sensor Gyro untuk Puzzle Labirin: 3 Langkah

Video: Platform Terkendali Sensor Gyro untuk Puzzle Labirin: 3 Langkah

Video: Platform Terkendali Sensor Gyro untuk Puzzle Labirin: 3 Langkah
Video: PS3 #2: Ressurecting the impossable! | EPIC rollercoaster repair that nearly broke me. 2024, Juli
Anonim
Platform Terkendali Sensor Gyro untuk Puzzle Labirin
Platform Terkendali Sensor Gyro untuk Puzzle Labirin

Instruksi ini dibuat untuk memenuhi persyaratan proyek kursus Make di University of South Florida (www.makecourse.com)"

Proyek sederhana ini terinspirasi oleh platform self-balancing yang mengambil umpan balik dari sensor akselerometer. Periksa jika Anda belum melakukannya.

Proyek ini menggunakan Arduino UNO - Mudah digunakan mikrokontroler yang bisa Anda dapatkan dari situs belanja online! Dalam instruksi ini, saya akan menunjukkan bagaimana Anda dapat membuat platform miring yang dapat diprogram sendiri - mulai dari proses desain hingga pengadaan suku cadang, file pencetakan 3D, perakitan, dan pemrograman. Tetap semangat dan ayo maju!

Langkah 1: Komponen yang Diperlukan dan Bagian Cetakan 3D

Komponen yang Diperlukan dan Bagian Cetakan 3D
Komponen yang Diperlukan dan Bagian Cetakan 3D
Komponen yang Diperlukan dan Bagian Cetakan 3D
Komponen yang Diperlukan dan Bagian Cetakan 3D
Komponen yang Diperlukan dan Bagian Cetakan 3D
Komponen yang Diperlukan dan Bagian Cetakan 3D

Daftar komponen yang digunakan untuk proyek:

1. Mikrokontroler Arduino UNO.

2. Breadboard dengan kabel jumper.

3. Sebuah kotak.

4. Platform melingkar

5. Labirin.

6. Tautan - 3 Tidak

7. A Basis untuk memasang tiga servos.

8. Sensor Gyro/Akselerometer. (MPU6050)

Kabel 9,1sq mm (500cm) - 4 Tidak ada

10. Bola baja berdiameter 3mm.

Sebagian besar bagian yang digunakan untuk proyek ini dicetak 3D dan saya telah melampirkan stl. file siap untuk dicetak.

Pasang semua bagian seperti yang ditunjukkan pada gambar. Labirin direkatkan ke platform melingkar agar terlihat seperti pada gambar. Ketiga servo harus dilem panas pada alas cetak 3D yang dipasang pada tutup kotak. Kotak berisi Arduino UNO dan Breadboard dirakit seperti yang ditunjukkan pada gambar. Pengaturan papan tempat memotong roti akan dibahas pada langkah berikutnya.

Setelah perakitan, prototipe akhir akan terlihat seperti pada gambar terakhir.

Langkah 2: Pengaturan Papan Tempat memotong roti

Pengaturan papan tempat memotong roti
Pengaturan papan tempat memotong roti
Pengaturan papan tempat memotong roti
Pengaturan papan tempat memotong roti
Pengaturan papan tempat memotong roti
Pengaturan papan tempat memotong roti

Setelah perakitan, Arduino, sensor Accelerometer, servos terhubung seperti yang dijelaskan berikut ini.

Rel positif dan negatif pada papan tempat memotong roti masing-masing terhubung ke 5V dan GND Arduino. Sensor dihubungkan ke Arduino menggunakan kabel setengah meter yang akan disolder ke sensor sedemikian rupa sehingga pin VCC dan GND dari sensor dihubungkan ke rel +ve dan -ve masing-masing pada papan tempat memotong roti. Pin SCL dan SDA dari sensor akan dihubungkan ke pin analog A5 dan A4 Arduino. Pin PWM dari tiga servo terhubung ke 2, 3, 4 pin Arduino masing-masing dan pin +ve dan -ve dari semua servo terhubung ke rel +ve dan -ve dari papan tempat memotong roti. dengan ini, koneksi kita selesai.

Langkah 3: Kode untuk Proyek

Anda dapat mengunduh pustaka MPU6050 dan Servo dari internet dan menggunakannya untuk proyek tersebut. Kompilasi dan unggah kode berikut ke Arduino dan proyek siap. Miringkan sensor dan Anda dapat melihat labirin miring ke arah yang sama! Dibutuhkan beberapa waktu untuk memecahkan teka-teki karena sedikit menantang tetapi menyenangkan untuk dimainkan.

#termasuk

#termasuk

#termasuk

Servo Servo1;

Servo Servo2;

Servo Servo3;

sensor MPU6050;

int servoPos1=90;

int servoPos2=90;

int servoPos3=90;

int16_t kapak, ay, az;

int16_t gx, gy, gz;

batalkan pengaturan ()

{

Servo1.attach (2);

Servo2.attach (3);

Servo3.attach (4);

Kawat.mulai();

Serial.begin (9600);

}

lingkaran kosong ()

{

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

kapak = peta (kapak, -17000, 17000, 0, 180);

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

Serial.print("ax=");

Serial.print (kapak);

Serial.print("ay=");

Serial.println (ay);

if (kapak < 80 && ay < 80){

Servo1.write(servoPos1++);

Servo2.write(servoPos2--);

Servo3.write(servoPos3--); }

jika (kapak 120){

Servo1.write(servoPos1--);

Servo2.write(servoPos2++);

Servo3.write(servoPos3--); }

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

Servo1.write(servoPos1--);

Servo2.write(servoPos2--);

Servo3.write(servoPos3++); }

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

Servo1.tulis(0);

Servo2.tulis(0);

Servo3.tulis(0);

}

}

Direkomendasikan: