INFORMACIÓN
El Kit de Robot Evasor de Obstáculos es ideal para introducir a niños, adolescentes o cualquier persona en el mundo de la robótica de una manera sencilla al construir su propio robot inteligente. Con este kit podrás construir tu primer robot inteligente, contiene todos los elementos electrónicos necesarios para su funcionamiento, solo ensambla el chasis, conecta los elementos, carga el código y está listo para funcionar.
El Kit de Robot Evasor de Obstáculos puede ser de mucha utilidad si eres estudiante o docente, puedes utilizarlo como proyecto escolar para explicar conceptos de electrónica, programación, robótica o simplemente para alimentar tu curiosidad o la de tus peques por la tecnología.
ESPECIFICACIONES Y CARACTERÍSTICAS
- Tipo: Robot Evasor de Obstáculos
- Voltaje de alimentación: 6V DC
- Chasis de acrílico
- Dimensiones del chasis: 21.5 cm x 15.2 cm
- Diámetro de llanta: 66 mm
- Ancho de llanta: 26 mm
- Interruptor OFF/ON
Motorreductores
- Voltaje de trabajo: 3 V / 5 V / 6 V
- Corriente de consumo: 100 mA
- Tasa de reducción: 48:1
- Velocidad (con las llantas montadas)
- 3V @ 100 rpm
- 5V @ 190 rpm
- 6V @ 240 rpm
- Dimensiones: 7 cm x 3.7 cm x 2.2 cm
- Color: Amarillo
Llantas
- Neumático: Goma Antiderrapante Flexible
- Rin: Plástico color amarillo
El kit contiene:
- x1 Chasis de acrílico
- x4 Soportes para motorreductores
- x2 Pares de Cables para soldar 18 cm
- x20 Cables Dupont Largos HH
- x4 Separadores de latón M3x10 mm H-H
- x4 Tornillos M3X30 mm
- x10 Tornillos M3X6 mm
- x2 Tornillos M3X8 mm
- x8 Tuercas Hexagonal Metal M3
- x2 Motorreductores
- x2 Discos de Interrupción óptica
- x3 Cincho Negro
- x4 Tornillos negros con tuerca M3
- Conector de Batería de 9V con Cable
- Interruptor ON/OFF
- Sensor Ultrasónico HC-SR04
- Módulo Driver Motor A Pasos L298N
- Placa UNO compatible con arduino
- Sensor Shield V5
- Micro Servo SG90
- Cable USB
- Rueda Loca
- Tira de Headers
- Soporte para servo FPV
- Pila Cuadrada 9V Alcalina
Herramientas recomendadas
- Pinzas de punta y corte
- Destornillador
- Cautín
- Soldadura
Software
Si quieres personalizar tu proyecto es recomendable contar con separadores, tornillos, alambres y cables.
DOCUMENTACIÓN Y RECURSOS
INFORMACIÓN ADICIONAL
¿Qué es un robot?
Un robot es un dispositivo electromecánico capaz de interactuar en un medio sujeto a las leyes físicas, el cual incluye un sistema de sensores y un sistema de actuadores generalmente montados en una estructura mecánica, que en conjunto son regulados a través de una unidad de control.
Construcción
Paso 1: Montaje de la estructura
Si lo deseas, suelda los cables a las terminales de cada motor, si no tienes cautin puedes sujetar el cable al motor mediante un pequeño nudo, el interruptor también requiere conectarse de esta manera.
Desprende el papel protector del chasis de acrílico y de los soportes para los motorreductores.
Ensambla la estructura siguiendo las instrucciones del manual o del ejemplo de montaje del chasis en los recursos externos, posteriormente coloca el modulo driver L298N y la tarjeta UNO sobre la estructura y sujetalos con dos tornillos cada uno, coloca el shield V5 sobre la tarjeta UNO y por último, el servomotor y el sensor ultrasónico se colocan en la estructura de soporte FPV mediante los cinchos u otro elemento de sujeción.
Paso 2: Realiza las conexiones
A continuación te presentamos un diagrama con un ejemplo de las conexiones, (recuerda que el Shield V5 se coloca sobre la placa UNO) y basta con conectar el shield a VCC y GND, para alimentar estas dos tarjetas. Este kit está diseñado para alimentarse mediante la pila alcalina de 9V pero si deseas una fuente de alimentación recargable puedes sustituir esta fuente de alimentación con un shield para baterías.
Paso 3: Carga el código de control
Puedes escribir un código de acuerdo a lo que desees que realice el robot, sin embargo en la sección documentación y recursos te proporcionamos un código que, siempre y cuando no haya un obstáculo frente a sus sensores avanzará al frente, en cuanto el sensor detecta un obstáculo, se detiene, retrocede un poco, mira a su derecha y luego a la izquierda, decidirá a qué dirección girará y una vez hecho esto avanzará de frente nuevamente.
#include <Servo.h> //Biblioteca para el Servo motor (Esta es una Biblioteca estándar) #include <NewPing.h> //Biblioteca para el Sensor Ultrasónico (Puedes instalarla en ->Herramientas-> Administrar Bibliotecas-> Tema:NewPing ->Instalar) //Nombramos los pines de control del módulo L298N const int MotorDer_Frente = 2; const int MotorDer_Reversa = 3; const int MotorIzq_Frente = 4; const int MotorIzq_Reversa = 7; const int VelMotor_Izq = 5; //Pines PWM const int VelMotor_Der = 6; //Pines PWM const int pwm = 140; //Pines del sensor ultrasónico #define trig_pin A1 //Entrada analógica 1 #define echo_pin A2 //Entrada analógica 2 #define distancia_maxima 200 boolean Avanza = false; int distancia = 100; NewPing sonar(trig_pin, echo_pin, distancia_maxima); //Funcion del sensor ultrasonico Servo servo_motor; //Nombramos nuestro motor void setup() { pinMode(MotorDer_Frente, OUTPUT); pinMode(MotorDer_Reversa, OUTPUT); pinMode(MotorIzq_Frente, OUTPUT); pinMode(MotorIzq_Reversa, OUTPUT); servo_motor.attach(11); //Pin del servo servo_motor.write(90); delay(2000); distancia = leer_Ping(); delay(100); distancia = leer_Ping(); delay(100); distancia = leer_Ping(); delay(100); distancia = leer_Ping(); delay(100); } /* * Lógica principal. Se ejecuta una y otra vez. * Se define la función que ejecutara repetidamente */ void loop() { int distancia_Derecha = 0; int distancia_Izquierda = 0; delay(50); if (distancia <= 40){ //distancia de detección de obstaculo (aumenta si quieres que los detecte desde más lejos) mover_Alto(); delay(300); mover_Reversa(); delay(400); mover_Alto(); delay(300); distancia_Derecha = mirar_Derecha(); delay(300); distancia_Izquierda = mirar_Izquierda(); delay(300); if (distancia >= distancia_Izquierda){ girar_Derecha(); mover_Alto(); } else{ girar_Izquierda(); mover_Alto(); } } else{ mover_Frente(); } distancia = leer_Ping(); } int mirar_Derecha(){ servo_motor.write(10); delay(500); int distancia = leer_Ping(); delay(100); servo_motor.write(90); return distancia; } int mirar_Izquierda(){ servo_motor.write(170); delay(500); int distancia = leer_Ping(); delay(100); servo_motor.write(90); return distancia; delay(100); } int leer_Ping(){ delay(70); int cm = sonar.ping_cm(); if (cm==0){ cm=250; } return cm; } void mover_Alto(){ digitalWrite(MotorDer_Frente, LOW); digitalWrite(MotorIzq_Frente, LOW); digitalWrite(MotorDer_Reversa, LOW); digitalWrite(MotorIzq_Reversa, LOW); } //Hay que recordar que los pines Frente y Reversa del mismo motor deben estar en estados opuestos (uno HIGH y uno LOW, para que el motor gire) void mover_Frente(){ if(!Avanza){ Avanza = true; digitalWrite(MotorIzq_Frente, HIGH); digitalWrite(MotorDer_Frente, HIGH); digitalWrite(MotorIzq_Reversa, LOW); digitalWrite(MotorDer_Reversa, LOW); analogWrite(VelMotor_Izq, pwm); analogWrite(VelMotor_Der, pwm); } } void mover_Reversa(){ Avanza = false; digitalWrite(MotorIzq_Reversa, HIGH); digitalWrite(MotorDer_Reversa, HIGH); digitalWrite(MotorIzq_Frente, LOW); digitalWrite(MotorDer_Frente, LOW); analogWrite(VelMotor_Izq, pwm); analogWrite(VelMotor_Der, pwm); } void girar_Derecha(){ digitalWrite(MotorIzq_Frente, HIGH); digitalWrite(MotorDer_Reversa, HIGH); digitalWrite(MotorIzq_Reversa, LOW); digitalWrite(MotorDer_Frente, LOW); analogWrite(VelMotor_Izq, pwm); analogWrite(VelMotor_Der, pwm); delay(250); digitalWrite(MotorIzq_Frente, HIGH); digitalWrite(MotorDer_Frente, HIGH); digitalWrite(MotorIzq_Reversa, LOW); digitalWrite(MotorDer_Reversa, LOW); analogWrite(VelMotor_Izq, pwm); analogWrite(VelMotor_Der, pwm); } void girar_Izquierda(){ digitalWrite(MotorIzq_Reversa, HIGH); digitalWrite(MotorDer_Frente, HIGH); digitalWrite(MotorIzq_Frente, LOW); digitalWrite(MotorDer_Reversa, LOW); analogWrite(VelMotor_Izq, pwm); analogWrite(VelMotor_Der, pwm); delay(250); digitalWrite(MotorIzq_Frente, HIGH); digitalWrite(MotorDer_Frente, HIGH); digitalWrite(MotorIzq_Reversa, LOW); digitalWrite(MotorDer_Reversa, LOW); analogWrite(VelMotor_Izq, pwm); analogWrite(VelMotor_Der, pwm); }
Encuentra más kits educativos aquí
Valoraciones
No hay valoraciones aún.