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

Menggunakan IoT untuk Mengontrol Lengan Robot dari Jarak Jauh

Komponen dan persediaan

Arduino MKR1000
× 1

Alat dan mesin yang diperlukan

Pemotong laser (generik)

Aplikasi dan layanan online

MATLAB
Arduino IDE

Tentang proyek ini

Pendahuluan

Saya benar-benar ingin mencoba merancang lengan robot sepenuhnya dari awal. Ada banyak desain open-source yang tersedia, tetapi saya pikir akan menyenangkan jika saya bisa mendesain, membangun, dan memprogram satu dari nol (dan memang begitu).

Saya akan berbicara tentang fase desain dan pemrograman. Tapi saya akan lebih fokus pada sisi pemrograman karena tidak hanya mengontrol sudut servo.

Berikut ini tautan ke video proyek akhir yang sedang beraksi - https://www.mathworks.com/videos/how-to-control-a-robotic-arm-from-a-remote-location-using-iot-1538564659095. html.

Saya menggunakan Simulink untuk memprogram Arduino MKR1000 yang merupakan MCU yang mengendalikan lengan robot. Saya kemudian menambahkan kemampuan untuk mengontrol lengan robot dari mana saja secara praktis melalui ThingSpeak, platform IoT terbuka dengan analitik MATLAB.

Perlu Perangkat Keras

  • Kayu lapis 15” x 20” 1/8 inci
  • Arduino MKR1000
  • 5x GS9025MG servo
  • Jack barel DC ramah papan tempat memotong roti 2.1mm
  • Catu daya jack barel DC 6 V
  • Kabel jumper
  • Transistor 3x 2n2222a
  • 10x kacang M2
  • 10x M2 x 10 sekrup
  • 40x kacang M3
  • 40x M3 x 25 sekrup

Perangkat lunak yang digunakan

  • MATLAB
  • Simulink
  • Paket Dukungan MATLAB untuk perangkat keras Arduino
  • Paket Dukungan Simulink untuk perangkat keras Arduino
  • Paket Dukungan MATLAB untuk ThingSpeak

Desain

Saya ingin menjaga biaya suku cadang tetap rendah, jadi saya merancang ini untuk servos hobi, khususnya model GS-9025MG. Ini berarti bahwa berat dan ukuran akhir terbatas. Ini karena servo mikro tidak dapat mengerahkan banyak torsi, dan akibatnya, tidak dapat mengangkat lengan tuas yang berat.

Saya mencoba membuat prototipe dengan kayu lapis 1/4 inci, yang terbukti terlalu berat untuk servos. Saya mengurangi panjang lengan dan menggunakan kayu lapis 1/8 inci, dan itu memperbaiki masalah kontrol servo. Saya menggambar desain menggunakan Fusion 360, dan mendownload desain sebagai file a.dxf, yang kemudian saya potong dengan laser.

Selain itu, memasok tegangan DC terus-menerus dari stopkontak terbukti perlu karena arus yang diambil dari paket baterai sangat tinggi dan mengurasnya dengan sangat cepat.

Mengenai pengontrolan motor, Arduino MKR1000 memiliki 4 pin PWM, tetapi saya membutuhkan 5 untuk mengontrol 5 servo. Saya menjadi kreatif dan menggunakan satu pin PWM untuk mengontrol 2 servo dan pin digital untuk beralih di antara dua servo dan mengontrol satu per satu.

Berikut adalah rangkaian yang menjelaskan bahwa:

Berikut adalah pengkabelan servos ke Arduino:

Pemrograman

Ada dua bagian pemrograman, fase prototyping di mana saya merakitnya dan memerintahkan servos ke lokasi tertentu, dan fase kontrol presisi di mana saya bisa memerintahkan lokasi ke servo menggunakan ThingSpeak.

Pembuatan prototipe

Dengan menggunakan penggeser dan blok konstan, saya dapat memerintahkan servos di Arduino untuk bergerak ke sudut tertentu. Saya menggunakan model ini untuk mengetahui bias antara sudut yang diperintahkan dan sudut sebenarnya dari lengan, serta kisaran sudut yang diizinkan untuk setiap servo.

Blok dengan roda gigi di atasnya adalah blok tulis PWM untuk memerintahkan servis ke sudut tertentu antara 0 dan 180.

Saya menggunakan kinematika terbalik untuk lengan dalam gerakan planar 2D untuk memecahkan sudut yang diperlukan untuk menggerakkan lengan ke koordinat XY. Saya menemukan bahwa tautan ini menjelaskan kinematika dengan cukup baik:https://appliedgo.net/roboticarm/

Kontrol yang Tepat

Meskipun ini terlihat lebih rumit dari yang lain, logikanya masih sama. Blok output masih merupakan blok tulis servo dengan roda gigi. Blok input sekarang bukan input slider/blok konstan tetapi sedang dibaca dari saluran ThingSpeak. Saya akan menguraikan nanti menggunakan ThingSpeak. Inputnya adalah posisi X dan Y dari lengan, yang menggunakan blok fungsi MATLAB loc2angles diubah menjadi sudut yang diperintahkan untuk lengan. Blok angle2loc di bagian atas model hanyalah cara memantau sistem untuk memastikan servo sudut diterjemahkan ke posisi input yang benar menggunakan kinematika maju. Salah satu alat keren dari Simulink yang saya gunakan dalam proyek ini adalah Mode Eksternal . Ini memungkinkan saya untuk memantau sistem saat sedang berjalan di Arduino itu sendiri.

Blok dengan awan abu-abu di atasnya adalah blok baca ThingSpeak yang dibangun ke dalam paket dukungan Simulink untuk Arduino. Saya memasukkan ID saluran, nomor bidang data yang ingin saya ambil, dan kunci baca API, dan itu mengeluarkan data dari saluran dan bidang itu. Jangan khawatir, jika Anda tidak terbiasa dengan istilah-istilah tersebut, saya akan menjelaskannya segera.

Menggunakan ThingSpeak:Membuat dan Menggunakan Saluran

1. Buka https://thingspeak.com/

2. Klik 'masuk' di sudut kanan atas, dan masuk menggunakan akun MathWorks gratis Anda.

3. Di halaman dasbor klik ‘Saluran Baru’

4. Isi data seperti di bawah ini. Data yang ditampilkan adalah semua yang perlu Anda isi.

5. Klik ‘Simpan saluran’ di bagian bawah

6. Sekarang Anda telah membuat saluran ThingSpeak

7. Di jendela perintah MATLAB atau menggunakan aplikasi seluler MATLAB, Anda dapat memasukkan perintah yang terlihat seperti:thingSpeakWrite(chID, [0.6963.94 -12 0 0], 'WriteKey', APIKEY, 'Fields', [1 2 3 4 5]);

Ini menulis data baru ke bidang yang ditentukan di saluran ThingSpeak. Anda dapat mengubah nilai dalam argumen kedua dari pemanggilan fungsi untuk mengubah nilai bidang terkait. Setelah mengubah nilainya, data saluran akan terlihat seperti ini:

Menjalankan Model

Ketika Anda selesai dengan menyiapkan saluran ThingSpeak, Anda dapat menjalankan model di Arduino dalam mode eksternal, atau dengan menyebarkan ke perangkat keras. Dalam model Simulink, buka 'Parameter Konfigurasi Model' dengan mengklik roda gigi kecil di panel menu atas, pilih 'Implementasi perangkat keras' dan pastikan 'Papan Perangkat Keras' adalah Arduino MKR 1000. Di bawah 'Sumber Daya Perangkat Keras Target' di tab yang sama, klik properti WiFi dan masukkan kredensial WiFi untuk mengakses jaringan.

Klik tombol run hijau untuk menjalankan model dalam mode eksternal atau tombol penerapan biru untuk menerapkannya ke perangkat keras.

Setelah model berjalan, Anda dapat menulis data baru ke bidang di saluran ThingSpeak dari MATLAB atau MATLAB ponsel di ponsel Anda dan lihat bagaimana ia menggerakkan lengan robot Anda!

Kode

https://www.mathworks.com/matlabcentral/fileexchange/68880-controlling-a-robotic-arm-from-anywhere-using-iot


Proses manufaktur

  1. Kontrol Jarak Jauh Universal menggunakan Arduino, 1Sheeld, dan Android
  2. Kontrol Penerima Koin dengan Arduino
  3. Pusat Kontrol Arduino
  4. Pemantau Detak Jantung Menggunakan IoT
  5. IOT - Smart Jar Menggunakan ESP8266, Arduino dan Sensor Ultrasonik
  6. Arduino 3D-Printed Robotic Arm
  7. Kontrol Arduino Rover menggunakan Firmata dan Pengontrol Xbox One
  8. Kontrol Humidifier Arduino
  9. Lengan Robot Terkendali Nunchuk (dengan Arduino)
  10. Lengan Robot Sederhana dan Cerdas Menggunakan Arduino