¿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
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
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.
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.
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
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.
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.
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.
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
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.
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.
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.
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).
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
Paso 3. Conecte el Arduino a su computadora a través de USB
Es probable que Windows no reconozca el dispositivo.
Paso 4. Presione
⊞ Win + R y escriba devmgmt.msc.
Esto abrirá el Administrador de dispositivos.
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".
Paso 6. Seleccione "Buscar en mi computadora el software del controlador
" Esto le permitirá seleccionar el controlador que vino con el IDE de Arduino.
Paso 7. Haga clic en "Examinar" y luego navegue hasta la carpeta que extrajo anteriormente
Encontrarás una carpeta de "controladores" dentro.
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
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.
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". }
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
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); }}
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 (); }}