Taula de continguts:

Braç robòtic controlat per Arduino i PC: 10 passos
Braç robòtic controlat per Arduino i PC: 10 passos

Vídeo: Braç robòtic controlat per Arduino i PC: 10 passos

Vídeo: Braç robòtic controlat per Arduino i PC: 10 passos
Vídeo: Массимо Банци: Как Arduino пробуждает воображение 2024, Desembre
Anonim
Image
Image
Projecte Teoria Darrere
Projecte Teoria Darrere

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

Teoria darrere del projecte
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

Disseny de PCB
Disseny de PCB
Disseny de PCB
Disseny de PCB
Disseny de PCB
Disseny de 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

Fabricació de PCB
Fabricació de PCB
Fabricació de PCB
Fabricació de PCB
Fabricació de PCB
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ç

Dissenyant el braç
Dissenyant el braç
Dissenyant el braç
Dissenyant el braç
Dissenyant el braç
Dissenyant 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

Impressió de les peces
Impressió de les peces
Impressió de les peces
Impressió de les peces
Impressió de les peces
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

Posant-ho tot junt
Posant-ho tot junt
Posant-ho tot junt
Posant-ho tot junt
Posant-ho tot junt
Posant-ho tot junt
Posant-ho tot junt
Posant-ho tot junt

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

Programació d'Arduino
Programació d'Arduino
Programació d'Arduino
Programació d'Arduino
Programació d'Arduino
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

Programació en Python
Programació en Python
Programació en Python
Programació en Python
Programació en Python
Programació en 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

Llista de peces
Llista de peces
  • 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: