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

Lengan Robot Terkendali PC

Komponen dan persediaan

Arduino Nano R3
× 1
Servo (Tower Pro MG996R)
× 4

Aplikasi dan layanan online

Microsoft Visual Studio 2015
Arduino IDE

Tentang proyek ini

Saya selalu mengagumi teknologi manufaktur modern dan peran penting yang dimainkan oleh mesin-mesin ini di berbagai bidang manufaktur seperti:mengangkat material, memasang dan mengumpulkan suku cadang, mengelas dan memotong, dan yang tak kalah pentingnya adalah kegunaannya di gudang.

Pengalaman saya dalam membangun lengan robot ini adalah sebuah tantangan. Jadi sebagai permulaan saya memilih lengan robot sederhana yang dirancang oleh fortzeroas pada tahun 2016, lalu saya memutuskan untuk tidak mengontrolnya dengan tangan seperti biasa, Jadi saya membuat Aplikasi Otomasi dengan "Aplikasi C# Windows" dan saya membuatnya terlihat seperti membuat aplikasi otomasi.

Jadi sesuai pengalaman keterampilan pemrograman saya, saya membuat Aplikasi Otomasi ini untuk sepenuhnya mengontrol lengan robot, memantau pergerakannya, memberikan tugas yang berbeda untuk dilakukan.

Langkah 1:Bahan

Bahan utamanya adalah kayu MDF dan saya menggunakan 2mm untuk struktur dan 4mm untuk alas.

Cetak biru tersedia untuk diunduh pada langkah terakhir, Anda harus mencetak polanya kemudian menempelkannya langsung ke MDF.

Potong bersama dengan garis dan bor lubang. Saya menggunakan alat putar untuk mengebor dan memotong kayu, dan untuk alasnya saya tidak memiliki cetak biru, tetapi saya pikir Anda bisa berimprovisasi.

Langkah 2:Melukis dan Menata Gaya

Untuk memberikan proyek tampilan yang menarik saya menggunakan cetak biru yang sama kemudian saya mendesain sampul menggunakan Photoshop untuk membuat beberapa decals dan bentuk geometris agar terlihat realistis, lalu saya rekatkan pada kayu menggunakan lem putih.

Langkah 3:Perakitan Bingkai

Lengan robot ini mudah dipasang karena semuanya sudah direncanakan sebelumnya, jadi cukup pasang motor servo di tempatnya dengan sekrup, dan saat bekerja saya telah melakukan sedikit penyesuaian.

Kemudian untuk menempelkan sisi kanan dan kiri saya menggunakan stik kayu tebal dan merekatkan menggunakan lem super yang dipasang sekrup panjang untuk mengurangi bobotnya.

Langkah 4:Gripper (Mekanisme Pinch)

Saya membengkokkan dua batang logam dengan tang kemudian saya mengebor aula di dalam sepotong kayu setebal 3 mm menggunakan bor alat putar dan merekatkannya dengan lem super.

Langkah 5:Membuat Basis

Basis terbuat dari kayu MDF setebal 4 mm, saya potong persegi kira-kira 17cm * 10cm dengan gergaji meja lalu bor aula untuk dudukan motor servo dasar 9g. untuk mengurangi gesekan antara alas dan silinder saya memotong bagian kaleng karton kuat tinggi 2,5cm &diameter 10cm, lalu saya bor juga untuk memasang poros motor servo.

Langkah 6:Elektronik

Saat menggunakan lebih dari dua servo dengan Arduino, Anda harus menggunakan sumber daya eksternal untuk keduanya, dan dalam proyek ini saya menggunakan tiga servo mikro 9g dan satu motor servo besar.

Tentu saja uji demonstrasi pertama adalah virtual di tinkercad.com untuk mensimulasikan servos dan menguji sirkuit listrik.

Jadi dalam hal ini saya menggunakan 4 baterai AA 1.5 v yang sama dengan 6 v, kemudian saya membuat setup test breadboard dan setelah itu saya membuat expansion dock yang sangat sederhana untuk Arduino nano.

Langkah 7:Kode Arduino

1. Download dan install Arduino IDE versi terbaru, Anda dapat menemukan versi terbaru untuk Windows, Linux atau MAC OSX di website Arduino:https://www.arduino.cc/en/main/software

2. Colokkan papan Arduino Anda ke port USB.

3. Buka alat> papan> lalu pilih papan Anda.

4. Salin &tempel kode ke editor IDE.

5. Verifikasi kode Anda dengan mengklik tombol ikon (✔).

6. Unggah Kode ke papan Anda dengan mengklik tombol ikon (➤).

Langkah 8:Aplikasi Otomatisasi

Sebenarnya ini adalah bagian favorit saya untuk mengotomatisasi proyek Arduino menggunakan PC, Menurut pendapat saya ini adalah awal yang baik untuk belajar bagaimana meningkatkan kemampuan mengendalikan papan dan proyek lainnya di masa depan.

Mencapai posisi sudut tetap tidak mudah dilakukan, Jadi pada awalnya saya memecahkan masalah ini dengan menggunakan aplikasi pihak ketiga bernama "Processing 3".

Pada tahap awal saya membuat antarmuka yang didukung yang mensimulasikan servo lengan robot (Basis, Bahu, Siku dan Gripper) dengan keyboard dan memindahkannya secara terpisah "sudut demi sudut" hingga mencapai posisi tetap yang telah disiapkan sebelumnya.

Kemudian ketika mencapai posisi yang disiapkan saya merekam keempat sudut ini dalam array kode (A,B,C,D), Kemudian saya menggunakan multi array ini nanti di aplikasi Windows saya, itu banyak membantu saya untuk mengetahui batas-batas setiap sudut motor servo masing-masing di tempatnya.

Batasan yang dikumpulkan ini saya masukkan sebagai pedoman ke bilah sisi antarmuka pengguna untuk menjaga agar ARM tetap terkendali dan juga untuk mendukung fungsi pemutaran.

Jadi dengan menggunakan aplikasi ini Anda dapat mengontrol, merekam, memantau Lengan Robot sebagai berikut:

1. Kontrol Gerakan:

Ada dua mood untuk mengontrol lengan robot ini, pertama manual dengan menyeret track bar yang mengontrol spastik servo seperti

  • Gripper:klik tombol buka &tutup untuk membuka dan menutup robot gripper.
  • Dasar:seret bilah pelacakan ke kanan &kiri atau bahkan gunakan panah keyboard (kanan/kiri) untuk memindahkan basis ke kanan dan kiri.
  • Bahu:seret bilah pelacakan ke kanan &kiri atau bahkan gunakan panah keyboard (atas/bawah) untuk menggerakkan bahu ke Atas dan Bawah.
  • Siku:seret bilah pelacakan ke kanan &kiri atau bahkan gunakan tombol keyboard (w/s) untuk menggerakkan motor siku ke Atas dan Bawah.

2. Rekaman Gerak:

Setelah Anda ingin mengotomatiskan gerakan lengan robot, Anda harus mencatat posisi di setiap langkah dengan mengklik tombol "Rec. Position" atau tekan (R) di keyboard. Kemudian aplikasi akan menanganinya.

Di setiap langkah, Anda merekam aplikasi yang mendeteksi posisi motor yang dipindahkan dan menyimpannya di dalam daftar secara terpisah.

Dengan mengklik tombol "Mulai Auto mood" aplikasi akan mengirimkan posisi yang disimpan tersebut dalam bentuk urutan pesanan.

3. Pemantauan:

Saya telah membuat antarmuka grafis yang menggambar setiap langkah dalam grafik agar pengguna dapat mencatat perubahan yang tidak biasa yang mungkin terjadi. pada saat yang sama ada tabel data di sisi kanan memberikan sudut tertentu dan waktu yang akurat untuk bergerak.

Jadi dengan menggunakan fitur-fitur ini, Anda dapat menyusun gerakan Anda sendiri dan mengirimkannya ke Lengan Robot sebagai tugas, seperti yang mereka lakukan dalam otomatisasi manufaktur.

Langkah 9:Pembaruan

Agustus 2018:

Baru-baru ini saya membuat desain yang sama setelah menambahkan beberapa modifikasi pada mesin potong laser menggunakan MDF 3 mm, Sebenarnya Ide tambahan ini keren terutama ketika saya menambahkan Joystick Kustom ke dalamnya.

Kode

  • Task.ino
  • RobotArm.ino
Task.inoArduino
int delayT =350;void Home() //Panggil fungsi ini ketika anda ingin mengatur arm di posisi home { MyServo0.write(valGripper); // Penundaan gripper(15); MyServo.write(valBase); // penundaan dasar(30); MyServo2.write(valShulder); // penundaan bahu (30); MyServo3.write(valElbow); // penundaan siku(penundaanT); }void Pick() // Ini adalah tempat pengambilan tetap. {Servoku.tulis(4); // penundaan dasar(penundaanT); MyServo3.write(125); // siku MyServo2.write(95); // penundaan bahu(penundaanT); MyServo0.write(50); // Gripper membuka penundaan lebar (delayT); MyServo0.write(2); // Penundaan penutupan Gripper(penundaanT); MyServo2.write(60); // angkat sedikit MyServo3.write(80); // siku ke atas sedikit delay(delayT); Serial.println("Objek Diambil"); }void Drop() // Ini adalah tempat Drop yang sudah diperbaiki. {Servoku.tulis(145); // penundaan dasar(penundaanT); MyServo2.write(80); // penundaan bahu(15); MyServo3.write(115); // penundaan siku(penundaanT); MyServo0.write(40); // Gripper membuka penundaan lebar (delayT); MyServo3.write(90); // siku ke atas sedikit delay(delayT); Serial.println(F("Objek Dijatuhkan")); }void Playback() { // https://arduino.stackexchange.com/questions/1013/how-do-i-split-an-incoming-string // input HARUS array ( servoId :Position &servoId :Position &servoId :Posisi ) // String frase; // frase =String(frasa + ByteDiterima); // mengubah input char menjadi stirng dapat dibagi // Membaca setiap pasangan perintah char* command =strtok(ByteReceived, "&"); while (command !=0) { // Membagi perintah menjadi dua nilai char* separator =strchr(command, ':'); if (separator !=0) { // Sebenarnya membagi string menjadi 2:ganti ':' dengan 0 *separator =0; int servoId =atoi(perintah); ++ pemisah; int sudut =atoi(pemisah); // Lakukan sesuatu dengan servoId dan angle if (servoId =1) { MyServo.write(angle); tunda (tunda T); } else if (servoId =2) { MyServo2.write(angle); tunda (tunda T); } else if (servoId =3) { MyServo3.write(angle); tunda (tunda T); } } // Cari perintah selanjutnya di input string command =strtok(0, "&"); } } 
RobotArm.inoArduino
// ditulis oleh AhmedAzouz#include Servo MyServo,MyServo2,MyServo3,MyServo0;char ByteReceived;int MyPosition,MyPosition2,MyPosition3,MyPositionG;int runCounter =0;int ledPin =A5;// setel posisi servo rumah default int valGripper =30;int valBase =70;int valShoulder =25;int valElbow =150;pengaturan batal(){ Serial.begin(9600); pinMode(ledPin, OUTPUT); digitalWrite(13,RENDAH); MyServo0.attach(12); // Gripper lampirkan MyServo.attach(11); // dasar melampirkan MyServo2.attach(13); //lampirkan bahu MyServo3.attach(10); //Siku melampirkan// Mengatur posisi startup MyServo0.write(valGripper); // Penundaan gripper(15); MyServo.write(valBase); // penundaan dasar(30); MyServo2.write(valShulder); // penundaan bahu (30); MyServo3.write(valElbow); // elbow delay(300);} void loop(){ Serial.print("Base :"); Serial.print(valBase); Serial.print("\t"); Serial.print("Shou :"); Serial.print(valShoulder); Serial.print("\t"); Serial.print("Siku :"); Serial.print(valElbow); Serial.print("\t"); Serial.print("Pegangan :"); Serial.println(valGripper); //if(Serial.available()) //Byte=Serial.read(); //membacanya //{ while (Serial.available()> 0 ) { ByteReceived =Serial.read(); switch (ByteReceived) { // ************* Kasus LED 'n':digitalWrite(ledPin,HIGH); //menyalakan LED Serial.println("LED menyala"); merusak; huruf 'f':digitalWrite(ledPin,LOW); //matikan LED Serial.println("LED mati"); merusak; // ************* Base case 'l':MyPosition =MyServo.read() + 2; // L untuk memindahkan basis ke kiri MyServo.write(Position Saya); Serial.print("Dasar"); Serial.print("\t"); Serial.println(Servoku.read()); penundaan (15); merusak; case 'r':MyPosition =MyServo.read() - 2; // R untuk memindahkan basis ke kanan MyServo.write(MyPosition); Serial.print("Dasar"); Serial.print("\t"); Serial.println(Servoku.read()); penundaan (15); merusak; // ************* Kasus siku 'u':MyPosition2 =MyServo2.read() + 2; // U untuk memindahkan Siku ke atas MyServo2.write(MyPosition2); Serial.print("Siku"); Serial.print("\t"); Serial.println(Servo2.read()); penundaan (15); merusak; kasus 'd':MyPosition2 =MyServo2.read() - 2; // D untuk memindahkan Elbow ke bawah MyServo2.write(MyPosition2); Serial.print("Siku"); Serial.print("\t"); Serial.println(Servo2.read()); penundaan (15); merusak; // ************* Sarung bahu 'w':MyPosition3 =MyServo3.read() + 2; // W untuk memindahkan Bahu ke bawah MyServo3.write(MyPosition3); Serial.print("Bahu"); Serial.print("\t"); Serial.println(Servo3.read()); penundaan (15); merusak; case 's':MyPosition3 =MyServo3.read() - 2; // S untuk memindahkan Bahu ke atas MyServo3.write(MyPosition3); Serial.print("Bahu"); Serial.print("\t"); Serial.println(Servo3.read()); penundaan (15); merusak; // ************* Gripper case 'o':MyServo0.write(30); // O untuk membuka Gripper Serial.print("Gripper Terbuka"); Serial.print("\t"); Serial.println(Servo0.read()); penundaan (15); merusak; case 'c':// C untuk membuka Gripper MyServo0.write(1); Serial.print("Tutup Gripper"); Serial.print("\t"); Serial.println(Servo0.read()); penundaan (15); merusak; // ************* Default posisi Drop (posisi drop cepat) case 'q':digitalWrite(ledPin,HIGH); Serial.println("Default Dihapus diaktifkan!"); Memilih(); Menjatuhkan(); Rumah(); digitalWrite(ledPin,RENDAH); merusak; // ************* Force Stop dan pulang posisi case 'h':Home(); digitalWrite(ledPin,RENDAH); merusak; // ************* Suasana otomatis berjalan Fungsi pemutaran // pembacaan serial Harus dalam format ini:1:90&2:80&3:180 // tempat pengambilan sudah diperbaiki, fungsi ini akan mengotomatiskan penurunan posisi. default:digitalWrite(ledPin,HIGH); Serial.println("Mood otomatis diaktifkan!"); Memilih(); Pemutaran(); Rumah(); digitalWrite(ledPin,RENDAH); merusak; }}}

Suku cadang dan penutup khusus

f98t2axin238k2n_khGWAEIqdl.skp

Skema


Proses manufaktur

  1. Makerarm:Lengan robot yang sangat keren untuk pembuat
  2. Lengan Robot:Bagaimana Cara Pembuatannya?
  3. Senjata Robot dalam Pembuatan dan Manfaatnya
  4. Lengan Robot Industri:Kunci Produktivitas
  5. Lengan Robot Hidraulik di Industri Manufaktur:Panduan Definitif
  6. Menggunakan IoT untuk Mengontrol Lengan Robot dari Jarak Jauh
  7. Arduino 3D-Printed Robotic Arm
  8. Lengan Robot Terkendali Nunchuk (dengan Arduino)
  9. Pasar lengan robot akan tumbuh menjadi US$14,78 miliar pada tahun 2026
  10. Lengan Robot Industri - Ledakan Manufaktur