










Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Los mejores documentos en venta realizados por estudiantes que han terminado sus estudios
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Descubre las mejores universidades de tu país según los usuarios de Docsity
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Construcción, código e instrucciones para la construcción de un robot con ARDUINO. Incluye plantillas y moldes
Tipo: Ejercicios
1 / 18
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!
Elemento Cantidad Fotografía Link de compra
Arduino UNO R3 con cable USB 1
https://www.e- ika.com/arduino-uno- r3-compatible-ch
Placa motor shield 1
https://www.e- ika.com/motor-drive- shield-l293d-for- arduino
Motor con caja reductora de 3 – 6 V 4
https://www.e- ika.com/motor-para- coche- 481
Sensor Ultrasónico HC-SR0 4 1
https://www.e- ika.com/medidor-de- distancias-por- ultrasonidos-hc-sr04- para-arduino
Servomotor SG90 1
https://www.e- ika.com/mini-servo- para-rc
Baterías AA LR6 8
https://www.e- ika.com/pilas- alkalinas-panasonic- aa- 4 - uds
Base de 4 baterías AA 2
https://www.e- ika.com/base-de- baterias- 6 - pilas- modelo-aa-con- conector
Sesión 1 60 min.
Conocer los aspectos técnicos del proyecto y los procedimientos generales que implica
Sesión 2 60 min.
Conocer cómo se programa un Arduino.
Sesión 3 60 min.
Montar partes del robot y realizar prueba de funcionamiento.
Cargar Librerías Arduino Configuracion de entradas/Salidas Andar hacia adelante
Si objeto a menos de 15cm, se detiene y retrocede
Gira a la derecha y verifica si hay objeto a menos de 15 cm
Gira a la izquierda y verifica si hay objeto a menos de 15 cm
Si distancia de la derecha es mayor o igual a la de la izquierda, gira a la derecha
Si distancia de la derecha es menor a la de la izquierda, gira a la izquierda
#include <AFMotor.h> //libreria del motor shield #include <Servo.h> //libreria para el servomotor
int trigger=14; //trigger del ultrasonidos conectado a Pin A0=pin int echo=15; //echo (escucha) del ultrasonidos conectado a pin A1=pin float vSonido=0.0343; //velocidad del sonido en cm/us int distDcha=0; //variables que almacenan la distancia a derecha o izquierda int distIzda=0; AF_DCMotor motorDi(1, MOTOR12_1KHZ); //instancias para los motores AF_DCMotor motorDd(2, MOTOR12_1KHZ); AF_DCMotor motorTi(3, MOTOR34_1KHZ); AF_DCMotor motorTd(4, MOTOR34_1KHZ); Servo servoUltra; //control giro del servomotor que lleva el ulrasonidos
void setup() { pinMode(trigger,OUTPUT); // pin configurado como salida pinMode(echo,INPUT); //pin de conexión ultrasonidos como entrada pinMode(9,OUTPUT); //pin del servo conector serv2=pin servoUltra.attach(9); //indicamos en que pin esta conectado el servo
motorDi.setSpeed(150); //velocidad motor Di valores entre 0 y 255 motorDi.run(RELEASE); //iniciamos con motor parado motorDd.setSpeed(150); //velocidad motor Dd motorDd.run(RELEASE); //iniciamos con motor parado motorTi.setSpeed(150); //velocidad motor Ti motorTi.run(RELEASE); //iniciamos con motor parado motorTd.setSpeed(150); //velocidad motor Td motorTd.run(RELEASE); //iniciamos con motor parado } void loop() { int ddistDcha=0; //inicializamos las variables de distancia int ddistIzda=0; int distFront=0; adelante(); //comienza hacia adelante distFront=medir_distancia(); //llamamos a la función medir distancia //para saber la distancia al obstaculo
if (distFront<=15) { //si el obstaculo esta a menos de 15 cm parar(); atras(); //retrocede para facilitar maniobras delay(500); parar(); ddistDcha=miraDcha(); //llamamos a la función para girar-mirar el servo // a la dcha delay(1000); ddistIzda=miraIzda(); //llamamos a la función para girar-mirar el // servo a la izda delay(1000);
if (ddistDcha>=ddistIzda) { //si la distancia de la dcha es mayor o igual a izda giraDcha(); //gira a la derecha
} else { //si no gira a la izda giraIzda(); } } else { adelante(); } }
int miraIzda() //función gira servo izda { servoUltra.write(179); //90 grados izda delay(1000); distIzda=medir_distancia(); //función mide distancia servoUltra.write(90); //recupera posición inicial delay(1000); return distIzda; //retornamos distancia del obstaculo en la izda }
int miraDcha() //función gira servo dcha { servoUltra.write(0); //90 grados dcha delay(1000); distDcha=medir_distancia(); //función mide distancia servoUltra.write(90); //recupera posición inicial delay(1000); return distDcha; //retornamos distancia del obstaculo en la dcha }
int medir_distancia() { //función que realiza la medición de la distancia
digitalWrite(trigger,LOW); //para hacer una lectura el fabricante nos dice //que tenemos que poner delayMicroseconds(4); //trigger 4ms a OFF y luego 10ms a ON digitalWrite(trigger,HIGH); delayMicroseconds(10); digitalWrite(trigger,LOW); int tdvuelo=pulseIn(echo,HIGH); //pulseIn función que nos devuelve el // tiempo en HIGH de un pin int talobjeto=tdvuelo/2; //el tiempo al objeto es la mitad de lo //que tarda la señal en ir y volver int resultado=vSonido*talobjeto; //obtenemos la distancia multiplicando //la vSonido x tiempo que transcurre // hasta al objeto return resultado; //variable o parámetro que devuelve la // función en este caso el valor de //resultado. Se asignara a distancia que //es la variable que se indico en la //llamada de origen
}