Cómo construir un robot en casa (con imágenes)

Tabla de contenido:

Cómo construir un robot en casa (con imágenes)
Cómo construir un robot en casa (con imágenes)

Video: Cómo construir un robot en casa (con imágenes)

Video: Cómo construir un robot en casa (con imágenes)
Video: Como importar imágenes a Sketchup; Tutorial Sketchup MODELARQ 2024, Mayo
Anonim

¿Quieres aprender a construir tu propio robot? Hay muchos tipos diferentes de robots que puede hacer usted mismo. La mayoría de la gente quiere ver a un robot realizar las tareas simples de moverse del punto A al punto B. ¡Puede hacer un robot completamente a partir de componentes analógicos o comprar un kit de inicio desde cero! Construir su propio robot es una excelente manera de aprender a sí mismo tanto electrónica como programación de computadoras.

Pasos

Parte 1 de 6: Montaje del robot

1123333 1
1123333 1

Paso 1. Reúna sus componentes

Para construir un robot básico, necesitará varios componentes simples. Puede encontrar la mayoría, si no todos, de estos componentes en su tienda de pasatiempos de electrónica local o en varios minoristas en línea. Algunos kits básicos también pueden incluir todos estos componentes. Este robot no requiere soldadura:

  • Arduino Uno (u otro microcontrolador)
  • 2 servos de rotación continua
  • 2 ruedas que se ajustan a los servos
  • 1 rodillo giratorio
  • 1 tablero pequeño sin soldadura (busque un tablero que tenga dos líneas positivas y negativas en cada lado)
  • 1 sensor de distancia (con cable conector de cuatro pines)
  • 1 mini interruptor de botón
  • 1 resistencia de 10 kΩ
  • 1 cable USB A a B
  • 1 juego de encabezados separatistas
  • 1 soporte para pilas AA de 6 x con conector de alimentación de 9 V CC
  • 1 paquete de cables de puente o cable de conexión de calibre 22
  • Cinta adhesiva de doble cara fuerte o pegamento caliente
1123333 2
1123333 2

Paso 2. Dé la vuelta al paquete de baterías de modo que la parte posterior plana quede hacia arriba

Construirás el cuerpo del robot usando la batería como base.

1123333 3
1123333 3

Paso 3. Alinee los dos servos en el extremo del paquete de baterías

Este debe ser el extremo por donde sale el cable del paquete de baterías. Los servos deben tocar la parte inferior y los mecanismos de rotación de cada uno deben mirar hacia los lados del paquete de baterías. Los servos deben estar correctamente alineados para que las ruedas vayan rectas. Los cables de los servos deben salir de la parte posterior del paquete de baterías.

1123333 4
1123333 4

Paso 4. Pegue los servos con su cinta o pegamento

Asegúrese de que estén bien sujetos al paquete de baterías. La parte posterior de los servos debe estar alineada con la parte posterior del paquete de baterías.

Los servos ahora deberían ocupar la mitad trasera de la batería

1123333 5
1123333 5

Paso 5. Coloque la placa de pruebas perpendicularmente en el espacio abierto del paquete de baterías

Debe colgar un poco sobre la parte frontal del paquete de baterías y se extenderá más allá de cada lado. Asegúrese de que esté bien sujeto antes de continuar. La fila "A" debe estar más cerca de los servos.

1123333 6
1123333 6

Paso 6. Conecte el microcontrolador Arduino a la parte superior de los servos

Si conectó los servos correctamente, debe haber un espacio plano al tocarlos. Pegue la placa Arduino en este espacio plano para que los conectores USB y de alimentación de Arduino queden hacia atrás (lejos de la placa de pruebas). La parte frontal del Arduino debe estar apenas superpuesta a la placa de pruebas.

1123333 7
1123333 7

Paso 7. Ponga las ruedas en los servos

Presione firmemente las ruedas sobre el mecanismo giratorio del servo. Esto puede requerir una cantidad significativa de fuerza, ya que las ruedas están diseñadas para ajustarse lo más apretadamente posible para la mejor tracción.

1123333 8
1123333 8

Paso 8. Coloque la rueda en la parte inferior de la placa de pruebas

Si voltea el chasis, debería ver un poco de placa que se extiende más allá del paquete de baterías. Fije la rueda a esta pieza extendida, usando elevadores si es necesario. La rueda actúa como la rueda delantera, lo que permite que el robot gire fácilmente en cualquier dirección.

Si compró un kit, es posible que el lanzador haya venido con algunas bandas que puede usar para asegurarse de que el lanzador llegue al suelo. I

Parte 2 de 6: Cableado del robot

1123333 9
1123333 9

Paso 1. Rompa dos encabezados de 3 pines

Los usará para conectar los servos a la placa de pruebas. Empuje los pines hacia abajo a través del cabezal de modo que los pines salgan a la misma distancia en ambos lados.

1123333 10
1123333 10

Paso 2. Inserte los dos encabezados en los pines 1-3 y 6-8 en la fila E de la placa de pruebas

Asegúrese de que estén bien insertados.

1123333 11
1123333 11

Paso 3. Conecte los cables del servo a los encabezados, con el cable negro en el lado izquierdo (pines 1 y 6)

Esto conectará los servos a la placa de pruebas. Asegúrese de que el servo izquierdo esté conectado al encabezado izquierdo y el servo derecho al encabezado derecho.

1123333 12
1123333 12

Paso 4. Conecte los cables de puente rojos de los pines C2 y C7 a los pines rojos (positivos) del riel

Asegúrese de usar el riel rojo en la parte posterior de la placa de pruebas (más cerca del resto del chasis).

1123333 13
1123333 13

Paso 5. Conecte los cables de puente negros de los pines B1 y B6 a los pines del riel azul (tierra)

Asegúrese de usar el riel azul en la parte posterior de la placa de pruebas. No los conecte a las clavijas del riel rojo.

1123333 14
1123333 14

Paso 6. Conecte los cables de puente blancos de los pines 12 y 13 en el Arduino a A3 y A8

Esto permitirá que Arduino controle los servos y gire las ruedas.

1123333 15
1123333 15

Paso 7. Conecte el sensor al frente de la placa de pruebas

No se conecta a los rieles de alimentación externos en la placa de pruebas, sino a la primera fila de pines con letras (J). Asegúrese de colocarlo en el centro exacto, con el mismo número de pines disponibles en cada lado.

1123333 16
1123333 16

Paso 8. Conecte un cable de puente negro desde el pin I14 al primer pin de riel azul disponible a la izquierda del sensor

Esto conectará a tierra el sensor.

1123333 17
1123333 17

Paso 9. Conecte un cable de puente rojo desde el pin I17 al primer pin de riel rojo disponible a la derecha del sensor

Esto alimentará el sensor.

1123333 18
1123333 18

Paso 10. Conecte los cables de puente blancos del pin I15 al pin 9 en el Arduino, y del I16 al pin 8

Esto alimentará información del sensor al microcontrolador.

Parte 3 de 6: Cableado de la alimentación

1123333 19
1123333 19

Paso 1. Voltee el robot de lado para que pueda ver las baterías en el paquete

Oriéntelo de modo que el cable del paquete de baterías salga hacia la izquierda en la parte inferior.

1123333 20
1123333 20

Paso 2. Conecte un cable rojo al segundo resorte desde la izquierda en la parte inferior

Asegúrese de que la batería esté orientada correctamente.

1123333 21
1123333 21

Paso 3. Conecte un cable negro al último resorte en la parte inferior derecha

Estos dos cables ayudarán a proporcionar el voltaje correcto al Arduino.

1123333 22
1123333 22

Paso 4. Conecte los cables rojo y negro a los pines rojo y azul del extremo derecho en la parte posterior de la placa de pruebas

El cable negro debe enchufarse en el pin del riel azul en el pin 30. El cable rojo debe enchufarse en el pin del riel rojo en el pin 30.

1123333 23
1123333 23

Paso 5. Conecte un cable negro desde el pin GND en el Arduino al riel azul trasero

Conéctelo en el pin 28 del carril azul.

1123333 24
1123333 24

Paso 6. Conecte un cable negro desde el riel azul trasero al riel azul frontal en el pin 29 para cada uno

No conecte los rieles rojos, ya que probablemente dañará el Arduino.

1123333 25
1123333 25

Paso 7. Conecte un cable rojo desde el riel rojo frontal en el pin 30 al pin de 5V en el Arduino

Esto proporcionará energía al Arduino.

1123333 26
1123333 26

Paso 8. Inserte el interruptor de botón en el espacio entre las filas en los pines 24-26

Este interruptor le permitirá apagar el robot sin tener que desconectar la alimentación.

1123333 27
1123333 27

Paso 9. Conecte un cable rojo de H24 al riel rojo en el siguiente pin disponible a la derecha del sensor

Esto encenderá el botón.

1123333 28
1123333 28

Paso 10. Utilice la resistencia para conectar H26 al carril azul

Conéctelo al pin directamente al lado del cable negro que conectó hace unos pasos.

1123333 29
1123333 29

Paso 11. Conecte un cable blanco de G26 al pin 2 del Arduino

Esto permitirá que Arduino registre el botón pulsador.

Parte 4 de 6: Instalación del software Arduino

1123333 30
1123333 30

Paso 1. Descargue y extraiga el IDE de Arduino

Este es el entorno de desarrollo de Arduino y le permite programar instrucciones que luego puede cargar en su microcontrolador Arduino. Puede descargarlo de forma gratuita desde arduino.cc/en/main/software. Descomprima el archivo descargado haciendo doble clic en él y mueva la carpeta dentro a una ubicación de fácil acceso. En realidad, no instalará el programa. En su lugar, simplemente lo ejecutará desde la carpeta extraída haciendo doble clic en arduino.exe.

1123333 31
1123333 31

Paso 2. Conecte la batería al Arduino

Enchufe el conector trasero de la batería en el conector del Arduino para darle energía.

1123333 32
1123333 32

Paso 3. Conecte el Arduino a su computadora a través de USB

Es probable que Windows no reconozca el dispositivo.

1123333 33
1123333 33

Paso 4. Presione

⊞ Win + R y escriba devmgmt.msc.

Esto abrirá el Administrador de dispositivos.

1123333 34
1123333 34

Paso 5. Haga clic con el botón derecho en "Dispositivo desconocido" en la sección "Otros dispositivos" y seleccione "Actualizar software de controlador"

" Si no ve esta opción, haga clic en "Propiedades" en su lugar, seleccione la pestaña "Controlador" y luego haga clic en "Actualizar controlador".

1123333 35
1123333 35

Paso 6. Seleccione "Buscar en mi computadora el software del controlador

" Esto le permitirá seleccionar el controlador que vino con el IDE de Arduino.

1123333 36
1123333 36

Paso 7. Haga clic en "Examinar" y luego navegue hasta la carpeta que extrajo anteriormente

Encontrarás una carpeta de "controladores" dentro.

1123333 37
1123333 37

Paso 8. Seleccione la carpeta "controladores" y haga clic en "Aceptar"

" Confirme que desea continuar si se le advierte sobre software desconocido.

Parte 5 de 6: Programación del robot

1123333 38
1123333 38

Paso 1. Inicie Arduino IDE haciendo doble clic en el archivo arduino.exe en la carpeta IDE

Serás recibido con un proyecto en blanco.

1123333 39
1123333 39

Paso 2. Pegue el siguiente código para que su robot funcione correctamente

El siguiente código hará que su Arduino avance continuamente.

#include // esto agrega la biblioteca "Servo" al programa // lo siguiente crea dos objetos servo Servo leftMotor; Servo rightMotor; configuración vacía () {leftMotor.attach (12); // si accidentalmente cambió los números de pin de sus servos, puede cambiar los números aquí rightMotor.attach (13); } bucle vacío () {leftMotor.write (180); // con rotación continua, 180 le dice al servo que se mueva a toda velocidad "hacia adelante". rightMotor. escribir (0); // si ambos están en 180, el robot irá en círculo porque los servos están volteados. "0" le dice que se mueva a toda velocidad "hacia atrás". }

1123333 40
1123333 40

Paso 3. Cree y cargue el programa

Haga clic en el botón de flecha derecha en la esquina superior izquierda para compilar y cargar el programa en el Arduino conectado.

Es posible que desee levantar el robot de la superficie, ya que continuará avanzando una vez que se cargue el programa

1123333 41
1123333 41

Paso 4. Agregue la funcionalidad del interruptor de interrupción

Agregue el siguiente código a la sección "void loop ()" de su código para habilitar el interruptor de interrupción, arriba de las funciones "write ()".

if (digitalRead (2) == HIGH) // esto se registra cuando se presiona el botón en el pin 2 del Arduino {while (1) {leftMotor.write (90); // "90" es la posición neutral para los servos, lo que les dice que dejen de girar a la derechaMotor.write (90); }}

1123333 42
1123333 42

Paso 5. Cargue y pruebe su código

Con el código del interruptor de interrupción agregado, puede cargar y probar el robot. Debe continuar avanzando hasta que presione el interruptor, momento en el que dejará de moverse. El código completo debería verse así:

#include // lo siguiente crea dos objetos servo Servo leftMotor; Servo rightMotor; configuración vacía () {leftMotor.attach (12); rightMotor.attach (13); } bucle vacío () {if (digitalRead (2) == HIGH) {while (1) {leftMotor.write (90); rightMotor.write (90); }} leftMotor.write (180); rightMotor.write (0); }

Parte 6 de 6: Ejemplo

Paso 1. Siga un ejemplo

El siguiente código utilizará el sensor adjunto al robot para hacerlo girar hacia la izquierda cada vez que encuentre un obstáculo. Consulte los comentarios en el código para obtener detalles sobre lo que hace cada parte. El siguiente código es el programa completo.

#include Servo leftMotor; Servo rightMotor; const int serialPeriod = 250; // esto limita la salida a la consola a una vez cada 1/4 de segundo unsigned long timeSerialDelay = 0; const int loopPeriod = 20; // esto establece la frecuencia con la que el sensor toma una lectura en 20 ms, que es una frecuencia de 50 Hz unsigned long timeLoopDelay = 0; // esto asigna las funciones TRIG y ECHO a los pines del Arduino. Haga ajustes a los números aquí si conectó de manera diferente const int ultrasic2TrigPin = 8; const int ultrasónico2EchoPin = 9; int ultrasonic2Distance; int ultrasonic2Duration; // esto define los dos estados posibles para el robot: conducir hacia adelante o girar a la izquierda #define DRIVE_FORWARD 0 #define TURN_LEFT 1 int state = DRIVE_FORWARD; // 0 = avanzar (PREDETERMINADO), 1 = girar a la izquierda void setup () {Serial.begin (9600); // estas configuraciones de pines del sensor pinMode (ultrasic2TrigPin, OUTPUT); pinMode (ultrasónico2EchoPin, ENTRADA); // esto asigna los motores a los pines de Arduino leftMotor.attach (12); rightMotor.attach (13); } void loop () {if (digitalRead (2) == HIGH) // esto detecta el interruptor de interrupción {while (1) {leftMotor.write (90); rightMotor.write (90); }} debugOutput (); // esto imprime mensajes de depuración en la consola serial if (millis () - timeLoopDelay> = loopPeriod) {readUltrasonicSensors (); // esto indica al sensor que lea y almacene las distancias medidas stateMachine (); timeLoopDelay = millis (); }} void stateMachine () {if (state == DRIVE_FORWARD) // si no se detectaron obstáculos {if (ultrasic2Distance> 6 || ultrasic2Distance <0) // si no hay nada frente al robot. ultrasonicDistance será negativo para algunos ultrasonidos si no hay ningún obstáculo {// avance rightMotor.write (180); leftMotor.write (0); } else // si hay un objeto frente a nosotros {state = TURN_LEFT; }} else if (state == TURN_LEFT) // si se detecta un obstáculo, gire a la izquierda {unsigned long timeToTurnLeft = 500; // Tarda alrededor de 0,5 segundos en girar 90 grados. Es posible que deba ajustar esto si sus ruedas tienen un tamaño diferente al del ejemplo unsigned long turnStartTime = millis (); // ahorra el tiempo que empezamos a girar while ((millis () - turnStartTime) <timeToTurnLeft) // permanece en este bucle hasta que haya transcurrido timeToTurnLeft {// gira a la izquierda, recuerda que cuando ambos están configurados en "180", girará. rightMotor.write (180); leftMotor.write (180); } estado = DRIVE_FORWARD; }} void readUltrasonicSensors () {// esto es para ultrasónico 2. Es posible que deba cambiar estos comandos si usa un sensor diferente. digitalWrite (ultrasónico2TrigPin, ALTO); delayMicroseconds (10); // mantiene el pin de disparo alto durante al menos 10 microsegundos digitalWrite (ultrasic2TrigPin, LOW); ultrasonic2Duration = pulseIn (ultrasic2EchoPin, HIGH); ultrasonic2Distance = (ultrasonic2Duration / 2) / 29; } // lo siguiente es para depurar errores en la consola. void debugOutput () {if ((millis () - timeSerialDelay)> serialPeriod) {Serial.print ("ultrasonic2Distance:"); Serial.print (ultrasonic2Distance); Serial.print ("cm"); Serial.println (); timeSerialDelay = millis (); }}

Recomendado: