Programa realizado para el trabajo: SISTEMA DE DETECCIÓN Y ALERTAS POR APROXIMACIÓN DE VEHÍCULOS EN ZONAS CIEGAS DE UNA MOTOCICLETA // JOSE ALBERTO RUIZ ORTEGA // UNIVERSIDAD NACIONAL DE COLOMBIA // SEDE MEDELLÍN // Realizado con colaboración del estudiante Jair Hernan Vargas y asesoría de los docentes: Gustavo Ramirez y Jesus Hernandez

Dependencies:   DebouncedIn HCSR04 HCSR042 HCSR043 HCSR044 MMA8451Q TextLCD USBDevice mbed

Revision:
0:694ea51ef4bf
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Thu Dec 04 06:32:31 2014 +0000
@@ -0,0 +1,312 @@
+//
+//
+//                                      SISTEMA DE DETECCIÓN Y ALERTAS POR APROXIMACIÓN DE VEHÍCULOS EN 
+//                                                      ZONAS CIEGAS DE UNA MOTOCICLETA
+//
+//                                                          JOSE ALBERTO RUIZ ORTEGA
+//                                                                  1085262530
+//
+//                                                            INGENIERIA DE CONTROL 
+//
+//                                                      UNIVERSIDAD NACIONAL DE COLOMBIA
+//
+//                                  Programa realizado para la detección de vehiculos que se acercan a una motocicleta.
+//                           Para la realización de este trabajo se contó con la colaboracion del estudiante Jair Hernán Vargas 
+//                                  
+
+
+//::::::::::::::::::                                               Librerías
+#include "mbed.h"
+#include "HCSR04.h"
+#include "HCSR042.h"
+#include "HCSR043.h"
+#include "HCSR044.h"
+#include "TextLCD.h"
+#include "MMA8451Q.h"
+#include "DebouncedIn.h"
+#define MMA8451_I2C_ADDRESS (0x1d<<1)
+
+//::::::::::::::::::                                              Puertos 
+MMA8451Q acc(PTE25, PTE24, MMA8451_I2C_ADDRESS);
+PwmOut rojo(LED_RED);
+PwmOut verde(LED_GREEN);
+PwmOut azul(LED_BLUE);
+DigitalOut led2(PTE23);
+DigitalOut led3(PTE29);
+DigitalOut led4(PTC17);
+DigitalOut led5(PTA16);
+PwmOut ledD(PTC8);
+PwmOut ledI(PTC9);
+PwmOut sound(PTA12);
+DigitalOut ledbD(PTC7);
+DigitalOut ledbI(PTC0);
+DigitalOut ledgD(PTC5);
+DigitalOut ledgI(PTC6);
+HCSR04 sensor(PTD4, PTA13);
+HCSR042 sensor2(PTA5, PTD5);
+HCSR043 sensor3(PTA1, PTD0);
+HCSR044 sensor4(PTA4, PTD2);
+DebouncedIn button1(PTC12);
+
+//::::::::::::::::::::::::::::::                          Display
+
+TextLCD lcd(PTB10, PTB11, PTE2, PTE3, PTE4, PTE5); 
+
+//::::::::::::::::::::::::::::::                          Variables
+
+float X,Y,Z;
+bool b;
+bool a;
+bool c;
+bool d;
+int e;
+float DD1;
+float DD2;
+
+//:::::::::::::::::::::::::::::::::                       PROGRAMA
+int main()
+{
+                
+    while(1){
+                //a=0;
+                
+                //b=0;
+                //::::::::::::::::::::::::::            Acelerómetro
+                
+                
+                X=acc.getAccX();
+                Y=acc.getAccY();
+                Z=acc.getAccZ();
+                rojo=1.0 - abs(X);
+                verde=1.0 - abs(Y);
+                azul=1.0 - abs(Z);
+                wait(0.1);
+        
+                if (Y>=0.1)
+                {
+                led2=1;
+                c=1;
+                d=0;
+                }
+                 else
+                 {
+                led2=0;
+                c=0;
+                }
+                if (Y<=-0.1)
+                {
+                d=1;
+                c=0;
+                led3=1;
+                }
+                else
+                {
+                led3=0;
+                d=0;
+                }
+                
+                // ::::::::::::::::::::::::::::::::::      Selección de Modos
+                
+                lcd.locate(0,0);
+                lcd.printf("e:%d ",e);
+                wait(0.1);
+                
+                if (button1.falling())
+                {
+                    e=e+1;
+                    
+                }
+                 if (e==3)
+                {
+                    e=0;
+                }
+                
+                // MODO CARRETERA
+                if (e==0)
+                {
+                    DD1=120;
+                    DD2=400;
+                    lcd.locate(0,0);
+                    lcd.printf("Modo Carretera");
+                    wait(0.1);
+                }
+                
+                // MODO CIUDAD
+                
+                if (e==1)
+                {
+                    DD1=70;
+                    DD2=300;
+                    lcd.locate(0,1);
+                    lcd.printf("Modo Ciudad");
+                    wait(0.1);
+                }
+                
+                // MODO SIN ALARMAS
+                
+                if (e==2)
+                {
+                    sound=0;
+                    lcd.locate(0,1);
+                    lcd.printf("Modo Sin Alarma");
+                    wait(0.1);
+                }
+            
+                    //:::::::::::::::::::::::::::::::::::::::::::::SENSADO
+                    
+                // SENSOR 1 DERECHA ________________________________________________________________________________________
+                long d = sensor.distance(1);
+                lcd.locate(0,0);
+                lcd.printf("DER:%d ",sensor.distance(1));
+                
+                
+                // SENSOR 2 IZQUIERDA ________________________________________________________________________________________
+                long s = sensor2.distance(1);
+                lcd.locate(8,0);
+                lcd.printf("IZQ:%d ",sensor2.distance(1));
+                                
+                 // SENSOR 3 POSTERIOR ________________________________________________________________________________________
+                long p = sensor3.distance(1);
+                lcd.locate(0,1);
+                lcd.printf("FRN:%d ",sensor3.distance(1));
+                //wait(0.5);
+                
+                // SENSOR 4 FRONTAL  ________________________________________________________________________________________
+                long q = sensor4.distance(1);
+                lcd.locate(8,1);
+                lcd.printf("TRS:%d ",sensor4.distance(1));
+                //wait(0.5);  
+                
+                //::::::::::::::::::::::::                              ALARMAS
+                
+              // ::::::::::::::::::::::::::::::::ALERTA MUY CERCANA DERECHA 
+              
+              if (d>-1 && d<=DD1)
+                {
+                lcd.locate(0,0);
+                lcd.printf("AMAXD ");
+                ledbD=0;
+                ledgD=0;
+                            
+                ledD.period(4.0);  // 4 second period
+                //ledD.pulsewidth(0.2); // 2 second pulse (on)
+                ledD.write(0.20f);  // 50% duty cycle
+                //while(1);          // led flashing
+                  a=1;          
+                }  
+                
+                // ::::::::::::::::::::::::::::::::ALERTA MUY CERCANA IZQUIERDA
+              if(s>-1 && s<=DD1)
+                {
+                lcd.locate(8,0);
+                lcd.printf("AMAXI ");
+                ledbI=0;
+                ledgI=0;
+                        
+                ledI.period(6.0);  // 4 second period
+                //ledI.pulsewidth(0.2); // 2 second pulse (on)
+                ledI.write(0.20f);  // 50% duty cycle
+                //while(1);          // led flashing  
+                a=1;
+                }
+                
+                // ::::::::::::::::::::::::::::::::ALERTA CERCANA DERECHA
+                if(d>DD1 && d<=DD2)
+                {
+                ledD=0;
+                ledbD=1;
+                ledgD=0;
+                a=1;
+                lcd.locate(0,0);
+                lcd.printf("AMIND  ");
+                
+                }       
+                 
+                // ::::::::::::::::::::::::::::::::ALERTA CERCANA IZQUIERDA
+                if(s>DD1 && s<=DD2)
+                {
+                ledI=0;
+                ledbI=1;
+                ledgI=0;
+                a=1;
+                lcd.locate(8,0);
+                lcd.printf("AMINI  ");                
+                }       
+                       
+                                     
+              // ::::::::::::::::::::::::::::::::SIN ALERTAS DERECHA
+                if(d>DD2)
+                {
+                ledD=0;
+                ledbD=0;
+                ledgD=1;
+                a=0;
+                lcd.locate(0,0);
+                lcd.printf("NOALD ");
+                }
+                
+                //:::::::::::::::::::::::::::::::: SIN ALERTAS IZQ 
+                if(s>DD2)
+                {
+                ledI=0;
+                ledbI=0;
+                ledgI=1;
+                a=0;
+                lcd.locate(8,0);
+                lcd.printf("NOALI ");
+                }
+                // ::::::::::::::::::::::::::::::::    SIN ALERTAS DERECHA
+                   if(d==-1)
+                {
+                ledD=0;
+                ledbD=0;
+                ledgD=1;
+                a=0;
+                lcd.locate(0,0);
+                lcd.printf("NOALD ");
+                }
+                
+                // ::::::::::::::::::::::::::::::::    SIN ALERTAS IZQUIERDA
+                if(s==-1)
+                {
+                ledI=0;
+                ledbI=0;
+                ledgI=1;
+                a=0;
+                lcd.locate(8,0);
+                lcd.printf("NOALI ");
+                }
+                
+                
+                // ::::::::::::::::::::::::::::::::alarma POSTERIOR 
+                if (p<=100)
+                {
+                led4=1;        
+                }  
+                else
+                {
+                led4=0;
+                }
+                  
+                  // ::::::::::::::::::::::::::::::::alarma POSTERIOR 
+                if (q<=100)
+                {
+                led5=1;        
+                } 
+                 else
+                {
+                led5=0;
+                }
+               // :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::SONIDO
+               
+                if (abs(Y)>=0.1 && a==1)
+                {
+                   sound=1;
+                   wait(0.07);
+                   sound=0;
+                }  
+                
+                
+                
+              }
+         }                
\ No newline at end of file