Taula de continguts:

Braç robòtic Arduino: 5 passos
Braç robòtic Arduino: 5 passos

Vídeo: Braç robòtic Arduino: 5 passos

Vídeo: Braç robòtic Arduino: 5 passos
Vídeo: Arduino Robot Arm 2024, Juliol
Anonim
Image
Image
Braç robòtic Arduino
Braç robòtic Arduino
Braç robòtic Arduino
Braç robòtic Arduino

Com que és el meu primer projecte després dels 15 tutorials del meu kit d’arrencada Arduino, el propòsit real d’aquest és obtenir crítiques, consells, suggeriments i idees de tothom que sàpiga més que jo.

Aquest projecte tracta d’un braç robòtic, amb 4 dofs i una empunyadura. Amb un pressupost decent: l’estructura ha estat tallada per un amic, els 4 servos eren 30 €, els 2 joysticks 4 €, cargols de cargol, etc. per menys de 10 € i la resta (Arduino, cables, servo de l’adherència, etc.)) ja estava inclòs al meu kit inicial. Per un total de 40-45 €, que són uns 45-50 dòlars americans (el mateix preu que un kit de braç, però bé, va ser divertit haver de construir-lo jo mateix (i embolicar alguna cosa de tant en tant) i no seguir instruccions com una màquina).

Com que aquest va ser el meu primer projecte i instructable, vaig participar al concurs '' First Time Author '' i un parell de concursos més, així que si us agrada, voteu-lo:)

Pas 1: DISSENY I MUNTATGE:

Primer, necessitava una estructura: sens dubte, era la part més llarga. Com que no volia copiar i enganxar el projecte d’una altra persona, vaig prendre un projecte com a referència i jo (i un parell de companys de classe més hàbils que realment em van salvar) vam començar a modificar-lo segons les nostres necessitats (servos diferents amb parell, pes i dimensions diferents, etc.). Vaig haver de construir-lo unes quantes vegades, cadascuna d'elles vaig trobar alguna cosa malament i vam haver de retallar algunes peces i tornar-ho a provar. He adjuntat el fitxer.dxf per si el voleu utilitzar. Llavors vaig haver de comprar l'electrònica: La majoria de les peces eren estàndard, el més difícil era triar els servos. Vaig calcular el parell requerit amb la regla general, més endavant vaig provar un càlcul més precís i vaig descobrir que potser l’hauria excedit una mica. Pel que sembla, 6 kg / cm haurien estat suficients per al segon servo (des de la base), i el meu proporciona 9-11 kg / cm. Bé, això em proporciona certa seguretat i la possibilitat de carregar fins a 2 kg de càrrega (cosa que és impossible, però m'agrada que tècnicament ho pugui fer). També podria haver comprat servos diferents, amb un parell decreixent mentre m’allunyava de la base, però comprar servos idèntics del mateix proveïdor era, amb diferència, l’opció més barata. 350mA i el microservo 9g dibuixa 100mA, per un total de 350 * 4 +100 = 1500mA. Així que he recuperat un carregador (6V 1.5A) i hi he soldat dos cables de pont (si alguns de vosaltres necessiten unes instruccions reals, només cal que els demaneu comentaris i faré tot el possible per crear un pas a pas guia) Llista de materials: - Estructura - cargol M5x7cm x5, cargols m5 x15 (base) - cargol M3x16mm x18 * - cargol M3x20mm x13 * - cargols M3 x40 * - cargol M3x8cm x3 - pinça (en cas contrari caurà) - 3 tacs- Arduino (o alguna altra cosa per controlar-lo, ha de tenir com a mínim 5 PWM) - Alguna cosa per subministrar 5-6V i com a mínim 1,5 A - Joysticks semblants a 3x ps2- 4x servidors TowerPro mg995- 1x microservo TowerPro 9g) - Molts cables de pont - Tauler de pa * (He utilitzat cargols i cargols per poder muntar i desmuntar ràpidament, en cas contrari podríeu substituir gairebé tots per cargols de fusteria)

Pas 2: CODI:

La idea és controlar tots els servos amb un dels dos eixos d’un joystick similar a ps2. Tots els joystick semblaven tenir diferents “valors de repòs” (el valor entre 0-1023 quan encara està) per a l’eix y i l’eix x. era un problema, ja que la diferència era gairebé petita (un tenia el zero a y a 623) i volia utilitzar la funció de mapa per convertir de 0-1023 a graus. Però la funció de mapa creu que el valor de resta és 1023/2. El que va portar a cada servo que es movia tan bon punt encenc l’Arduino, no està bé. Vaig aconseguir solucionar-ho trobant manualment la diferència entre el valor de lectura i cada valor de repòs diferent (que vaig calcular per separat per a cada joystick), fer que el codi sigui més curt i intel·ligent, li vaig fer llegir els valors restants de la funció de configuració i desar-los en algunes variables. El nou algorisme es basa en convertir l’increment en graus, però volia una quantitat molt baixa de graus per al meu increment, Vaig haver de dividir-lo per una constant: vaig provar molts valors, fins que vaig arribar al 200 final (puc afegir un potenciòmetre per canviar aquest valor manualment al valor desitjat). La resta del codi és bastant estàndard, suposo, tot i que pot ser més elegant posar el càlcul de l'increment dins d'una funció independent.

Pas 3: ELECTRONNICA:

ELECTRONNICA
ELECTRONNICA

El cablejat és el mateix que es mostra a la imatge o al fitxer fritzing: servos de senyal als pins: 5-6-9-10-11 i eix del joystick als pins analògics: A0-A1-A2-A3-A4 El principal problema que em vaig trobar va ser que els joysticks havien de ser subministrats per l'Arduino, NO pel carregador que utilitzo per als servos. En cas contrari, el servo es tornaria boig movent-se aleatòriament cap endavant i cap enrere. Crec que podria ser perquè, si els subministro el carregador, l’Arduino no serà capaç de diferenciar amb precisió la diferència de potencial quan els moc, però de nou: Jo sóc molt nou en l’electrònica, així que és una conjectura: connectar la terra Arduino i la terra del carregador a través de la placa de suport va ajudar a prevenir moviments aleatoris i inesperats, per una raó similar del subministrament de joysticks, suposo.

Pas 4: ACTUALITZACIÓ DE LA MILLORA:

ACTUALMENT MILLORA
ACTUALMENT MILLORA

Com que cada joystick pot controlar 2 servos (1 per eix), necessito 3 servos per controlar tot el braç, però per sort, només tinc 2 polzes. Així que vaig pensar que, en lloc de controlar cada servo, només podia controlar la posició xyz del agafeu i obriu-tanqueu l’adherència, per a un total de 4 eixos, 2 palanques de maneig i 2 polzes! Vaig descobrir que aquell problema es coneix amb el nom de cinemàtica inversa, també vaig descobrir que és molt fàcil. La idea és escriure (no lineals) per trobar l’estat de cada efector (angles dels servos) donada la posició final. He penjat un paper escrit a mà amb les equacions i actualment estic treballant en un nou codi per utilitzar-les. No hauria de ser massa dur, bàsicament he de llegir els joysticks, fer servir les seves lectures per modificar les coordenades xyz de l’adherència i després donar-les a les meves equacions, calcular els angles de servos i escriure-les.

Pas 5: MILLORES FUTURES:

Per tant, estic bastant satisfet amb el seu resultat i considerant que sóc totalment nou en l’electrònica, no volar res ni jo mateix ja era una gran victòria. Com he dit al principi, qualsevol idea de futures millores, tant de programari com de maquinari, és molt benvingut. Fins ara he pensat en: 1. El potenciòmetre per modificar la "sensibilitat" dels joysticks.2. Nou codi per fer-lo “gravar” alguns moviments i tornar-los a fer (potser més ràpid i més curt que l’entrada humana) 3. Algun tipus d’entrada visual / a distància / veu i poder obtenir objectes sense que algú faci servir els joysticks4. Ser capaç de dibuixar figures geomètriques Alguna altra idea? No dubti a comentar qualsevol suggeriment. Gràcies

Recomanat: