Isi kandungan:
- Bekalan
- Langkah 1: Cetak Semua Komponen 3D
- Langkah 2: (Pilihan) Pasang Papan Kayu ke Bahagian Bawah Kotak Anda untuk Menguatkannya
- Langkah 3: Ukur dan Potong Papan Kayu agar Sesuai dengan Kotak
- Langkah 4: Tandakan Kedudukan Motor
- Langkah 5: Tandakan Kedudukan Kurungan dan Paip
- Langkah 6: Bor Lubang untuk Kabel yang Keluar dari Kotak Anda (USB dan Kuasa)
- Langkah 7: Gerudi dan Lihat Semua Lubang yang Ditandai
- Langkah 8: Pasang Motor dan Paip ke Papan
- Langkah 9: Pasang Papan ke Kotak Dengan Kurungan L
- Langkah 10: Ambil Blok Terminal Anda dan Padankan Kabel Bersama
- Langkah 11: Potong Kabel Kuasa Adaptor dan Tanggalkan Wayar
- Langkah 12: Kenal pasti dan Tandakan Kabel Plus dan Minus
- Langkah 13: Pasang Wayar ke Blok Terminal Sehingga Semua + Kabel Servo dan Kawat + Dari Kabel Kuasa Dihubungkan, Sama Untuk Kawat -
- Langkah 14: Potong Kepala Kawat Breadboard
- Langkah 15: Gerudi Tiga Lubang di Bahagian Bawah Kotak untuk Kabel yang Keluar dari Lengan Anda
- Langkah 16: Pasang Penyambung Pangkalan ke Kotak
- Langkah 17: Gunakan Fail Pisau atau Kuku untuk Menjadikan Alur Kawat Lebih Mendalam
- Langkah 18: Bentukkan Lengan
- Langkah 19: Pasang Pemprosesan dan Arduino
- Langkah 20: Tampal Program Kod
- Langkah 21: Sambungkan Servo Control Pin ke Arduino
- Langkah 22: Tekan Butang Atur Semula dalam Pemprosesan, Ini Akan Menetapkan Semua Lengan hingga 90 Darjah
- Langkah 23: Betulkan Servo Arms ke Motor secara Mendatar
- Langkah 24: Jalurkan Kawat Melalui Senjata Sehingga Tidak Ada Kelemahan
- Langkah 25: Uji Lengan dan Ketatkan atau Longgarkan Kawat Seperti Yang Diperlukan
- Langkah 26: Lekatkan Kabel Wayar ke Lengan Servo untuk Menjadikannya Kekal
- Langkah 27: Catatan
- Langkah 28: Penyelesaian masalah
- Langkah 29: Pautan
- Langkah 30: Kod
- Langkah 31: Lebih Banyak Gambar
Video: Lengan Robot Terkawal Kawat: 31 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:09
Ini adalah tutorial bagaimana membuat lengan robot dikawal oleh wayar. Kelebihan menggunakan wayar adalah lengan anda lebih ringan dan anda boleh meletakkan semua motor anda di bahagian bawah lengan anda, menjadikan bangunan dan penyelenggaraan lebih mudah. Berikut adalah video lengan yang sedang beraksi. Saya merancang untuk menambah cakar pada masa akan datang supaya dapat mengambil barang dan bukan hanya mendorongnya.
Cetakan 3D:
Di sini dan di sini
Bekalan
6 Motor Servo (MG995)
Arduino Uno
Kira-kira 6 meter dawai keluli bersalut plastik (0.5mm)
Kotak 23x33x10 (mungkin lebih sempit, pastinya tidak lebih pendek)
Papan kayu 33x10
Mur dan Baut
Paip 14 cm (ini diperlukan untuk memandu tali)
4 L-Kurungan
Penyesuai 5 volt
2 blok terminal 7 hala
Kawat papan roti
Komponen Bercetak 3D (Tidak dirancang oleh saya, pautan ke elemen dalam keterangan):
3 "Selak"
2 "Elemen 1"
1 "Elemen 2"
2 "Elemen 3"
1 Penyambung Pangkalan
Langkah 1: Cetak Semua Komponen 3D
Anda mungkin memerlukan sokongan untuk lubang baut dan lengkungan tetapi pastikan untuk tidak menambahkan sokongan pada badan komponen anda; ini akan menutup lubang wayar kecil dan anda perlu membuat lubang baru
Langkah 2: (Pilihan) Pasang Papan Kayu ke Bahagian Bawah Kotak Anda untuk Menguatkannya
Kotak saya agak lemah, mungkin milik anda tidak
Langkah 3: Ukur dan Potong Papan Kayu agar Sesuai dengan Kotak
Langkah 4: Tandakan Kedudukan Motor
pastikan tidak ada lengan yang saling menyentuh
Langkah 5: Tandakan Kedudukan Kurungan dan Paip
Paip hendaklah diletakkan sekitar satu sentimeter di depan lubang
Langkah 6: Bor Lubang untuk Kabel yang Keluar dari Kotak Anda (USB dan Kuasa)
Langkah 7: Gerudi dan Lihat Semua Lubang yang Ditandai
Langkah 8: Pasang Motor dan Paip ke Papan
Langkah 9: Pasang Papan ke Kotak Dengan Kurungan L
Langkah 10: Ambil Blok Terminal Anda dan Padankan Kabel Bersama
Langkah 11: Potong Kabel Kuasa Adaptor dan Tanggalkan Wayar
Langkah 12: Kenal pasti dan Tandakan Kabel Plus dan Minus
Langkah 13: Pasang Wayar ke Blok Terminal Sehingga Semua + Kabel Servo dan Kawat + Dari Kabel Kuasa Dihubungkan, Sama Untuk Kawat -
Langkah 14: Potong Kepala Kawat Breadboard
Pasang hujung wayar papan roti yang dilucutkan ke blok terminal tolak dan hujung pin ke pin tanah di arduino anda. Sekiranya anda tidak melakukan ini, motor akan bergerak secara tidak menentu tanpa sebarang input.
Langkah 15: Gerudi Tiga Lubang di Bahagian Bawah Kotak untuk Kabel yang Keluar dari Lengan Anda
Lubang harus sesuai dengan lubang di penyambung asas.
Langkah 16: Pasang Penyambung Pangkalan ke Kotak
Langkah 17: Gunakan Fail Pisau atau Kuku untuk Menjadikan Alur Kawat Lebih Mendalam
Alur wayar untuk elemen 2 dan 3 terlalu cetek.
Langkah 18: Bentukkan Lengan
Bentukkan lengan mengikut arahan di sini, anda mungkin perlu memasukkan bahagiannya agar sesuai
Langkah 19: Pasang Pemprosesan dan Arduino
Pemprosesan dan Arduino
Langkah 20: Tampal Program Kod
Kodnya terdapat di bahagian bawah halaman ini
Langkah 21: Sambungkan Servo Control Pin ke Arduino
Saya menyambungkan motor pertama ke pin digital ketiga, motor kedua ke pin digital keempat dan seterusnya. Pastikan pin ground masih terhubung ke blok terminal.
Langkah 22: Tekan Butang Atur Semula dalam Pemprosesan, Ini Akan Menetapkan Semua Lengan hingga 90 Darjah
Langkah 23: Betulkan Servo Arms ke Motor secara Mendatar
Langkah 24: Jalurkan Kawat Melalui Senjata Sehingga Tidak Ada Kelemahan
Pastikan anda memasukkan wayar melalui lubang sebanyak yang anda boleh, ini akan menahannya buat sementara waktu dan mudah dilepaskan.
Langkah 25: Uji Lengan dan Ketatkan atau Longgarkan Kawat Seperti Yang Diperlukan
Langkah 26: Lekatkan Kabel Wayar ke Lengan Servo untuk Menjadikannya Kekal
Langkah 27: Catatan
Saya menggunakan wayar perhiasan 0.5mm tetapi 0.4mm mestilah baik-baik saja. Reka bentuk asalnya menggunakan wayar PVC tetapi terlalu mudah pecah dan sukar untuk digunakan.
Sekiranya anda akan menggerakkan lengan di dalam kereta atau basikal, bungkus sendi lengan dengan pita untuk memastikan mereka tidak keluar. Ini sangat penting untuk elemen 1.
Semasa saya memulakan projek ini, saya tertanya-tanya mengapa saya hanya dapat mencari satu tutorial bagaimana membuat lengan dikendalikan oleh wayar. Sekarang saya faham mengapa ini bukan kaedah yang paling biasa untuk membuat robot hobi. Kabel kadang-kadang jatuh dari alur mereka dan semuanya agak tipis. Saya tidak tahu apakah masalahnya kerana saya tidak mempunyai banyak pengalaman atau jika keseluruhan idea itu bermasalah walaupun saya yakin ia akan menjadi lebih kukuh sekiranya saya tahu apa yang saya lakukan.
Langkah 28: Penyelesaian masalah
Lubang wayar ditutup dalam elemen bercetak 3D:
Anda menambahkan sokongan untuk keseluruhan elemen dan bukannya hanya lubang bolt. Sama ada mencetak semula elemen atau membuka lubang dengan jarum yang sangat panas.
Port COM ditutup, anda tidak dapat berkomunikasi dengan arduino:
Arduino anda mungkin tidak menerima port USB 3 (saya tidak), anda boleh membeli kabel sambungan USB 2 atau menggunakan komputer yang mempunyai port USB 2
Kod tidak berfungsi:
Ikuti tutorial ini dan ubah suai untuk membuat kod anda sendiri
Bahagian lengan tidak bergerak:
Kabelnya mungkin kusut, untuk memeriksa ini melepaskan lengan servo dari servo dan cuba menarik wayar dengan tangan. Tanggalkan wayar dan jika masih sukar untuk menarik wayar, cuba gunakan beberapa WD-40 atau pelincir untuk memudahkan pergerakan
Langkah 29: Pautan
Lengan Bukan Robotik:
Arm 3D Printables:
Lengan Saya 3D Boleh Dicetak:
Arduino dan Pemprosesan:
Langkah 30: Kod
Diubah suai dari kod ini
Kod Arduino:
#include // Menyatakan motor Servo myservo1; Servo myservo2; Servo myservo3; Servo myservo4; Servo myservo5; Servo myservo6; // Semua motor ditetapkan pada 90 darjah secara lalai int arus1 = 90; int semasa2 = 90; int semasa3 = 90; int semasa4 = 90; int semasa5 = 90; int semasa6 = 90; // Darjah Minimum dan Maksimum motor boleh mencapai int mini1 = 0; int maxi1 = 180; int mini2 = 0; int maxi2 = 180; int mini3 = 0; int maxi3 = 180; int mini4 = 0; int maxi4 = 180; int mini5 = 0; int maxi5 = 180; int mini6 = 0; int maxi6 = 180; // Darjah yang akan ditambah atau dikurangkan dari kedudukan semasa int darjahFoward = 5; // Kelewatan sehingga dua fungsi tidak berlaku dalam urutan yang salah int delayBetweenSteps = 100; batal persediaan () {// Tetapkan pin kawalan untuk setiap motor myservo1.attach (3); myservo2.attach (4); myservo3.attach (5); myservo4.attach (6); myservo5.attach (7); myservo6.attach (8); // Tetapkan semua motor ke tetapan lalai myservo1.write (current1); myservo2.write (semasa2); myservo3.write (semasa3); myservo4.write (semasa4); myservo5.write (semasa5); myservo6.write (semasa6); // mulakan komunikasi bersiri @ 9600 bps Serial.begin (9600); } gelung void () {if (Serial.available ()) {// jika data tersedia untuk membaca char val = Serial.read (); // masukkan ke dalam char ini // Motor Controls jika (val == 'a' && current1 + degreesFoward mini1) {myservo1.write (current1 - degreesFoward); current1 = current1 - darjahFoward; kelewatan (delayBetweenSteps); } jika (val == 'c' && current2 mini2) {myservo2.write (current2 - degreesFoward); current2 = current2 - darjahFoward; kelewatan (delayBetweenSteps); } jika (val == 'e' && current3 mini3) {myservo3.write (current3 - degreesFoward); current3 = current3 - darjahFoward; kelewatan (delayBetweenSteps); } jika (val == 'g' && current4 mini4) {myservo4.write (current4 - degreesFoward); current4 = current4 - darjahFoward; kelewatan (delayBetweenSteps); } jika (val == 'i' && current5 mini5) {myservo5.write (current5 - degreesFoward); current5 = current5 - darjahFoward; kelewatan (delayBetweenSteps); } jika (val == 'k' && current6 mini6) {myservo6.write (current6 - degreesFoward); current6 = current6 - darjahFoward; kelewatan (delayBetweenSteps); } // Kawalan Kelajuan jika (val == 'w') {// Sekiranya butang kelajuan 1 ditekan darjahFoward = 1; kelewatan (delayBetweenSteps); } if (val == 'x') {// Sekiranya butang kelajuan 5 ditekan darjahFoward = 5; kelewatan (delayBetweenSteps); } if (val == 'y') {// Sekiranya butang kelajuan 10 ditekan darjahFoward = 10; kelewatan (delayBetweenSteps); } if (val == 'z') {// Sekiranya butang kelajuan 20 ditekan darjahFoward = 20; kelewatan (delayBetweenSteps); } if (val == 'r') {// Sekiranya butang kelajuan 20 ditekan myservo1.write (90); semasa1 = 90; myservo2.write (90); semasa2 = 90; myservo3.write (90); semasa3 = 90; myservo4.write (90); semasa4 = 90; myservo5.write (90); semasa5 = 90; myservo6.write (90); semasa6 = 90; kelewatan (delayBetweenSteps); }}}
Kod Pemprosesan:
pemprosesan import.serial. *; kawalan importP5. *; // import port Serial perpustakaan ControlP5; KawalP5 cp5; // buat fon PFont objek ControlP5; kekosongan persediaan () {// sama dengan ukuran program arduino (300, 700); // saiz tetingkap, (lebar, tinggi) printArray (Serial.list ()); // mencetak semua port bersiri yang tersedia // Sekiranya anda menghadapi masalah, ia mungkin berasal dari sini String portName = Serial.list () [0]; port = Serial baru (ini, portName, 9600); // saya telah menghubungkan arduino ke com3, ia akan berbeza di linux dan mac os // mari kita tambah buton ke tetingkap kosong cp5 = ControlP5 baru (ini); font = createFont ("Arial", 13); // fon khusus untuk butang dan tajuk // Butang Kawalan Kelajuan cp5.addButton ("One") // "Satu" adalah nama butang.setPosition (50, 50) // x dan y koordinat sudut kiri atas butang.setSize (55, 25) // (lebar, tinggi).setFont (fon); cp5.addButton ("Five").setPosition (110, 50).setSize (55, 25).setFont (font); cp5.addButton ("Sepuluh").setPosition (170, 50).setSize (55, 25).setFont (font); cp5.addButton ("Twenty").setPosition (230, 50).setSize (55, 25).setFont (font); cp5.addButton ("Reset").setPosition (110, 2).setSize (55, 25).setFont (font); cp5.addButton ("Servo_1_Foward").setPosition (50, 90).setSize (190, 40).setFont (fon); // Tombol Kawalan Motor cp5.addButton ("Servo_1_Back").setPosition (50, 140).setSize (190, 40).setFont (font); cp5.addButton ("Servo_2_Foward").setPosition (50, 190).setSize (190, 40).setFont (fon); cp5.addButton ("Servo_2_Back").setPosition (50, 240).setSize (190, 40).setFont (fon); cp5.addButton ("Servo_3_Foward").setPosition (50, 290).setSize (190, 40).setFont (fon); cp5.addButton ("Servo_3_Back").setPosition (50, 340).setSize (190, 40) // (lebar, tinggi).setFont (fon); cp5.addButton ("Servo_4_Foward").setPosition (50, 390).setSize (190, 40).setFont (fon); cp5.addButton ("Servo_4_Back").setPosition (50, 440).setSize (190, 40) // (lebar, tinggi).setFont (fon); cp5.addButton ("Servo_5_Foward").setPosition (50, 490).setSize (190, 40).setFont (fon); cp5.addButton ("Servo_5_Back").setPosition (50, 540).setSize (190, 40).setFont (fon); cp5.addButton ("Servo_6_Foward").setPosition (50, 590).setSize (190, 40).setFont (fon); cp5.addButton ("Servo_6_Back").setPosition (50, 640).setSize (190, 40).setFont (fon); } undian tidak sah () {// sama dengan gelung di latar belakang arduino (192, 215, 249); // warna latar belakang tetingkap (r, g, b) atau (0 hingga 255) // Tambahkan teks yang mengatakan kawalan kelajuan adalah pengisian kelajuan (0, 10, 25); // warna teks (r, g, b) textFont (fon); teks ("Kawalan Kelajuan", 50, 40); // ("teks", koordinat x, koordinat y)} // mari kita tambahkan beberapa fungsi ke butang kita // jadi apabila anda menekan butang apa pun, ia akan menghantar char khas melalui port bersiri // Saya yakin mungkin untuk menghantar rentetan bukannya chars, dan itu akan lebih masuk akal tetapi saya tidak tahu bagaimana melakukannya // Perintah Kawalan Kelajuan batal Satu () {port.write ('w'); } batal Lima () {port.write ('x'); } batal Sepuluh () {port.write ('y'); } batal Dua Puluh () {port.write ('z'); } // Perintah Kawalan Motor membatalkan Servo_1_Foward () {port.write ('a'); } batal Servo_1_Back () {port.write ('b'); } batal Servo_2_Foward () {port.write ('c'); } batal Servo_2_Back () {port.write ('d'); } batal Servo_3_Foward () {port.write ('e'); } batal Servo_3_Back () {port.write ('f'); } batal Servo_4_Foward () {port.write ('g'); } batal Servo_4_Back () {port.write ('h'); } batal Servo_5_Foward () {port.write ('i'); } batal Servo_5_Back () {port.write ('j'); } batal Servo_6_Foward () {port.write ('k'); } batal Servo_6_Back () {port.write ('l'); } batal Tetapkan Semula () {port.write ('r'); }
Langkah 31: Lebih Banyak Gambar
Disyorkan:
Lengan Robotik 3D Dengan Motor Stepper Terkawal Bluetooth: 12 Langkah
Lengan Robotik 3D Dengan Motor Stepper Terkawal Bluetooth: Dalam tutorial ini kita akan melihat bagaimana membuat lengan robot 3D, dengan motor stepper 28byj-48, motor servo dan bahagian dicetak 3D. Papan litar bercetak, kod sumber, rajah elektrik, kod sumber dan banyak maklumat disertakan di laman web saya
Lengan Robot Terkawal Rotary Encoder: 6 Langkah
Rotary Encoder Controlled Arm Robot: Saya mengunjungi howtomechatronics.com dan melihat lengan robot terkawal bluetooth di sana. Saya tidak suka menggunakan bluetooth, dan saya melihat kita dapat mengawal servo dengan rotary encoder, jadi saya merancang semula bahawa saya dapat mengawal robot lengan menggunakan pengekod putar dan rakamnya
Lengan Terkawal Telefon Pintar Murah (+ Kedudukan Penjimatan Pilihan): 5 Langkah
Lengan Dikendalikan Telefon Pintar Murah (+ Posisi Menyimpan Pilihan): ProjekMemacu lengan robot yang dikendalikan oleh telefon pintar menggunakan peranti bluetooth. Bonus kaedah: kami mempunyai butang yang membolehkan arduino mengingat kedudukan. Bila-bila masa kita mahu, kita boleh pergi ke kedudukan yang disimpan ini dengan butang lain. Perintah FRLE PROJET
Lengan Robot Motor Servo RC Terkawal Fpga - Peraduan Digilent: 3 Langkah
Lengan Robot Motor Servo RC Terkawal Fpga - Peraduan Digilent: Lengan robot motor servo terkawal FPGA Matlamat projek ini adalah untuk mewujudkan sistem yang dapat diprogramkan yang dapat melakukan operasi pematerian pada papan perf. Sistem ini didasarkan pada papan pengembangan Digilent Basys3 dan ia akan dapat
Alat Lengan Robot Pemotong Kawat Panas: 8 Langkah (dengan Gambar)
Alat Lengan Robot Pemotong Kawat Panas: Sebagai sebahagian daripada projek tesis saya di KADK di Kopenhagen, saya telah meneroka pemotongan wayar panas dan fabrikasi robot. Untuk menguji kaedah fabrikasi ini, saya telah membuat lampiran wayar panas untuk lengan robot. Kawat harus menjangkau 700mm, namun bahannya