Brazo robótico con iman
1. Introducción
metal. El brazo es controlado mediante una aplicación para smartphone.
2. Materiales y presupuesto
- Materiales:
- Kit brazo madera cortado a laser y 3 servos motores SG90. Coste: ~30€
- Placa Arduino Uno Rev3 (Proporcionada por el profesor)
- Breadboard. Coste: ~4€
- Cables: Coste: ~7€
- Transmisor Bluetooth (HC-05). Coste: ~4€
- Módulo electroimán KEYSTUDIO. Coste: ~13€
- Smartphone (App)
- Presupuesto: ~58€
3. Montaje
4. Código
#include <Servo.h> Servo movil; Servo codo; Servo hombro; Servo base; char a; int baseN = 90; int hombroN = 90; int codoN = 145; int iman = 7; String readString; void setup() { pinMode(13, OUTPUT); pinMode(iman, OUTPUT); codo.attach(9); hombro.attach(10); base.attach(11); Serial.begin(9600); movil.write(90); /*codo.write(100);*/ codo.write(codoN); hombro.write(hombroN); base.write(baseN); delay(10); } void loop() { if (Serial.available()) { a = Serial.read(); switch (a) { case ‘0’: baseN = 90; hombroN = 90; codoN = 145; base.write(baseN); hombro.write(hombroN); codo.write(codoN); break; case ‘1’: if (baseN <= 180) { baseN += 3; base.write(baseN); delay(10); } break; case ‘2’: if (baseN >= 0) { baseN -= 3; base.write(baseN); delay(10); } break; case ‘3’: //hombro acercarse if (hombroN <= 170) { hombroN += 4; hombro.write(hombroN); } break; case ‘4’: //hombro alejarse if (hombroN >= 90) { hombroN -= 4; hombro.write(hombroN); } break; case ‘5’: if (codoN < 170) { codoN += 2; codo.write(codoN); } break; case ‘6’: //codo abajo if (codoN > 0) { if ((hombroN < 120) && (hombroN – 10) > (180 – codoN) || (hombroN – 50) > (180 – codoN)) { codoN -= 2; codo.write(codoN); } } break; case ‘7’: //coge if (a == ‘7’) { digitalWrite(iman, HIGH); } break; case ‘8’: if (a == ‘8’) { digitalWrite(iman, LOW); } break; } } }
Código y diseño de aplicación (MitApp Inventor):
5. Problemas y posibles mejoras
Uno de los mayores problemas que tuvimos al realizar este proyecto fue debido a que al conectar el dispositivo bluetooth (HC-05) a la placa Arduino y mandarle señales con la aplicación del smartphone realizaba los movimientos que nosotros queríamos, pero de forma extraña y con rebotes.
Finalmente pudimos solucionarlo estos movimientos extraños y rebotes conectando los conectores TXD y RXD del dispositivo bluetooth (HC-05) a los pines 0 y 1 de la placa Arduino respectivamente ya que no servía en cualquier otro pin de entrada analógica.
- Mejora en la potencia de los servomotores para poder atrapar objetos de mayor peso.
- Mejora en el código para una menor limitación de los ángulos del brazo.
- Mejoras en la aplicación para realizar más movimientos con el acelerómetro y no tener que presionar botones.