0% encontró este documento útil (0 votos)
5 vistas18 páginas

Informe Proyecto

El documento describe el desarrollo de un carro autónomo utilizando Arduino, que detecta y esquiva obstáculos mediante un sensor ultrasónico y un microcontrolador. Se detallan los objetivos del proyecto, los materiales utilizados, el código implementado y las conclusiones sobre la comprensión práctica de la electrónica. Se recomienda incluir un interruptor para mejorar la usabilidad del vehículo.

Cargado por

woxaka9493
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
5 vistas18 páginas

Informe Proyecto

El documento describe el desarrollo de un carro autónomo utilizando Arduino, que detecta y esquiva obstáculos mediante un sensor ultrasónico y un microcontrolador. Se detallan los objetivos del proyecto, los materiales utilizados, el código implementado y las conclusiones sobre la comprensión práctica de la electrónica. Se recomienda incluir un interruptor para mejorar la usabilidad del vehículo.

Cargado por

woxaka9493
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Introducción:

El mundo de la electrónica es bastante amplio y complejo, pero


una de las mejores maneras de comprender sus bases teóricas es
a través de la creación de proyectos prácticos. Estos proyectos
nos permiten observar de manera dinámica y en tiempo real
cómo se comportan los componentes electrónicos que la
conforman, cómo interactúan entre sí y las consecuencias de
configurar incorrectamente los elementos. En el caso de nuestro
grupo, se ha decidido construir un carro que avanza por su
cuenta a la vez que también detecta obstáculos en su camino y
los esquiva de manera automática. Al desarrollar este proyecto
buscamos comprender cómo cada componente y código afecta el
comportamiento del vehículo, lo que nos permitirá entender de
una mejor manera un poco del mundo de la electrónica.
Objetivo General
• Comprender las aplicaciones de la electrónica por medio de
un proyecto de Arduino.

Objetivos Específicos:
• Construir por medio de Arduino un carro que avanzara solo
y detectara obstáculos para esquivarlos
• Programar el funcionamiento del carro para que pueda
avanzar, detectar obstáculos y esquivarlos
• Enlazar el código al carro para que este pueda funcionar
correctamente
Descripción Completa:
Nuestro proyecto final, consistió en construir un vehículo
autónomo capaz de detectar y evitar obstáculos en su camino.
Utiliza un sensor ultrasónico montado en la parte frontal del
automóvil para medir la distancia con los objetos cercanos.
Basándose en los datos del sensor, un microcontrolador toma
decisiones para detenerse o cambiar de dirección y así evitar
colisiones. El sistema incluye motores para el movimiento, un
controlador de motor para gestionar la dirección, y el código
necesario para coordinar las acciones.
Dibujo:
Unifilar:
Materiales Completos:
• Arduino UNO (1)
• Driver L293D (1)
• Sensor Ultrasónico HC-SR04 (1)
• Servo Motor SG90 (1)
• Ruedas 66mm diámetro (4)
• Motores DC 3v a 6v (4)
• Porta Batería 18650 (1)
• Chasis (1)
• Tornillos (8)
• Baterías 18650 3500mAh (2)
• Jumpers (8)
• Pines macho-macho para placa Driver Shield (1)
• Soporte para Sensor Ultrasónico (1)
Código:
#include <Servo.h>
#include <NewPing.h>
#include <AFMotor.h>

NewPing Dist(A0, A1, 200); //(trig,echo,dist max)


Servo myServo;

int distancia = 0;
int distanciaD = 0;
int distanciaIz = 0;
boolean Booleano = false;

AF_DCMotor Motor1(1, MOTOR12_1KHZ);


AF_DCMotor Motor2(2, MOTOR12_1KHZ);
AF_DCMotor Motor3(3, MOTOR34_1KHZ);
AF_DCMotor Motor4(4, MOTOR34_1KHZ);

void setup() {
pinMode(A2, OUTPUT);
pinMode(A3, OUTPUT);
[Link](10);
[Link](90);
delay(1000);
[Link](45);
delay(500);
[Link](135);
delay(500);
[Link](90);
}

void loop() {
distancia = medirDistancia();
if (distancia >= 25 && distancia <= 250)
{
Adelante();
}
else if (distancia < 25)
{
Frenar();
digitalWrite(A2, HIGH);
digitalWrite(A3, HIGH);
delay(150);
digitalWrite(A2, LOW);
digitalWrite(A3, LOW);

Reversa();
dualBlink(800, 4);
Frenar();
digitalWrite(A2, HIGH);
digitalWrite(A3, HIGH);
distanciaD = mirarDerecha();
delay(250);
distanciaIz = mirarIzquierda();
delay(250);

digitalWrite(A2, LOW);
digitalWrite(A3, LOW);
if(distanciaD >= distanciaIz)
{
GirarDerecha();
Frenar();
}
else if(distanciaIz >= distanciaD)
{
GirarIzquierda();
Frenar();
}
}

}
int mirarDerecha()
{
[Link](45);
delay(350);
int distancia = medirDistancia();
return distancia;
}

int mirarIzquierda()
{
[Link](135);
delay(350);
int distancia = medirDistancia();
delay(50);
[Link](90);
return distancia;
}

int medirDistancia()
{
delay(10);
int ditanciaCM = Dist.ping_cm();
if(ditanciaCM <= 0 || ditanciaCM >= 250)
{
ditanciaCM = 250;
}
return ditanciaCM;
}
void Frenar() {
[Link](RELEASE);
[Link](RELEASE);
[Link](RELEASE);
[Link](RELEASE);
}

void Adelante() {
if(Booleano == false)
{
Booleano = true;
[Link](FORWARD);
[Link](FORWARD);
[Link](FORWARD);
[Link](FORWARD);
controlVelocidad(170);
}
}

void Reversa() {
Booleano = false;
[Link](BACKWARD);
[Link](BACKWARD);
[Link](BACKWARD);
[Link](BACKWARD);

controlVelocidad(120);
}
void GirarDerecha() {
[Link](FORWARD);
[Link](FORWARD);
[Link](BACKWARD);
[Link](BACKWARD);
monoBlink(400, 4, A3);
}

void GirarIzquierda() {
[Link](BACKWARD);
[Link](BACKWARD);
[Link](FORWARD);
[Link](FORWARD);
monoBlink(400, 4, A2);
}
void controlVelocidad(int max){
for (int velocidad = 0; velocidad < max; velocidad +=2)
{
[Link](velocidad);
[Link](velocidad);
[Link](velocidad);
[Link](velocidad);
delay(3);
}
}
void monoBlink(int t, int num_blink, uint8_t pin) {
int intervalo = t / (num_blink * 2) ;
for(int i = 0; i < num_blink; i++)
{
digitalWrite(pin, HIGH);
delay(intervalo);
digitalWrite(pin, LOW);
delay(intervalo);
}
}
void dualBlink(int t, int num_blink) {
int intervalo = t / (num_blink * 2) ;
for(int i = 0; i < num_blink; i++)
{
digitalWrite(A2, HIGH);
digitalWrite(A3, HIGH);
delay(intervalo);
digitalWrite(A2, LOW);
digitalWrite(A3, LOW);
delay(intervalo);
}
}
Conclusiones:
• A través del desarrollo del proyecto con Arduino, se logró
comprender de manera práctica las aplicaciones de la
electrónica, integrando sensores y programación para la
automatización de un vehículo autónomo capaz de detectar
y esquivar obstáculos.

• La construcción y programación del carro permitieron


afianzar conocimientos sobre el uso de Arduino, la
integración de hardware y software, y la importancia de la
calibración y prueba del sistema para asegurar su correcto
funcionamiento.

Recomendación:
• Se recomienda incluir un interruptor en el diseño del
proyecto para facilitar el encendido y apagado del vehículo,
lo que mejorará su usabilidad y evitará la necesidad de
desconectar directamente la fuente de alimentación.

También podría gustarte