Taula de continguts:
- Pas 1: construir l’estructura
- Pas 2: coneixeu els valors del maquinari
- Pas 3: endavant la cinemàtica
- Pas 4: Cinemàtica inversa
Vídeo: Robot de dibuix haptic: 5 passos (amb imatges)
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:15
Com a part de la meva graduació en màster al dep. Disseny industrial a la Universitat d’Eindhoven, vaig crear un dispositiu de dibuix hàptic que es pot utilitzar per navegar per un cotxe semiautònom a través del trànsit. La interfície s’anomena gargot i permet a l’usuari experimentar accessoris hàptics en un espai 2D mitjançant una força i una ubicació variables. Tot i que aquest concepte no és el concepte, podeu llegir més sobre Scribble aquí:
Scribble utilitza una configuració d'enllaç de 5 barres que li permet moure dos graus de llibertat laterals (DoF). Aquesta configuració és bastant popular entre els prototips per crear robots de dibuix, a continuació en detallem alguns exemples:
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
Mecànicament aquests robots són fàcils de fabricar. Només necessiten juntes bàsiques i tenen dos actuadors que poden crear moviments fluids. Aquesta estructura és ideal per als dissenyadors que estiguin interessats a fer una estructura mòbil. Tot i que, en no ser enginyer mecànic, em va semblar que la cinemàtica era força difícil de traduir al codi. Per tant, proporcionaré codi Arduino bàsic que descobreixi la cinemàtica directa i inversa perquè pugueu utilitzar-la fàcilment en els vostres futurs dissenys.;-)
Descarregueu el codi següent.
* EDIT: per a un projecte similar, consulteu https://haply.co *
Pas 1: construir l’estructura
En funció del propòsit que tingueu present, primer heu de dissenyar una estructura de 5 enllaços. Penseu en les mesures, els actuadors que voleu utilitzar i com fixar les articulacions per a un moviment suau.
Per al meu prototip, executo el meu codi en un Arduino DUE que està controlat per sèrie mitjançant un programa del meu Mac que es va fer a Open Frameworks. El programa utilitza una connexió UDP per comunicar-se amb un simulador de conducció basat en Unity 3D.
El prototipus Scribble utilitza coixinets de 5 mm i està fabricat amb acrílic tallat amb làser de 5 mm. Els actuadors són els motors haptics de Frank van Valeknhoef que permeten accionar, llegir la posició i generar una força variable. Això els va fer ideals per a les propietats hàptiques desitjades de Scribble. Podeu trobar més informació sobre els seus actuadors aquí:
Pas 2: coneixeu els valors del maquinari
La cinemàtica directa es basa en l’estació meteorològica del rellotge Plot de SAP:
Com es mostra a la seva configuració, s’amplia perquè el braç tingui un marcador per dibuixar. S'ha eliminat perquè no servia de res al prototipus de gargots. Comproveu el seu codi si voleu tornar a afegir aquest component. Els noms de la imatge es mantenen iguals a la meva configuració.
Depenent del vostre maquinari, l'algorisme ha de conèixer les propietats del maquinari:
int leftActuator, rightActuator; // angle per escriure a l'actuador en grad, canvieu a flotant si voleu més precisió
int posX, posY; // les coordenades de la ubicació del punter
Definiu la resolució dels valors d’entrada
int posStepsX = 2000;
int posStepsY = 1000;
Dimensions de la configuració, els valors són en mm (vegeu la imatge SAP)
#define L1 73 // longitud del braç del motor, vegeu la imatge SAP (esquerra i dreta són iguals)
#define L2 95 // braç d’extensió de longitud, vegeu la imatge SAP (esquerra i dreta són iguals)
#define rangeX 250 // interval màxim en direcció X per al punt a moure (d'esquerra a dreta, 0 - maxVal)
#define rangeY 165 // rang màxim en direcció Y per al punt a moure (de 0 a abast màxim mentre es manté centrat)
#define originL 90 // compensar la distància des del valor mínim X màxim fins a la posició central de l’actuador
#define originR 145 // distància de desplaçament des del màxim valor mínim X fins a la posició central de l'actuador, la distància entre els dos motors és en aquest cas
Pas 3: endavant la cinemàtica
Com es va esmentar al pas anterior, la cinemàtica directa es basa en l'algorisme de SAP.
El buit actualitza els valors d'angle desitjats de l'actuador esquerre i dret definits anteriorment. Basant-se en els valors X i Y connectats, es calcularan els angles rectes per aconseguir el punter en aquesta posició.
void set_XY (doble Tx, doble Ty) // introduïu el vostre valor X i Y {// alguns vals que necessitem, però no volem desar per a dx llargs llargs, dy, c, a1, a2, Hx, Hy; // resolució de mapes inpit al rang de la vostra configuració al món real int realX = map (Tx, 0, posStepsX, 0, rangeX); // canviar si mapeja si s'inverteix int realY = mapa (Ty, posStepsX, 0, 0, intervalY); // canvieu si mapeu si s'inverteix // angle calc per a l'actuador esquerre // cartesià dx / dy dx = realX - origenL; // inclou offset dy = realY; // longitud polar (c) i angle (a1) c = sqrt (dx * dx + dy * dy); a1 = atan2 (dy, dx); a2 = retorn_angle (L1, L2, c); leftActuator = floor (((M_PI - (a2 + a1)) * 4068) / 71); // angle final i converteix de rad a deg // angle calc per actuador dret dx = realX - origenR; // inclou offset dy = realY; c = sqrt (dx * dx + dy * dy); a1 = atan2 (dy, dx); a2 = retorn_angle (L1, L2, c); rightActuator = floor (((a1 - a2) * 4068) / 71); // angle final i converteix de rad a deg}
Buit addicional per al càlcul de l'angle:
doble retorn_angle (doble a, doble b, doble c) {// regla del cosinus per a l'angle entre c i un retorn acos ((a * a + c * c - b * b) / (2 * a * c)); }
Pas 4: Cinemàtica inversa
La cinemàtica inversa funciona al revés. Connecteu la rotació dels actuadors en graus i el buit actualitzarà la posició definida anteriorment.
Tingueu en compte que necessitareu actuadors o un sensor independent que pugui llegir l’angle del braç. En el meu cas, he utilitzat actuadors que poden llegir i escriure la seva posició simultàniament. No dubteu a experimentar amb això i penseu en afegir algun tipus de calibratge per assegurar-vos que el vostre angle es llegeix correctament.
Recomanat:
Taula MXY: tauler de robot de dibuix de traçador XY de baix pressupost: 8 passos (amb imatges)
Taula MXY: tauler de robot de dibuix de traçador XY de baix pressupost: el meu objectiu era dissenyar el tauler mXY per fer que la màquina de dibuix de traçadors XY reduís el pressupost. Així doncs, vaig dissenyar un tauler que facilita els usuaris que vulguin fer aquest projecte. Al projecte anterior, mentre feia servir 2 motors pas a pas Nema17, aquesta placa us
Robot de dibuix per a Arduino: 18 passos (amb imatges)
Robot de dibuix per a Arduino: Nota: Tinc una nova versió d’aquest robot que utilitza una placa de circuit imprès, és més fàcil de construir i té detecció d’obstacles IR. Mireu-ho a http://bit.ly/OSTurtle. Vaig dissenyar aquest projecte per a un taller de 10 hores per a ChickTech.org que té com a objectiu
Robot de dibuix compatible amb Arduino de baix cost: 15 passos (amb imatges)
Robot de dibuix compatible amb Arduino de baix cost: Nota: Tinc una nova versió d’aquest robot que utilitza una placa de circuit imprès, és més fàcil de construir i té detecció d’obstacles IR. Mireu-ho a http://bit.ly/OSTurtle. Vaig dissenyar aquest projecte per a un taller de 10 hores per a ChickTech.org que té com a objectiu
Escaneig i dibuix del robot LEGO Delta: 7 passos (amb imatges)
Escaneig i dibuix del robot LEGO Delta: utilitzant LEGO NXT per construir un robot Delta. Escaneig i dibuix combinats
Robot de dibuix borratxo: 4 passos (amb imatges)
Robot de dibuix borratxo: inspirat en el robot borratxo de butxaca, volia donar-li una feina al robot. Vaig decidir deixar que el robot borratxo fes alguns dibuixos. Per fer-ho vostre, necessitareu el següent: materials: 3 retoladors amb punta de feltre una cel·la de botó molt contundent