Vous êtes sur la page 1sur 28

Robot detector de obstculos HC-SR04

Robot detector de obstculos HC-SR04
















DESCRIPCIN GENERAL



Este proyecto se trata de un Mini Robot mvil, el cual
estar

diseado como un carrito tendr un chasis plstico
que ser

el esqueleto de nuestro robot incluir dos motores dc
que

permitirn el giro de las llantas que estarn
conectadas al

pin de engranes que traen ya incorporados los
motores,

un Modulo driver para motores (IC L293D) , tres
sensores

ultrasonicos HC-SCR04, para obtener las
comunicacin con

el entorno fsico estos sensores son conocidos como
sensores

de proximidad, colocaremos dos Ruedas de balero o
ruedas

locas, todos estos componentes irn controlados por
un

firmware programado en Arduino nano con un
Atmega 328

en lenguaje C, todo el circuito estar alimentado por
dos

baterias un Modulo porta bateras que contendr 4
unidades

AA de 1.5v para alimentar a los motores y una
bateria de

9v

para alimentar al circuito.






La funcin de nuestro robot se basara en que cada
vez que

encuentre un obstculo que le impida el paso hacia
adelante

este cambie su direccin, para lo cual se creara un
sistema

para que el robot sea capaz de moverse y evitar
obstculos.

Esto requiere un sistema bsico para el control del
motor, y

tambin para la lectura y la interpretacin de la
informacin

de los sensores. El tratamiento para esto lo haremos
usando

un Arduino , que es una plataforma de cdigo abierto
de

prototipos electrnicos utilizando un
microcontrolador

ATmega328.






El carrito evita obstculos que vamos a desarrollar se

clasifica

de la siguiente manera.

Segn su Nivel de Arquitectura.


Mvil. Segn la arquitectura de nuestro mini robot
se

clasifica como mvil ya que tiene la capacidad de

desplazarse

al rededor de un espacio restringido o No.

Por su Nivel de inteligencia.



Inteligente. Lo podemos clasificar como inteligente
ya que

tiene un entendimiento completo de su entorno
atreves del

Firmaware y los Sensores.

Segn su Programacin.


Nivel robot: Lo clasificamos por su programacin
dentro de

los nivelrobot, ya que se basa en un sistema digital

programable y se programara basado en tareas a
ejecutar.


Nuestro proyecto estar formado por los bloques
funcionales

siguientes que conformaran la estructura de nuestro
Robot.



Bloque Mecnico.


Estructura Mecnica: Esta ser como el Esqueleto de

nuestro

robot ser la encargada de dar soporte y firmeza,
formar el

chasis de nuestro carro evita obstculos, dicho chasis
estar

hecho de acrlico color rojo. Este es independiente de
los

motores y las ruedas, por lo tanto los motores y las
ruedas no

forman parte del chasis.



Reductores: Para adaptar y modificar la velocidad y
la

fuerza

del movimiento de salida de nuestros motores hacia
las

llantas de nuestro carro, los motores Dc que
utilizaremos

trae

ya incorporado una caja donde se encuentra un
sistema de

engranajes que nos permitirn realizar dicha
funcin.


Elementos terminales: Para que nuestro robot pueda

moverse y pueda apoyarse en el entorno fsico
colocaremos

dos llantas que irn ensambladas a los motores que
nos

permitirn la movilidad de nuestro robot, a la vez
tambin

colocaremos una Rueda balero o rueda loca como es

conocida comn mente.



Bloque Electrnico.




Sistema de Accionamiento: Los elementos que
brindaran el

poder de movilizarse a nuestro robot sern dos
actuadores

elctricos es decir dos motores DC, que brindara la
fuerza

necesaria para poder movilizarse en su arranque y
cada vez

que encuentre un obstculo, marcaran la direccin
tanto


hacia adelante-atrs como a los lados.





Sistema Sensorial: Para que nuestro robot pueda
realizar su

tarea de evitar los obstculos que encuentre, necesita
hacer

un reconocimiento de su entorno por lo tanto nuestro
robot

tendr dos Sensores Interruptor IR (Sensor de
proximidad)

que nos permitirn que el robot pueda ver su
entorno.



Componentes o dispositivos que utilizamos.


1- kit de chasis (incluye Chasis

Ruedas+motores+Baleros+Porta baterias)


3- Sensores ultrasonicos HC-SCR04 (sensor de
proximidad

ultrasonico)


1- Modulo Drivers para motores (IC L293D)


1- Arduino NANO


1-PCB armada con el circuito








se la pueden descargar de aqui:

https://docs.google.com/file/d/0BykxU0qiVjQjM

VZCd0w3U041VUk/edit




Programa o Firmware:












// Ultrasonic - Library for HR-SC04 Ultrasonic Ranging Module.
// Rev.4 (06/2012)
// J.Rodrigo ( www.jra.so )
// more info at www.ardublog.com

#include <Ultrasonic.h>

Ultrasonic ultrafront(3,2); // (Trig PIN,Echo PIN)
Ultrasonic ultraleft(4,5); // (Trig PIN,Echo PIN)
Ultrasonic ultraright(7,6); // (Trig PIN,Echo PIN)

int sensoradeval = 0;
int sensoriz = 0;
int sensordr = 0;


void setup() {

//Serial.begin(9600);

pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);

}

void loop()
{

SENSORADEL();
SENSORIZQ();
SENSORDER();

}

void SENSORADEL() {

//Serial.print("Front: " );
// Serial.print(ultrafront.Ranging(CM)); // CM or INC
// Serial.print(" cm " );
// delay(50);

if(ultrafront.Ranging(CM) > 15){

IRADELANTE();

}
else
{

IRATRAS();
delay(300);
IRDERECHA();
delay(200);
SENSORIZQ();
}

}

void SENSORIZQ() {

//Serial.print("Left: " );
//Serial.print(ultraleft.Ranging(CM)); // CM or INC
//Serial.print(" cm " );
// delay(50);

if(ultraleft.Ranging(CM) > 6){

SENSORADEL();

}
else
{
IRDERECHA();
//delay(200);
SENSORDER();

}

}

void SENSORDER() {

// Serial.print("Right: " );
// Serial.print(ultraright.Ranging(CM)); // CM or INC
// Serial.println(" cm" );
// delay(50);

if(ultraright.Ranging(CM) > 6){

SENSORADEL();

}
else
{
IRIZQUIERDA();
//delay(200);
SENSORIZQ();
}

}

void IRADELANTE(){

digitalWrite(8,LOW);
digitalWrite(9,HIGH);
digitalWrite(10,HIGH);
digitalWrite(11,LOW);

}

void IRATRAS(){

digitalWrite(8,HIGH);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,HIGH);
}

void IRIZQUIERDA(){

digitalWrite(8,HIGH);
digitalWrite(9,LOW);
digitalWrite(10,HIGH);
digitalWrite(11,LOW);

}

void IRDERECHA(){

digitalWrite(8,LOW);
digitalWrite(9,HIGH);
digitalWrite(10,LOW);
digitalWrite(11,HIGH);

}

void STOP(){

digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
}

Vous aimerez peut-être aussi