Isi kandungan:

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

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

Video: Lengan Robotik Dikendalikan oleh Arduino dan PC: 10 Langkah
Video: Robot Lengan (ARM ROBOT) ARDUINO 2024, Julai
Anonim
Image
Image
Teori Di Sebalik Projek
Teori Di Sebalik Projek

Lengan robotik banyak digunakan dalam industri. Sama ada untuk operasi pemasangan, kimpalan atau bahkan satu digunakan untuk berlabuh di ISS (Stesen Angkasa Antarabangsa), mereka membantu manusia bekerja atau mereka menggantikan manusia sepenuhnya. Lengan yang saya bina adalah perwakilan lengan robot yang lebih kecil yang seharusnya digunakan untuk menggerakkan objek. Ia dikendalikan oleh arduino pro mini yang sudah mempunyai perpustakaan terbina dalam untuk mengendalikan servos. Servos dikendalikan oleh PWM (Pulse Width Modulation) yang tidak sukar untuk diprogramkan tetapi perpustakaan ini menjadikannya lebih mudah. Pengguna boleh mengawal servos dengan potensiometer yang dirancang untuk bertindak sebagai pembahagi voltan atau dari program pada PC yang menggunakan 4 slider untuk mengawal motor servo.

Untuk projek ini saya harus merancang PCB khusus saya dan membuatnya, membuat model 3D arm dan menulis kod yang mengawal semuanya. Di atasnya saya mengkodkan program tambahan dalam python yang menghantar isyarat ke arduino yang berjaya menyahkodkan isyarat itu dan memindahkan servo ke kedudukan yang telah ditetapkan pengguna.

Langkah 1: Teori Di Sebalik Projek

Teori Di Sebalik Projek
Teori Di Sebalik Projek

Arduino hebat dengan cara ia menawarkan perpustakaan percuma untuk digunakan. Untuk projek ini, saya menggunakan Servo.h perpustakaan yang menjadikan pengendalian servos menjadi lebih mudah.

Motor servo dikendalikan oleh PWM -Pulse Width Modulation- yang bermaksud bahawa untuk mengawal servo anda perlu membuat denyutan voltan pendek. Servo dapat menyahkod panjang isyarat ini dan berpusing ke kedudukan tertentu. Dan di sinilah saya menggunakan perpustakaan yang telah disebutkan. Saya tidak perlu mengira panjang isyarat saya sendiri tetapi saya menggunakan fungsi perpustakaan yang saya lalui parameter dalam darjah dan ia membuat isyarat.

Untuk mengawal servos, saya menggunakan potensiometer yang bertindak sebagai pembahagi voltan. Papan Arduino mempunyai beberapa penukar analog / digital yang saya gunakan untuk projek ini. Pada dasarnya arduino adalah voltan pemantauan pada pin tengah pada potensiometer dan jika berpusing ke voltan satu sisi di atasnya adalah 0 Volt (nilai = 0) dan di sisi lain ia adalah 5 Volt (nilai = 1023). Nilai ini kemudian diskalakan dari julat 0 - 1023 hingga 0 - 180 dan kemudian diteruskan ke fungsi yang telah disebutkan.

Topik lain ialah komunikasi bersiri dengan arduino yang akan saya bahas sebentar. Pada dasarnya program yang ditulis pada PC menghantar nilai yang dipilih oleh pengguna, arduino dapat menyahkodnya 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 kawalan utama di mana arduino dan pin untuk servos dan yang kedua adalah potensiometer. Sebab 2 PCB adalah kerana saya mahu mengawal lengan robot dari jarak yang selamat. Kedua-dua litar disambungkan dengan kabel yang diberi panjang - dalam kes saya 80 cm.

Untuk sumber kuasa, saya memilih penyesuai luaran kerana servo yang saya gunakan menggunakan lebih banyak kuasa daripada yang dapat dibekalkan oleh arduino. Seperti yang anda lihat ada beberapa kapasitor yang belum saya sebutkan. Mereka adalah kapasitor yang digunakan untuk penapisan. Seperti yang anda ketahui sekarang, motor servo dikawal oleh impuls pendek. Impuls tersebut dapat menjadikan penurunan voltan bekalan dan potensiometer yang sebelumnya berkisar 0-5 volt kini mempunyai julat yang lebih kecil. Ini bermaksud bahawa voltan pada pin tengah berubah dan arduino mendapat nilai ini dan mengubah kedudukan yang menjadi motor servo. Ini dapat berterusan selama-lamanya dan menyebabkan ayunan yang tidak diingini dapat dihilangkan oleh beberapa kapasitor yang selari dengan bekalan.

Langkah 3: Membuat PCB

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

Untuk membuat PCB, saya cadangkan anda membaca ini.

Saya menggunakan kaedah kertas Iron on Glossy dan ia berjaya.

Kemudian saya menyolder bahagian pada PCB. Anda dapat melihat bahawa saya menggunakan soket arduino sekiranya saya memerlukannya pada masa akan datang.

Langkah 4: Merangka Lengan

Merangka Lengan
Merangka Lengan
Merangka Lengan
Merangka Lengan
Merangka Lengan
Merangka Lengan

Ini bukanlah bahagian paling sukar dalam membuat projek ini.

Penyediaan keseluruhan dibuat dari 8 bahagian di mana 4 bahagian tidak bergerak - kotak untuk potensiometer dan pangkalan di mana arduino berada - dan empat lagi adalah lengan itu sendiri. Saya tidak akan membahas lebih terperinci kecuali reka bentuknya cukup intuitif dan dengan cara yang sederhana. Ia direka agar sesuai dengan PCB dan servo tersuai saya yang akan saya sertakan dalam senarai bahagian.

Langkah 5: Mencetak Bahagian

Mencetak Bahagian
Mencetak Bahagian
Mencetak Bahagian
Mencetak Bahagian
Mencetak Bahagian
Mencetak Bahagian

Bahagian dicetak pada printer Prusa. Beberapa muka perlu digiling sedikit dan lubang dibor. Tiang pendukung juga perlu dilepaskan.

Langkah 6: Menggabungkan Semuanya

Menggabungkan Semuanya
Menggabungkan Semuanya
Menggabungkan Semuanya
Menggabungkan Semuanya
Menggabungkan Semuanya
Menggabungkan Semuanya
Menggabungkan Semuanya
Menggabungkan Semuanya

Dalam langkah ini seperti yang dinyatakan oleh tajuk, saya mengumpulkan semuanya.

Pada mulanya saya menyolder wayar pada potensiometer dan kemudian wayar pada PCB. Potensiometer sesuai dengan lubang dan saya melekatkan PCB pada tiang yang dicetak di bahagian bawah kotak. Anda boleh menggerudi lubang di papan dan ke dalam kotak tetapi saya mendapat tahu bahawa melekatkannya lebih daripada cukup. Kemudian saya menutup kedua-dua bahagian kotak dan menahannya dengan 4 skru yang sesuai dengan lubang yang saya reka.

Sebagai langkah seterusnya saya membuat kabel pita rata untuk menyambungkan kedua-dua papan.

Di kotak utama, saya menyambung wayar dari pin penyambung VCC untuk bertukar dan kemudian ke papan Vcc dan dari papan GND ke penyambung GND. Kemudian saya panas menempelkan penyambung di tempat dan pasangkan tiang. Penyambung dipasang tepat ke lubang sehingga tidak perlu lem panas.

Kemudian, dengan menggunakan skru, saya memasang servo bawah ke bahagian bawah kotak.

Selepas itu saya meletakkan bahagian atas kotak di bahagian bawah dan sama dengan kotak potensiometer saya mengamankannya dengan 4 skru.

Bahagian seterusnya agak sukar tetapi saya berjaya meletakkan bahagian lengan yang lain dengan pelbagai kacang dan pad dan ia tidak sesekat yang saya harapkan kerana saya merancang beberapa toleransi antara bahagian, jadi lebih mudah untuk bekerja dengannya.

Dan sebagai langkah terakhir saya meletakkan beberapa pita di bahagian bawah kotak kerana jika tidak, mereka akan meluncur.

Langkah 7: Memprogram Arduino

Pengaturcaraan Arduino
Pengaturcaraan Arduino
Pengaturcaraan Arduino
Pengaturcaraan Arduino
Pengaturcaraan Arduino
Pengaturcaraan Arduino

Saya telah menyebut bagaimana program berfungsi secara teori di sebalik projek, tetapi saya akan memecahkannya lebih banyak lagi.

Jadi pada awalnya kita perlu menentukan beberapa pemboleh ubah. Kebanyakannya disalin 4 kali kerana kita mempunyai 4 servos dan pada pendapat saya tidak perlu membuat logik yang lebih rumit hanya untuk menjadikan program sedikit lebih pendek.

Seterusnya terdapat penyediaan yang tidak sah di mana pin servos ditentukan.

Kemudian terdapat gelung kosong - sebahagian daripada program yang melambung tanpa had. Dalam program bahagian ini mengambil nilai dari skala potensiometer dan meletakkan output. Tetapi ada satu masalah bahawa nilai dari potensiometer melonjak sedikit, jadi saya perlu menambahkan penapis yang menghasilkan rata-rata 5 nilai terakhir dan kemudian meletakkan output. Ini mengelakkan goyah yang tidak diingini.

Bahagian terakhir program membaca data dari port bersiri dan memutuskan apa yang harus dilakukan berdasarkan data yang dihantar.

Untuk memahami kod sepenuhnya, saya cadangkan anda melayari laman web rasmi arduino.

Langkah 8: Pengaturcaraan di Python

Pengaturcaraan di Python
Pengaturcaraan di Python
Pengaturcaraan di Python
Pengaturcaraan di Python
Pengaturcaraan di Python
Pengaturcaraan di Python

Bahagian projek ini tidak diperlukan tetapi saya rasa ia hanya memberi nilai lebih kepada projek ini.

Python menawarkan banyak perpustakaan yang boleh digunakan secara percuma tetapi dalam projek ini saya hanya menggunakan tkinter dan serial. Tkinter digunakan untuk GUI (Antaramuka Pengguna Grafik) dan bersiri seperti namanya digunakan untuk komunikasi bersiri.

Kod ini membuat GUI dengan 4 slaid yang mempunyai nilai minimum 0 dan maksimum 180. Mungkin petunjuk bagi anda bahawa ia berada dalam darjah dan setiap slaid diprogramkan untuk mengendalikan satu servo. Program ini agak mudah - ia memerlukan nilai dan menghantarnya ke arduino. Tetapi cara menghantarnya menarik. Sekiranya anda memilih untuk menukar nilai servo pertama menjadi 123 darjah, ia akan dihantar ke nilai arduino 1123. Nombor pertama setiap nombor yang dihantar memberitahu servo mana yang hendak dikendalikan. Arduino mempunyai kod yang dapat menyahkod ini dan menggerakkan servo yang betul.

Langkah 9: Senarai Bahagian

Senarai Bahagian
Senarai Bahagian
  • Arduino Pro Mini 1 keping
  • Servo FS5106B 1 keping
  • Servo Futaba S3003 2 keping
  • Pin header 2x5 1 keping
  • Pin header 1x3 6 keping
  • Kapasitor 220uF 3 keping
  • Micro Servo FS90 1 keping
  • Penyambung AWP-10 2 keping
  • Penyambung FC681492 1 helai
  • Tukar P-B100G1 1 keping
  • Soket 2x14 1 keping
  • TTL-232R-5v - penukar 1 keping
  • Potensiometer B200K 4 keping
  • dan banyak lagi skru, pad dan kacang

Langkah 10: Pemikiran Akhir

Terima kasih kerana membaca ini dan saya harap sekurang-kurangnya saya memberi motivasi kepada anda. Ini adalah projek pertama saya yang lebih besar yang saya buat sendiri tanpa menyalin barang dari internet dan catatan arahan pertama. Saya tahu bahawa lengan boleh ditingkatkan tetapi saya berpuas hati buat masa ini. Semua bahagian dan kod sumber adalah percuma, anda boleh menggunakannya dan menukarnya dengan cara yang anda mahukan. Sekiranya anda mempunyai sebarang pertanyaan, sila ajukannya di bahagian komen. Anda juga dapat melihat video, video itu tidak berkualiti tetapi menunjukkan fungsi projek.

Disyorkan: