Descrición
O primeiro que temos que facer e facernos cun brazo robot. Os orzamentos dos centros non dan para moito, pero hai opcións económicas e ben accesibles para os centros de secundaria e que se poden controlar con Arduíno. Se tes impresora 3D ou máquina de corte láser (ou algún sitio no que che fagan o corte) podes fabricarte un.
Estes son algúns exemplos:
MeArm [Mime Industries] – web oficial e kit – instrucións ![]() |
LittleArm [littlearmrobot.com] – web oficial e kit – Instrucións ![]() |
Pedro Robot [hackaday.io] – Descarga e instrucións ![]() |
Servo-Arm [Heartman] – Descarga e instrucións ![]() |
EEZYbotARM [daGHIZmo CC-By_NC] – EEZYbotARM MK1 – EEZYbotARM MK2 ![]() |
BrazoRobot [Antonio Gómez] – Pezas e Instrucións ![]() |
Hai outras opcións máis con 6 graos de liberdade, pero xa son máis caros. Depende do orzamento que teñas.
Nós imos traballar cun MeArm e Pedro Robot. Son pequenos, doados de montar e funcionan de forma aceptable. Tamén temos un de 6DOF chinés.
Conexión
1. Básica
Os servos debemos conectalos con alimentación externa de 6V (non facelo coa alimentación que proporciona a placa Arduíno) e deben conectarse en pins dixitais PWM.
Despois, segundo o que uses para controlar o brazo robot, engade novos elementos ao circuíto.
2. Controlador PCA9685
Se podes dispoñer dun controlador PCA9685, é mellor opción cá anterior. SCL (A5) SDA (A4). Alimentación externa para os servos: 6V
Programa
Antes de programar os movementos do brazo robot cómpre coñecer cales son os ángulos mínimos e máximos e situar a posición de repouso para cada un dos servos. Se poñemos os ángulos 0 e 180 pode ser que os servos queden atascados, pois dependendo do modelo a a posición poden non facer todo o movemento. Vai movendo cada servo, un a un, e apuntando os valores máximo, mínimo e central.
Por exemplo, para o brazo robot de 6 servos que temos, as posicións obtidas apuntámolas nestes arrays:
int ang_inicial[6]={100,100,120,105,95,60}; int ang_min[6]={0,40,75,0,0,38}; int ang_max[6]={180,150,160,180,180,102};
Despois, utilizando un controlador de servos, facemos que se movan ata a posición que queiramos. Por exemplo, neste caso movemos o servo “2” desde a posición inicial ata o ángulo máximo:
for (int i=ang_inicial[2]; i<ang_max[2]; i++) { controladorServo.setPWM(2, 0, angulo(i)); delay(t); }
Unha vez identificados estes valores programa o teu brazo robot para o que necesites.
Propostas
- Control manual. Elixe potenciómetros ou joysticks segundo o material do que dispoñas.
- con potenciómetros: A posición de cada servo contrólase cun potenciómetro. Cada posición do cursor do potenciómetro ten a súa equivalencia en graos de xiro do servo que controla.
- con joysticks: O movemento dos servos contrólase mediante dous joysticks, con dous potenciómetros cada un. Como o joystick volve sempre á posición central de repouso o movemento do cursor de cada potenciómetro do joystick provocará un aumento o diminución do ángulo de xiro e na posición central non fai nada.
- Movemento automático: Cada vez que detecta a presenza dun obxecto nunha posición determinada cólleo e deposítao nunha caixa. Na posición na que se colocan as pezas debes introducir algún sensor que detecte a presenza, que pode ser un simple microinterruptor final de carreira. Debes programar os movementos precisos para que o brazo sexa quen de coller a peza e introducila unha pequena caixa.
- Clasificación de pezas: Cada vez que detecta a presenza dunha peza branca ou negra nunha posición determinada, distingue a súa cor e deposítaa na caixa correspondente. Pode ser a ampliación da proposta anterior, á que se lle engade un sensor óptico capaz de distinguir entre branco e negro.
Se queres ir máis alá e clasificar pezas de diferentes cores (vermello, azul, verde) podes utilizar un sensor de cor. - Visualizadores: Engade unha pantalla LCD que mostre a posición do brazo, o número de pezas clasificadas, ou o que queiras.
- Control mediante unha app para Android: Utiliza App inventor para deseñar unha app que controle o movemento dos servos. Utiliza un módulo bluetooth para a comunicación co Arduíno.
Exemplos:
Pedro Robot
Este é o resultado do traballo de Samuel e Javier na materia de tecnoloxía Industrial I no curso 2017-2018. Noa deseñou as pezas de cores e o soporte do sensor. O robot é quen de detectar unha peza na posición e clasificala na caixa correspondente segundo a súa cor.
[BrazoRobot from María L on Vimeo.]
MeArm
Neste proxecto do curso 2016-2017 o brazo robot nun inicio funcionaba ben: o robot era capaz de clasificar entre pezas brancas e negras (usamos un sensor CMY70) e introducilas na caixa correspondente. Despois fallou o servo que permitía ao brazo elevarse verticalmente, e decidiuse levantar a base e realizar uns buratos para introducir as pezas. Haberá que cambiar o servo que falla e o curso que vén a ver se o poñemos a andar de novo.
As caixas foron deseñadas por Lara e Lucía e o soporte da LCD e montaxe por Brais. Manuel e Iago encargáronse da programación.