Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Transformar una Cabeza Humana en Cabeza Robot: Proyecto DIY con Arduino

Componentes y suministros

ComponenteCantidadNotas
Arduino UNO1
Servomotor3
Dispositivo Android1
Placa fuente regulada (12V,5V,3.3V)1

Herramientas y máquinas necesarias

Aplicaciones y servicios en línea

Sobre el proyecto

Planeo hacer algo nuevo pero barato. Me gusta mucho la robótica, pero por la necesidad de servos y otras piezas no me animaba. Ahora tengo 4 servomotores que solo costaron 13$. Ya tengo placa LinkIt ONE y Arduino.

Así que planeo hacer una cabeza robot que se mueva como la nuestra en todos los ejes pero barata. Estudié diferentes sensores y métodos, pero al final encontré una forma con todo lo que tenía a mano. Aprendí muchas cosas durante este proyecto. Marco en negrita lo que aprendí.

Usar sensor de inclinación del móvil inteligente para controlar la cabeza

Paso 1: Materiales necesarios

Transformar una Cabeza Humana en Cabeza Robot: Proyecto DIY con Arduino
Transformar una Cabeza Humana en Cabeza Robot: Proyecto DIY con Arduino
Transformar una Cabeza Humana en Cabeza Robot: Proyecto DIY con Arduino
Transformar una Cabeza Humana en Cabeza Robot: Proyecto DIY con Arduino
Transformar una Cabeza Humana en Cabeza Robot: Proyecto DIY con Arduino
Transformar una Cabeza Humana en Cabeza Robot: Proyecto DIY con Arduino
Transformar una Cabeza Humana en Cabeza Robot: Proyecto DIY con Arduino

Materiales usados

  1. Arduino UNO.
  2. Placa LinkIt ONE.
  3. 3 Servomotores.
  4. App gratuita SensoDuino para Android (descargar aquí).
  5. Placa fuente regulada (12V, 5V, 3.3V).
  6. PCB virgen.
  7. Conectores macho PCB.
  8. Trozo de aluminio de desecho (de bandeja de alimentación).
  9. Pistola de silicona caliente.
  10. Adaptadores 12V y 5V.
  11. Más elementos para decorar.

¿Por qué LinkIt ONE y Arduino UNO?

Si tienes LinkIt ONE y servos de 3V, no necesitas Arduino UNO porque mis servos de 5V no funcionan bien en LinkIt ONE.

Si tienes Arduino UNO y módulo Bluetooth, no necesitas LinkIt ONE.

No tenía shield Bluetooth, así que usé LinkIt ONE y Arduino UNO.

Paso 2: Shield de servos propio

Transformar una Cabeza Humana en Cabeza Robot: Proyecto DIY con Arduino
Transformar una Cabeza Humana en Cabeza Robot: Proyecto DIY con Arduino
Transformar una Cabeza Humana en Cabeza Robot: Proyecto DIY con Arduino
  1. Hacer un shield de servos para Arduino. (Cuidado: si usas servos de 3V, LinkIt ONE solo tiene 2 pines PWM).
  2. Hice una placa PCB para servos.
  3. Con esta placa podemos controlar 6 servos desde pines Arduino (3,5,6,9,10,11).
  4. Servos de 3 hilos; la alimentación viene de la fuente regulada externa a 5V.
  5. Al controlar servos usa alimentación del adaptador para Arduino. La alimentación USB del PC causa vibraciones, sobrecalienta y daña el servo. (Uno de mis servos se rompió).

Paso 3: Conexión LinkIt ONE

Transformar una Cabeza Humana en Cabeza Robot: Proyecto DIY con Arduino
  1. LinkIt ONE debe hablar con Arduino para controlar los servos.
  2. Conecta Tx de LinkIt ONE a Rx de Arduino y ambos GND.
  3. Cuando recibe datos, los envía a Arduino.
  4. Nota: Si tienes shield Bluetooth para Arduino, controlas todo con una sola placa.

Paso 4: Posición de servos

Transformar una Cabeza Humana en Cabeza Robot: Proyecto DIY con Arduino
Transformar una Cabeza Humana en Cabeza Robot: Proyecto DIY con Arduino
  1. Pon todos los servos a 90°. Sube el programa Servoposition.ino a Arduino.
  2. Conecta alimentación servos y Arduino a la fuente regulada en pines 5V y 12V.
  3. Conecta conectores hembra de servos a los macho del PCB en pines digitales 3,5,6 de Arduino.
  4. Conecta adaptador 12V a la fuente regulada.
  5. Enciende adaptador. Todos los motores giran a 90° según programa.
  6. Desconecta los motores para unirlos sin mover el rotor.
  7. Código Arduino IDE para posición: Servoposition.ino

Paso 5: Planificación

Transformar una Cabeza Humana en Cabeza Robot: Proyecto DIY con Arduino
Transformar una Cabeza Humana en Cabeza Robot: Proyecto DIY con Arduino
Transformar una Cabeza Humana en Cabeza Robot: Proyecto DIY con Arduino
  1. Cabeza gira en 3 ejes X, Y, Z.
  2. Rotaciones:
    • Yaw – Mirar izquierda/derecha.
    • Pitch – Mirar arriba/abajo.
    • Roll – Inclinación lateral.
  3. Primero usa cinta doble cara para planear posición de servos.
  4. Corta pieza de aluminio en L para fijar servo superior al segundo.
  5. Conecta los cuernos de servo según tu plan o como en la foto.
  6. Todos los centros de servo deben estar rectos a 90°.
  7. Pega servos y pieza L con cinta doble cara y comprueba que el movimiento no interfiere con otros servos.

Paso 6: Construcción

Transformar una Cabeza Humana en Cabeza Robot: Proyecto DIY con Arduino
Transformar una Cabeza Humana en Cabeza Robot: Proyecto DIY con Arduino
Transformar una Cabeza Humana en Cabeza Robot: Proyecto DIY con Arduino
Transformar una Cabeza Humana en Cabeza Robot: Proyecto DIY con Arduino
Transformar una Cabeza Humana en Cabeza Robot: Proyecto DIY con Arduino
  1. Fijar permanentemente.
  2. Quita cinta doble cara uno a uno y fija con pistola de silicona caliente.
  3. Cuidado de no dañar servos.
  4. Vuelve a conectar conectores de servos a Arduino y enciende alimentación.
  5. Verifica que todos están rectos como en la última imagen.

Paso 7: Detalles app Android

Transformar una Cabeza Humana en Cabeza Robot: Proyecto DIY con Arduino
Transformar una Cabeza Humana en Cabeza Robot: Proyecto DIY con Arduino
Transformar una Cabeza Humana en Cabeza Robot: Proyecto DIY con Arduino
Transformar una Cabeza Humana en Cabeza Robot: Proyecto DIY con Arduino
Transformar una Cabeza Humana en Cabeza Robot: Proyecto DIY con Arduino
Transformar una Cabeza Humana en Cabeza Robot: Proyecto DIY con Arduino
  1. Abre SensoDuino en tu Android. Tiene opciones para ver lecturas de todos los sensores y enviarlas por Bluetooth.
  2. Todos los sensores disponibles se listan; solo puedes seleccionar los que tenga tu teléfono.
  3. Menú → Conectar Bluetooth.
  4. Lista de dispositivos Bluetooth disponibles.
  5. Selecciona Bluetooth de LinkIt ONE.
  6. Para nuestro proyecto usamos sensor de Orientación. Marca primera casilla para activar y segunda para enviar datos por Bluetooth.
  7. También ajustamos el rendimiento de cada sensor en opción Rendimiento del menú. Cambia intervalo de tiempo para cada lectura.

Paso 8: Programación

  1. Dos códigos: uno para LinkIt ONE. Por Bluetooth recibe datos del móvil y los envía a Arduino por puerto serie.
  2. Programa Arduino: al recibir datos en puerto serie, concatena chars como string. Usa indexOf y substring para dividir un conjunto completo de resultados. En ese conjunto, de nuevo indexOf y substring para obtener cada posición. Luego usa map en Arduino para controlar servo de 0 a 180°. Si usas shield Bluetooth, adapta el programa.

Cómo funciona el programa

  1. Usando sensor de Orientación, el robot gira la cabeza como nosotros.
    • Yaw: rotación 0-360° según posición magnética. Usamos 90-270° donde 180° es 90° para servo. Debes enfrentar 180° al ponerte la gorra.
    • Pitch: adelante arriba/abajo. Lectura -180 a +180. Usamos -90 a +90.
    • Roll: inclinación lateral 0-90-0--90-0. Usamos -90 a 90.

Código LinkIt ONE: Linkitonehead.ino

Código Arduino: Arduinohead.ino

Paso 9: Montar las placas

Transformar una Cabeza Humana en Cabeza Robot: Proyecto DIY con Arduino
Transformar una Cabeza Humana en Cabeza Robot: Proyecto DIY con Arduino
Transformar una Cabeza Humana en Cabeza Robot: Proyecto DIY con Arduino
  1. Conecta ambos shields encima de ambos microcontroladores.
  2. Pégalos todos con cinta doble cara uno sobre otro.
  3. Cuidado de no cortocircuitar ningún terminal.

Paso 10: Prueba con la mano

Enciende todo y usa el móvil en la mano. Siéntate enfrentando 180° en yaw y usa el móvil para controlar los tres servos.

Paso 11: Poner una cara

Transformar una Cabeza Humana en Cabeza Robot: Proyecto DIY con Arduino
Transformar una Cabeza Humana en Cabeza Robot: Proyecto DIY con Arduino
  1. Era Navidad, había muchos muñecos de Papá Noel en tiendas.
  2. Compré uno y fijé la cabeza con cinta doble cara al brazo del servo superior.

Paso 12: Preparar gorra de control

Transformar una Cabeza Humana en Cabeza Robot: Proyecto DIY con Arduino
Transformar una Cabeza Humana en Cabeza Robot: Proyecto DIY con Arduino
Transformar una Cabeza Humana en Cabeza Robot: Proyecto DIY con Arduino
Transformar una Cabeza Humana en Cabeza Robot: Proyecto DIY con Arduino
Transformar una Cabeza Humana en Cabeza Robot: Proyecto DIY con Arduino
Transformar una Cabeza Humana en Cabeza Robot: Proyecto DIY con Arduino
  1. Toma una gorra normal.
  2. Pega cinta doble cara en la parte frontal como en la figura.
  3. Pega tu móvil sobre la cinta.

Paso 13: Vídeo de prueba

Prueba con bajo rendimiento (tasa de refresco del sensor cada 250 ms).

Paso 14: Vídeo final

Ver la acción a tasa de lectura de 1 lectura por 100 ms.

Código

Servoposition.ino (Arduino)

#include <Servo.h>
Servo leftright;
Servo updown;
Servo shake;

void setup() {
  Serial.begin(9600);
  leftright.attach(3);
  updown.attach(5);
  shake.attach(6);
  leftright.write(90);
  updown.write(90);
  shake.write(90);
}

void loop() { }

Linkitonehead.ino (Arduino)

#include <LBT.h>
#include <LBTServer.h>
int readval;
String inputString = "";
String outputString = "";
int firstpoint=0, secondpoint=0;

void setup() {
  if(!LBTServer.begin((uint8_t*)"Sivam_LIO")) return;
  Serial1.begin(9600);
}

void loop() {
  uint8_t buf[64];
  int bytesRead;
  if(LBTServer.connected()) {
    while(true) {
      bytesRead = LBTServer.readBytes(buf, 32);
      if(!bytesRead) break;
      inputString="";
      for(int j=0;j<32;j++) {
        char inChar = char(buf[j]);
        inputString += inChar;
      }
      Serial1.println(inputString);
    }
    delay(100);
  } else {
    LBTServer.accept(5);
  }
}

Arduinohead.ino (Arduino)

#include <Servo.h>
Servo leftright;
Servo updown;
Servo shake;
String inputString = "";
boolean stringComplete = false;
String teststr2, sensorid, sensorrecid, sensorval1, sensorval2, sensorval3;
int S1, S2, S3, startchr=0, endchr=0, rot1, rot2, rot3;

void setup() {
  Serial.begin(9600);
  leftright.attach(3);
  updown.attach(5);
  shake.attach(6);
}

void loop() { }

void serialEvent() {
  while (Serial.available()) {
    char inChar = (char)Serial.read();
    if (inChar != '\n') inputString += inChar;
  }
  startchr = inputString.indexOf('>');
  if (startchr>=0) {
    endchr = inputString.indexOf('>', startchr+1);
    if (endchr>0) {
      teststr2 = inputString.substring(startchr, endchr);
      inputString = inputString.substring(endchr);
      startchr = teststr2.indexOf(',');
      sensorid = teststr2.substring(1, startchr);
      endchr = teststr2.indexOf(',', startchr+1);
      sensorrecid = teststr2.substring(startchr+1, endchr);
      startchr = endchr;
      endchr = teststr2.indexOf(',', startchr+1);
      sensorval1 = teststr2.substring(startchr+1, endchr);
      startchr = endchr;
      endchr = teststr2.indexOf(',', startchr+1);
      sensorval2 = teststr2.substring(startchr+1, endchr);
      startchr = endchr;
      sensorval3 = teststr2.substring(startchr+1);
      S1 = sensorval1.toInt();
      S2 = sensorval2.toInt();
      S3 = sensorval3.toInt();
      rot1 = map(S1, 90, 270, 180, 0);
      if (rot1<0) rot1=0; else if (rot1>180) rot1=180;
      rot2 = map(S2, -90, 90, 0, 180);
      if (rot2<0) rot2=0; else if (rot2>180) rot2=180;
      rot3 = map(S3, 90, -90, 0, 180);
      if (rot3<0) rot3=0; else if (rot3>180) rot3=180;
      if (rot1!=0 && rot1!=180) leftright.write(rot1);
      if (rot1!=0 && rot1!=180) updown.write(rot2);
      if (rot1!=0 && rot1!=180) shake.write(rot3);
      delay(15);
    }
  }
}

Proceso de manufactura

  1. Robot DIY inspirado en Wall‑E con Raspberry Pi y caja de CD
  2. Robot Despertador Rodante: Sistema Inteligente y Móvil de Despertar con Raspberry Pi y Google Calendar
  3. Placa RasPiRobot Board V2: Convierte tu Raspberry Pi en un Controlador de Robot Potente
  4. Construye un Robot Creeper de Minecraft Motorizado con Arduino
  5. Arquímedes: El Búho Robot Sensor de Emociones con IA
  6. Construye un Robot de Visión Artificial Controlado por Voz en Windows 10 IoT Core
  7. Robot ROS: Navegación Controlada por Terminal en Raspberry Pi
  8. Integración de Microsoft Kinect con Raspberry Pi para Detección Humana en Tiempo Real en Robot Sonbi
  9. Simple Pi Robot: Construye un Rover Autónomo 2‑WD con Raspberry Pi
  10. El verdadero activo: El capital humano en operaciones de manufactura
  11. Robots blandos detectan tacto humano mediante cámara y sombras: solución táctil de bajo costo