Isi kandungan:

OAREE - 3D Printed - Robot Menghindari Robot untuk Pendidikan Kejuruteraan (OAREE) Dengan Arduino: 5 Langkah (dengan Gambar)
OAREE - 3D Printed - Robot Menghindari Robot untuk Pendidikan Kejuruteraan (OAREE) Dengan Arduino: 5 Langkah (dengan Gambar)

Video: OAREE - 3D Printed - Robot Menghindari Robot untuk Pendidikan Kejuruteraan (OAREE) Dengan Arduino: 5 Langkah (dengan Gambar)

Video: OAREE - 3D Printed - Robot Menghindari Robot untuk Pendidikan Kejuruteraan (OAREE) Dengan Arduino: 5 Langkah (dengan Gambar)
Video: KUKA.Sim 4.0 _ simulasi 3D pintar 2024, November
Anonim
Image
Image
OAREE - 3D Printed - Halangan Mengelakkan Robot untuk Pendidikan Kejuruteraan (OAREE) Bersama Arduino
OAREE - 3D Printed - Halangan Mengelakkan Robot untuk Pendidikan Kejuruteraan (OAREE) Bersama Arduino
OAREE - 3D Printed - Halangan Mengelakkan Robot untuk Pendidikan Kejuruteraan (OAREE) Bersama Arduino
OAREE - 3D Printed - Halangan Mengelakkan Robot untuk Pendidikan Kejuruteraan (OAREE) Bersama Arduino

OAREE (Halangan Menghindari Robot untuk Pendidikan Kejuruteraan)

Reka Bentuk: Matlamat instruksional ini adalah untuk merancang robot OAR (Robot Mengelakkan Halangan) yang ringkas / padat, boleh dicetak 3D, mudah dipasang, menggunakan servo putaran berterusan untuk pergerakan, dan mempunyai sebanyak mungkin bahagian yang dibeli. Saya percaya bahawa saya berjaya mencipta robot yang hebat ini dan menamakannya OAREE (Robot Mengelakkan Halangan untuk Pendidikan Kejuruteraan). Robot ini akan merasakan halangan, berhenti, melihat kiri dan kanan, kemudian membelok ke arah yang tidak terhalang dan terus maju.

Latar belakang: Internet mempunyai banyak halangan untuk mengelakkan robot, tetapi kebanyakannya besar, sukar dipasang, dan mahal. Sebilangan besar robot ini mempunyai kod Arduino yang dibekalkan, tetapi sukar untuk mencari contoh yang dapat difikirkan dengan baik. Saya juga mahu menggunakan servo putaran berterusan untuk roda (bukan motor DC), yang belum dilakukan. Oleh itu, saya memulakan misi untuk membangunkan robot OAR yang ringkas dan inventif untuk dikongsi dengan dunia.

Perkembangan Lanjut: Robot ini dapat dikembangkan lebih jauh untuk ketepatan ping yang lebih baik, menambahkan sensor IR untuk kemampuan garis berikut, layar LCD untuk menampilkan jarak rintangan, dan banyak lagi.

Bekalan

  • 1x Arduino Uno -
  • Perisai Sensor 1x V5 -
  • 1x 4xAA Battery Holder dengan On / Of Switch -
  • 1x SG90 Servo -
  • 2x Servo Putaran Berterusan -
  • Kabel Kuasa Bateri 1x 9V untuk Arduino (PILIHAN) -
  • Sensor Ultrasonik 1x HC-SR04 -
  • 4x Wayar Pelompat Wanita-Wanita -
  • Gelang getah 2x
  • Bateri 1x 9V (PILIHAN)
  • Bateri AA 4x
  • Skru Kecil 4x (4 x 1/2 atau yang serupa)
  • Pemacu Skru Phillips
  • Lek untuk mengikat tali getah ke roda

Langkah 1: Cetakan 3D: Badan, Roda, Marble Caster, Baut / mur 6mm, dan Pemasangan Sensor Ultrasonik

Cetakan 3D: Badan, Roda, Marble Caster, Baut / mur 6mm, dan Pemasangan Sensor Ultrasonik
Cetakan 3D: Badan, Roda, Marble Caster, Baut / mur 6mm, dan Pemasangan Sensor Ultrasonik
Cetakan 3D: Badan, Roda, Marble Caster, Baut / mur 6mm, dan Pemasangan Sensor Ultrasonik
Cetakan 3D: Badan, Roda, Marble Caster, Baut / mur 6mm, dan Pemasangan Sensor Ultrasonik
Cetakan 3D: Badan, Roda, Marble Caster, Baut / mur 6mm, dan Pemasangan Sensor Ultrasonik
Cetakan 3D: Badan, Roda, Marble Caster, Baut / mur 6mm, dan Pemasangan Sensor Ultrasonik

