Taula de continguts:
- Pas 1: teoria darrere del projecte
- Pas 2: Dissenyar PCB
- Pas 3: fabricació de PCB
- Pas 4: Dissenyar el braç
- Pas 5: Impressió de les peces
- Pas 6: ajuntar-ho tot
- Pas 7: Programació d'Arduino
- Pas 8: Programació a Python
- Pas 9: llista de parts
- Pas 10: Pensaments finals
Vídeo: Braç robòtic controlat per Arduino i PC: 10 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:14
Els braços robotitzats s’utilitzen àmpliament a la indústria. Ja sigui per a operacions de muntatge, la soldadura o fins i tot una s'utilitza per acoblar a ISS (Estació Espacial Internacional), ajuden els humans a treballar o substitueixen totalment els humans. El braç que he construït és una representació més petita del braç robòtic que se suposa que s'utilitza per moure objectes. Està controlat per arduino pro mini, que ja té una biblioteca integrada per controlar servos. Els servos estan controlats per PWM (Pulse Width Modulation) que no és difícil de programar, però aquesta biblioteca ho fa més fàcil. L'usuari pot controlar els servos mitjançant potenciòmetres dissenyats per actuar com a divisors de tensió o des d'un programa en un PC que utilitza 4 control lliscants per controlar servomotors.
Per a aquest projecte vaig haver de dissenyar el meu PCB personalitzat i fer-lo, crear models 3D de braç i escriure codi que ho controlés tot. A sobre, vaig codificar un programa addicional en python que envia senyals a arduino que aconsegueix descodificar aquest senyal i moure servos a la posició que l'usuari ha establert.
Pas 1: teoria darrere del projecte
Arduino és fantàstic d’aquesta manera que ofereix biblioteca gratuïta per treballar. Per a aquest projecte he utilitzat la biblioteca Servo.h que facilita molt el control de servos.
El servomotor està controlat per PWM -Pulse Width Modulation- que significa que per controlar el servo cal fer impulsos de curta tensió. El servo pot descodificar la longitud d'aquest senyal i girar a la posició determinada. I aquí és on he utilitzat la ja esmentada biblioteca. No he hagut de calcular la longitud del senyal pel meu compte, sinó que he utilitzat les funcions de la biblioteca a les quals acabo de passar paràmetres en graus i fa senyal.
Per controlar servos he utilitzat potenciòmetres que actuen com a divisors de tensió. Les plaques Arduino tenen diversos convertidors analògics / digitals que he utilitzat per al projecte. Bàsicament, Arduino controla la tensió del pin central del potenciòmetre i, si gira cap a un costat, el voltatge és de 0 volts (valor = 0) i de l’altre costat és de 5 volts (valor = 1023). Aquest valor s'escala des de l'interval 0 - 1023 fins a 0 - 180 i després es passa a la funció ja esmentada.
Un altre tema és la comunicació en sèrie amb arduino que tractaré breument. Bàsicament, el programa escrit al PC envia el valor escollit per l'usuari, arduino el pot descodificar i moure el servo a la posició determinada
Pas 2: Dissenyar PCB
Vaig dissenyar 2 PCB: un per al control principal on hi ha arduino i pins per servos i el segon són potenciòmetres. La raó de 2 PCB és que volia controlar el braç robotitzat des de la distància de seguretat. Tots dos circuits estan connectats per cable de longitud determinada, en el meu cas de 80 cm.
Per a la font d'alimentació, he triat un adaptador extern perquè els servos que he utilitzat consumeixen molta més energia de la que pot proporcionar Arduino. Com podeu veure, hi ha alguns condensadors que encara no he esmentat. Són condensadors que s’utilitzen per a la filtració. Com ja sabeu, el servomotor està controlat per impulsos curts. Aquests impulsos poden fer que les caigudes de tensió de subministrament i els potenciòmetres que abans tenien un rang de 0-5 volts tinguessin ara un abast més petit. Això vol dir que el voltatge del pin mitjà canvia i que l’arduino obté aquest valor i canvia la posició del servo motor. Això pot continuar per sempre i provoca una oscil·lació no desitjada que poden ser eliminats per alguns condensadors paral·lels a l’alimentació.
Pas 3: fabricació de PCB
Per fer PCB us proposo que llegiu això.
Vaig utilitzar el mètode de ferro sobre paper brillant i em va sortir molt bé.
Després vaig soldar peces al PCB. Podeu veure que he utilitzat el sòcol arduino per si el necessito en el futur.
Pas 4: Dissenyar el braç
Aquest no va ser en cap cas el més difícil de fer aquest projecte.
La configuració completa està formada per vuit parts on 4 no són parts mòbils (caixa per a potenciòmetres i base on es troba l’arduino) i altres quatre són el propi braç. No entraré en molts detalls, tret que el disseny és bastant intuïtiu i d’alguna manera senzill. Està dissenyat per adaptar-se als servos i PCB personalitzats que inclouré a la llista de peces.
Pas 5: Impressió de les peces
Les peces es van imprimir a la impressora Prusa. Algunes cares s’havien de moldre una mica i es foradaven forats. També calia eliminar els pilars de suport.
Pas 6: ajuntar-ho tot
En aquest pas, com diu el títol, ho vaig ajuntar tot.
Al principi vaig soldar cables als potenciòmetres i després els cables del PCB. Els potenciòmetres s’adaptaven bé als forats i vaig enganxar en calent el PCB als pilars que s’imprimien a la part inferior de la caixa. Podeu fer forats al tauler i a la caixa, però vaig descobrir que enganxar-lo és més que suficient. Després vaig tancar les dues parts de la caixa i les vaig assegurar en posició amb 4 cargols que s’adaptaven als forats que vaig dissenyar.
Com a pas següent, vaig fer un cable de cinta pla per connectar les dues taules.
A la caixa principal he soldat cables del pin VCC del connector per canviar i després a Vcc de la placa i de GND de la placa a GND del connector. Llavors vaig enganxar en calent el connector i el vaig col·locar sobre els pilars. El connector s'adapta directament al forat, de manera que no cal cola calenta.
Després, mitjançant cargols, he connectat el servo inferior a la part inferior de la caixa.
Després vaig posar la part superior de la caixa a la part inferior i igual que amb la caixa del potenciòmetre, la vaig fixar amb 4 cargols.
La següent part va ser una mica complicada, però vaig aconseguir unir la resta del braç amb diverses femelles i coixinets i no va ser tan ajustat com esperava perquè vaig dissenyar algunes toleràncies entre les parts, de manera que és més fàcil treballar amb elles.
I com a pas final he posat una mica de cinta al fons de les caixes perquè, si no, es lliscarien.
Pas 7: Programació d'Arduino
Ja he esmentat com funciona el programa en teoria darrere del projecte, però el trencaré encara més.
Per tant, al principi hem de definir algunes variables. Sobretot es copia 4 vegades perquè tenim 4 servos i al meu entendre no és necessari fer una lògica més complicada només per fer el programa una mica més curt.
A continuació, hi ha una configuració buida on es defineixen els pins dels servos.
Després hi ha un bucle buit: part del programa que fa un bucle infinit. En aquesta part, el programa pren el valor de l'escala del potenciòmetre i el posa a la sortida. Però hi ha un problema que el valor del potenciòmetre salta bastant, de manera que he hagut d'afegir un filtre que faci la mitjana dels darrers 5 valors i després posa la sortida. D’aquesta manera, s’evita l’oscil·lació no desitjada.
La darrera part del programa llegeix les dades del port sèrie i decideix què fer en funció de les dades enviades.
Per tal d’entendre completament el codi, us proposo que visiteu llocs web oficials d’arduino.
Pas 8: Programació a Python
Aquesta part d’aquest projecte no és necessària, però crec que només dóna més valor a aquest projecte.
Python ofereix un munt de biblioteques d'ús gratuït, però en aquest projecte només faig servir tkinter i sèrie. Tkinter s'utilitza per a la interfície gràfica d'usuari (GUI) i la sèrie, com diu el seu nom, s'utilitza per a la comunicació en sèrie.
Aquest codi crea una interfície gràfica d'usuari amb 4 control lliscants que tenen un valor mínim de 0 i màxim 180. Pot ser que tingueu consell que estigui en graus i que cada control lliscant estigui programat per controlar un servo. Aquest programa és bastant senzill: pren el valor i l’envia a arduino. Però la manera d’enviar és interessant. Si decidiu canviar el valor del primer servo a 123 graus, envia al valor arduino 1123. El primer número de cada número enviat indica quin servo està a punt de ser controlat. Arduino té un codi que pot descodificar-lo i moure el servo adequat.
Pas 9: llista de parts
- Arduino Pro Mini 1 peça
- Servo FS5106B 1 peça
- Servo Futaba S3003 2 peces
- Capçalera de pin 2x5 1 peça
- Capçalera del pin 1x3 6 peces
- Condensador 220uF 3 peces
- Micro Servo FS90 1 peça
- Connector AWP-10 2 peces
- Connector FC681492 1 peça
- Interruptor P-B100G1 1 peça
- Socket 2x14 1 peça
- TTL-232R-5v - convertidor 1 peça
- Potenciòmetre B200K de 4 peces
- i molts més cargols, coixinets i femelles
Pas 10: Pensaments finals
Gràcies per llegir-ho i espero que almenys us hagi motivat. Aquest és el meu primer projecte més gran que vaig fer tot sol sense copiar coses d'Internet i el primer post instructable. Sé que es podria actualitzar el braç, però de moment n’estic satisfet. Totes les parts i els codis font són gratuïts, podeu utilitzar-los i canviar-los de la manera que vulgueu. Si teniu alguna pregunta, no dubteu a fer-los a la secció de comentaris. També podeu mirar els vídeos, no són de gran qualitat, però mostren la funcionalitat del projecte.
Recomanat:
Braç robòtic controlat Arduino amb 6 graus de llibertat: 5 passos (amb imatges)
Braç robòtic controlat Arduino amb 6 graus de llibertat: sóc membre d’un grup de robòtica i cada any el nostre grup participa en una Mini-Maker Faire anual. A partir del 2014, vaig decidir construir un nou projecte per a l’esdeveniment de cada any. Aleshores, tenia aproximadament un mes abans de l’esdeveniment per reunir alguna cosa
Braç robòtic controlat per Arduino de Lego Mindstorm: 6 passos
Braç robotitzat controlat per Arduino de Lego Mindstorm: reutilitza dos motors Lego Mindstorm antics en un braç de captura controlat per un Arduino Uno. Es tracta d’un projecte de Hack Sioux Falls on vam desafiar els nens a construir alguna cosa divertit amb un Arduino
Braç robòtic controlat Nunchuk (amb Arduino): 14 passos (amb imatges)
Braç robòtic controlat per Nunchuk (amb Arduino): els braços robòtics són increïbles. Les fàbriques de tot el món en tenen, on pinten, solden i transporten coses amb precisió. També es poden trobar en exploració espacial, vehicles submarins amb control remot i fins i tot en aplicacions mèdiques. I ara podeu
Braç robòtic controlat per Glove: 6 passos (amb imatges)
Braç robòtic controlat per Glove: Propòsit: Adquiriu experiència i habilitats per a la resolució de problemes creant un projecte per completar Outline- Utilitzeu un guant per connectar-vos a través d’un arduino per controlar un “braç” imprès en forma de robot tridimensional. Cadascuna de les articulacions del braç imprès en 3D té un servo que co
Com es construeix un robot controlat amb braç de pinça controlat mitjançant Nrf24l01 Arduino: 3 passos (amb imatges)
Com es construeix un robot controlat amb braç de pinça controlat mitjançant Nrf24l01 Arduino: la instrucció "Com construir robot controlat amb braç de pinça mitjançant Via Nrf24l01 Arduino" explicarà com construir un braç de pinça de tres graus de llibertat instal·lat en rodes de rodes controlades pel mòdul L298N de doble motor amb MEG