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

Kit Lengan Robot 3‑Axis Terprogram – Kontrol Lokal & Jarak Jauh dengan Arduino dan Bluetooth

Komponen dan Perlengkapan

Kit Lengan Robot 3‑Axis Terprogram – Kontrol Lokal & Jarak Jauh dengan Arduino dan Bluetooth
Arduino Mega 2560
×1
SainSmart DIY 3-Axis Control Palletizing Robot Arm Model for Arduino UNO MEGA2560
×1
MeArm DIY Robot Arm Kit
×1
Kit Lengan Robot 3‑Axis Terprogram – Kontrol Lokal & Jarak Jauh dengan Arduino dan Bluetooth
HC-06 Bluetooth Module
×1
Kit Lengan Robot 3‑Axis Terprogram – Kontrol Lokal & Jarak Jauh dengan Arduino dan Bluetooth
Adafruit RGB Backlight LCD - 16x2
×1
Kit Lengan Robot 3‑Axis Terprogram – Kontrol Lokal & Jarak Jauh dengan Arduino dan Bluetooth
Android device
×1
Kit Lengan Robot 3‑Axis Terprogram – Kontrol Lokal & Jarak Jauh dengan Arduino dan Bluetooth
Rotary potentiometer (generic)
10Kohm
×4
Kit Lengan Robot 3‑Axis Terprogram – Kontrol Lokal & Jarak Jauh dengan Arduino dan Bluetooth
SparkFun Pushbutton switch 12mm
×3
Kit Lengan Robot 3‑Axis Terprogram – Kontrol Lokal & Jarak Jauh dengan Arduino dan Bluetooth
LED (generic)
RED, BLUE, GREEN, YELLOW
×4

Aplikasi dan Layanan Online

Kit Lengan Robot 3‑Axis Terprogram – Kontrol Lokal & Jarak Jauh dengan Arduino dan Bluetooth
Arduino IDE
Kit Lengan Robot 3‑Axis Terprogram – Kontrol Lokal & Jarak Jauh dengan Arduino dan Bluetooth
MIT App Inventor 2

Tentang Proyek Ini

Kit Lengan Robot 3‑Axis Terprogram – Kontrol Lokal & Jarak Jauh dengan Arduino dan Bluetooth

Tujuan tutorial ini adalah untuk mengembangkan langkah demi langkah proyek untuk mengontrol dan memprogram Lengan Robot, mensimulasikan fungsi dasar robot industri.

Langkah 1: Spesifikasi

Kit Lengan Robot 3‑Axis Terprogram – Kontrol Lokal & Jarak Jauh dengan Arduino dan Bluetooth

Robot memiliki dua fungsi dasar:

Karakteristik utama:

Langkah 2: Proyek

Kit Lengan Robot 3‑Axis Terprogram – Kontrol Lokal & Jarak Jauh dengan Arduino dan Bluetooth

Diagram blok pada langkah sebelumnya menunjukkan "Daftar Bahan" yang akan digunakan dalam proyek ini.

Saya memilih Arduino MEGA untuk tidak khawatir tentang jumlah port Arduino yang tersedia (I/O). UNO misalnya akan bekerja tanpa masalah tetapi metode ekspansi port harus digunakan. Ada beberapa opsi yang dapat dengan mudah ditemukan di internet, sebagai contoh decoder 74138.

Di sini, prototipe pertama sedang diprogram dalam "mode lokal".

Untuk jaringan Bluetooth, HC-06 akan digunakan.

Aplikasi Android yang digunakan untuk "mode jarak jauh", dikembangkan menggunakan alat MIT Appinventor2, yang merupakan platform tunggal yang kuat untuk jenis aplikasi ini berdasarkan perangkat Android. Aplikasi tersedia untuk diunduh secara gratis di Google store: MJRoBot Arduino Robot Arm Control.

Video di bawah ini dapat memberikan ide tentang bagaimana proyek akhir dengan pemrograman jarak jauh seharusnya:

Langkah 3: Pengembangan Proyek

Kit Lengan Robot 3‑Axis Terprogram – Kontrol Lokal & Jarak Jauh dengan Arduino dan Bluetooth
Kit Lengan Robot 3‑Axis Terprogram – Kontrol Lokal & Jarak Jauh dengan Arduino dan Bluetooth

Lengan Robot dapat diklasifikasikan berdasarkan jumlah "sendi" atau "Derajat Kebebasan" (DOF) yang dimilikinya.

Langkah 4: Rangkaian

Kit Lengan Robot 3‑Axis Terprogram – Kontrol Lokal & Jarak Jauh dengan Arduino dan Bluetooth

Motor servo akan digunakan untuk menggerakkan sendi, terhubung langsung ke Arduino. Perhatikan tidak jarang melihat "Stepper Motors" digunakan di basis untuk torsi dan presisi yang lebih besar. Pemilihan servo yang tepat sangat penting (ada servo Cina murah yang sangat buruk konstruksinya seperti MG995, yang sayangnya adalah yang datang dengan SanSmart 3DOF AARM saya). Namun untuk tujuan proyek ini bekerja baik.

Daya DC untuk servo harus dipisahkan dari Arduino dan komponen lain. Sumber daya eksternal 5 atau 6V seharusnya bekerja tanpa masalah (periksa DataSheet servo Anda untuk memverifikasi rentang tegangan yang tepat). Praktik umum juga menggunakan kapasitor 470uF antara VCC dan GND untuk meminimalkan kebisingan yang dihasilkan oleh motor DC di dalam servo. Pastikan untuk menyambungkan semua "Grounds" (Sumber daya eksternal dengan pin GND Arduino).

Jika servo mengalami masalah dan bergetar banyak, buat penyesuaian pada "delays" dalam kode Anda. Penting agar servo memiliki waktu untuk mencapai titik tertentu sebelum menerima perintah baru. Juga layak untuk memeriksa apakah servo adalah digital atau analog, karena meskipun secara mekanis serupa, digital bekerja dengan frekuensi 300Hz sementara analog, 50Hz. Pustaka standar Arduino "Servo.h" dikembangkan untuk servo analog dan dapat dimodifikasi jika diperlukan, untuk berfungsi lebih baik dengan servo digital.

Gambar di atas menunjukkan rangkaian lengkap.

Langkah 5: Kode

Proyek ini tidak rumit, tetapi memiliki banyak variabel. Yang paling bijaksana adalah untuk secara jelas mendefinisikannya dan memberikan komentar pada satu file:

ArmDefine.h

File ini juga harus menetapkan sudut minimum, maksimum, dan awal servo. Kode yang disertakan dalam tutorial ini, memiliki dua set parameter untuk lengan robot yang saya uji dalam proyek saya (tentu saja hanya satu grup konstanta yang harus digunakan):

// MeArm 4-DOF #define minGrip 15 #define minBase 0 #define minShou 60 #define minElbw 60 #define maxGrip 45 #define maxBase 170 #define maxShou 180 #define maxElbw 150 #define midGrip 30 #define midBase 87 #define midShou 138 #define midElbw 100 /* SS 3-DOF #define minGrip 75 #define minBase 5 #define minShou 5 #define minElbw 0 #define maxGrip 125 #define maxBase 150 #define maxShou 155 #define maxElbw 0 #define midGrip 100 #define midBase 90 #define midShou 90 #define midElbw 0 */ 

Setiap jenis lengan memiliki set parameter yang berbeda dan penting bagi Anda untuk menemukan yang tepat untuk lengan Anda. Yang saya sarankan adalah bahwa awalnya potentiometer (pots) tetap di titik tengahnya dan Mapping output PWM diatur ke nilai default: Max = 255, Min = 0 dan Mid = 126 ("#defines" di atas). Kemudian, mulai memvariasi pots (satu per satu) dan ikuti di Serial Monitor (atau LCD) apa yang harus menjadi nilai minimum dan maksimum di mana lengan bekerja dengan baik. Itu akan menjadi nilai akhir yang akan digunakan untuk pengaturan (ubah nilai asli saya di ArmDefine.h).