Terdapat 5 bahagian untuk cetakan 3D.

  1. Badan
  2. Roda
  3. Kastor Marmer
  4. Bolt / Nut 6mm (pilihan, mur / bolt logam boleh diganti)
  5. Pemasangan Sensor Ultrasonik

Semua fail. STL yang diperlukan disertakan dalam arahan ini dan juga fail Sketchup. Pengisian 40% disyorkan.

Langkah 2: Program Arduino

Image
Image
Pasang Robot
Pasang Robot

Hantar Kod ke Arduino UNO: Menggunakan Arduino IDE, hantarkan kod (dalam fail yang dilampirkan) ke modul Arduino anda. Anda perlu memuat turun dan memasukkan perpustakaan servo.h dan newping.h dengan lakaran ini.

Kod tersebut dikomentari dengan teliti, sehingga anda dapat melihat apa yang dilakukan oleh setiap perintah. Anda boleh menukar jarak Sensor Ultrasonik dengan mudah ke nilai yang lebih besar atau lebih kecil jika dikehendaki. Ini adalah kod awal dan dimaksudkan untuk dikembangkan dan digunakan untuk pengembangan projek selanjutnya.

// OBSTACLE MENGHINDARI ROBOT // [email protected], [email protected], University of TN at Chattanooga, Electrical Engineering, FALL 2019 // Bahan yang Diperlukan: // 1) Arduiino UNO, 2) Servo Sensor Shield v5.0, 3) HCSR04 Ulrasonic Sensor, 4) FS90 Servo (for Ultrasonic Sensor) // 5 & 6) 2x SERVOS ROTASI BERTERUSAN untuk roda // 7) Marmer 16mm untuk putar kastor belakang, 8 & 9) 2 gelang getah untuk roda // 10- 15) 1x (4xAA) Pemegang bateri dengan suis hidup / mati, 16 & 17) Bateri 9V dengan penyambung ke kuasa Arduino UNO // 3D PRINT: // 18) ROBOT Body, 19 & 20) 2x Wheels, 21) Marble Caster, 22) Sensor Ultrasonik Pasang, dan Skru 6mm (lihat fail terlampir) // -------------------------------------- -------------------------------------------------- ----------------------------------------- #include // Sertakan Servo Library #include // Sertakan Perpustakaan Newping // ------------------------------------------- -------------------------------------------------- ------------------------------------ #tentukan TRIGGER_PIN 1 2 // Pencetus AS ke pin 12 pada Arduino #define ECHO_PIN 13 // Gema AS ke pin 13 pada Arduino #define MAX_DISTANCE 250 // Jarak ke ping (maksimum ialah 250) jarak int = 100; // ------------------------------------------------ -------------------------------------------------- ------------------------------- Servo US_Servo; // Ultrasonik Sensor Servo Servo Left_Servo; // Servo Roda Kiri Servo Kanan_Servo; // Sonar Roda Kanan servo NewPing (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // Penyediaan pin baru dan jarak maksimum. // ------------------------------------------------ -------------------------------------------------- ------------------------------- batal persediaan () // INPUT / OUTPUT, DI MANA MENGHAMPIRI, SET POSITIF / PERGERAKAN AWAL {pinMode (12, OUTPUT); // Trigger pin ditetapkan sebagai output pinMode (13, INPUT); // Pin gema ditetapkan sebagai input US_Servo.attach (11); // Servo AS ditetapkan 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 WHEEL KIRI ditetapkan untuk BERHENTI

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

Right_Servo.write (90); // SERVO WHEEL KANAN ditetapkan untuk MENGHENTIKAN kelewatan (2000); // Tunggu jarak 2 saat = readPing (); // Dapatkan Jarak Ping pada kelewatan kedudukan lurus ke depan (100); // Tunggu 100 ms moveForward (); // ROBOT BERGERAK KE HADAPAN} // ------------------------------------------ -------------------------------------------------- ------------------------------------- gelung void () {int distanceRight = 0; // Mulakan jarak AS ke kanan pada 0 int jarakLeft = 0; // Mulakan jarak AS ke kiri pada 0 //US_Servo.write(90); // Servo Pusat AS // kelewatan (50); // US_Servo.write (70); // Pandang sedikit ke kanan // kelewatan (250); // US_Servo.write (110); // Lihat sedikit ke kiri // kelewatan (250); // US_Servo.write (90); // Pusat Lihat

if (jarak <= 20) // Robot MOVES FORWARD {moveStop (); // Robot BERHENTI pada jarak = jarakLeft) // Tentukan arah mana yang hendak dipusingkan {turnRight (); // Bahagian kanan mempunyai jarak yang paling besar, ROBOT TURNS RIGHT untuk kelewatan 0.3s (500); // Kelewatan ini menentukan panjang putaran moveStop (); // Robot BERHENTI} lain {turnLeft (); // Jarak paling kiri di sebelah kiri, ROBOT TURNS LEFT selama 0.3s kelewatan (500); // Kelewatan ini menentukan panjang putaran moveStop (); // Robot BERHENTI}} lain {moveForward (); // Robot MOVES FORWARD} jarak = readPing (); // AS MEMBACA PING BARU untuk arah perjalanan baru} // ----------------------------------- -------------------------------------------------- -------------------------------------------- int lookRight () // Sensor Ultrasonik LIHAT FUNGSI KANAN {US_Servo.write (30); // Servo AS BERGERAK KANAN ke kelewatan sudut (500); jarak int = readPing (); // Tetapkan nilai ping untuk kelewatan yang betul (100); US_Servo.write (90); // Servo AS Pindah ke PUSAT jarak balik; // Jarak ditetapkan} // ------------------------------------------ -------------------------------------------------- ------------------------------------- int lookLeft () // Sensor Ultrasonik LIHAT FUNGSI KIRI {US_Servo.tulis (150); // servo AS Pindahkan KIRI ke kelewatan sudut (500); jarak int = readPing (); // Tetapkan nilai ping untuk kelewatan kiri (100); US_Servo.write (90); // Servo AS Pindah ke PUSAT jarak balik; // Jarak ditetapkan} // ------------------------------------------ -------------------------------------------------- ------------------------------------- int readPing () // Fungsi Baca Ping untuk Sensor Ultrasonik. {kelewatan (100); // 100ms antara ping (min ping time = 0.29ms) int cm = sonar.ping_cm (); // Jarak PING dikumpulkan dan ditetapkan dalam cm jika (cm == 0) {cm = 250; } pulangan cm; } // ----------------------------------------------- -------------------------------------------------- -------------------------------- batal moveStop () // ROBOT STOP {Left_Servo.write (90); // LeftServo 180 ke hadapan, 0 terbalik Right_Servo.write (90); // RightServo 0 ke depan, 180 terbalik} // --------------------------------------- -------------------------------------------------- ---------------------------------------- batal moveForward () // ROBOT FORWARD {Left_Servo.tulis (180); // LeftServo 180 ke hadapan, 0 terbalik Right_Servo.write (0); // RightServo 0 ke depan, 180 terbalik} // --------------------------------------- -------------------------------------------------- ---------------------------------------- batal bergerakBackward () // ROBOT BACKWARD {Left_Servo.tulis (0); // LeftServo 180 ke hadapan, 0 terbalik Right_Servo.write (180); // RightServo 0 ke depan, 180 terbalik} // --------------------------------------- -------------------------------------------------- ---------------------------------------- kekosongan putar kanan () // ROBOT KANAN {Left_Servo.tulis (180); // LeftServo 180 ke hadapan, 0 terbalik Right_Servo.write (90); // RightServo 0 ke depan, 180 terbalik} // --------------------------------------- -------------------------------------------------- ---------------------------------------- kekosongan pusingan kiri () // ROBOT LEFT {Left_Servo.tulis (90); // LeftServo 180 ke hadapan, 0 terbalik Right_Servo.write (0); // RightServo 0 ke depan, 180 terbalik} // --------------------------------------- -------------------------------------------------- ----------------------------------------

Langkah 3: Pasang Robot

Image
Image
Pasang Robot
Pasang Robot
Pasang Robot
Pasang Robot

Sekarang masanya untuk menyatukan robot anda. Langkah-langkahnya disenaraikan di bawah.

1) Pasang Cakera Servo Bulat dan Pita Getah ke Roda: Semua servos dilengkapi dengan perkakasan dan skru pemasangan plastik. Cari cakera bulat, dan pasangkannya ke dalam dua lubang di bahagian roda yang rata. Jalur getah dipasang di sekitar roda untuk memberikan cengkaman. Anda mungkin mahu menambahkan sedikit gam untuk mengekalkan gelang getah.

2) Lekapan Marble Caster: Gunakan dua skru kecil untuk memasang kastor marmar ke dua segitiga di bahagian belakang. Kastor marmar adalah pengganti sederhana untuk roda belakang dan memberikan titik pangsi belakang.

3) Masukkan Servo ke dalam Slot (tidak diperlukan skru): Letakkan Servo FS90 (untuk Sensor Ultrasonik) ke slot depan badan. Dua servo putaran berterusan meluncur ke slot kiri dan kanan. Slot direka untuk pemasangan yang ketat, sehingga tidak diperlukan skru untuk menahan servos di tempatnya. Pastikan wayar servo melalui alur di slot sehingga menghadap ke belakang badan.

4) Penempatan Bateri 9V (PILIHAN): Letakkan bateri 9V + penyambung kuasa Arduino di belakang servo depan.

5) Pemasangan Pemasangan Sensor Ultrasonik: Gunakan dua skru kecil untuk memasang salah satu lampiran servo plastik putih yang disertakan ke bahagian bawah plat pelekap Sensor Ultrasonik. Seterusnya, gunakan bolt / mur 6mm bercetak 3D (atau ganti bolt / mur logam) untuk memasang sarung Sensor Ultrasonik ke pelat pemasangan. Akhirnya, letakkan sensor di dalam casing dengan pin menghadap ke atas dan pasangkan di bahagian belakang casing.

6) Sarung Bateri AA 4x: Letakkan kotak bateri AA ke dalam kawasan segi empat besar, dengan suis hidup / mati menghadap ke belakang.

7) Arduino Uno + V5 Sensor Shield: Pasangkan pelindung ke Arduino dan letakkan ke pelekap di atas casing bateri. Penyambung kuasa hendaklah menghadap ke kiri.

Robot anda Dibina! Apa yang tinggal? Memprogram Arduino dan Menghubungkan Kabel Jumper: Servos, Sensor Ultrasonik, dan Bekalan Kuasa.

Langkah 4: Pasang Wayar Sensor

Image
Image
Selesai !!! Sambungkan 9V Arduino Power Supply, Hidupkan Pek Bateri, dan Mula Menghindari Halangan Dengan OAREE
Selesai !!! Sambungkan 9V Arduino Power Supply, Hidupkan Pek Bateri, dan Mula Menghindari Halangan Dengan OAREE

Sambungkan wayar Servo ke Perisai V5:

  1. Servo Putaran Berterusan Kiri melekat pada PIN 9
  2. Servo Putaran Berterusan Kanan melekat pada PIN 10
  3. Servo FS90 depan melekat pada PIN 11

Sambungkan Pin Sensor Ultrasonik (melalui 4x Wayar Wanita ke Wanita Jumper) ke Perisai V5:

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

Sambungkan Sarung Bateri AA ke Perisai V5:

  1. Pasang wayar merah positif ke penyambung VCC
  2. Pasang wayar hitam negatif ke sambungan Ground

Langkah 5: Selesai !!! Sambungkan Power Supply 9V Arduino, Hidupkan Pek Bateri, dan Mula Menghindari Halangan Dengan OAREE

Image
Image
Selesai !!! Sambungkan 9V Arduino Power Supply, Hidupkan Pek Bateri, dan Mula Menghindari Halangan Dengan OAREE
Selesai !!! Sambungkan 9V Arduino Power Supply, Hidupkan Pek Bateri, dan Mula Menghindari Halangan Dengan OAREE

Selesai !

1) Sambungkan bekalan kuasa Arduino 9V (Pilihan)

2) Hidupkan pek bateri

3) Mula Mengelakkan Halangan dengan OAREE !!!

Saya pasti anda akan menyukai rakan baru anda, OAREE, setelah melihatnya merasakan halangan, sandaran, dan menukar arah. OAREE berfungsi paling baik dengan objek besar yang boleh dipisahkan oleh Sensor Ultrasonik (seperti dinding). Ia sukar untuk melakukan ping objek kecil seperti kaki kerusi kerana luas permukaan dan sudut mereka. Sila kongsi, kembangkan lebih lanjut, dan beritahu saya tentang penyesuaian atau kesalahan yang diperlukan. Ini adalah pengalaman belajar yang hebat dan saya harap anda seronok membuat projek ini seperti yang saya lakukan!

Peraduan Robotik
Peraduan Robotik
Peraduan Robotik
Peraduan Robotik

Naib Johan dalam Peraduan Robotik

Disyorkan: