mirco mouse

11
UNIVERIDAD SANTA MARIA LA ANTIGUA FACULTAD DE INGENIERIA Y TECNOLOGIA ESCUELAS DE CIENCIAS COMPUTACIONALES E INGENIERIA ELECTRONICA PROF. JORGE LAM INVESTIGACION DE MICROMOUSE Juan Carballo Stephanie Moore

Upload: stephanie-moore

Post on 16-Jan-2016

7 views

Category:

Documents


0 download

DESCRIPTION

micro mouse, tarea de microprocesadore, diagrama de flujo

TRANSCRIPT

Page 1: Mirco Mouse

UNIVERIDAD SANTA MARIA LA ANTIGUA

FACULTAD DE INGENIERIA Y TECNOLOGIA

ESCUELAS DE CIENCIAS COMPUTACIONALES E INGENIERIA ELECTRONICA

PROF. JORGE LAM

INVESTIGACION DE MICROMOUSE

Juan Carballo

Stephanie Moore

Panamá septiembre 2014

Page 2: Mirco Mouse

¿En qué consiste el concurso micromouse y en qué países se celebra?

Es un concurso donde se desarrollan robots pequeños en una matriz de 16x16, los cuales deben resolver un laberinto. Esto laberintos son asignados al azar, por lo general contienen cruces en t, caminos sin salida, giros a izquierda y derechas entre otras características de laberintos estándar. Existe una zona de despiste, la cual está ubicada en el centro del laberinto, los robots que solo giren a un lado no podrán resolverlos.

El concepto de este concurso se basa en la prueba de resolución de laberintos de

los ratones. Actualmente el record de resolución de laberinto en menor tiempo es

de 4 segundos y lo posee NG BENG KIAT.

Este evento se celebra anualmente principalmente en las áreas del suroeste,

principalmente en Inglaterra, Estados Unidos, Japón, Singapure, India y Corea Sur.

El premio es en efectivo 1er $500, 2do$300 ,3ro $200, respectivamente.

¿Qué componentes electrónicos y qué firmware integran el micro mouse?

Se necesitan 2 ruedas para que el robot ande, 3 sensores podrían ser de ultrasonido para detectar las paredes, batería para que funcione sin estar conectado, 2 servomotores, adafruit motorshield y Arduino uno.

En la manera de “pensar” del robot se necesita un programación para poder resolver los laberintos, el siguiente condigo fue encontrado en internet, tiene algunas fallas pero puede utilizarse como base.

int leftping = 2; //left ping pinint frontping = 3; //front ping pinint rightping = 8; //right ping pinint M2Dirpin = 4; // Motor 2 Direction controlint M2Spdpin = 5; // Motor 2 PWM controlint M1Dirpin = 6; // Motor 1 PWM controlint M1Spdpin = 7; // Motor 1 Direction controlint M1Speed = 100; // PWM value (0-255)int M2Speed = 100; // PWM value (0-255)

void setup() { int i; for(i=5;i<=8;i++) //For Arduino Motor Shield pinMode(i, OUTPUT); //set pin 4,5,6,7 to output mode Serial.begin(9600); //go to tools/serial moniter }

Page 3: Mirco Mouse

void loop(){ long leftduration, leftinches, leftcm, fronttduration, frontinches, frontcm, rightduration, rightinches, rightcm; char state; //'l' left, 'r' right, 'f' forward, 's' stop

//*************************************************************** //PING SENSORS //Left Sensor pinMode(leftping, OUTPUT); digitalWrite(leftping, LOW); delayMicroseconds(2); digitalWrite(leftping, HIGH); delayMicroseconds(5); digitalWrite(leftping, LOW); pinMode(leftping, INPUT); leftduration = pulseIn(leftping, HIGH);

//Front Sensor pinMode(frontping, OUTPUT); digitalWrite(frontping, LOW); delayMicroseconds(2); digitalWrite(frontping, HIGH); delayMicroseconds(5); digitalWrite(frontping, LOW); pinMode(frontping, INPUT); fronttduration = pulseIn(frontping, HIGH); //Right Sensor pinMode(rightping, OUTPUT); digitalWrite(rightping, LOW); delayMicroseconds(2); digitalWrite(rightping, HIGH); delayMicroseconds(5); digitalWrite(rightping, LOW); pinMode(rightping, INPUT); rightduration = pulseIn(rightping, HIGH);

//*************************************************************** // Convert the time into a distance //Left leftinches = microsecondsToInches(leftduration); //leftcm = microsecondsToCentimeters(duration); //Front frontinches = microsecondsToInches(fronttduration); //frontcm = microsecondsToCentimeters(fronttduration); //Right

Page 4: Mirco Mouse

rightinches = microsecondsToInches(rightduration); //rightcm = microsecondsToCentimeters(rightduration);

//************************************************************// Uncomment to display ping values in serial monitor// To use serial monitor click tools/serialmonitor// To uncomment, highlight code below and right click to // select uncomment Serial.print("Left: "); Serial.print(leftinches); Serial.print(", Front: "); Serial.print(frontinches); Serial.print(", Right: "); Serial.print(rightinches); Serial.println();// delay(100);

//*************************************************************//MAZE CONTROL PROGRAM HERE

if (leftinches < 2) state = 'l';if (rightinches < 2) state = 'r'; if (frontinches < 2) state = 'f';if (leftinches > 2 && rightinches > 2 && frontinches > 2) state = 's'; //*************************************************************//MOTOR CONTROL//The speed control is achieved through the conventional PWM //which can be obtained from Arduino’s PWM output Pins 5 and 6. //The enable/disable function of the motor control is signalled //by Arduino Digital Pins 7 and 8.

//Digital 4: Motor 2 Direction control//Digital 5: Motor 2 PWM control//Digital 6: Motor 1 PWM control//Digital 7: Motor 1 Direction control//set pwm control, 0 for stop, and 255 for maximum speed switch(state) { case 'f': //forward Motor1(M1Speed,true); Motor2(M2Speed,true); break;

Page 5: Mirco Mouse

case 'l'://turn left Motor1(M1Speed,false); Motor2(M2Speed,true); break; case 'r'://turn right Motor1(M1Speed,true); Motor2(M2Speed,false); break; case 's'://stop Motor1(0,false); Motor2(0,false); break; } //END OF PROGRAM //********************************************************}void Motor1(int pwm, boolean reverse) { analogWrite(M1Spdpin,pwm); if(reverse) { digitalWrite(M1Dirpin,HIGH); } else { digitalWrite(M1Dirpin,LOW); } } void Motor2(int pwm, boolean reverse) { analogWrite(M2Spdpin,pwm); if(reverse) { digitalWrite(M2Dirpin,HIGH); } else { digitalWrite(M2Dirpin,LOW); } } long microsecondsToInches(long microseconds){ return microseconds / 74 / 2;}long microsecondsToCentimeters(long microseconds){ return microseconds / 29 / 2;}

Page 6: Mirco Mouse

Esquematice e indique los algoritmos de solución del problema que debe resolver el micromouse. 

A mayor distancia: Este algoritmo mide las distancias D1, D2, D3 donde determina el camino más largo para transistor, de allí determina hacia donde debe girar, donde la velocidad de reacción depende de la distancia y de los motores.

Page 7: Mirco Mouse

Regla de la mano derecha”: En este algoritmo para un robot que posee un solo sensor ultrasónico en el lado derecho del robot, este mide la distancia al lado derecho del robot en el caso de ser menor de 3 cm, el robot gira a la izquierda.

Page 8: Mirco Mouse

Estime lo necesario que usted como proyectista considere para diseñar y construir el sistema micromouse.

Se debe realizar un equipo de 3 a 6 persona de la cuales todas manejen el tema en la parte básica y poder dividirse en partes el trabajo del micromouse en caso de ser necesario.

Para poder ensamblar las partes anteriormente mencionadas se requiere de una plataforma, estructura o chasis que pueda sostener los motores, ruedas y otras piezas. Para factibilidad se podrían utilizar 3 ruedas, en un diseño tipo triciclo. En la parte de funcionamiento del robot se podría usar un microcontrolador o también en defecto un microprocesador, sensores los cuales ayuden a lo robot a detectar la ubicación de las paredes y espacios libres. Debido a que los robots están dentro de un laberinto es muy incómodo que este se alimente mediante un cable, lo ideal sería que usara baterías y hasta paneles solares.

Ya que se tiene la estructura que sería el “cuerpo”, el microcontrolador o microprocesador actuaría como cerebro y los sensores que serían los sentidos, necesitamos la lógica de nuestro robot. Esta lógica está definida por el programa que hagamos, donde los sensores indicaran distancia y espacios libres, las librerías nos ayudaran al manejo de los motores y como nuestro robot actuara dependiendo del laberinto que le toque

Para la construcción ideal sería que le equipo se dividiera en dos personas que se enfoquen en el diseño, dos que realicen una base del software y después del diseño concretar la programación y por ultimo las dos personas restantes que se encargue de presupuesto, patrocinios y ensamblaje del robot. Cada parte del equipo tiene una tarea y puede contribuir con las tareas de las otras partes.

Proponga un presupuesto en $ para poner su micromouse a concursar en un evento internacional con los anfitriones tradicionales.

El presupuesto del “robot” seria aproximadamente de 250$ a 300$, considerando en este precio el Arduino, las ruedas, motores, sensores, las baterías recargables y el envió ya que algunas piezas deben conseguirse en el extranjero.Cabe destacar que en presupuesto debe incluirse pasajes de avión ya que el concurso es en extranjero y precio poder desde 800 en adelante dependiendo de la época. Habría que incluir el hospedaje y comida lo que depende de cada país. Por lo que se recomendaría pedir patrocinio tanto a aerolíneas y empresas de tecnología.

Page 9: Mirco Mouse

Factibilidad de realizar el concurso en Panamá

Tiene mucha factibilidad desde el punto de vista geográfico, además de que actualmente se han impulsado otros concursos muy parecidos en el área de robótica. Seria excelente que una empresa en conjunto de las universidades realizara este concurso, donde se evalué el software, estructura, factibilidad, precio y resolución del laberinto. Al mismo tiempo este concurso podría dividirse en etapas, como básica, universitaria y superior, de esta manera se incentiva a los más pequeños al mundo de la tecnología.

Por supuesto este concurso debería ofrecer premios monetarios e incluso becas ya que muchas universidades tienen convenios.