Bagaimana Membuat Lengan Robotik Arduino dan Bluetooth yang Dikendalikan DIY?

Pada abad terakhir, Robotik adalah bidang penyelidikan yang paling baru muncul. Robot telah mengendalikan hampir semua perkara yang biasa dilakukan oleh manusia. Kita dapat melihat robot autonomi melakukan pelbagai tugas dalam masyarakat kita. Terdapat beberapa Robot kawalan jauh juga membantu kami menjalankan pelbagai operasi. Dari membuat litar Nano dalam bidang kejuruteraan hingga melakukan pembedahan rumit dalam bidang perubatan, robot lebih dipercayai daripada manusia.



Lengan Robotik

Dalam projek ini, kita akan membuat Robotic Arm yang akan dikendalikan oleh mikrokontroler Arduino. Ia akan dikendalikan melalui Bluetooth dengan bantuan aplikasi alat kawalan jauh android.



Bagaimana Mengawal Lengan Robotik Menggunakan Arduino?

Sekarang seperti yang kita tahu abstrak projek kita. Marilah kita mengumpulkan lebih banyak maklumat mengenai litar dan mula membina lengan robotik Bluetooth dan mengawalnya melalui Bluetooth.



Langkah 1: Mengumpulkan Komponen

Pendekatan terbaik untuk memulakan sesuatu projek adalah dengan membuat senarai komponen yang lengkap. Ini bukan sahaja cara pintar untuk memulakan projek tetapi juga menyelamatkan kita dari banyak kesulitan di tengah-tengah projek. Senarai komponen projek ini diberikan di bawah:



  • Pemancar Bersiri Bluetooth Tanpa Wayar HC-05
  • Penyesuai 6V
  • Wayar Pelompat
  • Papan roti

Langkah 2: Mengkaji Komponen

Oleh kerana kita mempunyai senarai lengkap semua komponen yang akan kita gunakan, mari kita melangkah selangkah ke depan dan menjalani kajian ringkas mengenai semua komponen.

Arduino Nano adalah papan mikrokontroler yang menjalankan pelbagai operasi dalam litar yang berbeza. Ia memerlukan a Kod C yang memberitahu lembaga apa tugas yang harus dilakukan dan bagaimana. Ia mempunyai 13 pin I / O digital yang bermaksud bahawa kita dapat mengendalikan 13 peranti yang berbeza. Arduino Nano mempunyai fungsi yang sama persis dengan Arduino Uno tetapi dalam ukuran yang agak kecil. Pengawal mikro pada papan Arduino Nano adalah ATmega328p. Sekiranya anda ingin mengawal lebih daripada 13 peranti, gunakan Arduino Mega.

Arduino Nano



Pemancar Bersiri Bluetooth Tanpa Wayar HC-05 : Kami memerlukan komunikasi tanpa wayar dalam projek ini, jadi kami akan menggunakan teknologi Bluetooth dan untuk modul yang akan digunakan adalah HC-05. Modul ini mempunyai beberapa kadar baud yang dapat diprogramkan tetapi kadar baud lalai adalah 9600 bps. Ia dapat dikonfigurasikan sebagai master atau slave, sedangkan modul lain HC-06 hanya dapat berfungsi dalam mode slave. Modul ini mempunyai empat pin. Satu untuk VCC (5V) dan tiga lagi untuk GND, TX, dan RX. Kata laluan lalai modul ini adalah 1234 atau 0000 . Sekiranya kita ingin berkomunikasi antara dua mikrokontroler atau berkomunikasi dengan mana-mana peranti dengan fungsi Bluetooth seperti Telefon atau Laptop HC-05 membantu kita untuk melakukannya. Beberapa aplikasi Android sudah tersedia yang menjadikan proses ini jauh lebih mudah.

Modul Bluetooth HC-05

Yang khas Lengan Robotik terdiri daripada beberapa segmen dan biasanya mempunyai 6 sendi di dalamnya. Ia mengandungi minimum 4 motor stepper yang dikendalikan oleh komputer. Motor stepper berbeza dengan motor DC yang lain. Mereka bergerak tepat dalam kenaikan tepat. Lengan robotik ini digunakan untuk menjalankan pelbagai operasi. Kita boleh mengendalikannya secara manual melalui alat kawalan jauh atau kita boleh memprogramnya agar berfungsi secara autonomi.

Lengan Robotik.

Langkah 3: Menyusun Komponen

Sekarang seperti yang kita ketahui mengenai kerja semua komponen utama yang digunakan. Mari kita mula memasangkannya dan membuat litar untuk membina lengan robot yang dikendalikan dengan jarak jauh.

  1. . Pasang papan Arduino Nano di papan roti. Arduino akan digerakkan melalui wayar positif dan negatif penyesuai.
  2. Letakkan modul Bluetooth di papan roti juga. Nyalakan modul Bluetooth melalui Arduino. Sambungkan pin Tx modul Bluetooth ke pin Rx pada papan Arduino Nan dan sambungkan pin Rx modul Bluetooth ke pin Tx pada papan Arduino Nano.
  3. Seperti yang kita ketahui bahawa terdapat 4 motor stepper. Masing-masing mempunyai nama teknikal. Mereka dipanggil Siku , Bahu , Pangkalan, dan Pencengkam . Vcc dan Ground semua motor akan umum dan disambungkan ke positif dan negatif penyesuai 6V. Pin Isyarat keempat-empat motor akan disambungkan ke pin5, pin6, pin9, dan pin11 dari Arduino Nano.
  4. Pastikan sambungan yang anda buat mengikut gambarajah litar berikut.

    Rajah Litar

Langkah 4: Bermula dengan Arduino

Sekiranya anda belum biasa dengan Arduino IDE, jangan risau kerana prosedur langkah demi langkah untuk mengatur dan menggunakan Arduino IDE dengan papan mikrokontroler dijelaskan di bawah.

  1. Muat turun versi terbaru dari Arduino IDE dari Arduino.
  2. Sambungkan papan Arduino Nano anda ke komputer riba anda dan buka panel kawalan. Kemudian, klik pada Perkakasan dan Bunyi . Sekarang, klik pada Peranti dan Pencetak. Di sini, cari port yang menghubungkan papan mikrokontroler anda. Dalam kes saya adalah COM14 tetapi berbeza pada komputer yang berbeza.

    Mencari Pelabuhan

  3. Klik pada menu Alat dan tetapkan papan ke Arduino Nano dari menu lungsur turun.

    Menetapkan Papan

  4. Dalam menu Alat yang sama, tetapkan port ke nombor port yang anda perhatikan sebelumnya di Peranti dan Pencetak .

    Menetapkan Pelabuhan

  5. Dalam menu Alat yang sama, Tetapkan Pemproses ke ATmega328P (Pemuat Boot Lama).

    Pemproses

  6. Untuk menulis kod untuk mengendalikan motor servo, kami memerlukan perpustakaan khas yang akan membantu kami menulis beberapa fungsi untuk motor servo. Perpustakaan ini dilampirkan bersama kodnya, di pautan di bawah. Untuk memasukkan perpustakaan, klik pada Lakarkan> Sertakan Perpustakaan> Tambah ZIP. Perpustakaan.

    Sertakan Perpustakaan

  7. Muat turun kod yang dilampirkan di bawah dan tampalkannya ke Arduino IDE anda. Klik pada muat naik butang untuk membakar kod pada papan mikrokontroler anda.

    Muat naik

Untuk memuat turun kod, tekan di sini.

Langkah 5: Memuat turun Aplikasi

Seperti sekarang kita telah mengumpulkan keseluruhan litar dan memuat naik kod tersebut di papan mikrokontroler. mari memuat turun aplikasi mudah alih yang akan berfungsi sebagai alat kawalan jauh untuk lengan robot. Aplikasi percuma boleh didapati di gedung permainan google. Nama aplikasinya adalah Kawalan Robot Lengan Kecil . Untuk membuat sambungan Bluetooth, hidupkan Bluetooth pada telefon bimbit anda. Pergi ke tetapan dan pasangkan telefon bimbit anda dengan modul HC-05. Setelah melakukan ini, tekan butang Bluetooth di aplikasi. Sekiranya bertukar menjadi hijau, ini bermaksud bahawa aplikasi kini disambungkan dan siap untuk mengendalikan lengan robot. Terdapat slaid untuk mengatur operasi lengan robot seperti yang dikehendaki.

Aplikasi

Langkah 6: Memahami Kod

Kodnya dikomentari dengan baik dan senang difahami. Namun, ia dijelaskan secara ringkas di bawah.

1. Pada mulanya, perpustakaan disertakan untuk menulis kod untuk mengendalikan motor servo. Perpustakaan lain matematik.h disertakan untuk melakukan operasi matematik yang berbeza dalam kod. Empat objek juga diinisialisasi untuk digunakan untuk empat motor servo.

#include // arduino library #include // standard c library #define PI 3.141 Servo baseServo; Bahu servoServo; Servo sikuServo; Servo gripperServo; arahan int;

2. Kemudian struktur dinyatakan mengambil nilai untuk motor servo dasar, bahu, dan siku.

struct jointAngle {// menyatakan struktur int pangkalan; bahu int; siku int; };

3. Selepas ini, beberapa pemboleh ubah diinisialisasi untuk menyimpan cengkaman, kelewatan, dan kedudukan motor servo yang diinginkan. kecepatan ditetapkan menjadi 15, dan objek dibuat untuk mengambil nilai sudut dalam struktur.

int dikehendakiGrip; int gripperPos; int dikehendakiDelay; int servoSpeed ​​= 15; int bersedia = 0; struktur sendiAngle dikehendakiAngle; // sudut servo yang dikehendaki

Empat. persediaan tidak sah () adalah fungsi yang digunakan untuk menetapkan pin Arduino sebagai INPUT atau OUTPUT. Di sini dalam fungsi ini, kami telah menyatakan bahawa pin motor akan disambungkan ke pin Arduino mana. Ia juga memastikan bahawa Arduino tidak membaca input bersiri terlalu lama. Kedudukan Awal dan Baud Rate juga ditetapkan dalam fungsi ini. Baud Rate adalah kelajuan yang mana papan mikrokontroler akan berkomunikasi dengan servos dan modul Bluetooth yang terpasang.

persediaan tidak sah () {Serial.begin (9600); baseServo.attach (9); // melekatkan servo asas pada pin 9 ke bahu objek servoServo.attach (10); // melekatkan servo bahu pada pin 9 ke siku objek servoServo.attach (11); // melekatkan servo siku pada pin 9 pada gripper objek servoServo.attach (6); // pasangkan servo gripper pada pin 9 ke objek servo Serial.setTimeout (50); // memastikan arduino tidak membaca siri terlalu lama Serial.println ('bermula'); baseServo.write (90); // kedudukan awal servos bahuServo.write (150); elbowServo.write (110); bersedia = 0; }

5. servoParallelControl () adalah fungsi yang digunakan untuk mengesan kedudukan lengan robot saat ini dan menggerakkannya mengikut arahan yang diberikan melalui aplikasi mudah alih. Sekiranya kedudukan semasa kurang dari yang sebenarnya, lengan akan bergerak ke atas dan sebaliknya. Fungsi ini akan mengembalikan nilai kedudukan semasa dan kelajuan servo.

int servoParallelControl (int thePos, Servo theServo, int theSpeed) {int startPos = theServo.read (); // baca pos semasa newPos = startPos; // int theSpeed ​​= kelajuan; // tentukan di mana pos berkenaan dengan perintah // jika kedudukan sekarang kurang dari yang sebenarnya bergerak naik jika (startPos (thePos + 5)) {newPos = newPos - 1; theServo.write (newPos); kelewatan (the Speed); pulangan 0; } lain {pulangan 1; }}

6. gelung kosong () adalah fungsi yang berjalan berulang kali dalam satu gelung. Fungsi ini membaca data yang datang secara bersiri dan menyimpan sudut setiap servo dalam struktur. Pada mulanya, status semua servos ditetapkan ke sifar. Berikut adalah fungsi servoParallelControl () dipanggil dan parameter dilalui di dalamnya. fungsi ini akan mengembalikan nilai dan ia akan disimpan dalam pemboleh ubah status.

gelung void () {if (Serial.available ()) {siap = 1; dikehendakiAngle.base = Serial.parseInt (); dikehendakiAngle.shoulder = Serial.parseInt (); dikehendakiAngle.elbow = Serial.parseInt (); dikehendakiGrip = Serial.parseInt (); dikehendakiDelay = Serial.parseInt (); if (Serial.read () == ' n') {// jika bait terakhir adalah 'd' maka berhenti membaca dan laksanakan perintah 'd' bermaksud 'selesai' Serial.flush (); // hapus semua perintah lain yang ditumpuk dalam penyangga // hantar penyelesaian perintah Serial.print ('d'); }} status int1 = 0; status int2 = 0; status int3 = 0; status int4 = 0; int selesai = 0; sementara (selesai == 0 && siap == 1) {// pindahkan servo ke status kedudukan yang diinginkan1 = servoParallelControl (dikehendakiAngle.base, baseServo, dikehendakiDelay); status2 = servoParallelControl (dikehendakiAngle.shoulder, bahuServo, dikehendakiDelay); status3 = servoParallelControl (dikehendakiAngle.elbow, sikuServo, dikehendakiDelay); status4 = servoParallelControl (dikehendakiGrip, gripperServo, dikehendakiDelay); jika (status1 == 1 & status2 == 1 & status3 == 1 & status4 == 1) {selesai = 1}} // akhir sementara}

Sekarang, ini adalah keseluruhan prosedur membuat lengan robot. Setelah membakar kod dan memuat turun aplikasinya, robot akan berfungsi dengan baik apabila slaid pada aplikasi dipindahkan. Anda juga boleh memprogram lengan agar berfungsi secara autonomi untuk melaksanakan tugas yang diinginkan.