Bagian-bagian untuk membuat robot menggunakan Arduino. Robot berkaki empat berbasis Arduino

Langganan
Bergabunglah dengan komunitas “koon.ru”!
Berhubungan dengan:

Pada artikel hari ini saya akan memberi tahu Anda cara membuat robot yang menghindari rintangan berdasarkan mikrokontroler Arduino dengan tangan Anda sendiri.



Untuk membuat robot di rumah, Anda memerlukan papan mikrokontroler itu sendiri dan sensor ultrasonik. Jika sensor mendeteksi adanya hambatan, maka servo akan mengijinkannya untuk mengitari hambatan tersebut. Dengan memindai ruang ke kanan dan kiri, robot akan memilih jalur yang paling disukai untuk menghindari rintangan.

Codebender adalah IDE berbasis browser, cara termudah untuk memprogram robot Anda dari browser. Anda perlu mengklik tombol “Run on Arduino” dan selesai, ini sangat sederhana.

Masukkan baterai ke dalam kompartemennya dan tekan tombol fungsi sekali dan robot akan mulai bergerak maju. Untuk menghentikan gerakan, tekan tombol lagi.

/* Robot Penghindar Rintangan Arduino dengan motor servo dan sensor ultrasonik HC-SR04 LED dan buzzer */ //Libraries #include #include "Ultrasonic.h" //Constants const int button = 2; //Tombol pin ke pin 2 const int led = 3; //Pin LED (melalui resistor) ke pin 3 const int buzzer = 4; //Tweeter pin ke pin 4 const int motorA1= 6; //pin positif (+) motor A ke pin 6 (PWM) (dari modul L298!) const int motorA2= 9; //pin negatif (-) motor A ke pin 9 (PWM) const int motorB1=10; // pin positif (+) motor B ke pin 10 (PWM) const int motorB2=11; // pin negatif (-) motor B ke pin 11 (PWM) Ultrasonik ultrasonik (A4 ,A5); //Membuat objek ultrasonik(pin trigonometri, pin gema) Servo myservo; //Buat objek Servo untuk mengontrol servo //Variabel int jarak; //Variabel untuk menyimpan jarak ke objek int checkRight; int centangKiri; int fungsi=0; //Variabel untuk menyimpan fungsi robot: "1" - gerakan atau "0" - berhenti. Dihentikan secara default int buttonState=0; //Variabel untuk menyimpan status tombol. Bawaan "0" ke dalam pos=90; //variabel untuk menyimpan posisi servo. Secara default 90 derajat - sensor akan menantikan int flag=0; //flag yang berguna untuk menyimpan status tombol ketika tombol dilepaskan void setup() ( myservo.attach(5); //Pin servo terhubung ke pin 5 myservo.write(pos); // memberitahukan servo untuk menuju ke posisi pada variabel " pos" pinMode(button, INPUT_PULLUP); pinMode(led, OUTPUT); pinMode(buzzer, OUTPUT); pinMode(motorA1,OUTPUT); pinMode(motorA2,OUTPUT); pinMode(motorB1, OUTPUT); pinMode(motorB2, OUTPUT) ; ) void loop() ( //Memeriksa keadaan tombol buttonState = digitalRead(button); unsigned long currentMillis = millis(); //count... //Mengubah fungsi utama ( berhenti/bergerak) ketika tombol ditekan if (buttonState = = LOW) (//Jika tombol ditekan sekali... delay(500); if (flag == 0)( function = 1; flag=1; / /ubah variabel flag) else if (flag == 1)( / /Jika tombol ditekan dua kali fungsi = 0; flag=0; //ubah lagi variabel flag ) ) if (fungsi == 0)( // Jika tombol dilepas atau ditekan dua kali, maka: myservo.write(90); //set for servo 90 derajat – sensor akan menantikan stop(); //robot tetap tidak bergerak noTone(buzzer); //beeper dimatikan digitalWrite(led, HIGH);// dan dioda menyala ) else if (fungsi == 1)(//Jika tombol ditekan, maka: //Baca jarak... jarak = ultrasonik.Ranging(CM); //Tip: Gunakan "CM" untuk sentimeter dan "INC" untuk inci //Periksa objek. .. if (jarak > 10)( forward(); //Semuanya jelas, ayo maju! noTone(buzzer); digitalWrite(led,LOW); ) else if (jarak<=10){ stop(); //Обнаружен объект! Останавливаемся и проверяем слева и справа лучший способ обхода! tone(buzzer,500); // издаём звук digitalWrite(led,HIGH); // включаем светодиод //Начинаем сканировать... for(pos = 0; pos =0; pos-=1){ //идём от 180 градусов к 0 myservo.write(pos); // говорим серво пройти на позицию в переменной "pos" delay(10); // ждём 10 мс, пока сервопривод достигнет нужной позиции } checkRight= ultrasonic.Ranging(CM); myservo.write(90); // Датчик снова смотрит вперёд //Принимаем решение – двигаться влево или вправо? if (checkLeft checkRight){ right(); delay(400); // задержка, меняем значение при необходимости, чтобы заставить робота повернуться. } else if (checkLeft <=10 && checkRight <=10){ backward(); //Дорога перекрыта... возвращаемся и идём налево;) left(); } } } } void forward(){ digitalWrite(motorA1, HIGH); digitalWrite(motorA2, LOW); digitalWrite(motorB1, HIGH); digitalWrite(motorB2, LOW); } void backward(){ digitalWrite(motorA1, LOW); digitalWrite(motorA2, HIGH); digitalWrite(motorB1, LOW); digitalWrite(motorB2, HIGH); } void left(){ digitalWrite(motorA1, HIGH); digitalWrite(motorA2, LOW); digitalWrite(motorB1, LOW); digitalWrite(motorB2, HIGH); } void right(){ digitalWrite(motorA1, LOW); digitalWrite(motorA2, HIGH); digitalWrite(motorB1, HIGH); digitalWrite(motorB2, LOW); } void stop(){ digitalWrite(motorA1, LOW); digitalWrite(motorA2, LOW); digitalWrite(motorB1, LOW); digitalWrite(motorB2, LOW); }

Dengan mengklik tombol "Edit", Anda dapat mengedit sketsa sesuai kebutuhan Anda.

Misalnya, dengan mengubah nilai “10” dari jarak yang diukur menjadi rintangan dalam cm, Anda akan mengurangi atau menambah jarak yang akan dipindai oleh robot Arduino untuk mencari rintangan.

Jika robot tidak bergerak dapat merubah kontak motor listrik (motorA1 dan motorA2 atau motorB1 dan motorB2).

Langkah 7: Robot Selesai

Robot penghindar rintangan buatan Anda yang berbasis mikrokontroler Arduino sudah siap.

Orang-orang mulai mempelajari Arduino dengan membuat robot sederhana. Hari ini saya akan berbicara tentang robot paling sederhana di Arduino Uno, yang seperti anjing, akan mengikuti tangan Anda atau benda lain yang memantulkan cahaya inframerah. Robot ini juga akan menghibur anak-anak. Keponakan saya yang berumur 3 tahun bersemangat sekali bermain dengan robot tersebut :)

Saya akan mulai dengan membuat daftar bagian-bagian yang diperlukan selama konstruksi - Arduino UNO;

Pengukur jarak inframerah;

-Motor 3 volt dengan girboks dan roda;

- konektor untuk baterai 3A;

-baterai (jika baterai tidak cukup);

-Relay untuk mengendalikan motor;

Nah, dan bahan-bahan lain yang akan dibutuhkan dalam proses pembuatannya.
Pertama kita membuat alasnya. Saya memutuskan untuk membuatnya dari kayu. Saya menggergaji papan kayu sedemikian rupa sehingga motor pas dengan slotnya


Lalu saya menjepit motor dengan strip kayu, mengencangkan strip ini

