Pàgines

dilluns, 8 de juny de 2015

RESULTAT FINAL DE PROYECTE (SMARTCITY)


El projecte va començar amb l'idea d'utilitzar la hidràulica per accionar el pont, però per falta de força dels servos i altres recursos no es va poder realitzar.
Finalment el nostre pont està accionat per energia mecànica directament pels servos, per tal de poder accionar el pont sense haver de vèncer la resistència del líquid.
Per falta de temps hem hagut de deixar estar les barreres.






Aquest sistema compta amb dos sensors d'ultrasons: un que acciona el mecanisme dels servos i els semàfors quan un vaixell s'apropa, pujant el pont, i un altre que detecta quan el vaixel marxa i acciona els servos per fer baixar el pont i canvia de color els semàfors,
També hem utilitzat un sensor de llum que regula la intensitat dels fanals situats a l'interior del pont.
A més hem incorporat una alarma (brunzidor) per informar a la població dels moviments del pont.

Aquest és el nostre programa, que segueix el següent esquema:

























#include <Servo.h>   //libreria

// pins a utilizar:
int rojo = 5;                     // led rojo semaforo
int amarillo = 2;                 //led amarillo semaforo
int verde = 3;                    //led verde semaforo
int envia_1 = 7;                  //trig de sensor de ultrasonido
int recibe_1 = 8;                 //echo de sensor de ultrasonido
int envia_2 = 12;                 //trig de sensor de ultrasonido
int recibe_2 = 13;                //echo de sensor de ultrasonido
int sensor_luz = A5;
int tiempo = 50;
int farolas = 9;
int x = 0;                        
Servo puenteD;
Servo puenteI;

// consignes:
int barco_llega = 25;
int barco_aprox = 10;
int barco_aleja = 30;
int lindar = 150;
int lindar_2 = 700;
int entrada = 0;
int sortida = 0;
int puente_abajo = 17;
int puente_arriba = 70;
long durada_1,distancia_1;
long durada_2,distancia_2;

void setup() {
  pinMode(rojo,OUTPUT);
  pinMode(amarillo,OUTPUT);
  pinMode(verde,OUTPUT);
  pinMode(envia_1,OUTPUT);
  pinMode(recibe_1,INPUT);
  pinMode(envia_2,OUTPUT);
  pinMode(recibe_2,INPUT);
  puenteD.attach(6);
  puenteI.attach(10);
  pinMode(farolas,OUTPUT);
  Serial.begin(9600);
}

void loop() {
  luces();
  delay(10);
  detecta_llegada();                  //deteccio del barco
  
  if (distancia_1 < barco_aprox)      //detecta el barco a menor distancia
  { acciones_aprox(); x=1; }
  else
  {
   if (distancia_1 < barco_llega)      //detecta el barco
   {acciones_llegada(); }
   else
   { detecta_alejar();                 
     if (distancia_2 < barco_aleja)   //detecta que el barco se marcha
      { acciones_alejar(); x=0; }           
     else
    {if (x==0){condiciones_iniciales();}
 else{ acciones_aprox();} } 
 }
  }
  delay(50);
  
}
// ..............................................

void detecta_llegada()
{

digitalWrite (envia_1,LOW);
delayMicroseconds (2);
digitalWrite (envia_1,HIGH);
delayMicroseconds (10);
digitalWrite (envia_1,LOW);
durada_1 = pulseIn (recibe_1,HIGH);
distancia_1 = durada_1 / 58.2;
}

void detecta_alejar()
{
  // detecció de vaixell que marxa:
  digitalWrite (envia_2,LOW);
  delayMicroseconds (2);
  digitalWrite (envia_2,HIGH);
  delayMicroseconds (10);
  digitalWrite (envia_2,LOW);
  durada_2 = pulseIn (recibe_2,HIGH);
  distancia_2 = durada_2 / 58.2;
}
void condiciones_iniciales()
{
  digitalWrite(rojo,LOW);
  digitalWrite(amarillo,LOW);
  digitalWrite(verde,HIGH);
  puenteD.write(puente_abajo);
  puenteI.write(puente_abajo);
   
}
void acciones_llegada()
{
  digitalWrite(rojo,LOW);
  digitalWrite(amarillo,HIGH);
  digitalWrite(verde,LOW);
  
}
void acciones_aprox()
{
  // semàforo rojo
  digitalWrite(rojo,HIGH);
  digitalWrite(amarillo,LOW);
  digitalWrite(verde,LOW);
  puenteD.write(puente_arriba);
  delay (10);
  puenteI.write(puente_arriba);
  
}

void acciones_alejar()
{
 
  // semàforo àmbar
  digitalWrite(rojo,LOW);
  digitalWrite(amarillo,HIGH);
  delay(100);
  digitalWrite(verde,LOW);
  puenteD.write(35);
  delay(100);
  puenteD.write(puente_abajo);
  puenteI.write(puente_abajo);
}

void luces()
{
entrada=analogRead(sensor_luz);
Serial.println(entrada);
sortida=map(entrada,lindar,lindar_2,255,0);
if(entrada<lindar)
{analogWrite(farolas,255);}
else
{if(entrada>lindar_2){
analogWrite(farolas,0);
}
else
{
analogWrite(farolas,sortida);
}}
delay(tiempo);
}

dilluns, 11 de maig de 2015

DIA 15 DE TREBALL


Avui hem implementat l'aigua com a fluid en el nostre circuit hidràulic, però no ha funcionat, ja que el motor havia de fer una força a la que no podia arribar, tot i que s'ha canviat el sistema de transmissió inicial per una cremallera, que pot fer més recorregut i sembla més fort.
A part del tema hidràulic hem muntat i connectat els semàfors, un a cada banda del pont
També hem acabat de decidir la programació general del sistema.
Aquest és el penós funcionament del nostre pont al final de la classe:

dimecres, 6 de maig de 2015

DIA 14 DE TREBALL

Aquest és el nostre 14è dia de treball amb el projecte del pont llevadís:
Hem acabat de colocar les dues barreres
En Ibzan ha fet el primer programa amb els sensors d'ultrasons
En Kiko i en Egor han modificat el mecanisme empenyedor de les xeringes per que puguin fer més força i aixecar el pont
En David ha començat a programar els servomotors
En el video veien com funciona el sensor de ultrasons.
video

dimarts, 5 de maig de 2015

DIA 13 DE TREBALL

Aquest és el nostre 13è dia de treball amb el projecte del pont llevadís, avui avancem amb la programació i la construcció de l'estructura del nostre pont.
Cada integrant del grup poleix el disseny i la funcionalitat de la infraestructura del pont amb idees que es prenen per al grup.
Utilitzarem dos sensors d'ultrasons per detectar l'abast del que vagi a passar sota el pont.
La il·luminació analògica dels fanals en funció d'un sensor de llum ja està solucionada.






Aquest és l'aspecte del nostre pont amb els fanals encesos:

dilluns, 4 de maig de 2015

vuitè dia


bo avui ja ens vam posar les piles , i li hem posso agujeros per passar les bridas , perquè no es moguin les xeringues i poder moure's , pegant-ho amb la cua



sisè dia




ja hem tiro forats en la fusta perquè passi les xeringues i que es pugui moure

Sisè dia

 
bo avui ja tenim els CD peguem i la base blanca damunt , ara haurem de pegar la *mandera i tallar-ho perquè sigui una base que es pugui moure