Untuk "merekam" set koordinat (atau langkah) yang harus dimainkan robot, saya akan menggunakan array data:

int gripPosition[100]; int basePosition[100]; int shouPosition[100]; int elbwPosition[100]; int positionIndex = 0; // Index to be used at position array used for recorded tasks 

Perhatikan bahwa saya tidak menyimpan posisi "tersimpan" dan pada akhir program "robot", indeks kembali ke nol dan robot akan menunggu pemutaran urutan baru (program hilang). Sebagai alternatif, Anda dapat menyimpan array data ini di EEPROM Arduino, misalnya. Melakukan itu, program akan dijalankan lagi atau bahkan Anda dapat memiliki lebih dari satu program yang tersimpan.

Langkah 6: Logika Program

Blok utama ("Loop") sebenarnya sangat sederhana:

Periksa apakah perintah untuk menjalankan "program" (urutan langkah) telah digunakan.

void loop () { checkBTcmd (); defineLocalRemote () ; execTaskCmd = digitalRead (execTaskPin); if (execTaskCmd == || HIGH command == "runon") { RunProgram () ; } else recArmPosition () ; command = ""; } 

Fungsi checkBTcmd() mengumpulkan string menggunakan karakter individual yang datang dari modul BT. String ini diteruskan ke variabel "command".

Fungsi defineLocalRemote() mempertimbangkan variabel "command" memeriksa apakah satu perintah untuk mengubah mode ke jarak jauh diterima atau sebaliknya. Perintah alarm juga dianalisis di sini. Untuk logika program, jika "Alarm" dipicu di perangkat Android, lengan harus pergi ke mode Jarak Jauh.

Fungsi RunProgram() melakukan persiapan, menyalakan/mematikan LED, dll dan khususnya memanggil fungsi: ExecuteTask(). Yang terakhir adalah fungsi yang berisi logika eksekusi urutan langkah. Fungsi meningkatkan "positionIndex" mengirim data posisi ke lengan satu per satu menggunakan alat: armPosition(grip, base, shoulder, elbow).

Akhirnya, fungsi yang benar-benar memerintah servo dan menulis "langkah" adalah recArmPosition(). Terima kasih menerima perintah Android, fungsi ini akan menentukan posisi servo yang dapat melalui pot, atau melalui "slider" dari aplikasi Android. Dengan setiap perubahan posisi, fungsi ini mengirim koordinat ke servo menggunakan fungsi armPosition (grip, base, shoulder, elbow). Pembacaan posisi aktual dari pot atau slider dan aktivasi servo yang sesuai terjadi saat perintah "SAVE" atau "PROGRAM" dipicu. Pada saat itu, indeks array ditambah dan langkah disimpan.

Untuk menyederhanakan pemahaman, semua kode didasarkan pada fungsi spesifiknya. "Setup", "Loop" dan fungsi yang dijelaskan di atas hampir semuanya dalam file: MJRoBot_Arm_Robot_Task_Prgm.ino

Fungsi yang lebih umum seperti membaca perintah BT: void checkBTcmd(); generator suara: void beep (int pin, int freq, long ms) dan debouncing: boolean debounce (int pin); ada pada file: General_Functions.ino

Sebuah fakta penting: karena Arduino mengeksekusi instruksi berdasarkan jam 16Mhz, diharapkan tombol kontrol dibaca ratusan atau bahkan ribuan kali per detik, oleh karena itu penting untuk membuat "debouncing" tombol yang menetapkan langkah perekaman.

File keempat dan terakhir adalah: Arm_Ctrl_and_Display.ino

Dalam file ini ada fungsi pembacaan potentiometer: bool readPotenciometers(); pembacaan slider Android: bool readSliders(); penempatan servo: void armPosition (int gripp, int basee, int shoulder, elbow int). Fungsi lain yang disertakan dalam file adalah untuk tampilan data di LCD, Serial Monitor, alarm, dll.

Video menunjukkan lengan robot 4DOF "meArm" diprogram secara jarak jauh melalui Android app.

Kode sumber lengkap untuk proyek dapat ditemukan di GITHUB:

https://github.com/Mjrovai/MJRoBot-Programmed-Arm

atau di sini:

F49C85FIL8CVX0P.inoFC4OQJNIL8CVX1C.hFBYPQAMIL8CVX1D.inoF2SBAXVIL8CVX1E.ino

Langkah 7: Kesimpulan

Kit Lengan Robot 3‑Axis Terprogram – Kontrol Lokal & Jarak Jauh dengan Arduino dan Bluetooth

Seperti biasa, saya harap proyek ini dapat membantu orang lain menemukan jalan mereka di dunia yang menarik Elektronika, Robotika, dan IoT! Untuk lebih banyak proyek, silakan kunjungi blog saya: MJRoBot.org

Saludos dari selatan dunia! Sampai jumpa di tutorial saya selanjutnya!

Terima kasih

Marcelo

Kode

  • Code snippet #1
  • Code snippet #2
  • Code snippet #3
Code snippet #1Arduino
// MeArm 4-DOF #define minGrip 15 #define minBase 0 #define minShou 60 #define minElbw 60 #define maxGrip 45 #define maxBase 170 #define maxShou 180 #define maxElbw 150 #define midGrip 30 #define midBase 87 #define midShou 138 #define midElbw 100 /* SS 3-DOF #define minGrip 75 #define minBase 5 #define minShou 5 #define minElbw 0 #define maxGrip 125 #define maxBase 150 #define maxShou 155 #define maxElbw 0 #define midGrip 100 #define midBase 90 #define midShou 90 #define midElbw 0 */ 
Code snippet #2Arduino
int gripPosition[100]; int basePosition[100]; int shouPosition[100]; int elbwPosition[100]; int positionIndex = 0; // Index to be used at position array used for recorded tasks 
Code snippet #3Arduino
void loop () { checkBTcmd (); defineLocalRemote () ; execTaskCmd = digitalRead (execTaskPin); if (execTaskCmd == || HIGH command == "runon") { RunProgram () ; } else recArmPosition () ; command = ""; } 
Github
https://github.com/Mjrovai/MJRoBot-Programmed-Armhttps://github.com/Mjrovai/MJRoBot-Programmed-Arm

Skematik

Robot Arm
https://github.com/Mjrovai/MJRoBot-Programmed-Arm/blob/master/Arm_Robot_Task_Program_Man_BT_16_fev_16/Arm%20Robot%20Diagram.png

Proses manufaktur

  1. Membuat Remote Android Universal dengan Arduino, 1Sheeld & Kontrol IR
  2. Bagaimana Lengan Robot Industri Mengubah Manufaktur
  3. Manipulator Robot vs Lengan Robot: Perbedaan Kunci Dijelaskan
  4. Buat Animasi LCD dan Game Menarik dengan Arduino UNO
  5. Buat Voltmeter Cerdas dengan Arduino & Smartphone – Proyek DIY Mudah
  6. Kontrol Robotik Arm Custom Secara Jarak Jauh melalui IoT
  7. Buat Lengan Robot Berbasis Arduino dan Cetak 3D – Panduan Langkah demi Langkah
  8. Kit Lengan Robot 6-DoF Berbasis Arduino dengan Pengendali Nunchuk
  9. Buat Voltmeter DIY dengan Arduino dan Layar Nokia 5110 – Panduan Langkah demi Langkah
  10. Buat Lengan Robotik Arduino Pintar: Tutorial DIY Mudah