Selanjutnya pada bodi saya menempatkan Arduino, relay, Bradboard, pengukur jarak, dan sasis berputar di bawah alasnya.

Sekarang kita menghubungkan semuanya sesuai diagram

Pada akhirnya, unggah sketsa berikut ke Arduino:

Konstanta int R = 13; //pin yang terhubung dengan pengukur jarak IR const int L = 12; int motorL = 9; //pin yang terhubung dengan relai int motorR = 11; int keadaan tombol = 0; batal setup() ( pinMode(R,INPUT); pinMode(L,INPUT); pinMode(motorR,OUTPUT); pinMode(motorL,OUTPUT); ) void loop() ( ( buttonState = digitalRead(L); if (buttonState == TINGGI)( digitalWrite(motorR,HIGH); ) else ( digitalWrite(motorR,LOW); ) ) (( buttonState = digitalRead(R); if (buttonState == HIGH)( digitalWrite(motorL,HIGH); ) else ( digitalWrite(motorL,RENDAH); ) ) ) )

Prinsip pengoperasiannya sangat sederhana. Pengintai kiri bertanggung jawab atas roda kanan, dan kanan untuk kiri

Agar lebih jelas, Anda dapat menonton video yang memperlihatkan proses pembuatan dan pengoperasian robot tersebut

Robot ini sangat sederhana dan siapapun bisa membuatnya. Ini akan membantu Anda memahami prinsip pengoperasian modul seperti relai dan pengukur jarak IR serta cara terbaik menggunakannya.

Saya harap Anda menyukai kerajinan ini, ingatlah bahwa kerajinan itu keren!

Halo semua. Artikel ini adalah cerita pendek tentang caranya Mengerjakan robot milik mereka tangan. Mengapa sebuah cerita, Anda bertanya? Hal ini disebabkan karena untuk pembuatannya kerajinan tangan perlu menggunakan sejumlah besar pengetahuan, yang sangat sulit disajikan dalam satu artikel. Kami akan menjalani proses pembuatannya, melihat kodenya, dan pada akhirnya mewujudkan kreasi Silicon Valley. Saya menyarankan Anda untuk menonton videonya untuk mendapatkan gambaran tentang apa yang seharusnya Anda dapatkan.

Sebelum melanjutkan, harap perhatikan hal berikut: selama pembuatan kerajinan tangan pemotong laser digunakan. Anda dapat menghindari penggunaan pemotong laser jika Anda memiliki cukup pengalaman bekerja dengan tangan Anda. Presisi adalah kunci untuk menyelesaikan proyek dengan sukses!

Langkah 1: Bagaimana cara kerjanya?

Robot ini memiliki 4 kaki, dengan masing-masing 3 servo, yang memungkinkannya menggerakkan anggota tubuhnya dalam 3 derajat kebebasan. Dia bergerak dengan “gaya berjalan merangkak”. Ini mungkin lambat, tapi ini salah satu yang paling lancar.

Pertama, Anda perlu mengajari robot untuk bergerak maju, mundur, kiri dan kanan, lalu menambahkan sensor ultrasonik, yang akan membantu mendeteksi rintangan/rintangan, dan kemudian modul Bluetooth, berkat kendali robot yang akan mencapai tingkat baru. .

Langkah 2: Bagian yang Diperlukan

Kerangka terbuat dari kaca plexiglass setebal 2 mm.

Bagian elektronik dari produk buatan sendiri akan terdiri dari:

  • 12 servo;
  • arduino nano (dapat diganti dengan papan arduino lainnya);

  • Perisai untuk mengendalikan servo;
  • catu daya (proyek ini menggunakan catu daya 5V 4A);

  • sensor ultrasonik;
  • modul bluetooth hc 05;

Untuk membuat perisai, Anda membutuhkan:

  • papan sirkuit (sebaiknya dengan jalur umum (bus) daya dan ground);
  • konektor pin antar papan - 30 pcs;
  • soket per papan – 36 pcs;

  • kabel.

Peralatan:

  • Pemotong laser (atau tangan terampil);
  • Lem super;
  • Perekat meleleh panas.

Langkah 3: Kerangka

Mari kita gunakan program grafis untuk menggambar komponen kerangka.

Setelah itu, kami memotong 30 bagian robot masa depan menggunakan metode apa pun yang tersedia.

Langkah 4: Perakitan

Setelah dipotong, lepaskan penutup kertas pelindung dari kaca plexiglass.

Selanjutnya kita mulai merakit kaki-kakinya. Elemen pengikat dibangun ke dalam bagian kerangka. Yang masih harus dilakukan hanyalah menghubungkan bagian-bagian itu menjadi satu. Sambungannya cukup erat, tetapi untuk keandalan yang lebih baik, Anda dapat mengoleskan setetes lem super ke elemen pengikat.

Maka Anda perlu memodifikasi servo (rekatkan sekrup di seberang poros servo).

Dengan modifikasi ini kita akan membuat robot lebih stabil. Hanya 8 servo yang perlu dimodifikasi, 4 sisanya akan dipasang langsung ke bodi.

Kami memasang kaki ke elemen penghubung (bagian melengkung), dan ini, pada gilirannya, ke penggerak servo di bodi.

Langkah 5: Membuat perisai

Membuat papan cukup sederhana jika Anda mengikuti foto-foto yang disajikan pada langkah tersebut.

Langkah 6: Elektronik

Mari kita pasang pin penggerak servo ke papan Arduino. Pin harus dihubungkan dalam urutan yang benar, jika tidak, tidak akan ada yang berhasil!

Langkah 7: Pemrograman

Saatnya menghidupkan Frankenstein. Pertama kita load program Legs_init dan pastikan robot berada pada posisi seperti pada gambar. Selanjutnya, mari kita muat quattro_test untuk memeriksa apakah robot merespons gerakan dasar, seperti bergerak maju, mundur, kiri, dan kanan.

PENTING: Anda perlu menambahkan perpustakaan tambahan ke Arduino IDE. Tautan ke perpustakaan disediakan di bawah ini:

Robot harus maju 5 langkah, mundur 5 langkah, belok kiri 90 derajat, belok kanan 90 derajat. Jika Frankenstein melakukan segalanya dengan benar, kita bergerak ke arah yang benar.

P. S: Letakkan robot di atas cangkir, seperti di atas dudukan, sehingga Anda tidak perlu selalu meletakkannya di titik awal. Setelah pengujian menunjukkan robot berfungsi normal, kami dapat melanjutkan pengujian dengan meletakkannya di tanah/lantai.

Langkah 8: Kinematika Terbalik

Kinematika terbalik adalah apa yang sebenarnya menggerakkan robot (jika Anda tidak tertarik dengan sisi matematika dari proyek ini dan terburu-buru menyelesaikan proyek, Anda dapat melewati langkah ini, tetapi mengetahui apa yang menggerakkan robot akan selalu berguna).

Secara sederhana, kinematika terbalik, atau disingkat IR, adalah “bagian” persamaan trigonometri yang menentukan posisi ujung tajam kaki, sudut setiap servo, dll., yang pada akhirnya menentukan beberapa pengaturan awal. Misalnya, panjang setiap langkah robot atau ketinggian posisi tubuh saat bergerak/beristirahat. Dengan menggunakan parameter yang telah ditentukan sebelumnya, sistem akan mengekstraksi jumlah pergerakan setiap servo untuk mengendalikan robot menggunakan perintah yang diberikan.

Hasilnya adalah robot yang agak lucu yang dapat melihat rintangan di depannya, menganalisis situasi dan kemudian, setelah memilih rute terbaik, melanjutkan perjalanan. Robot itu ternyata sangat lincah. Ia mampu berputar 180 derajat, dan sudut putarannya 45 dan 90 derajat. Penulis menggunakan Iteaduino yang analog dengan Arduino sebagai pengontrol utama.

Bahan dan alat untuk membuat robot :
- mikrokontroler (Arduino atau Iteaduino serupa);
- sensor ultrasonik;
- tempat baterai;
- Mainan Cina untuk membuat jarak sumbu roda (Anda dapat membeli yang sudah jadi);
- pemotong kawat;
- lem;
- kabel;
- motor;
- papan serat;
- gergaji ukir;
- transistor (D882 P).

Proses pembuatan robot:

Langkah pertama. Membuat jarak sumbu roda
Untuk membuat wheelbase, penulis membeli dua buah mobil mainan Cina. Namun, Anda tidak perlu khawatir tentang hal ini jika Anda memiliki uang ekstra, karena Anda dapat membeli alas yang sudah jadi. Dengan menggunakan pemotong kawat, mobil-mobil itu dipotong menjadi dua untuk membuat dua poros penggerak. Bagian-bagian ini kemudian direkatkan. Namun, dalam hal ini Anda juga bisa menggunakan besi solder, plastiknya bisa disolder dengan sempurna.

Saat memilih mobil, yang terbaik adalah mengambil mainan dengan roda biasa, karena menurut penulis, dengan paku seperti miliknya, robot banyak melompat.

Ada momen lain ketika kabel akan keluar dari motor, pada salah satunya Anda harus ingat untuk mengubah polaritasnya.


Langkah kedua. Membuat penutup atas
Penutup atas robot terbuat dari papan serat, karton tebal juga dapat digunakan untuk keperluan ini. Anda dapat melihat lubang berbentuk persegi panjang pada penutupnya, letaknya harus sedemikian rupa sehingga sumbu penggerak servo yang akan dimasukkan ke dalamnya terletak secara simetris. Sedangkan untuk lubang di tengahnya, kabel akan keluar melaluinya.


Langkah ketiga. Isian robot
Yang terbaik adalah menggunakan catu daya terpisah untuk menghubungkan sasis, karena pengontrol memerlukan 9V untuk memberi daya, sedangkan motor hanya membutuhkan 3V. Secara umum, dudukan baterai sudah terpasang pada sasis mesin tersebut, hanya perlu dihubungkan secara paralel.








Motor dihubungkan ke pengontrol menggunakan transistor tipe D882 P. Motor ditarik keluar dari panel kontrol mesin lama. Tentu saja yang terbaik adalah menggunakan transistor daya tipe TIP120B, tetapi penulis hanya memilihnya berdasarkan karakteristik yang sesuai. Semua bagian elektronik dihubungkan sesuai dengan diagram yang ditentukan.

Setelah mem-flash firmware robot, robot akan siap untuk pengujian. Agar robot mempunyai waktu untuk berbelok pada sudut tertentu, Anda perlu memilih waktu pengoperasian motor yang tepat.

Sedangkan untuk sensor ultrasonik perlu dihubungkan dengan keluaran digital ke-7 mikrokontroler. Motor servo dihubungkan ke input digital ke-3, basis transistor motor kiri dihubungkan ke pin 11, dan basis transistor kanan dihubungkan ke pin ke-10.

Jika Krona digunakan sebagai catu daya, maka minusnya dihubungkan ke GND, dan plusnya ke VIN. Anda juga perlu menghubungkan emitor transistor dan kontak negatif dari catu daya sasis robot ke GND.

Pembaca yang budiman, kami membuka serangkaian artikel yang didedikasikan untuk membuat robot berbasis Arduino. Diasumsikan bahwa pembaca adalah seorang pemula dan hanya memiliki pengetahuan dasar tentang subjek tersebut. Kami akan mencoba menyajikan semuanya sedetail dan sejelas mungkin.

Jadi, pengenalan masalahnya:

Mari kita mulai dengan konsepnya: kita menginginkan robot yang dapat bergerak secara mandiri di sekitar ruangan, sambil menghindari semua rintangan yang ditemui di sepanjang jalan. Tugas telah ditetapkan.

Sekarang mari kita cari tahu apa yang kita butuhkan:

  1. Platform (badan). Ada pilihan di sini: lakukan semuanya sendiri, beli suku cadang dan rakit, atau beli yang sudah jadi. Pilih apa pun yang Anda suka

Kit ini biasanya mencakup platform dan satu motor untuk dua roda penggerak (ulat) dan kompartemen untuk baterai. Ada opsi penggerak semua roda - dengan motor untuk 4 roda. Untuk pemula, kami menyarankan untuk menggunakan platform tipe tank

Dua roda penggerak dan roda pendukung ketiga.

  1. Selanjutnya, kita membutuhkan pengintai. Sonar (alias pengintai, alias modul Ultrasonik) Sebagai pengintai, awalnya pilihannya adalah antara ultrasonik dan inframerah. Karena karakteristik ultrasonik jauh lebih baik (jangkauan maksimum sekitar 4-5 meter, dibandingkan 30-60 cm), dan harganya kurang lebih sama, pilihan jatuh pada Ultrasonic. Model yang paling umum adalah HC-SR04.

  1. Pengemudi Bermotor.

Apa yang harus saya lakukan? Hal pertama yang terlintas dalam pikiran adalah memasang transistor pada keluaran mikrokontroler dan memberi daya pada motor darinya. Ini bagus, tentu saja, tetapi tidak akan berhasil jika kita ingin memutar motor ke arah lain... Tetapi H-bridge, yang merupakan rangkaian yang sedikit lebih kompleks daripada sepasang transistor, akan mengatasi dengan baik tugas ini. Tapi dalam hal ini banyak sekali yang berbentuk sirkuit terpadu yang sudah jadi, jadi menurut saya tidak perlu menemukan kembali rodanya - kita akan membeli yang sudah jadi. Selain itu, harganya 2-3 dolar... Mari kita lanjutkan. Untuk tujuan ini, kami akan membeli chip L293D, atau, lebih baik lagi, Motor Shield berdasarkan chip tersebut.

Pelindung motor pada chip L298N

  1. Pembangkitan suara - pemancar piezo

Pilihan paling sederhana untuk menghasilkan suara adalah dengan menggunakan pemancar piezo.

Pemancar piezoceramic (piezo emitter) adalah perangkat reproduksi suara elektroakustik yang menggunakan efek piezoelektrik. (efek polarisasi dielektrik di bawah pengaruh tekanan mekanis (efek piezoelektrik langsung). Ada juga efek piezoelektrik terbalik - terjadinya deformasi mekanis di bawah pengaruh medan listrik.

Efek piezoelektrik langsung: pada pemantik api piezo, untuk memperoleh tegangan tinggi melintasi celah percikan;

Efek piezoelektrik terbalik: pada pemancar piezo (efektif pada frekuensi tinggi dan dimensi kecil);)

Pemancar piezo banyak digunakan di berbagai perangkat elektronik - jam alarm, telepon, mainan elektronik, dan peralatan rumah tangga. Emitor piezoceramic terdiri dari pelat logam di mana lapisan keramik piezoelektrik diterapkan, yang memiliki lapisan konduktif di bagian luar. Pelat dan semprotan adalah dua kontak. Pemancar piezo juga dapat digunakan sebagai mikrofon atau sensor piezoelektrik.

Itu saja yang kita butuhkan pada awalnya. Pertama, mari kita lihat cara merakit dan membuat bagian-bagian ini bekerja secara individual dalam pelajaran terpisah.

Pelajaran 2. Bekerja dengan sensor pengukur jarak ultrasonik (range finder)

Pelajaran 3. Arduino dan Motor Shield berbasis L298N

Pelajaran 4. Reproduksi suara - pemancar piezo

Pelajaran 5. Merakit robot dan men-debug program

Kembali

×
Bergabunglah dengan komunitas “koon.ru”!
Berhubungan dengan:
Saya sudah berlangganan komunitas “koon.ru”