Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Arduino Ant Hexapod Robot

Dalam tutorial ini saya akan menunjukkan kepada Anda bagaimana saya membangun sebuah hexapod Arduino. Seperti namanya, hexapod memiliki 6 kaki tetapi selain itu, ia juga memiliki ekor atau perut, kepala, antena, rahang bawah, dan bahkan mata yang berfungsi. Semua ini membuat hexapod terlihat seperti semut, oleh karena itu kita juga bisa menyebutnya sebagai Robot Semut Arduino.

Anda dapat menonton video berikut atau membaca tutorial tertulis di bawah ini.

Ringkasan

Untuk mengendalikan robot saya membuat aplikasi Android yang dibuat khusus. Aplikasi ini memiliki 4 tombol di mana kita dapat memerintahkan robot untuk bergerak maju atau mundur, serta belok kiri atau kanan. Selain fungsi utama tersebut, robot juga dapat menggerakkan kepala dan ekornya, serta dapat menggigit, mengambil dan menjatuhkan sesuatu, bahkan menyerang.

Seperti yang saya sebutkan sebelumnya, robot memiliki mata yang berfungsi, atau saya secara khusus merancang kepala agar sesuai dengan sensor ultrasonik. Jadi, jika kita mencoba menyentuh kepala robot atau mendekatkan tangan kita ke sensor, robot pada awalnya akan bersiap untuk menyerang.

Jika kita mundur, robot akan mengabaikan serangan itu, tetapi jika kita mendekatkan tangan kita, ia akan menyerang dan menggigit kita. Jadi seberapa keren itu? Tetap di sini dan Anda akan mengetahui dengan tepat bagaimana saya membangunnya dan bagaimana semuanya bekerja.

Arduino Hexapod – Model 3D Robot Semut

Seperti biasa, saya memulai dengan mendesain hexapod menggunakan software pemodelan 3D. Hexapod memiliki 6 kaki dan masing-masing terdiri dari 3 sendi atau 3 servos. Itu berarti kita membutuhkan total 18 servo dan dalam kasus saya, saya menggunakan servo MG996R.

Di sisi belakang kami memiliki ekor yang digerakkan oleh servo MG996R lainnya. Kepala robot semut ini memiliki dua derajat kebebasan, atau bisa berguling dan miring, dan lagi-lagi digerakkan oleh dua servos lagi. Jadi kami membutuhkan total 21 servo untuk proyek ini, ketik MG996R dan tambahan satu servo mikro SG90 yang lebih kecil untuk mandibula.

Di sini kami juga memiliki mata semut yang dirancang agar sesuai dengan sensor ultrasonik HC-SR04. Semua bagian dirakit di antara dua pelat dan sebagai tambahan saya membuat penutup melengkung yang menarik untuk pelat atas untuk menyembunyikan semua kabel, Arduino, dan baterai di antara kedua pelat.

Anda dapat menemukan dan mengunduh model 3D ini, serta menjelajahinya di browser Anda di Thangs.

File STL:

Mencetak Suku Cadang 3D

Saya kira Anda sudah tahu apa selanjutnya, dan itu adalah pencetakan 3D bagian robot. Saya menggunakan Printer 3D Creality CR-10 untuk semua cetakan dan berhasil dengan baik. Bagian yang paling sulit untuk dicetak adalah kepala, karena saya ingin menjadi satu cetakan.

Untuk tujuan itu saya harus menggunakan Support Overhang Angle 60 derajat serta beberapa support blocker. Bagaimanapun, Creality CR-10 melakukan pekerjaan dengan baik dan kepalanya menjadi sempurna.

Merakit Arduino Hexapod

Setelah semua bagian dicetak, kita dapat melanjutkan dengan merakit hexapod. Saya mulai dengan merakit kaki. Untuk mengamankan servos ke bagian yang dicetak, saya menggunakan baut dan mur M3, serta ring pegas. Panjang baut harus setidaknya 12 mm dan dalam kasus saya, saya menggunakan baut dengan panjang 16 mm.

Kami membutuhkan sekitar 200 baut untuk seluruh perakitan. Untuk menghubungkan tautan satu sama lain, kami menggunakan tanduk bundar yang disertakan dengan paket servo sebagai aksesori. Namun, kita perlu mengebor lubang 3mm pada masing-masingnya agar baut dapat melewatinya, atau kita dapat menggunakan tanduk bundar logam yang memiliki ulir M3 dan dapat dibeli secara terpisah.

Saat mengamankan tautan ke servo, kita perlu memastikan bahwa kita selalu menghubungkannya pada posisi yang sama dan mereka memiliki rentang gerak penuh.

Kita harus memperhatikan di sini bahwa servos memiliki penyangga segitiga kecil di sisi atas yang perlu dilepas. Saya menggunakan pisau utilitas sederhana untuk melakukan itu, jadi dengan cara itu servos dapat ditempatkan flash dengan bagian yang dicetak. Sebelum memasukkan servo ketiga pada tempatnya, pertama-tama kita harus memasukkan baut M4 yang akan digunakan untuk menghubungkan kaki dengan pelat dasar.

Beginilah tampilan rakitan kaki. Sebenarnya sangat mudah untuk merakitnya, tetapi sekarang kami membutuhkan lima unit lagi.

Setelah semua kaki siap, kita dapat melanjutkan dengan memasangnya ke badan robot, atau kedua pelat. Pertama kita perlu mengamankan tanduk bundar ke platform atas menggunakan metode yang sama seperti sebelumnya, dengan baut dan mur M3. Kemudian kita cukup menghubungkannya ke poros servo menggunakan baut, tetapi sebelum itu kita perlu menyesuaikan posisi servo agar tepat di tengah.

Hal ini diperlukan agar kita bisa mendapatkan jangkauan gerak servo yang lengkap dan juga akan mengurangi proses penyesuaian atau kalibrasi saat memprogram Arduino.

Setelah mengamankan kaki, proyek ini sudah mulai terbentuk dan terlihat seperti segi enam.

Ada satu tanduk bundar lagi di sisi belakang dan itu untuk servo ekor yang juga perlu diamankan di titik ini.

Selanjutnya kita perlu menempatkan hexapod terbalik sehingga kita dapat memasukkan pelat bawah melalui baut M4 kaki. Kemudian saya mengamankan kakinya menggunakan beberapa ring biasa dan mur pengunci sendiri. Kita harus berhati-hati dalam mengencangkan baut-baut ini karena ini sebenarnya adalah sambungan poros dan kaki-kakinya juga harus dapat berputar sambil cukup aman.

Selanjutnya kita perlu memasang servo pertama untuk kepala dan itu untuk gerakan roll. Servo ini harus ditempatkan tegak lurus dengan pelat dasar, jadi untuk itu saya membuat dua pelat kecil yang pertama kali diamankan ke servo. Kemudian kita dapat memasukkan servo di antara kedua pelat dan kita dapat dengan mudah mengamankannya dengan baut dan mur M3.

Kemudian kita memiliki braket berbentuk U dan di sini kita perlu memasang dua tanduk bundar untuk menghubungkan dua servos untuk kepala. Sekali lagi sebelum mengencangkan braket ke roll servo kita perlu memastikan bahwa posisi servo berada di tengah sehingga dapat berputar 90 derajat ke dua arah.

Berikutnya adalah braket servo miring. Jadi di sini pertama-tama kita perlu memasukkan baut M4 dan kencangkan ke braket berbentuk U. Sebelum memasang motor tilt kita juga perlu memasukkan empat buah baut M3 yang nantinya akan digunakan untuk mengamankan head. Kemudian kita dapat memasukkan servo miring ke braket dan dengan hati-hati memasang poros ke tanduk bundar. Agak ketat di sini, tetapi braket berbentuk U dapat sedikit melenturkan.

Terakhir kita perlu mengamankan servo dengan baut M3 dan dengan itu mekanisme kepala selesai. Sekarang bisa digulung dan dimiringkan.

Sebelum memasang kepala ke mekanisme, kita perlu memasangnya terlebih dahulu, atau memasang rahang bawah dengan servo SG90 kecil dan sensor ultrasonik. Sekali lagi ini agak ketat di sini tapi saya masih berhasil memasukkan mandibula pertama dan mengamankannya ke kepala menggunakan baut M4.

Terlihat ada lubang kecil di area mata yang didesain khusus agar kita bisa melewati obeng untuk mengencangkan baut.

Selanjutnya, servo mikro di tempatnya dan diamankan menggunakan dua sekrup. Pada mandibula kedua, pertama-tama kita harus memasang klakson lengan kecil untuk servo SG90.

Kemudian kita dapat memasukkan mandibula pada tempatnya, memasangkan kedua roda gigi dan mengencangkannya ke poros motor menggunakan obeng.

Selanjutnya kita dapat menempatkan sensor ultrasonik pada tempatnya. Lubang mata dibuat agar pas dengan sensor ultrasonik jadi saya cukup menggunakan beberapa tetes lem AC untuk mengencangkan sensor ke kepala.

Ada satu detail lagi yang harus ditambahkan ke kepala dan itu adalah antena. Untuk itu saya menggunakan kawat tick 3mm, yang saya potong dengan panjang sekitar 13cm dan saya sedikit menekuknya untuk mendapatkan bentuk yang diinginkan. Sekali lagi saya menggunakan beberapa tetes lem AC untuk mengencangkannya ke kepala. Akhirnya kita bisa memasang kepala ke mekanisme roll and tilt dengan empat baut yang kita masukkan sebelumnya.

Kepala sekarang berfungsi penuh, dapat berguling, dapat dimiringkan, dan bahkan dapat menggigit. Ada dua lagi bagian cetak 3D yang akan dipasang. Itu adalah ekor yang dapat dengan mudah digeser ke braket ekor dan penutup melengkung yang akan kita gunakan di akhir untuk menutupi barang elektronik. Jadi inilah penampilan terakhir robot semut kita dan saya sangat suka dengan kombinasi warna biru dan putih ini.

Diagram Sirkuit Robot Semut Arduino

Ok, sekarang kita bisa melanjutkan dengan elektronik. Berikut diagram rangkaian proyek ini yang sebenarnya sederhana meskipun terlihat agak rumit karena banyaknya koneksi servo.

Selain 22 servo, kami memerlukan modul Bluetooth HC-05 untuk komunikasi ponsel cerdas dan beberapa kapasitor dan resistor. Tentu saja otak dari robot tersebut adalah board Arduino, dan dalam hal ini adalah Arduino Mega karena board tersebut merupakan satu-satunya board yang dapat mengontrol lebih dari 12 servo menggunakan library Servo.

Tutorial Terkait: Cara Kerja Motor Servo &Cara Mengontrol Servo menggunakan Arduino

Untuk menyalakan robot saya akan menggunakan baterai LiPo 3S yang memiliki tegangan sekitar 12V. Baterai LiPo dapat menangani jumlah penarikan arus yang lebih tinggi, sehingga cocok untuk proyek ini karena jika semua servos diaktifkan pada saat yang sama pada beban penuh, mereka dapat menarik sekitar 10 amp arus. Namun, tegangan operasi servo dibatasi dari 4,8 hingga 7,2V, yang berarti saya perlu menggunakan konverter DC-DC untuk mengubah 12V menjadi 5V. Bahkan jika kita menggunakan baterai LiPo 2S yang memiliki tegangan sekitar 7.4V atau 8.4V saat terisi penuh kita masih perlu menggunakan buck converter. Konverter uang yang akan saya gunakan untuk proyek ini dapat menangani hingga 8 amp arus tetapi saya akan merekomendasikan untuk menggunakan satu dari 10 hingga 15A hanya untuk memastikan Anda akan memiliki daya yang cukup dan tidak akan terlalu panas. Dalam kasus saya, penarikan arus maksimum yang saya perhatikan dari robot saat bergerak adalah sekitar 6 amp.

Anda bisa mendapatkan komponen yang diperlukan untuk proyek ini dari tautan di bawah:

  • Motor Servo MG996R……………………….….
  • Motor Servo Mikro SG90 ……..……….…….…….
  • Modul Bluetooth HC-05 ………………….… 
  • Arduino Mega Board ……………………….….
  • Baterai LiPo 3S ………………………..……….. 
  • Konverter Buck DC-DC ……………………….

Merancang PCB untuk Arduino Hexapod

Sekarang jika kita mencoba menghubungkan semuanya bersama-sama, itu akan cukup berantakan karena banyak koneksi servo. Oleh karena itu saya merancang PCB khusus menggunakan perangkat lunak desain sirkuit online gratis EasyEDA. PCB ini sebenarnya akan bertindak sebagai Arduno Mega Shield untuk Hexapod karena kita akan dapat langsung menghubungkannya di atas Arduino Mega Board. Saya mengatur koneksi servos dekat satu sama lain dan menyertakan dua kapasitor besar di sebelahnya untuk menjaga voltase lebih stabil. Saya juga menyertakan koneksi untuk modul transceiver NRF24L01 jika kita ingin mengontrol robot menggunakan radio kontrol. Terdapat beberapa sambungan pin digital dan analog, sambungan 5V dan ground, dua sambungan LED, serta sambungan untuk memonitor tegangan baterai. Tegangan baterai 12V akan melewati pembagi tegangan yang terdiri dari dua buah resistor R1 dan R2 yang akan menurunkan tegangan dibawah 5V sehingga pin analog dapat membacanya dengan aman. Dengan cara ini kita akan tahu kapan baterai perlu diisi ulang.

Berikut link ke file proyek desain PCB ini. Jadi setelah saya menyelesaikan desain, saya membuat file Gerber yang dibutuhkan untuk membuat PCB.

File Gerber:

Kemudian saya memesan PCB dari JLCPCB yang sebenarnya adalah sponsor dari video ini.

Di sini kita cukup drag dan drop file Gerber dan setelah diunggah, kita dapat meninjau PCB kita di penampil Gerber. Jika semuanya baik-baik saja maka kita dapat melanjutkan dan memilih properti yang kita inginkan untuk PCB kita. Dalam hal ini saya memilih warna PCB menjadi biru agar sesuai dengan warna papan Arduino. Dan hanya itu, sekarang kami dapat memesan PCB kami dengan harga yang wajar. Perhatikan bahwa jika ini adalah pesanan pertama Anda dari JLCPCB, Anda bisa mendapatkan hingga 10 PCB hanya dengan $2.

Setelah beberapa hari PCB telah tiba. Kualitas PCB sangat bagus dan semuanya sama persis dengan desainnya.

Merakit PCB

Ok, sekarang kita bisa melanjutkan dan merakit PCB. Saya mulai dengan menyolder pin header jantan ke PCB yang digunakan untuk menghubungkannya ke papan Arduino. Setelah kita menempatkan pin header di sisi bawah, kita dapat menggunakan semacam pelat untuk menahan pin dan membalik papan. Sekarang kita perlu menyolder semuanya ke PCB. Setelah selesai dengan itu, kita dapat melanjutkan dengan koneksi servo yang juga membutuhkan header pin male.

Pada titik ini kita benar-benar dapat memasukkan header pin untuk semua koneksi dan menggunakan metode yang sama untuk membalik PCB dan menyolder semua pin ke sana. Pada akhirnya kita perlu menyolder resistor, kapasitor, dan blok terminal. Dan itu saja, Arduino Mega Shield untuk Robot Semut kami sekarang sudah siap. Sekarang kita cukup memasukkannya ke papan Arduino.

Selanjutnya kita perlu mengatur tegangan output buck converter ke 5V. Kita dapat melakukannya dengan mengatur potensiometer dari buck converter. Anda dapat melihat di sini bahwa saya menambahkan sakelar daya ke input dan menghubungkan baterai 12V ke pin 12V pada PCB yang hanya akan digunakan untuk memantau tegangan baterai.

Ingat bahwa input utama ke PCB harus 5V.

Jadi sekarang kita bisa memasukkan komponen elektronik di antara dua pelat. Sekali lagi ini agak ketat tapi tetap saja kita bisa memasukkan semuanya. Pertama-tama pakai baterai yang saya kencangkan menggunakan selotip, dan di atasnya ada Arduino bersama dengan PCB yang kami buat. Selanjutnya kita bisa menghubungkan transceiver NRF24L01 atau modul Bluetooth saja tergantung jenis komunikasi yang akan kita gunakan. Saya juga memasukkan LED untuk menunjukkan kapan baterai perlu diisi ulang, atau jika voltase turun di bawah 11V volt. Terakhir kita perlu menghubungkan semua servos ke pin servo. Saat melakukan ini, pastikan Anda menuliskan nomor pin yang Anda hubungkan ke setiap servo. Setelah kami menghubungkan semua servo, kami dapat dengan mudah meletakkan penutup melengkung di pelat atas dan kami benar-benar selesai dengan proyek ini.

Kode Hexapod Arduino

Apa yang tersisa untuk dilakukan dalam video ini adalah melihat bagaimana program Arduino bekerja. Karena kodenya sedikit lebih panjang, untuk pemahaman yang lebih baik, saya akan memposting kode sumber program di bagian dengan deskripsi untuk setiap bagian. Dan di akhir artikel ini saya akan memposting source code lengkapnya.

Jadi untuk mengontrol servo kita akan menggunakan perpustakaan Servo dasar dan untuk komunikasi Bluetooth kita perlu menyertakan perpustakaan SoftwareSerial juga. Pertama kita perlu mendefinisikan semua objek servo serta beberapa variabel yang diperlukan untuk program di bawah ini.

#include <Servo.h>
#include <SoftwareSerial.h>

#define trigPin 7
#define echoPin 6
#define ledB 10

SoftwareSerial Bluetooth(12, 9); // Arduino(RX, TX) - HC-05 Bluetooth (TX, RX)

// Create servo object
Servo s24;
Servo s23;
Servo s22;Code language: Arduino (arduino)

Di bagian penyiapan, kita perlu menginisialisasi komunikasi Bluetooth, mode pin untuk sensor ultrasonik, LED dan juga menentukan pin yang terhubung dengan servo.

void setup() {
  Serial.begin(38400);
  Bluetooth.begin(38400); // Default baud rate of the Bluetooth module
  Bluetooth.setTimeout(1);
  delay(20);
  pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output
  pinMode(echoPin, INPUT); // Sets the echoPin as an Input
  pinMode(ledB, OUTPUT);
  // Head
  s15.attach(36, 600, 2400);
  s14.attach(35, 600, 2400);
  s13.attach(34, 600, 2400); //grip
  // Tail
  s5.attach(26, 600, 2400); // Tail
  // Leg 4
  s10.attach(31, 600, 2400);
  s11.attach(32, 600, 2400);
  s12.attach(33, 600, 2400); //rot
  // Leg 5
  s7.attach(28, 600, 2400);
  s8.attach(29, 600, 2400);
  s9.attach(30, 600, 2400); //rot
  // Leg 6
  s1.attach(22, 600, 2400);
  s2.attach(23, 600, 2400);
  s3.attach(24, 600, 2400); //rot
  // Leg 1
  s18.attach(39, 600, 2400);
  s17.attach(38, 600, 2400);
  s16.attach(37, 600, 2400); //rot
  // Leg 2
  s21.attach(42, 600, 2400);
  s20.attach(41, 600, 2400);
  s19.attach(40, 600, 2400); //rot
  // Leg 3
  s24.attach(45, 600, 2400);
  s23.attach(44, 600, 2400);
  s22.attach(43, 600, 2400); //rotCode language: Arduino (arduino)

Kemudian menggunakan fungsi write() kami memindahkan servo ke posisi awal. Di sinilah sebenarnya kita bisa mengkalibrasi servo kita. Pertimbangkan bahwa Anda tidak akan dapat mengatur setiap servo pada posisi yang tepat saat merakit robot, tetapi di sini kita dapat melakukan penyesuaian dan mengetahui nilai awal kita dan dari sana kita dapat memprogram gerakan robot.

// == Move to initial position
  // Head
  s15.write(72);
  s14.write(50);
  s13.write(90); // Grip
  
  s5.write(65); // Tail
  
  // Leg 4
  s10.write(65);
  s11.write(35);
  s12.write(40);
  // Leg 5
  s7.write(80);
  s8.write(50);
  s9.write(25);
  // Leg 6
  s1.write(90);
  s2.write(45);
  s3.write(60);

  // Leg 1
  s18.write(60);
  s17.write(90);
  s16.write(100);
  // Leg 2
  s21.write(50);
  s20.write(85);
  s19.write(75);
  // Leg 3
  s24.write(50);
  s23.write(80);
  s22.write(80);Code language: Arduino (arduino)

Dalam memprogram gerakan hexapod ada beberapa cara yang harus dilakukan, seperti menggunakan kinematika maju atau terbalik. Metode ini mencakup beberapa matematika serius di mana posisi setiap sendi dihitung berdasarkan input untuk posisi akhir tubuh yang diinginkan. Namun, saya memutuskan untuk membuatnya sedikit lebih rumit karena bagaimanapun servos yang saya gunakan tidak cukup baik untuk tugas seperti itu. Itu karena servo saya adalah versi murah dari servo MG996R. Mereka tidak memiliki torsi yang tepat dan tidak selalu diposisikan pada posisi yang diinginkan.

Jadi mari kita lihat bagaimana saya membuat hexapod berjalan. Saya membuat fungsi kustom terpisah untuk menggerakkan setiap kaki. Siklus kaki mencakup dua fase, yang disebut ayunan dan kuda-kuda. Pada fase swing kaki bergerak dari posisi awal ke posisi akhir melalui udara, sedangkan pada fase stance kaki bergerak dari posisi akhir kembali ke posisi awal dengan efektor ujung kaki menyentuh tanah. Dengan cara ini tubuh hexapod akan bergerak maju.

Jadi saya memprogram posisi masing-masing servo secara manual untuk mencapai gerakan ini menggunakan loop utama dan beberapa penghitung.

void moveLeg1() {
  // Swign phase - move leg though air - from initial to final position
  // Rise the leg
  if (i1L1 <= 10) {
    s18.write(60 - i1L1 * 2);
    s17.write(90 - i1L1 * 3);
    i1L1++;
  }
  // Rotate the leg
  if (i2L1 <= 30) {
    s16.write(100 - i2L1);
    i2L1++;

  }
  // Move back to touch the ground
  if (i2L1 > 20 & i3L1 <= 10) {
    s18.write(40 + i3L1 * 2);
    s17.write(60 + i3L1 * 3);
    i3L1++;
  }
  // Stance phase - move leg while touching the ground
  // Rotate back to initial position
  if (i2L1 >= 30) {
    s16.write(70 + i4L1);
    i4L1++;
    l1status = HIGH;
  }
  // Reset the counters for repeating the process
  if (i4L1 >= 30) {
    i1L1 = 0;
    i2L1 = 0;
    i3L1 = 0;
    i4L1 = 0;
    i5L1 = 0;
  }
  // Each iteration or step is executed in the main loop section where there is also a delay time for controlling the speed of movement
}Code language: Arduino (arduino)

Jadi pertama-tama dua servo luar menaikkan kaki dan servo ketiga yang terhubung ke tubuh mulai berputar ke arah tertentu. Ketika servo ketiga 10 langkah sebelum berhenti berputar, kami mulai memindahkan dua servo luar ke belakang pada posisi yang sama untuk menyentuh tanah. Ini melengkapi fase ayunan, atau kaki dipindahkan dari posisi awal ke posisi akhir. Kemudian kami memutar kembali servo ketiga dari posisi akhir ke posisi awal, dan itu melengkapi fase kuda-kuda. Setelah kaki melakukan satu siklus, penghitung diatur ulang dan kaki akan mengulangi siklus berulang kali. Setiap iterasi atau langkah dieksekusi di bagian loop utama di mana ada juga waktu tunda yang mengontrol kecepatan servos. Saya membuat fungsi seperti ini untuk semua kaki lainnya, serta beberapa fungsi tambahan untuk menggerakkan kaki ke arah yang berlawanan untuk mencapai gerakan mundur, kiri dan kanan. Dengan cara yang sama, menggunakan penghitung untuk melacak langkah-langkah, saya memprogram fungsi lainnya, seperti menggerakkan kepala, menggerakkan ekor, mandibula, dan seterusnya.

Jadi misalnya jika kita ingin menggerakkan robot ke depan, kita perlu memanggil enam fungsi custom moveLeg() yang akan terus berulang di loop utama.

// Move forward
  if (m == 2) {
    moveLeg1();
    moveLeg3();
    moveLeg5();
    if (l1status == HIGH) {
      moveLeg2();
      moveLeg4();
      moveLeg6();
    }
  }Code language: Arduino (arduino)

Anda dapat melihat bahwa ketiga kaki tersebut diimbangi, jadi ketika kaki nomor 1 3 dan 5 berada dalam fase ayunan, tiga kaki lainnya, 2, 4 dan 6 berada dalam fase kuda-kuda. Jika kita ingin bergerak ke kiri, kita memanggil fungsi moveLeft() yang sesuai.

Perintah ini sebenarnya berasal dari modul Bluetooth atau aplikasi Android yang dibuat khusus dari ponsel cerdas kita.

// Check for incoming data
  if (Bluetooth.available() > 0) {
    dataIn = Bluetooth.read();  // Read the dataCode language: Arduino (arduino)

Aplikasi Android Robot Ant Arduino

Mari kita lihat aplikasinya sekarang dan lihat jenis data apa yang sebenarnya dikirim ke Arduino. Saya membuat aplikasi menggunakan aplikasi online MIT App Inventor dan begini cara kerjanya.

Jadi grafik aplikasi sebenarnya adalah gambar yang saya buat dan ditempatkan sebagai tombol. Di bagian bawah kami memiliki penggeser untuk mengontrol kecepatan robot dan di bagian atas kami memiliki tombol untuk menghubungkan dengan modul Bluetooth.

Mari kita lihat program atau blok di balik aplikasi.

Jadi misalnya jika kita mengklik tombol Forward, blok-blok pada pernyataan “if” akan dieksekusi. Itu berarti kami akan mengirimkan nomor 2 ke Arduino dan itu akan menjalankan serangkaian fungsi bergerak maju. Pada saat yang sama kita dapat melihat bahwa kita mengubah gambar tombol ke versi lain yang disorot dari gambar yang sama. Jika kita menekan lagi tombol yang sama, maka blok-blok pada pernyataan “else” akan tereksekusi dan akan mengirimkan angka 0 ke Arduino yang akan mereset semua counter dan memindahkan robot ke posisi awalnya. Kami juga mengatur kembali gambar awal tombol itu. Jadi saya menggunakan prinsip yang sama untuk semua tombol lainnya.

Berikut adalah file unduhan proyek MIT App Inventor di atas, serta Aplikasi Android yang siap dipasang di ponsel cerdas Anda:

Mari kita lihat dua fungsi lagi di program Arduino dan itu adalah monitor tegangan baterai dan sensor ultrasonik.

// Monitor the battery voltage
    int sensorValue = analogRead(A3);
    float voltage = sensorValue * (5.00 / 1023.00) * 2.9; // Convert the reading values from 5v to suitable 12V i
    Serial.println(voltage);
    // If voltage is below 11V turn on the LED
    if (voltage < 11) {
      digitalWrite(ledB, HIGH);
    }
    else {
      digitalWrite(ledB, LOW);
    }Code language: Arduino (arduino)

Jadi jika tegangan baterai lebih rendah dari 11 volt kita akan menyalakan LED dan jika sensor ultrasonik mendeteksi objek lebih dekat dari 40 cm, robot akan bersiap untuk menyerang.

// Get the distance from the ultrasonic sensor
    if (getDistance() > 40) {
      att = 0;
    }
    if (getDistance() <= 40) {
      att = 1;
      dataIn = 99;
    }Code language: Arduino (arduino)

Jika tidak ada objek lagi di depan maka akan menghentikan serangan dan jika objek masih ada dan lebih dekat ke kepala robot akan menyerang.

// If there is an object in front of the sensor prepare for attack
  if (att == 1) {
    prepareAttack();
    if (aStatus == HIGH) {
      while (a == 0) {
        delay(2000);
        a = 1;
      }
      if (getDistance() > 30) {
        att = 2;
        a = 0;
        aStatus = LOW;
        initialPosHead();
      }
      if (getDistance() < 30) {
        att = 3;
        a = 0;
        aStatus = LOW;
        initialPosHead();
      }
    }
  }
  // If there is no longer object in front, dismiss the attack
  if (att == 2) {
    dismissAttack();
    if (aStatus == HIGH) {
      dataIn = 0;
      att = 0;
    }
  }
  // If there is closer to the sensor attack
  if (att == 3) {
    attack();
    if (attStatus == HIGH) {
      while (aa == 0) {
        delay(2000);
        aa = 1;
      } attStatus = LOW;
    }
    if (aStatus == HIGH) {
      while (a == 0) {
        delay(2000);
        a = 1;
      }
      dataIn = 0;
      att = 0;
      initialPosHead();
    }
  }Code language: Arduino (arduino)

Jadi cukup sekian untuk video ini.

Di sini Anda dapat mengunduh kode lengkap untuk proyek Arduino Hexapod ini:

Perhatikan bahwa jika Anda memutuskan untuk membangun proyek ini, Anda harus siap menghadapi beberapa tantangan. Masalah terbesar bagi saya adalah buruknya kinerja servos yang saya gunakan. Saya harap Anda menikmati video ini dan belajar sesuatu yang baru. Jangan ragu untuk mengajukan pertanyaan apa pun di bagian komentar di bawah dan periksa Koleksi Proyek Arduino saya.


Proses manufaktur

  1. Robot Raspberry Pi dikendalikan melalui Bluetooth
  2. Hambatan Menghindari Robot Dengan Motor Servo
  3. Robot Pengikut Baris
  4. Mengontrol Robot Roomba Dengan Arduino Dan Perangkat Android
  5. Robot yang Dikendalikan Bicara
  6. Robot Piano Terkendali Arduino:PiBot
  7. Littlearm 2C:Membangun Lengan Robot Arduino Cetak 3D
  8. Robot Asisten Rumah Otonom
  9. Kontrol Lengan Robot Arduino dengan Aplikasi Android
  10. Robot untuk navigasi dalam ruangan yang sangat keren