Mundarija:
- Ta'minotlar
- 1 -qadam: Barcha 3D komponentlarini chop eting
- 2 -qadam: (Majburiy emas) Uni mustahkamlash uchun qutining pastki qismiga yog'och taxta yopishtiring
- 3 -qadam: qutiga mos keladigan yog'och taxtani o'lchab, kesib oling
- 4 -qadam: Dvigatellarning pozitsiyalarini belgilang
- 5 -qadam: Qavslar va quvurlarning joylashishini belgilang
- 6 -qadam: Sizning qutingizdan chiqadigan kabellar uchun teshik qiling (USB va quvvat)
- 7 -qadam: Barcha belgilangan teshiklarni burg'ulash va arralash
- 8 -qadam: Dvigatellar va quvurlarni taxtaga ulang
- 9-qadam: Plankani L-qavs bilan qutiga mahkamlang
- 10 -qadam: Terminal bloklarini oling va simlarni lehimlang
- 11 -qadam: Adapter quvvat simining uchini kesib oling va simlarni uzing
- 12 -qadam: Plus va minus simlarini aniqlang va belgilang
- 13 -qadam: Simlarni terminal bloklariga ulang, shunda barcha + servo simlar va elektr simidan + simlar ulanadi, simlar uchun ham xuddi shunday
- 14 -qadam: Boshini non panelidan kesib oling
- 15 -qadam: Qo'lingizdan chiqadigan simlar uchun qutining pastki qismida uchta teshik oching
- 16 -qadam: Asosiy ulagichni qutiga ulang
- 17 -qadam: simli yivlarni chuqurroq qilish uchun pichoq yoki tirnoq faylidan foydalaning
- 18 -qadam: qo'lni qurish
- 19 -qadam: Processing va Arduino -ni o'rnating
- 20 -qadam: Kod dasturlarini joylashtiring
- 21 -qadam: Servo boshqaruv pimlarini Arduino -ga ulang
- 22 -qadam: Qayta tiklash tugmachasini bosing, bu barcha qo'llarni 90 darajaga o'rnatadi
- 23 -qadam: Servo qo'llarini motorga gorizontal ravishda mahkamlang
- 24 -qadam: Simlar bo'shashmasligi uchun ularni qo'llar orasidan o'tkazing
- 25 -qadam: Qo'lni sinab ko'ring va simlarni kerak bo'lganda torting yoki bo'shating
- 26 -qadam: Servo qo'llarini simlarni doimiy yopishtirish uchun issiq yopishtiring
- 27 -qadam: Eslatmalar
- 28 -qadam: Muammolarni bartaraf etish
- 29 -qadam: havolalar
- 30 -qadam: kod
- 31 -qadam: Qo'shimcha rasmlar
Video: Sim bilan boshqariladigan robot qo'l: 31 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:25
Bu simlar yordamida boshqariladigan robot qo'lini yasash bo'yicha qo'llanma. Simlardan foydalanishning afzalligi shundaki, sizning qo'lingiz engilroq va siz barcha dvigatellarni qo'lingizning tagiga qo'yib, qurilish va texnik xizmat ko'rsatishni osonlashtirasiz. Bu erda qo'lning harakatdagi videosi. Men kelajakda panjani qo'shishni rejalashtirmoqdaman, shunda u narsalarni tortib olmasligi mumkin.
3D bosma nashrlar:
Bu erda va bu erda
Ta'minotlar
6 Servo motor (MG995)
Arduino Uno
Taxminan 6 metr plastik qoplamali po'lat sim (0,5 mm)
23x33x10 quti (torroq bo'lishi mumkin, aniqrog'i qisqa bo'lmasligi kerak)
Yog'ochdan yasalgan taxta 33x10
Yong'oqlar va murvat
Quvur 14 sm (bu iplarni yo'naltirish uchun kerak)
4 ta L-qavs
5 voltli adapter
2 ta 7 tomonlama terminal bloklari
Non paneli simlari
3D bosma komponentlar (men ishlab chiqmaganman, tavsifdagi elementlarga havolalar):
3 "murvat"
2 "Element 1"
1 "2 -element"
2 "3 -element"
1 Asosiy ulagich
1 -qadam: Barcha 3D komponentlarini chop eting
Siz murvat teshiklari va kamarlarini qo'llab -quvvatlashga muhtoj bo'lishingiz mumkin, lekin uning qismlariga korpus qo'shilmasligiga ishonch hosil qiling; bu kichik sim teshiklarini yopadi va siz yangi teshiklarni ochishingiz kerak bo'ladi
2 -qadam: (Majburiy emas) Uni mustahkamlash uchun qutining pastki qismiga yog'och taxta yopishtiring
Mening qutim juda zaif edi, sizniki bo'lmasligi mumkin
3 -qadam: qutiga mos keladigan yog'och taxtani o'lchab, kesib oling
4 -qadam: Dvigatellarning pozitsiyalarini belgilang
qo'llarning hech biri bir -biriga tegmasligiga ishonch hosil qiling
5 -qadam: Qavslar va quvurlarning joylashishini belgilang
Quvurni teshik oldida taxminan bir santimetrga qo'yish kerak
6 -qadam: Sizning qutingizdan chiqadigan kabellar uchun teshik qiling (USB va quvvat)
7 -qadam: Barcha belgilangan teshiklarni burg'ulash va arralash
8 -qadam: Dvigatellar va quvurlarni taxtaga ulang
9-qadam: Plankani L-qavs bilan qutiga mahkamlang
10 -qadam: Terminal bloklarini oling va simlarni lehimlang
11 -qadam: Adapter quvvat simining uchini kesib oling va simlarni uzing
12 -qadam: Plus va minus simlarini aniqlang va belgilang
13 -qadam: Simlarni terminal bloklariga ulang, shunda barcha + servo simlar va elektr simidan + simlar ulanadi, simlar uchun ham xuddi shunday
14 -qadam: Boshini non panelidan kesib oling
Tarmoq simining yirtilgan uchini minus terminal blokiga va pin uchini arduino -dagi er uchiga ulang. Agar buni qilmasangiz, dvigatellar hech qanday kirishlarsiz tartibsiz harakat qiladi.
15 -qadam: Qo'lingizdan chiqadigan simlar uchun qutining pastki qismida uchta teshik oching
Teshiklar taglik ulagichidagi teshiklarga to'g'ri kelishi kerak.
16 -qadam: Asosiy ulagichni qutiga ulang
17 -qadam: simli yivlarni chuqurroq qilish uchun pichoq yoki tirnoq faylidan foydalaning
2 va 3 -elementlar uchun simli oluklar juda sayoz.
18 -qadam: qo'lni qurish
Qo'lni bu erdagi ko'rsatmalarga binoan tuzing, siz qismlarni mos keladigan tarzda joylashtirishingiz kerak bo'lishi mumkin
19 -qadam: Processing va Arduino -ni o'rnating
Qayta ishlash va Arduino
20 -qadam: Kod dasturlarini joylashtiring
Kod sahifaning pastki qismida joylashgan
21 -qadam: Servo boshqaruv pimlarini Arduino -ga ulang
Men birinchi dvigatelni uchinchi raqamli pin, ikkinchi motorni to'rtinchi raqamli pin va boshqalarga uladim. Topraklama pimi haligacha terminal blokiga ulanganligiga ishonch hosil qiling.
22 -qadam: Qayta tiklash tugmachasini bosing, bu barcha qo'llarni 90 darajaga o'rnatadi
23 -qadam: Servo qo'llarini motorga gorizontal ravishda mahkamlang
24 -qadam: Simlar bo'shashmasligi uchun ularni qo'llar orasidan o'tkazing
Iloji boricha ko'proq teshikdan o'tkazganingizga ishonch hosil qiling, bu uni vaqtincha ushlab turadi va olib tashlash oson bo'ladi.
25 -qadam: Qo'lni sinab ko'ring va simlarni kerak bo'lganda torting yoki bo'shating
26 -qadam: Servo qo'llarini simlarni doimiy yopishtirish uchun issiq yopishtiring
27 -qadam: Eslatmalar
Men 0,5 mm zargarlik simini ishlatardim, lekin 0,4 mm yaxshi bo'lishi kerak. Original dizaynda PVX sim ishlatilgan, lekin u juda oson uzilib ketgan va u bilan ishlash qiyin bo'lgan.
Agar siz qo'lni mashinada yoki velosipedda harakatlantirmoqchi bo'lsangiz, qo'llar bo'g'inlari chiqib ketmasligiga ishonch hosil qiling. Bu, ayniqsa, 1 -element uchun juda muhimdir.
Men bu loyihani boshlaganimda, men nima uchun faqat simlar yordamida boshqariladigan qo'lni yasash bo'yicha bitta qo'llanma topa olaman deb o'ylardim. Endi men nima uchun bu sevimli mashg'ulotlardan robot qo'lini yasashning eng keng tarqalgan usuli emasligini tushunaman. Ba'zida simlar yivlaridan tushadi va hamma narsa qandaydir zaif. Bilmadim, muammolar menda katta tajribaga ega emasmi yoki butun fikr muammolimi, lekin men nima qilayotganimni bilsam, bu yanada mustahkamroq bo'lishiga aminman.
28 -qadam: Muammolarni bartaraf etish
Simli teshiklar 3D bosilgan elementlarda yopiladi:
Siz murvat teshiklari o'rniga butun elementni qo'llab -quvvatladingiz. Yoki elementni qayta chop eting yoki teshiklarni chindan ham issiq igna bilan oching.
COM porti yopiq, siz arduino bilan bog'lana olmaysiz:
Sizning arduino USB 3 portini qabul qilmasligi mumkin (meniki emas), siz USB 2 uzatma kabelini sotib olishingiz yoki USB 2 portli kompyuterdan foydalanishingiz mumkin.
Kod ishlamayapti:
O'zingizning kodingizni yaratish uchun ushbu qo'llanmani bajaring va o'zgartiring
Qo'lning bir qismi qimirlamaydi:
Simlar chalkashib ketgan bo'lishi mumkin, buni tekshirish uchun servo qo'lni servodan chiqarib oling va simlarni qo'l bilan tortib ko'ring. Simlarni echib oling va simlarni tortish hali ham qiyin bo'lsa, harakatni engillashtirish uchun WD-40 yoki moylash vositasidan foydalaning.
29 -qadam: havolalar
Robotik bo'lmagan qo'l:
3D bosma qo'llar:
Mening qo'limni 3D bosib chiqarish:
Arduino va ishlov berish:
30 -qadam: kod
Ushbu koddan o'zgartirilgan
Arduino kodi:
#include // Dvigatellarni Servo myservo1 deb e'lon qiling; Servo myservo2; Xizmat ko'rsatish myservo3; Servo myservo4; Servo myservo5; Servo myservo6; // Barcha motorlar sukut bo'yicha 90 darajaga o'rnatiladi int current1 = 90; int joriy2 = 90; int joriy3 = 90; int joriy4 = 90; int joriy5 = 90; int joriy 6 = 90; // Dvigatellar int mini1 = 0 ga yetishi mumkin bo'lgan minimal va maksimal darajalar; 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; // joriy darajadan qo'shiladigan yoki olib tashlanadigan darajalar int darajalariFoward = 5; // Kechiktirish, shuning uchun ikkita funktsiya noto'g'ri tartibda sodir bo'lmaydi int delayBetweenSteps = 100; void setup () {// myservo1.attach (3) har bir dvigatel uchun boshqaruv pinlarini o'rnating; myservo2.attach (4); myservo3.attach (5); myservo4.attach (6); myservo5.attach (7); myservo6.attach (8); // Barcha motorlarni myservo1.write (current1) standart sozlamasiga o'rnating; myservo2.write (joriy2); myservo3.write (current3); myservo4.write (current4); myservo5.write (joriy5); myservo6.write (current6); // ketma -ket aloqani boshlash @9600 bps Serial.begin (9600); } void loop () {if (Serial.available ()) {// agar o'qish uchun ma'lumotlar mavjud bo'lsa val val = Serial.read (); // uni bu belgiga qo'ying // Dvigatel boshqaruvlari agar (val == 'a' && current1 + darajaFoward mini1) {myservo1.write (current1 - darajaFoward); joriy1 = joriy1 - darajaHarakat; kechikish (delayBetweenSteps); } if (val == 'c' && current2 mini2) {myservo2.write (current2 - dərəcəFoward); joriy2 = joriy2 - darajaFor; kechikish (delayBetweenSteps); } if (val == 'e' && current3 mini3) {myservo3.write (current3 - darajaFoward); joriy3 = joriy3 - darajaHarakat; kechikish (delayBetweenSteps); } if (val == 'g' && current4 mini4) {myservo4.write (current4 - darajaFoward); joriy4 = joriy4 - darajaFor; kechikish (delayBetweenSteps); } if (val == 'i' && current5 mini5) {myservo5.write (current5 - darajaFoward); joriy5 = oqim5 - darajaFor; kechikish (delayBetweenSteps); } if (val == 'k' && current6 mini6) {myservo6.write (current6 - darajaFoward); joriy6 = oqim6 - darajaHarakat; kechikish (delayBetweenSteps); } // Tezlikni boshqarish agar (val == 'w') {// Agar tezlik 1 tugmasi daraja bosilsaFoward = 1; kechikish (delayBetweenSteps); } if (val == 'x') {// Agar tezlik 5 tugmasi daraja bosilsaFoward = 5; kechikish (delayBetweenSteps); } if (val == 'y') {// Agar tezlik 10 tugmasi daraja bosilsaFoward = 10; kechikish (delayBetweenSteps); } if (val == 'z') {// Agar tezlik 20 tugmasi daraja bosilsaFoward = 20; kechikish (delayBetweenSteps); } if (val == 'r') {// Agar tezlik 20 tugmasi bosilsa myservo1.write (90); joriy1 = 90; myservo2.write (90); joriy2 = 90; myservo3.write (90); joriy3 = 90; myservo4.write (90); joriy4 = 90; myservo5.write (90); oqim5 = 90; myservo6.write (90); joriy6 = 90; kechikish (delayBetweenSteps); }}}
Kodni qayta ishlash:
importni qayta ishlash.serial.*; import nazoratiP5.*; // Import ControlP5 kutubxonasi ketma -ket port; ControlP5 cp5; // ControlP5 obyekti PFont shriftini yaratish; void setup () {// arduino dasturining o'lchami bilan bir xil (300, 700); // oyna o'lchami, (kenglik, balandlik) printArray (Serial.list ()); // barcha mavjud ketma -ket portlarni chop etadi // Agar muammoga duch kelsangiz, ehtimol bu yerdan keladi String portName = Serial.list () [0]; port = yangi Serial (bu, portName, 9600); // men arduino -ni com3 -ga uladim, bu Linux va mac os -da boshqacha bo'ladi // bo'sh oynaga buton qo'shish imkonini beradi cp5 = yangi ControlP5 (bu); shrift = createFont ("Arial", 13); // tugmalar va sarlavhalar uchun maxsus shriftlar // Tezlikni boshqarish tugmalari cp5.addButton ("Bir") // "Bir" - tugma nomi.setPosition (50, 50) // tugmachaning yuqori chap burchagining x va y koordinatalari..setSize (55, 25) // (kenglik, balandlik).setFont (shrift); cp5.addButton ("Besh").setPosition (110, 50).setSize (55, 25).setFont (shrift); cp5.addButton ("O'n").setPosition (170, 50).setSize (55, 25).setFont (shrift); cp5.addButton ("Yigirma").setPosition (230, 50).setSize (55, 25).setFont (shrift); cp5.addButton ("Qayta o'rnatish").setPosition (110, 2).setSize (55, 25).setFont (shrift); cp5.addButton ("Servo_1_Foward").setPosition (50, 90).setSize (190, 40).setFont (shrift); // Dvigatelni boshqarish tugmalari cp5.addButton ("Servo_1_Back").setPosition (50, 140).setSize (190, 40).setFont (shrift); cp5.addButton ("Servo_2_Foward").setPosition (50, 190).setSize (190, 40).setFont (shrift); cp5.addButton ("Servo_2_Back").setPosition (50, 240).setSize (190, 40).setFont (shrift); cp5.addButton ("Servo_3_Foward").setPosition (50, 290).setSize (190, 40).setFont (shrift); cp5.addButton ("Servo_3_Back").setPosition (50, 340).setSize (190, 40) // (kenglik, balandlik).setFont (shrift); cp5.addButton ("Servo_4_Foward").setPosition (50, 390).setSize (190, 40).setFont (shrift); cp5.addButton ("Servo_4_Back").setPosition (50, 440).setSize (190, 40) // (kenglik, balandlik).setFont (shrift); cp5.addButton ("Servo_5_Foward").setPosition (50, 490).setSize (190, 40).setFont (shrift); cp5.addButton ("Servo_5_Back").setPosition (50, 540).setSize (190, 40).setFont (shrift); cp5.addButton ("Servo_6_Foward").setPosition (50, 590).setSize (190, 40).setFont (shrift); cp5.addButton ("Servo_6_Back").setPosition (50, 640).setSize (190, 40).setFont (shrift); } void draw () {// arduino fonidagi pastadir bilan bir xil (192, 215, 249); // oynaning fon rangi (r, g, b) yoki (0 dan 255 gacha) // Tezlikni boshqarish tezlikni boshqarish (0, 10, 25) degan matnni qo'shing; // matn rangi (r, g, b) textFont (shrift); matn ("Tezlikni boshqarish", 50, 40); // ("matn", x koordinatasi, y koordinatasi)} // tugmalarimizga ba'zi funktsiyalarni qo'shish imkonini beradi // shuning uchun biron bir tugmani bosganingizda u ketma -ket port orqali ma'lum bir char yuboradi // Ishonchim komilki, satrlarni yuborish mumkin. belgilar o'rniga, va bu mantiqan to'g'ri bo'lardi, lekin men buni qanday qilishni bilmayman // Tezlikni boshqarish buyruqlari void One () {port.write ('w'); } void Five () {port.write ('x'); } void Ten () {port.write ('y'); } bo'sh Twenty () {port.write ('z'); } // Dvigatelni boshqarish buyruqlari bekor Servo_1_Foward () {port.write ('a'); } bekor Servo_1_Back () {port.write ('b'); } void Servo_2_Foward () {port.write ('c'); } bekor Servo_2_Back () {port.write ('d'); } bekor Servo_3_Foward () {port.write ('e'); } bekor Servo_3_Back () {port.write ('f'); } bekor Servo_4_Foward () {port.write ('g'); } bekor Servo_4_Back () {port.write ('h'); } bekor Servo_5_Foward () {port.write ('i'); } bekor Servo_5_Back () {port.write ('j'); } bekor Servo_6_Foward () {port.write ('k'); } bekor Servo_6_Back () {port.write ('l'); } void Reset () {port.write ('r'); }
31 -qadam: Qo'shimcha rasmlar
Tavsiya:
Hushtak bilan boshqariladigan robot: 20 qadam (rasmlar bilan)
Hushtak bilan boshqariladigan robot: Bu robot hamma joyda hushtak chalish bilan boshqariladi, xuddi "Oltin Sonik o'yinchoq" kabi; ishlab chiqarilgan 1957. Yoqilganda, robot oldingi qo'zg'aysan g'ildiragi mexanizmidagi yoritilgan o'q bilan ko'rsatilgan yo'nalishda harakat qiladi. Qachonki hushtak
Ovoz bilan boshqariladigan robot qo'l: 8 qadam (rasmlar bilan)
Ovoz bilan boshqariladigan robot qo'li: a. maqolalar {shrift o'lchami: 110,0%; shrift og'irligi: qalin; shrift uslubi: kursiv; matnni bezatish: yo'q; background-color: red;} a.articles: hover {background-color: black;} Bu ko'rsatma ovozli boshqariladigan robot qo'lini qanday ishlatishni tushuntiradi
Masofadan boshqariladigan USB Gamepad orqali boshqariladigan 4WD robot: 6 qadam
Uzoq USB Gamepad orqali boshqariladigan 4WD robot: Keyingi robototexnika loyiham uchun, men kutilmagan vaziyatlar tufayli o'z robot platformamni me'morchilik qilishga/loyihalashga majbur bo'ldim. Maqsad - avtonom bo'lish, lekin birinchi navbatda uning asosiy haydashini sinab ko'rishim kerak edi. qobiliyati, shuning uchun men bu qiziqarli tarafdor bo'ladi deb o'yladim
Simsiz qo'lqop bilan boshqariladigan robot qo'l - NRF24L01+ - Arduino: 7 qadam (rasmlar bilan)
Simsiz qo'lqop bilan boshqariladigan robot qo'l | NRF24L01+ | Arduino: bu videoda; 3D robot qo'lda yig'ish, servo boshqaruv, moslashuvchan sensorli boshqaruv, nRF24L01 bilan simsiz boshqaruv, Arduino qabul qilgich va uzatuvchi manba kodi mavjud. Qisqasi, ushbu loyihada biz simli simlar yordamida robot qo'lini boshqarishni o'rganamiz
USB quvvat bilan boshqariladigan ulagich. Izolyatsiya bilan: 4 qadam (rasmlar bilan)
USB quvvat bilan boshqariladigan ulagich. Izolyatsiya bilan: Bu yo'riqnomaning asosiy maqsadi - bu menga o'ylamasdan, kompyuterim uchun barcha aksessuarlarni yoqish edi. Va keyin, men kompyuterdan foydalanmayotganimda, vampir devori siğillarining hammasiga kuch bermayman. Fikr oddiy, siz