Daftar Isi:

OAREE - 3D Printed - Robot Penghindar Rintangan untuk Pendidikan Teknik (OAREE) Dengan Arduino: 5 Langkah (dengan Gambar)
OAREE - 3D Printed - Robot Penghindar Rintangan untuk Pendidikan Teknik (OAREE) Dengan Arduino: 5 Langkah (dengan Gambar)

Video: OAREE - 3D Printed - Robot Penghindar Rintangan untuk Pendidikan Teknik (OAREE) Dengan Arduino: 5 Langkah (dengan Gambar)

Video: OAREE - 3D Printed - Robot Penghindar Rintangan untuk Pendidikan Teknik (OAREE) Dengan Arduino: 5 Langkah (dengan Gambar)
Video: 10 самых опасных продуктов, которые можно есть для иммунной системы 2024, September
Anonim
Image
Image
OAREE - 3D Printed - Robot Penghindar Rintangan untuk Pendidikan Teknik (OAREE) Dengan Arduino
OAREE - 3D Printed - Robot Penghindar Rintangan untuk Pendidikan Teknik (OAREE) Dengan Arduino
OAREE - 3D Printed - Robot Penghindar Rintangan untuk Pendidikan Teknik (OAREE) Dengan Arduino
OAREE - 3D Printed - Robot Penghindar Rintangan untuk Pendidikan Teknik (OAREE) Dengan Arduino

OAREE (Robot Penghindar Rintangan untuk Pendidikan Teknik)

Desain: Tujuan dari instruksi ini adalah untuk merancang robot OAR (Obstacle Avoiding Robot) yang sederhana/kompak, dapat dicetak 3D, mudah dirakit, menggunakan servos rotasi kontinu untuk pergerakan, dan memiliki suku cadang yang dibeli sesedikit mungkin. Saya percaya bahwa saya telah berhasil menciptakan robot yang luar biasa ini dan menamakannya OAREE (Robot Penghindar Rintangan untuk Pendidikan Teknik). Robot ini akan merasakan rintangan, berhenti, melihat ke kiri dan ke kanan, kemudian berbelok ke arah yang tidak terhalang dan terus maju.

Latar Belakang: Internet memiliki banyak kendala untuk menghindari robot, tetapi kebanyakan berukuran besar, sulit dirakit, dan mahal. Banyak dari robot ini memiliki kode Arduino yang disediakan, tetapi sulit untuk menemukan contoh kerja yang dipikirkan dengan baik. Saya juga ingin menggunakan servos rotasi terus menerus untuk roda (bukan motor DC), yang belum dilakukan. Jadi, saya memulai misi untuk mengembangkan robot OAR yang ringkas dan inventif untuk dibagikan kepada dunia.

Pengembangan Lebih Lanjut: Robot ini dapat dikembangkan lebih lanjut untuk akurasi ping yang lebih baik, menambahkan sensor IR untuk kemampuan mengikuti garis, layar LCD untuk menampilkan jarak rintangan, dan banyak lagi.

Perlengkapan

  • 1x Arduino Uno -
  • 1x V5 Sensor Shield -
  • 1x 4xAA Baterai Holder dengan On/Of Switch -
  • 1x Servo SG90 -
  • 2x Servo Rotasi Berkelanjutan -
  • Kabel Daya Baterai 1x 9V untuk Arduino (OPSIONAL) -
  • 1x Sensor Ultrasonik HC-SR04 -
  • 4x Kabel Jumper Wanita-Wanita -
  • 2x Karet Gelang
  • Baterai 1x 9V (OPSIONAL)
  • Baterai 4x AA
  • 4x Sekrup Kecil (4 x 1/2 atau yang serupa)
  • Obeng Phillips
  • Lem untuk mengencangkan karet gelang ke roda

Langkah 1: Cetak 3D: Bodi, Roda, Kastor Marmer, Baut/mur 6mm, dan Dudukan Sensor Ultrasonik

Cetak 3D: Bodi, Roda, Kastor Marmer, Baut/mur 6mm, dan Dudukan Sensor Ultrasonik
Cetak 3D: Bodi, Roda, Kastor Marmer, Baut/mur 6mm, dan Dudukan Sensor Ultrasonik
Cetak 3D: Bodi, Roda, Kastor Marmer, Baut/mur 6mm, dan Dudukan Sensor Ultrasonik
Cetak 3D: Bodi, Roda, Kastor Marmer, Baut/mur 6mm, dan Dudukan Sensor Ultrasonik
Cetak 3D: Bodi, Roda, Kastor Marmer, Baut/mur 6mm, dan Dudukan Sensor Ultrasonik
Cetak 3D: Bodi, Roda, Kastor Marmer, Baut/mur 6mm, dan Dudukan Sensor Ultrasonik

Ada 5 bagian untuk cetak 3D.

  1. Tubuh
  2. roda
  3. Kastor Marmer
  4. Baut/Mur 6mm (opsional, mur/baut logam dapat diganti)
  5. Pemasangan Sensor Ultrasonik

Semua file. STL yang diperlukan disertakan dalam instruksi ini serta file Sketchup. 40% pengisi direkomendasikan.

Langkah 2: Program Arduino

Image
Image
Merakit Robot
Merakit Robot

Kirim Kode ke Arduino UNO: Menggunakan Arduino IDE, kirim kode (dalam file terlampir) ke modul Arduino Anda. Anda perlu mengunduh dan menyertakan perpustakaan servo.h dan newping.h dengan sketsa ini.

Kode dikomentari secara menyeluruh, sehingga Anda dapat melihat apa yang dilakukan setiap perintah. Anda dapat dengan mudah mengubah jarak Sensor Ultrasonik ke nilai yang lebih besar atau lebih kecil jika diinginkan. Ini adalah kode awal dan dimaksudkan untuk diperluas dan digunakan untuk pengembangan proyek lebih lanjut.

// OBSTACLE AVOIDING ROBOT// [email protected], [email protected], University of TN at Chattanooga, Electrical Engineering, FALL 2019 // Bahan yang Dibutuhkan: // 1) Arduiino UNO, 2) Servo Sensor Shield v5.0, 3) Sensor Ultrasonik HCSR04, 4) Servo FS90 (untuk Sensor Ultrasonik) // 5&6) 2x SERVOS ROTASI KONTINU untuk roda // 7) Marmer 16mm untuk poros roda belakang, 8&9) 2 karet gelang untuk roda // 10- 15) 1x (4xAA) Dudukan baterai dengan sakelar hidup/mati, 16&17) Baterai 9V dengan konektor ke daya Arduino UNO // 3D PRINT: // 18) ROBOT Body, 19&20) 2x Wheels, 21) Marble Caster, 22) Sensor Ultrasonik Mount, dan Sekrup 6mm (lihat file terlampir) //-------------------------------------- -------------------------------------------------- ----------------------------------------- #include // Sertakan Servo Library #include // Sertakan Pustaka Baru //------------------------------------------------------ -------------------------------------------------- ------------------------------------ #define TRIGGER_PIN 1 2 // US trigger ke pin 12 di Arduino #define ECHO_PIN 13 // US Echo ke pin 13 di Arduino #define MAX_DISTANCE 250 // Jarak ke ping (maks 250) int distance = 100; //------------------------------------------------ -------------------------------------------------- ------------------------------- Servo US_Servo; // Servo Sensor Ultrasonik Servo Kiri_Servo; // Servo Roda Kiri Servo Kanan_Servo; // Sonar Ping Baru Servo Roda Kanan(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // Pengaturan Pin baru dan jarak maksimum. //------------------------------------------------ -------------------------------------------------- ------------------------------- void setup() // INPUT/OUTPUT, WHERE TO ATTACH, SETEL POSISI/GERAKAN AWAL { pinMode(12, OUTPUT); // Pin pemicu ditetapkan sebagai output pinMode(13, INPUT); // Pin gema ditetapkan sebagai input US_Servo.attach(11); // Servo AS disetel ke pin 11 US_Servo.write(90); // SERVO AS MENCARI KE DEPAN

Left_Servo.attach (9); // Servo roda kiri ke pin 9

Left_Servo.write(90); // SERVO RODA KIRI disetel ke STOP

Right_Servo.attach(10); // Servo Roda Kanan diatur ke pin 10

Right_Servo.write(90); // SERVO RODA KANAN disetel ke STOP delay(2000); // Tunggu 2 detik jarak = readPing(); // Dapatkan Jarak Ping pada posisi lurus ke depan delay(100); // Tunggu 100 ms moveForward(); // ROBOT BERGERAK MAJU } //------------------------------------------ -------------------------------------------------- ------------------------------------- void loop() { int distanceRight = 0; // Mulai jarak AS ke kanan pada 0 int distanceLeft = 0; // Mulai jarak AS ke kiri di 0 //US_Servo.write(90); // Servo AS tengah //delay(50); // US_Servo.write(70); // Terlihat Sedikit Benar // delay(250); // US_Servo.write(110); // Lihat Sedikit ke Kiri // delay(250); // US_Servo.write(90); // Lihat Pusat

if (jarak <= 20) // Robot BERGERAK MAJU { moveStop(); // Robot BERHENTI pada jarak = distanceLeft) // Putuskan arah mana yang akan berbelok { turnRight(); // Sisi kanan memiliki jarak terjauh, ROBOT MENGHIDUPKAN KANAN untuk penundaan 0,3 detik(500); // Delay ini menentukan panjang belokan moveStop(); // Robot BERHENTI } else { turnLeft(); // Jarak terjauh sisi kiri, ROBOT MENGHIDUPKAN KIRI untuk penundaan 0,3 detik(500); // Delay ini menentukan panjang belokan moveStop(); // Robot BERHENTI } } else { moveForward(); // Robot BERGERAK MAJU } jarak = readPing(); // KAMI MEMBACA PING BARU untuk arah perjalanan yang baru } //----------------------------------- -------------------------------------------------- -------------------------------------------- int lookRight() // Sensor Ultrasonik FUNGSI TERLIHAT KANAN { US_Servo.write(30); // Servo AS BERGERAK KANAN ke sudut delay(500); int jarak = readPing(); // Tetapkan nilai ping untuk penundaan kanan(100); US_Servo.write(90); // servo AS BERGERAK KE TENGAH jarak pengembalian; // Jarak diatur } //------------------------------------------ -------------------------------------------------- ------------------------------------- int lookLeft() // Sensor Ultrasonic LOOK LEFT FUNCTION { US_Servo.tulis(150); // Servo AS BERGERAK KIRI ke penundaan sudut (500); int jarak = readPing(); // Tetapkan nilai ping untuk penundaan kiri(100); US_Servo.write(90); // servo AS BERGERAK KE TENGAH jarak kembali; // Jarak diatur } //------------------------------------------ -------------------------------------------------- ------------------------------------- int readPing() // Membaca Fungsi Ping untuk Sensor Ultrasonik. { penundaan(100); // 100 md di antara ping (waktu ping min = 0,29 md) int cm = sonar.ping_cm(); // Jarak PING dikumpulkan dan diatur dalam cm if (cm==0) { cm=250; } kembali cm; } //----------------------------------------------- -------------------------------------------------- -------------------------------- void moveStop() // ROBOT STOP { Left_Servo.write(90); // LeftServo 180 maju, 0 mundur Right_Servo.write(90); // RightServo 0 maju, 180 mundur } //---------------------------- -------------------------------------------------- ---------------------------------------- void moveForward() // ROBOT FORWARD { Left_Servo.tulis(180); // LeftServo 180 maju, 0 mundur Right_Servo.write(0); // RightServo 0 maju, 180 mundur } //---------------------------- -------------------------------------------------- ---------------------------------------- void moveBackward() // ROBOT BACKWARD { Left_Servo.tulis(0); // LeftServo 180 maju, 0 mundur Right_Servo.write(180); // RightServo 0 maju, 180 mundur } //---------------------------- -------------------------------------------------- ---------------------------------------- void turnRight() // ROBOT KANAN { Left_Servo.tulis(180); // LeftServo 180 maju, 0 mundur Right_Servo.write(90); // RightServo 0 maju, 180 mundur } //---------------------------- -------------------------------------------------- ---------------------------------------- void turnLeft() // ROBOT KIRI { Left_Servo.tulis(90); // LeftServo 180 maju, 0 mundur Right_Servo.write(0); // RightServo 0 maju, 180 mundur } //---------------------------- -------------------------------------------------- ----------------------------------------

Langkah 3: Merakit Robot

Image
Image
Merakit Robot
Merakit Robot
Merakit Robot
Merakit Robot

Sekarang saatnya untuk menyatukan robot Anda. Langkah-langkahnya tercantum di bawah ini.

1) Pasang Cakram Servo Bulat dan Karet Gelang ke Roda: Semua servo dilengkapi dengan perangkat keras dan sekrup pemasangan plastik. Temukan cakram bundar, dan kencangkan ke dalam dua lubang di sisi datar roda. Karet gelang pas di sekitar roda untuk memberikan pegangan. Anda mungkin ingin menambahkan sedikit lem agar karet gelang tetap di tempatnya.

2) Lampiran Kastor Marmer: Gunakan dua sekrup kecil untuk memasang kastor marmer ke dua segitiga di bagian belakang. Kastor marmer adalah pengganti sederhana untuk roda belakang dan menyediakan titik pivot belakang.

3) Masukkan Servo ke dalam Slot (tidak perlu sekrup): Tempatkan Servo FS90 (untuk Sensor Ultrasonik) ke dalam slot depan bodi. Dua servos rotasi kontinu meluncur ke slot kiri dan kanan. Slot dirancang agar pas, sehingga tidak diperlukan sekrup untuk menahan servo di tempatnya. Pastikan kabel servo mengalir melalui alur di slot sehingga menghadap ke bagian belakang bodi.

4) Penempatan Baterai 9V (OPSIONAL): Tempatkan baterai 9V + konektor daya Arduino di belakang servo depan.

5) Rakitan Pemasangan Sensor Ultrasonik: Gunakan dua sekrup kecil untuk memasang salah satu lampiran servo plastik putih yang disertakan ke bagian bawah pelat pemasangan Sensor Ultrasonik. Selanjutnya, gunakan baut/mur 6mm yang dicetak 3D (atau ganti baut/mur logam) untuk memasang casing Sensor Ultrasonik ke pelat dudukan. Terakhir, letakkan sensor di dalam casing dengan pin menghadap ke atas dan pasang di bagian belakang casing.

6) Casing Baterai AA 4x: Tempatkan casing baterai AA ke dalam area persegi panjang yang besar, dengan sakelar hidup/mati menghadap ke belakang.

7) Perisai Sensor Arduino Uno + V5: Pasang pelindung ke Arduino dan letakkan di atas dudukan di atas wadah baterai. Konektor daya harus menghadap ke kiri.

Robot Anda Dibangun! Apa yang tersisa? Memprogram Arduino dan Menghubungkan Kabel Jumper: Servos, Sensor Ultrasonik, dan Catu Daya.

Langkah 4: Pasang Kabel Sensor

Image
Image
Selesai!!! Hubungkan Catu Daya Arduino 9V, Nyalakan Paket Baterai, dan Mulai Hindari Rintangan Dengan OAREE
Selesai!!! Hubungkan Catu Daya Arduino 9V, Nyalakan Paket Baterai, dan Mulai Hindari Rintangan Dengan OAREE

Hubungkan kabel Servo ke V5 Shield:

  1. Servo Rotasi Berkelanjutan Kiri menempel pada PIN 9
  2. Servo Rotasi Berkelanjutan Kanan menempel pada PIN 10
  3. Servo FS90 depan menempel pada PIN 11

Hubungkan Pin Sensor Ultrasonik (melalui Kabel Jumper 4x Female ke Female) ke V5 Shield:

  1. Pemicu ke PIN 12
  2. Gema ke PIN 13
  3. VCC ke salah satu pin bertanda 'V'
  4. Ground ke salah satu pin yang ditandai dengan 'G'

Hubungkan Casing Baterai AA ke V5 Shield:

  1. Pasang kabel merah positif ke konektor VCC
  2. Pasang kabel hitam negatif ke ground connect

Langkah 5: Selesai!!! Hubungkan Catu Daya Arduino 9V, Nyalakan Paket Baterai, dan Mulai Hindari Rintangan Dengan OAREE

Image
Image
Selesai!!! Hubungkan Catu Daya Arduino 9V, Nyalakan Paket Baterai, dan Mulai Hindari Rintangan Dengan OAREE
Selesai!!! Hubungkan Catu Daya Arduino 9V, Nyalakan Paket Baterai, dan Mulai Hindari Rintangan Dengan OAREE

Selesai!

1) Hubungkan catu daya Arduino 9V (Opsional)

2) Nyalakan baterai

3) Mulailah Menghindari Rintangan dengan OAREE!!!

Saya yakin Anda akan menyukai teman baru Anda, OAREE, setelah melihatnya merasakan rintangan, mundur, dan mengubah arah. OAREE bekerja paling baik dengan objek besar yang dapat di-ping oleh Sensor Ultrasonik (seperti dinding). Sulit untuk mem-ping benda kecil seperti kaki kursi karena luas permukaan dan sudutnya yang kecil. Silakan bagikan, kembangkan lebih lanjut, dan beri tahu saya jika ada penyesuaian atau kesalahan yang diperlukan. Ini merupakan pengalaman belajar yang luar biasa dan saya harap Anda bersenang-senang membuat proyek ini seperti saya!

Kontes Robotika
Kontes Robotika
Kontes Robotika
Kontes Robotika

Runner Up dalam Kontes Robotika

Direkomendasikan: