Isi kandungan:

Lengan Robotik Dengan Modul Zio Bahagian 2: 11 Langkah
Lengan Robotik Dengan Modul Zio Bahagian 2: 11 Langkah

Video: Lengan Robotik Dengan Modul Zio Bahagian 2: 11 Langkah

Video: Lengan Robotik Dengan Modul Zio Bahagian 2: 11 Langkah
Video: “Duduk Macam Lelaki” – Netizen Terkejut Lihat Rupa Terkini Anak Perempuan Sharifah Shahira 2024, Julai
Anonim
Lengan Robotik Dengan Modul Zio Bahagian 2
Lengan Robotik Dengan Modul Zio Bahagian 2

Dalam tutorial hari ini, kami akan menggunakan semua 4 servos dan pengawal tanpa wayar PS2 untuk mengawal lengan robot.

Catatan blog ini adalah sebahagian daripada Zio Robotics Series.

Pengenalan

Di blog sebelumnya, kami menyiarkan tutorial Bahagian 1 mengenai cara mengawal Lengan Robotik menggunakan modul Zio. Bahagian 1 kebanyakan tertumpu pada pengendalian Robotic Arm's Claw anda secara automatik untuk dibuka dan ditutup.

Dalam tutorial hari ini, kami tidak akan mencatatnya dengan memasukkan alat kawalan PS2 Wireless untuk mengawal Lengan Robotik. Untuk projek ini, kami akan menggunakan 4 servo.

Langkah 1: Gambaran Keseluruhan Projek

Tahap Kesukaran:

Zio Padawan

Sumber yang berguna:

Anda harus mempunyai pemahaman asas mengenai cara memasang papan pengembangan Zio. Dalam tutorial ini, kami menganggap bahawa papan pengembangan anda sudah dikonfigurasi dan siap untuk disiapkan. Sekiranya anda belum mengkonfigurasi papan anda, lihat tutorial Panduan Mula Zio Qwiic kami di bawah untuk memulakan:

Panduan Mula Qioic Zio Zuino M UNO

Langkah 2: Skematik

Skematik
Skematik

Berikut adalah Skema Pendawaian Projek Lengan Robotik Bahagian 2 serta gambarajah Pengawal PS2 yang diperlukan untuk memahami bahagian pengekodan anda.

Langkah 3: Diagram Pengawal PS2

Diagram Pengawal PS2
Diagram Pengawal PS2

Langkah 4: Penyediaan Sambungan Modul Zio

Di bawah ini adalah sambungan modul Zio kami untuk disiapkan dengan Robotic Arm. Menyambungkan semua modul bersama-sama cukup mudah dan tidak memerlukan masa lebih dari 10 minit untuk disiapkan.

Langkah 5: Sambungkan Robot Arm Servo ke Zio 16 Servo Controller

Sambungkan Robotic Arm Servo ke Zio 16 Servo Controller
Sambungkan Robotic Arm Servo ke Zio 16 Servo Controller

Langkah 6: Sambungkan 16 Servo anda ke DC / DC Booster dan Tetapkannya pada 6.0V

Sambungkan 16 Servo anda ke DC / DC Booster dan Tetapkannya pada 6.0V
Sambungkan 16 Servo anda ke DC / DC Booster dan Tetapkannya pada 6.0V

Kami menggunakan Booster DC / DC untuk meningkatkan dan menyesuaikan voltan bekalan bateri ke 6.0.

Gunakan potensiometer pada DC Booster untuk menyesuaikan voltan sehingga anda mendapat 6.0. Tekan butang Masuk / Keluar sehingga paparan menunjukkan 6.0. Anda perlu membekalkan kuasa (bateri 3.7V) terlebih dahulu ke DC / DC Booster anda untuk menyesuaikan voltan.

Langkah 7: Sambungkan Zuino M Uno ke Zio 16 Servo Controller

Sambungkan Zuino M Uno ke Pengawal Servo Zio 16
Sambungkan Zuino M Uno ke Pengawal Servo Zio 16

Qwiic sambungkan Zuino M Uno ke pengawal Zio Servo dengan kabel qwiic.

Langkah 8: Menyambungkan Uno ke Penerima PS2

Menyambung Uno ke Penerima PS2
Menyambung Uno ke Penerima PS2

Berikut adalah Rajah Pin Sambungan. Anda memerlukan 5 Kabel Jumper Lelaki hingga Wanita untuk bahagian ini.

Langkah 9: Kod untuk Lengan Robotik

Kami akan menggunakan Perpustakaan Arduino PS2 untuk membuat kod Pengawal Tanpa Wayar PS2 kami untuk bekerja dengan Lengan Robotik kami. Anda boleh mencari dan memuat turun kod sumber untuk projek Robotic Arm Part 2 ini di halaman Github kami.

Muat turun dan pasang perpustakaan berikut dan simpan di folder perpustakaan Arduino IDE tempatan anda:

  • Perpustakaan Pemandu Servo Adafruit PWM
  • Perpustakaan PS2 Arduino

Untuk memasang perpustakaan buka Arduino IDE anda, pergi ke tab Sketch, pilih Include Library -> Add. Zip Library. Pilih perpustakaan di atas untuk disertakan di IDE anda.

Arduino mempunyai panduan berguna mengenai cara memasang perpustakaan ke Arduino IDE anda. Lihat di sini!

Langkah 10: Jalankan Kod Anda

