Daftar Isi:

Lengan Robot Dikendalikan oleh Arduino dan PC: 10 Langkah
Lengan Robot Dikendalikan oleh Arduino dan PC: 10 Langkah

Video: Lengan Robot Dikendalikan oleh Arduino dan PC: 10 Langkah

Video: Lengan Robot Dikendalikan oleh Arduino dan PC: 10 Langkah
Video: Servo Robotic arm PC Control Complete Tutorial with demo 2024, Juli
Anonim
Image
Image
Teori Dibalik Proyek
Teori Dibalik Proyek

Lengan robot banyak digunakan dalam industri. Baik itu untuk operasi perakitan, pengelasan atau bahkan digunakan untuk docking di ISS (International Space Station), membantu manusia dalam bekerja atau menggantikan manusia secara total. Lengan yang saya buat adalah representasi yang lebih kecil dari lengan robot yang seharusnya digunakan untuk memindahkan objek. Hal ini dikendalikan oleh arduino pro mini yang telah built-in library untuk mengontrol servos. Servo dikendalikan oleh PWM (Pulse Width Modulation) yang tidak sulit untuk diprogram tetapi perpustakaan ini membuatnya lebih mudah. Pengguna dapat mengontrol servos tersebut dengan potensiometer yang dirancang untuk bertindak sebagai pembagi tegangan atau dari program di PC yang menggunakan 4 slider untuk mengendalikan motor servo.

Untuk proyek ini saya harus mendesain PCB kustom saya dan membuatnya, membuat model lengan 3D dan menulis kode yang mengontrol semuanya. Di atasnya saya mengkodekan program tambahan dengan python yang mengirimkan sinyal ke arduino yang berhasil memecahkan kode sinyal itu dan memindahkan servos ke posisi yang telah ditetapkan pengguna.

Langkah 1: Teori Dibalik Proyek

Teori Dibalik Proyek
Teori Dibalik Proyek

Arduino sangat bagus karena menawarkan perpustakaan gratis untuk digunakan. Untuk proyek ini saya menggunakan library Servo.h yang membuat pengontrolan servo menjadi lebih mudah.

Motor servo dikendalikan oleh PWM -Pulse Width Modulation- yang berarti bahwa untuk mengontrol servo Anda perlu membuat pulsa tegangan pendek. Servo dapat memecahkan kode panjang sinyal ini dan memutar ke posisi tertentu. Dan di sinilah saya menggunakan perpustakaan yang telah disebutkan. Saya tidak harus menghitung panjang sinyal sendiri tetapi saya menggunakan fungsi perpustakaan yang saya hanya melewati parameter dalam derajat dan itu membuat sinyal.

Untuk mengendalikan servos saya menggunakan potensiometer yang bertindak sebagai pembagi tegangan. Papan Arduino memiliki beberapa konverter analog/digital yang saya gunakan untuk proyek ini. Pada dasarnya arduino memonitor tegangan pada pin tengah pada potensiometer dan jika berputar ke satu sisi tegangan di atasnya adalah 0 Volt (nilai = 0) dan di sisi lain 5 Volt (nilai = 1023). Nilai ini kemudian diskalakan dari rentang 0 - 1023 hingga 0 - 180 dan kemudian diteruskan ke fungsi yang telah disebutkan.

Topik lainnya adalah komunikasi serial dengan arduino yang akan saya bahas secara singkat. Pada dasarnya program yang ditulis pada PC mengirimkan nilai yang dipilih oleh pengguna, arduino dapat memecahkan kodenya dan memindahkan servo ke posisi tertentu

Langkah 2: Merancang PCB

Merancang PCB
Merancang PCB
Merancang PCB
Merancang PCB
Merancang PCB
Merancang PCB

Saya merancang 2 PCB - satu untuk kontrol utama di mana Arduino dan pin untuk servos dan yang kedua adalah potensiometer. Alasan untuk 2 PCB adalah karena saya ingin mengontrol lengan robot dari jarak yang aman. Kedua sirkuit dihubungkan dengan kabel dengan panjang tertentu - dalam kasus saya 80 cm.

Untuk sumber daya saya memilih adaptor eksternal karena servos yang saya gunakan mengkonsumsi lebih banyak daya daripada yang dapat disediakan oleh arduino. Seperti yang Anda lihat, ada beberapa kapasitor yang belum saya sebutkan. Mereka adalah kapasitor yang digunakan untuk penyaringan. Seperti yang Anda ketahui sekarang, motor servo dikendalikan oleh impuls pendek. Impuls tersebut dapat membuat tegangan suplai menjadi turun dan potensiometer yang sebelumnya berkisar 0-5 volt sekarang memiliki jangkauan yang lebih kecil. Itu berarti tegangan pada pin tengah berubah dan arduino mendapatkan nilai ini dan mengubah posisi motor servo masuk. Hal ini dapat berlangsung selamanya dan menyebabkan osilasi yang tidak diinginkan yang dapat dihilangkan oleh beberapa kapasitor yang paralel dengan suplai.

Langkah 3: Membuat PCB

Membuat PCB
Membuat PCB
Membuat PCB
Membuat PCB
Membuat PCB
Membuat PCB

Untuk membuat PCB saya sarankan Anda untuk membaca ini.

Saya menggunakan metode Iron on Glossy paper dan hasilnya bagus.

Kemudian saya menyolder bagian-bagian pada PCB. Anda dapat melihat bahwa saya menggunakan soket arduino jika saya membutuhkannya di masa mendatang.

Langkah 4: Merancang Lengan

Merancang Lengan
Merancang Lengan
Merancang Lengan
Merancang Lengan
Merancang Lengan
Merancang Lengan

Ini sama sekali bukan bagian tersulit dalam membuat proyek ini.

Seluruh pengaturan dibuat dari 8 bagian di mana 4 bagian tidak bergerak - kotak untuk potensiometer dan alas tempat arduino berada - dan empat lainnya adalah lengan itu sendiri. Saya tidak akan membahas banyak detail kecuali bahwa desainnya cukup intuitif dan dalam beberapa hal sederhana. Ini dirancang agar sesuai dengan PCB dan servo khusus saya yang akan saya sertakan dalam daftar bagian.

Langkah 5: Mencetak Bagian

Mencetak Bagian
Mencetak Bagian
Mencetak Bagian
Mencetak Bagian
Mencetak Bagian
Mencetak Bagian

Bagian dicetak pada printer Prusa. Beberapa permukaan perlu digiling sedikit dan lubang dibor. Tiang penyangga juga harus dicopot.

Langkah 6: Menyatukan Semuanya

Menyatukan Semuanya
Menyatukan Semuanya
Menyatukan Semuanya
Menyatukan Semuanya
Menyatukan Semuanya
Menyatukan Semuanya
Menyatukan Semuanya
Menyatukan Semuanya

Dalam langkah ini seperti yang dikatakan judul, saya menggabungkan semuanya.

Pada awalnya saya menyolder kabel pada potensiometer dan kemudian kabel tersebut pada PCB. Potensiometer pas dengan lubang dan saya menempelkan PCB dengan panas pada pilar yang dicetak di bagian bawah kotak. Anda dapat mengebor lubang di papan dan ke dalam kotak, tetapi saya menemukan bahwa menempelkannya lebih dari cukup. Kemudian saya menutup kedua bagian kotak dan mengencangkannya pada posisinya dengan 4 sekrup yang sesuai dengan lubang yang saya rancang.

Sebagai langkah selanjutnya saya membuat kabel pita datar untuk menghubungkan kedua papan.

Di kotak utama saya menyolder kabel dari pin konektor VCC ke sakelar dan kemudian ke papan Vcc dan dari papan GND ke GND konektor. Kemudian saya menempelkan konektor di tempatnya dan menempel pada pilar. Konektor pas ke dalam lubang sehingga tidak perlu lem panas.

Kemudian, dengan menggunakan sekrup saya memasang servo bawah ke bagian bawah kotak.

Setelah itu saya memasang bagian atas kotak di bagian bawah dan sama seperti kotak potensiometer saya kencangkan dengan 4 sekrup.

Bagian selanjutnya sedikit rumit tetapi saya berhasil menyatukan sisa lengan dengan berbagai mur dan bantalan dan itu tidak sekencang yang saya harapkan karena saya merancang beberapa toleransi antar bagian, jadi lebih mudah untuk bekerja dengannya.

Dan sebagai langkah terakhir saya meletakkan beberapa selotip di bagian bawah kotak karena jika tidak mereka akan meluncur.

Langkah 7: Pemrograman Arduino

Pemrograman Arduino
Pemrograman Arduino
Pemrograman Arduino
Pemrograman Arduino
Pemrograman Arduino
Pemrograman Arduino

Saya telah menyebutkan bagaimana program bekerja secara teori di balik proyek, tetapi saya akan memecahnya lebih jauh lagi.

Jadi pada awalnya kita perlu mendefinisikan beberapa variabel. Sebagian besar disalin 4 kali karena kami memiliki 4 servos dan menurut saya tidak perlu membuat logika yang lebih rumit hanya untuk membuat program sedikit lebih pendek.

Selanjutnya ada pengaturan kosong di mana pin servos ditentukan.

Lalu ada void loop - bagian dari program yang mengulang tanpa batas. Pada bagian ini program mengambil nilai dari skala potensiometer dan memasukkannya ke dalam output. Tetapi ada satu masalah bahwa nilai dari potensiometer sedikit melonjak sehingga saya perlu menambahkan filter yang membuat rata-rata 5 nilai terakhir dan kemudian mengeluarkan output. Ini mencegah goyangan yang tidak diinginkan.

Bagian terakhir dari program membaca data dari port serial dan memutuskan apa yang harus dilakukan berdasarkan data yang dikirim.

Untuk memahami kode sepenuhnya, saya sarankan Anda mengunjungi situs resmi arduino.

Langkah 8: Pemrograman dengan Python

Pemrograman dengan Python
Pemrograman dengan Python
Pemrograman dengan Python
Pemrograman dengan Python
Pemrograman dengan Python
Pemrograman dengan Python

Bagian dari proyek ini tidak perlu tetapi saya pikir itu hanya memberi nilai lebih pada proyek ini.

Python menawarkan banyak perpustakaan yang gratis untuk digunakan tetapi dalam proyek ini saya hanya menggunakan tkinter dan serial. Tkinter digunakan untuk GUI (Graphical User Interface) dan serial seperti namanya digunakan untuk komunikasi serial.

Kode ini membuat GUI dengan 4 slider yang memiliki nilai minimum 0 dan maksimum 180. Ini mungkin petunjuk bagi Anda bahwa itu dalam derajat dan setiap slider diprogram untuk mengontrol satu servo. Program ini agak sederhana - ia mengambil nilai dan mengirimkannya ke arduino. Tapi cara penyampaiannya menarik. Jika Anda memilih untuk mengubah nilai servo pertama ke 123 derajat, ia mengirim ke nilai arduino 1123. Angka pertama dari setiap nomor yang dikirim menunjukkan servo mana yang akan dikontrol. Arduino memiliki kode yang dapat memecahkan kode ini dan memindahkan servo yang tepat.

Langkah 9: Daftar Bagian

Daftar Bagian
Daftar Bagian
  • Arduino Pro Mini 1 buah
  • Servo FS5106B 1 buah
  • Servo Futaba S3003 2 buah
  • Pin header 2x5 1 buah
  • Pin header 1x3 6 buah
  • Kapasitor 220uF 3 buah
  • Micro Servo FS90 1 buah
  • Konektor AWP-10 2 buah
  • Konektor FC681492 1 buah
  • Beralih P-B100G1 1 buah
  • Soket 2x14 1 buah
  • TTL-232R-5v - konverter 1 buah
  • Potensiometer B200K 4 buah
  • dan masih banyak lagi sekrup, bantalan, dan mur

Langkah 10: Pikiran Terakhir

Terima kasih telah membaca ini dan saya harap setidaknya saya telah memotivasi Anda. Ini adalah proyek besar pertama saya yang saya buat sendiri tanpa menyalin barang dari internet dan posting instruksi pertama. Saya tahu bahwa lengan dapat ditingkatkan tetapi saya puas dengan itu untuk saat ini. Semua bagian dan kode sumber gratis, Anda dipersilakan untuk menggunakannya dan mengubahnya dengan cara apa pun yang Anda inginkan. Jika Anda memiliki pertanyaan, jangan ragu untuk menanyakannya di bagian komentar. Anda juga dapat melihat videonya, kualitasnya tidak bagus tetapi menunjukkan fungsionalitas proyek.

Direkomendasikan: