Turinys:
- 1 žingsnis: projekto teorija
- 2 žingsnis: PCB projektavimas
- 3 žingsnis: PCB gamyba
- 4 žingsnis: rankos projektavimas
- 5 veiksmas: dalių spausdinimas
- 6 žingsnis: sudėkite viską kartu
- 7 žingsnis: „Arduino“programavimas
- 8 žingsnis: programavimas „Python“
- 9 žingsnis: dalių sąrašas
- 10 žingsnis: paskutinės mintys
Video: Robotinė ranka, valdoma „Arduino“ir kompiuterio: 10 žingsnių
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:47
Robotų ginklai yra plačiai naudojami pramonėje. Nesvarbu, ar tai skirta surinkimo operacijoms, suvirinimas ar net vienas yra naudojamas prijungti prie ISS (Tarptautinė kosminė stotis), jie padeda žmonėms dirbti arba visiškai pakeičia žmogų. Mano sukurta ranka yra mažesnė robotų rankos, kuri turėtų būti naudojama judantiems objektams, atvaizdas. Jį valdo „arduino pro mini“, kuris jau turi įmontuotą servo valdymo biblioteką. Servos valdomos PWM (impulso pločio moduliacija), kurią nėra sunku užprogramuoti, tačiau ši biblioteka palengvina. Vartotojas gali valdyti tuos servos potenciometrus, kurie yra skirti veikti kaip įtampos skirstytuvai, arba iš kompiuterio programos, kuri naudoja 4 slankiklius servo varikliams valdyti.
Šiam projektui turėjau sukurti savo pasirinktinę PCB ir ją sukurti, sukurti 3D rankos modelius ir parašyti kodą, kuris visa tai valdo. Be to, aš užkodavau papildomą programą „python“, kuri siunčia signalus „arduino“, kuris sugeba iššifruoti tą signalą ir perkelti servo į vartotojo nustatytą padėtį.
1 žingsnis: projekto teorija
„Arduino“yra puikus tuo, kad siūlo nemokamą biblioteką, su kuria galima dirbti. Šiam projektui naudojau „Servo.h“biblioteką, kuri labai palengvina servo valdymą.
Servo variklį valdo PWM - impulso pločio moduliacija - tai reiškia, kad norint valdyti servo, reikia atlikti trumpos įtampos impulsus. Servo gali iššifruoti šio signalo ilgį ir pasukti į nurodytą padėtį. Ir čia aš panaudojau jau minėtą biblioteką. Aš neturėjau savarankiškai apskaičiuoti signalo ilgio, bet aš naudoju bibliotekos funkcijas, kurioms tiesiog perduodu parametrus laipsniais ir jis signalizuoja.
Servo valdymui naudojau potenciometrus, kurie veikia kaip įtampos dalikliai. „Arduino“plokštėse yra keli analoginiai/skaitmeniniai keitikliai, kuriuos naudojau projektui. Iš esmės „arduino“stebi įtampą potenciometro viduriniame kaištyje, o jei jis sukasi į vieną pusę, įtampa yra 0 voltų (vertė = 0), o kitoje pusėje - 5 voltai (vertė = 1023). Tada ši vertė keičiama nuo 0 iki 1023 iki 0 - 180 ir tada perduodama jau minėtai funkcijai.
Kita tema yra serijinis bendravimas su arduino, kurį trumpai aptarsiu. Iš esmės programa, parašyta asmeniniame kompiuteryje, siunčia vartotojo pasirinktą vertę, arduino gali ją iššifruoti ir perkelti servo į nurodytą padėtį
2 žingsnis: PCB projektavimas
Aš sukūriau 2 PCB - vieną pagrindiniam valdymui, kur yra arduino ir kaiščiai servams, o antrasis yra potenciometrai. 2 PCB priežastis yra ta, kad norėjau valdyti roboto ranką iš saugaus atstumo. Abi grandinės yra sujungtos nurodyto ilgio kabeliu - mano atveju 80 cm.
Maitinimo šaltiniui pasirinkau išorinį adapterį, nes mano naudojami servai sunaudoja daug daugiau energijos nei gali tiekti arduino. Kaip matote, yra keletas kondensatorių, kurių dar nepaminėjau. Jie yra kondensatoriai, naudojami filtravimui. Kaip dabar žinote, servo variklį valdo trumpi impulsai. Šie impulsai gali sumažinti maitinimo įtampos kritimus ir potenciometrus, kurie anksčiau buvo 0–5 voltų diapazone. Tai reiškia, kad keičiasi vidutinio kaiščio įtampa ir „arduino“gauna šią vertę ir pakeičia servovariklio padėtį. Tai gali tęstis amžinai ir sukelia nepageidaujamą virpesį, kurį gali pašalinti kai kurie kondensatoriai lygiagrečiai tiekimui.
3 žingsnis: PCB gamyba
Norėdami pagaminti PCB, siūlau perskaityti tai.
Aš naudojau „Iron on Glossy Paper“metodą ir tai puikiai pavyko.
Tada aš lituodavau dalis ant PCB. Matote, kad naudojau arduino lizdą, jei to prireiks ateityje.
4 žingsnis: rankos projektavimas
Tai nebuvo sunkiausia įgyvendinant šį projektą.
Visa sąranka sudaryta iš 8 dalių, iš kurių 4 nėra judančios dalys - potenciometrų dėžutė ir bazė, kurioje yra arduino, o kitos keturios yra pati ranka. Aš nesileisiu į daug smulkmenų, išskyrus tai, kad dizainas yra gana intuityvus ir tam tikra prasme paprastas. Jis suprojektuotas taip, kad atitiktų mano pasirinktą PCB ir servo, kuriuos įtraukiu į dalių sąrašą.
5 veiksmas: dalių spausdinimas
Dalys buvo atspausdintos „Prusa“spausdintuvu. Kai kuriuos veidus reikėjo šiek tiek šlifuoti ir išgręžti skyles. Taip pat reikėjo pašalinti atraminius stulpus.
6 žingsnis: sudėkite viską kartu
Šiame etape, kaip sako pavadinimas, aš viską sujungiau.
Iš pradžių litavau laidus ant potenciometrų, o paskui tuos laidus ant PCB. Potenciometrai gražiai priglunda prie skylių, o aš karštai priklijavau PCB ant kolonų, kurios buvo atspausdintos dėžutės apačioje. Galite išgręžti skyles lentoje ir į dėžę, bet aš sužinojau, kad jos klijavimo yra daugiau nei pakankamai. Tada aš uždariau abi dėžutės dalis ir pritvirtinau jas 4 varžtais, kurie tilpo į mano suprojektuotas skyles.
Kitas žingsnis - aš padariau plokščią juostinį kabelį, kuris sujungtų abi plokštes.
Pagrindinėje dėžutėje aš lituodavau laidus iš jungties VCC kaiščio, kad perjungčiau, tada į plokštės Vcc ir iš plokštės GND į jungties GND. Tada aš karštai priklijavau jungtį ir lentą ant kolonų. Jungtis tinka tiesiai į skylę, todėl nereikia karštų klijų.
Tada, naudodami varžtus, aš pritvirtinau apatinį servo prie dėžutės apačios.
Po to viršutinę dėžutės dalį uždėjau ant apatinės dalies ir tą patį, kaip ir su potenciometro dėžute, pritvirtinau 4 varžtais.
Kita dalis buvo šiek tiek sudėtinga, bet man pavyko sujungti likusį ranką su įvairiomis veržlėmis ir trinkelėmis, ir ji nebuvo tokia įtempta, kaip tikėjausi, nes sukūriau tam tikrus nuokrypius tarp dalių, todėl lengviau su jais dirbti.
Paskutiniame etape aš uždėjau juostą ant dėžių apačios, nes kitaip jos slystų.
7 žingsnis: „Arduino“programavimas
Aš jau minėjau, kaip programa teoriškai veikia už projekto, tačiau ketinu ją dar labiau sugriauti.
Taigi pradžioje turime apibrėžti kai kuriuos kintamuosius. Dažniausiai jis nukopijuojamas 4 kartus, nes turime 4 servo sistemas ir, mano nuomone, nebūtina kurti sudėtingesnės logikos, kad tik programa būtų šiek tiek trumpesnė.
Kitas yra tuštumos nustatymas, kuriame yra apibrėžti servo kaiščiai.
Tada yra tuštumos kilpa - programos dalis, kuri veikia be galo. Šioje dalyje programa paima vertę iš potenciometro skalių ir įtraukia į išvestį. Tačiau yra viena problema, kad potenciometro vertė šokinėja gana šiek tiek, todėl turėjau pridėti filtrą, kuris sudaro paskutinių 5 verčių vidurkį, ir tada jis išleidžia. Tai apsaugo nuo nepageidaujamo svyravimo.
Paskutinė programos dalis skaito duomenis iš nuoseklaus prievado ir, remdamasi išsiųstais duomenimis, nusprendžia, ką daryti.
Norėdami visiškai suprasti kodą, siūlau apsilankyti oficialiose arduino svetainėse.
8 žingsnis: programavimas „Python“
Ši projekto dalis nėra būtina, bet manau, kad ji tik suteikia daugiau vertės šiam projektui.
„Python“siūlo daugybę bibliotekų, kuriomis galima laisvai naudotis, tačiau šiame projekte aš naudoju tik „tkinter“ir serijines. „Tkinter“naudojama GUI (grafinei vartotojo sąsajai) ir serijinei, kaip nurodo pavadinimas, naudojama serijiniam ryšiui.
Šis kodas sukuria GUI su 4 slankikliais, kurių minimali vertė yra 0 ir didžiausia 180. Jums gali būti užuomina, kad ji yra laipsniais ir kiekvienas slankiklis yra užprogramuotas valdyti vieną servo. Ši programa yra gana paprasta - ji paima vertę ir siunčia ją į arduino. Bet tai, kaip jis siunčiamas, yra įdomus. Jei nuspręsite pakeisti pirmojo servo vertę į 123 laipsnius, ji siunčiama į arduino reikšmę 1123. Pirmasis kiekvieno išsiųsto skaičiaus numeris nurodo, kuris servo bus valdomas. „Arduino“turi kodą, kuris gali tai iššifruoti ir perkelti tinkamą servo.
9 žingsnis: dalių sąrašas
- „Arduino Pro Mini“1 vnt
- Servo FS5106B 1 vnt
- Servo Futaba S3003 2 vnt
- Smeigtuko antgalis 2x5 1 vnt
- Smeigtuko antraštė 1x3 6 vnt
- Kondensatorius 220uF 3 vnt
- „Micro Servo FS90“1 vnt
- Jungtis AWP-10 2 vnt
- Jungtis FC681492 1 vnt
- Jungiklis P-B100G1 1 vnt
- Lizdas 2x14 1 vnt
- TTL-232R-5v-keitiklis 1 vnt
- Potenciometras B200K 4 vnt
- ir dar daug varžtų, trinkelių ir veržlių
10 žingsnis: paskutinės mintys
Dėkoju, kad perskaitėte šį tekstą ir tikiuosi, kad bent jau jus paskatinau. Tai yra mano pirmasis didesnis projektas, kurį sukūriau pats, nekopijuodamas daiktų iš interneto ir pirmojo instrukcijų įrašo. Žinau, kad ranką būtų galima patobulinti, bet kol kas esu patenkinta. Visos dalys ir šaltinio kodai yra nemokami, galite juos naudoti ir keisti bet kokiu norimu būdu. Jei turite klausimų, nedvejodami užduokite juos komentarų skiltyje. Taip pat galite žiūrėti vaizdo įrašus, jie nėra aukštos kokybės, tačiau parodo projekto funkcionalumą.
Rekomenduojamas:
„Arduino“robotinė ranka: 12 žingsnių
„Arduino Robotic Arm“: šis nurodymas buvo sukurtas vykdant Pietų Floridos universiteto „Makecourse“projekto reikalavimą. Tai yra pagrindiniai komponentai, reikalingi šiam projektui surinkti
Mojuojate ranka, kad valdytumėte OWI robotinę ranką Be jokių stygų: 10 žingsnių (su paveikslėliais)
Mojuojate ranka, kad valdytumėte OWI robotinę ranką … Nėra jokių eilučių: IDĖJA: „Instructables.com“yra bent 4 kiti projektai (2015 m. Gegužės 13 d.), Skirti modifikuoti ar valdyti „OWI Robotic Arm“. Nenuostabu, nes tai yra toks puikus ir nebrangus robotų rinkinys, su kuriuo galima žaisti. Šis projektas panašus į
„Popsicle Stick“robotinė ranka: 17 žingsnių (su nuotraukomis)
„Popsicle Stick“robotinė ranka: Štai kaip sukurti paprastą robotų ranką su griebtuvu, naudojant popsicle lazdeles, „Arduino“ir keletą servo
Paprasta robotinė ranka, valdoma realiu rankos judesiu: 7 žingsniai (su nuotraukomis)
Paprasta robotinė ranka, valdoma realiu rankos judesiu: tai labai paprasta DOF robotinė ranka pradedantiesiems. Ranka valdoma „Arduino“. Jis prijungtas prie jutiklio, pritvirtinto prie operatoriaus rankos. Todėl operatorius gali valdyti rankos alkūnę lenkdamas savo alkūnės judesį
Robotinė ranka, valdoma pirštinės: 6 žingsniai (su nuotraukomis)
Robotinė ranka, valdoma pirštinės: Tikslas: Įgykite patirties ir problemų sprendimo įgūdžių, sukurdami užbaigtą projektąOutline- Naudokite pirštines, kad prisijungtumėte per arduino, kad valdytumėte 3-D robotų spausdintą " ranką ". Kiekvienoje 3-D spausdintos rankos jungtyje yra servo, kuris