Turinys:
- 1 žingsnis: statykite konstrukciją
- 2 žingsnis: žinokite savo aparatinės įrangos vertes
- 3 žingsnis: Kinematikos persiuntimas
- 4 žingsnis: atvirkštinė kinematika
Video: „Haptic“piešimo robotas: 5 žingsniai (su nuotraukomis)
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:48
Baigdamas magistro studijas dep. Pramoninis dizainas Eindhoveno universitete, sukūriau haptinį piešimo įrenginį, kuriuo galima važiuoti pusiau autonominiu automobiliu. Sąsaja vadinama raštu ir leidžia vartotojui patirti haptinius įrenginius 2D erdvėje per kintamą jėgą ir vietą. Nors ši pamoka nėra tokia, kokia yra instrukcija, daugiau apie „Scribble“galite perskaityti čia:
„Scribble“naudojama 5 barų jungčių konfigūracija, leidžianti perkelti du šoninius laisvės laipsnius (DoF). Ši sąranka yra gana populiari tarp prototipų kuriant piešimo robotus, čia yra keletas pavyzdžių:
www.projehocam.com/arduino-saati-yazan-kol-…
blogs.sap.com/2015/09/17/plot-clock-weathe…
www.heise.de/make/meldung/Sanduhr-2-0-als-Bausatz-im-heise-shop-erhaeltlich-3744205.html
Mechaniškai šiuos robotus lengva pagaminti. Jiems reikalingi tik pagrindiniai sujungimai ir dvi pavaros, galinčios sukelti šiek tiek skysčio judesių. Ši struktūra idealiai tinka dizaineriams, norintiems sukurti judančią konstrukciją. Tačiau nesu mechanikos inžinierius, todėl man buvo gana sunku kinematiką išversti į kodą. Todėl aš pateiksiu pagrindinį „Arduino“kodą, kuris nustato priekinę ir atvirkštinę kinematiką, kad galėtumėte lengvai tai naudoti savo būsimuose projektuose!;-)
Atsisiųskite žemiau esantį kodą!
* REDAGUOTI: panašaus projekto atveju pažiūrėkite į https://haply.co *
1 žingsnis: statykite konstrukciją
Priklausomai nuo tikslo, kurį turite omenyje, pirmiausia turėtumėte suprojektuoti 5 jungčių konstrukciją. Pagalvokite apie matavimus, pavaras, kurias norite naudoti, ir kaip pritvirtinti sąnarius, kad judesiai būtų sklandūs.
Savo prototipui aš paleidžiu savo kodą „Arduino DUE“, kurį nuosekliai valdo „Mac“programa, sukurta naudojant „Open Frameworks“. Programa naudoja UDP ryšį, kad galėtų bendrauti su „Unity 3D“vairavimo simuliatoriumi.
„Scribble“prototipas naudoja 5 mm guolius ir yra pagamintas iš 5 mm lazeriu pjausto akrilo. Pavaros yra Franko van Valeknhoefo „Haptic“varikliai, leidžiantys įjungti, nuskaityti padėtį ir išvesti kintamą jėgą. Dėl to jie idealiai tinka norimoms „Scribble“savybėms. Daugiau apie jo pavaras rasite čia:
2 žingsnis: žinokite savo aparatinės įrangos vertes
Į priekį nukreipta kinematika yra pagrįsta SAP „Plot clock“orų stotimi:
Kaip parodyta jų konfigūracijoje, ranka yra ištiesta, kad laikytų žymeklį piešti. Tai buvo pašalinta, nes jis neturėjo jokio tikslo rašymo prototipui. Patikrinkite jų kodą, jei norite vėl įtraukti šį komponentą. Mano konfigūracijoje paveikslėlyje esantys pavadinimai išlieka tie patys.
Priklausomai nuo jūsų aparatūros, algoritmas turi žinoti jūsų aparatinės įrangos savybes:
int leftActuator, rightActuator; // kampas, skirtas rašyti į pavarą laipsniais, pakeiskite į plūdes, jei norite daugiau tikslumo
int posX, posY; // rodyklės vietos koordinatės
Nustatykite įvesties verčių skiriamąją gebą
int posStepsX = 2000;
int posStepsY = 1000;
Jūsų sąrankos matmenys, vertės yra mm (žr. SAP paveikslėlį)
#define L1 73 // ilgio variklio svirtis, žr. SAP paveikslėlį (kairė ir dešinė yra vienodi)
#define L2 95 // ilgio ištraukimo svirtis, žr. SAP paveikslėlį (kairė ir dešinė yra vienodi)
#define rangeX 250 // didžiausias taškas X judėjimo kryptimi (iš kairės į dešinę, 0 - maxVal)
#define rangeY 165 // didžiausias taškas Y kryptimi, kad taškas judėtų (nuo 0 iki maksimalaus pasiekiamumo, išlaikant centrą)
#define originL 90 // poslinkio atstumas nuo daugumos mažiausių X reikšmių iki pavaros centro padėties
#define originR 145 // atstumas nuo daugumos mažiausių X reikšmių iki pavaros centrinės padėties, atstumas tarp dviejų variklių šiuo atveju yra
3 žingsnis: Kinematikos persiuntimas
Kaip minėta ankstesniame žingsnyje, priekinė kinematika yra pagrįsta SAP algoritmu.
Tuštuma atnaujina anksčiau apibrėžtas kairės ir dešinės pavaros norimas kampo reikšmes. Remdamasis prijungtomis X ir Y reikšmėmis, jis apskaičiuos reikiamus kampus, kad žymeklis atsidurtų šioje padėtyje.
void set_XY (dvigubas Tx, dvigubas Ty) // įveskite savo X ir Y reikšmes {// kai kurios vertybės, kurių mums reikia, bet nenorime išsaugoti ilgam dvigubam dx, dy, c, a1, a2, Hx, Hy; // žemėlapio įvesties raiška pagal jūsų konfigūracijos diapazoną realiame pasaulyje int realX = map (Tx, 0, posStepsX, 0, rangeX); // apsikeisti, jei kartografavimas, jei apverstas int realY = map (Ty, posStepsX, 0, 0, rangeY); // apsikeisti, jei kartografavimas apverstas // kairiojo pavaros skaičiavimo kampas // stačiakampis dx/dy dx = realX - originL; // įtraukti poslinkį dy = realY; // poliarinis ilgis (c) ir kampas (a1) c = sqrt (dx * dx + dy * dy); a1 = atan2 (dy, dx); a2 = grįžtamasis_kampis (L1, L2, c); leftActuator = grindys ((((M_PI - (a2 + a1)) * 4068) / 71); // galutinis kampas ir konvertuoti iš rad į deg // dešiniojo pavaros skaičiavimo kampas dx = realX - originR; // įtraukti poslinkį dy = realY; c = sqrt (dx * dx + dy * dy); a1 = atan2 (dy, dx); a2 = grįžtamasis_kampis (L1, L2, c); rightActuator = grindys ((((a1 - a2) * 4068) / 71); // galutinis kampas ir konvertuoti iš rad į degį}
Papildoma tuštuma kampui apskaičiuoti:
double return_angle (double a, double b, double c) {// kosinuso taisyklė kampui tarp c ir grįžtamojo acos ((a * a + c * c - b * b) / (2 * a * c)); }
4 žingsnis: atvirkštinė kinematika
Atvirkštinė kinematika veikia atvirkščiai. Įjungiate pavaros sukimąsi laipsniais ir tuštuma atnaujins anksčiau apibrėžtą padėtį.
Atminkite, kad jums reikės pavarų arba atskiro jutiklio, galinčio nuskaityti rankos kampą. Mano atveju naudojau pavaras, kurios gali vienu metu skaityti ir rašyti savo poziciją. Nesivaržykite eksperimentuoti ir apsvarstykite galimybę pridėti tam tikrą kalibravimą, kad būtumėte tikri, jog jūsų kampas yra teisingai nuskaitytas.
Rekomenduojamas:
Piešimo robotas su „Adafruit Shield“(konkursas „Make it Move“): 10 žingsnių (su paveikslėliais)
Piešimo robotas su „Adafruit Shield“(konkursas „Make It Move“): Sveiki, mano vardai Džeikobas ir aš gyvenu JK. Šiame projekte aš sukursiu robotą, kuris piešia jums. *Esu tikras, kad daugelis iš jūsų nori tai pamatyti, todėl jei norite sužinoti, pereikite prie antrojo ir paskutinio žingsnio, bet būtinai sugrįžkite čia ir pamatykite
XY piešimo robotas: 12 žingsnių
XY piešimo robotas: Šiandien aš diskutuoju apie mechatronikos projektą. Šis projektas iš tikrųjų yra vaizdo įrašo, kurį jau paskelbiau čia, darinys: „ROUTER AND PLOTTER WIFI WITH with WEBSERVER ESP32“. Patariu pirmiausia pažiūrėti šią, nes ji paaiškina, kaip veikia GRBL programa
Balansavimo robotas / 3 ratų robotas / STEM robotas: 8 žingsniai
Balansavimo robotas / 3 ratų robotas / STEM robotas: Mes sukūrėme kombinuotą balansavimo ir 3 ratų robotą, skirtą naudoti mokyklose ir po pamokų. Robotas sukurtas naudojant „Arduino Uno“, pasirinktinį skydą (pateikiama visa konstrukcijos informacija), „Li Ion“akumuliatorių paketą (visa tai atitinka
Avataro piešimo robotas naudojant MESH: 6 žingsniai (su paveikslėliais)
Avataro piešimo robotas naudojant MESH: Ar girdėjote, kad fizinė veikla gali padaryti jus kūrybiškesnius? Būdami aktyvūs, galite ištempti savo mąstymą ir generuoti kūrybines idėjas. Jei dažnai nesportuojate, bet norite sustiprinti savo kūrybiškumą, nesijaudinkite - čia yra kažkas jums
Girtas piešimo robotas!: 4 žingsniai (su nuotraukomis)
Girtas piešimo robotas!: Įkvėptas girto kišeninio roboto, norėjau robotui duoti darbą. Nusprendžiau leisti girtam robotui padaryti keletą piešinių. Norėdami pasigaminti patys, jums reikės šių medžiagų: medžiagos: 3 žymekliai su veltinio galiuku mygtuko elementų baterija