Jalankan Kod Anda
Jalankan Kod Anda

Buka Arduino IDE. Di bawah Fail> Contoh> PS2_Arduino_Library, Pilih PS2X_Servo

Catatan: Sebelum anda dapat mengawal lengan Robotik anda dengan Pengawal PS2, periksa langkah-langkah berikut: Hidupkan Pengawal PS2 anda. Pastikan LED Mode menyala. Sekiranya tidak, tekan butang Mode pada alat kawalan anda. Setelah melakukan perkara di atas, anda perlu menekan butang reset pada Zuino M Uno anda agar ia membaca tetapan pengawal anda. Anda perlu Tekan L1 dan Joystick untuk menggerakkan Robotic Arm anda.

  • Joystick Kiri mengawal lenturan Lengan ke atas atau ke bawah
  • Joystick Kanan mengawal Claw untuk membuka atau menutup dan memutar cakar ke kiri atau kanan.

Langkah 11: Penjelasan Kod

Penggunaan perpustakaan PS2X Arduino adalah mudah, hanya memerlukan inisialisasi, persediaan, dan kemudian perintah baca.

Untuk menetapkan sambungan untuk Pengawal PS2 anda dengan Uno anda, berikut adalah pin yang perlu anda tentukan dalam kod anda:

/ ************************************************* *************** * pin yang disambungkan ke pengawal PS2: * - lajur 1e: asal * - 2e colmun: Stef? * ganti nombor pin dengan yang anda gunakan ****************************************** ********************** / # tentukan PS2_DAT 13 // 14 #tentukan PS2_CMD 11 // 15 # tentukan PS2_SEL 10 // 16 # tentukan PS2_CLK 12 // 17

Kami telah mengganti pin dengan pin yang kami gunakan untuk menyambung ke Uno kami seperti yang digariskan pada Pin Diagram di atas.

/ ************************************************* **************** pilih mod pengawal PS2: * - tekanan = bacaan analog push-butttons * - rumble = motor rumbling * unmentment 1 dari baris untuk setiap pemilihan mod ** ************************************************** ************ / // # tentukan tekanan benar # tentukan tekanan salah // # tentukan rumble true # tentukan rumble false

Di sini kami mendefinisikan mod PS2 untuk tekanan dan bergemuruh sebagai salah. Kami mengulas yang tidak kami gunakan.

Kami hanya akan menggunakan arahan Joystick Controller dan L1 untuk mengawal pergerakan Lengan Robotik kami.

gelung void () {/ * Anda mesti Membaca Gamepad untuk mendapatkan nilai baru dan menetapkan nilai getaran ps2x.read_gamepad (on / off motor kecil, kekuatan motor yang lebih besar dari 0-255) jika anda tidak mengaktifkan rumble, gunakan ps2x.read_gamepad (); tanpa nilai Anda harus memanggilnya sekurang-kurangnya sekali sesaat * / if (ralat == 1) // langkau gelung jika tiada pengawal dijumpai kembali; lain {// DualShock Controller ps2x.read_gamepad (false, getar); // baca pengawal dan tetapkan motor besar untuk berputar pada kelajuan 'getaran' jika (ps2x. Button (PSB_START)) // akan BENAR selagi butang ditekan Serial.println ("Mula ditahan"); if (ps2x. Button (PSB_SELECT)) Serial.println ("Pilih sedang ditahan"); getar = ps2x. Analog (PSAB_CROSS); // ini akan menetapkan kelajuan getaran motor besar berdasarkan seberapa keras anda menekan butang biru (X) jika (ps2x. Butang (PSB_L1) || ps2x. Butang (PSB_R1)) {// mencetak nilai tongkat jika salah satunya adalah BENAR RY_Value = ps2x. Analog (PSS_RY); RX_Value = ps2x. Analog (PSS_RX); LY_Value = ps2x. Analog (PSS_LY); LX_Value = ps2x. Analog (PSS_LX); Serial.print ("Nilai Stick:"); Serial.print (RX_Value); Cetakan bersiri (""); Serial.print (RY_Value); Cetakan bersiri (""); Serial.print (LY_Value); Cetakan bersiri (""); Serial.println (LX_Value);

Kod di bawah ini adalah di mana kita membuat kod servo kita yang mengawal lengan robot kita yang kita sertakan dalam fungsi panggilan di bawah butang ps2x. (PSB_L1) || butang ps2x. (PSB_R1).

Anda perlu menekan butang L1 atau R1 bersama Joystick untuk mengawal Lengan Robotik anda.

Servos kawalan Left Joystick 2 dan 3 untuk bahagian Lengan - kendalikan bahagian atas dan bawah lengan yang membongkok, sementara servo Kanan Joystick Kanan 0 dan 1 dari Claw Arm Robot untuk membuka atau menutup, dan untuk memutar kiri atau kanan.

SERVO 0, 1 - Claw SERVO 2, 3 - Lengan

Anda boleh membuat perubahan pada nilai di bahagian ini untuk mengawal tahap sudut Lengan Robotik anda:

pulselen0 = peta (RY_Value, 0, 127, SERVOMIN0, SERVOMAX0); pulselen1 = peta (RX_Value, 0, 127, SERVOMIN0, SERVOMAX0); pulselen2 = peta (LY_Value, 0, 127, SERVOMIN2, SERVOMAX2); pulselen3 = peta (LX_Value, 0, 255, SERVOMIN3, SERVOMAX3);

Disyorkan: