martes, 8 de mayo de 2018

“El gran proyecto”



Realizado por sus alumnos: Alberto, Juan y Miguel Ángel
1.       Elementos utilizados.
·         Contrachapado
·         Cable
·         Conectores
·         2xInterruptores
·         Conmutador de tres posiciones
·         Bombilla
·         3xLed
·         Motor eléctrico
·         Zumbador
·         2xPoleas
·         Goma
·         Ruedas
·         Bisagras
·         Placa arduino
·         2xAltavoces
·         Pila de 4,5v
·         Pila de 9v
·         Marioneta Stephen.
2.       Explicación del funcionamiento.
El funcionamiento del motor es debido a un conmutador de tres posiciones, en la central, el motor no recibe corriente, en la derecha, el motor recibe corriente y avanza a la vez que se encienden dos leds en la parte frontal, en la posición izquierda, el motor recibe corriente en sentido contrario, lo que le hace retroceder y a la vez se enciende un led en la parte trasera de la silla. Además hay otros dos circuitos, uno con un zumbador, activado con un interruptor y otro con una luz en la parte delantera que se enciende con otro interruptor. Todo esto es alimentado con una pila de 4,5 V.
A parte hay un circuito arduino con un hilo musical con la canción del Imperio de Stars Wars, este circuito está formado por dos altavoces, una placa arduino, un potenciómetro para regular la intensidad sonora de dicho hilo musical. Todo esto es alimentado con una pila de 9 V.
3.       Programa relacionado con Arduino.

Hilo Musical
**/

const int c = 261;
const int d = 294;
const int e = 329;
const int f = 349;
const int g = 391;
const int gS = 415;
const int a = 440;
const int aS = 455;
const int b = 466;
const int cH = 523;
const int cSH = 554;
const int dH = 587;
const int dSH = 622;
const int eH = 659;
const int fH = 698;
const int fSH = 740;
const int gH = 784;
const int gSH = 830;
const int aH = 880;

const int buzzerPin = 8;
const int ledPin1 = 12;
const int ledPin2 = 13;

int counter = 0;

void setup()
{
  //Setup pin modes
  pinMode(buzzerPin, OUTPUT);
  pinMode(ledPin1, OUTPUT);
  pinMode(ledPin2, OUTPUT);
}

void loop()
{

  //Play first section
  firstSection();

  //Play second section
  secondSection();

  //Variant 1
  beep(f, 250); 
  beep(gS, 500); 
  beep(f, 350); 
  beep(a, 125);
  beep(cH, 500);
  beep(a, 375); 
  beep(cH, 125);
  beep(eH, 650);

  delay(500);

  //Repeat second section
  secondSection();

  //Variant 2
  beep(f, 250); 
  beep(gS, 500); 
  beep(f, 375); 
  beep(cH, 125);
  beep(a, 500); 
  beep(f, 375); 
  beep(cH, 125);
  beep(a, 650); 

  delay(650);
}

void beep(int note, int duration)
{
  //Play tone on buzzerPin
  tone(buzzerPin, note, duration);

  //Play different LED depending on value of 'counter'
  if(counter % 2 == 0)
  {
    digitalWrite(ledPin1, HIGH);
    delay(duration);
    digitalWrite(ledPin1, LOW);
  }else
  {
    digitalWrite(ledPin2, HIGH);
    delay(duration);
    digitalWrite(ledPin2, LOW);
  }

  //Stop tone on buzzerPin
  noTone(buzzerPin);

  delay(50);

  //Increment counter
  counter++;
}

void firstSection()
{
  beep(a, 500);
  beep(a, 500);   
  beep(a, 500);
  beep(f, 350);
  beep(cH, 150); 
  beep(a, 500);
  beep(f, 350);
  beep(cH, 150);
  beep(a, 650);

  delay(500);

  beep(eH, 500);
  beep(eH, 500);
  beep(eH, 500); 
  beep(fH, 350);
  beep(cH, 150);
  beep(gS, 500);
  beep(f, 350);
  beep(cH, 150);
  beep(a, 650);

  delay(500);
}

void secondSection()
{
  beep(aH, 500);
  beep(a, 300);
  beep(a, 150);
  beep(aH, 500);
  beep(gSH, 325);
  beep(gH, 175);
  beep(fSH, 125);
  beep(fH, 125);   
  beep(fSH, 250);

  delay(325);

  beep(aS, 250);
  beep(dSH, 500);
  beep(dH, 325); 
  beep(cSH, 175); 
  beep(cH, 125); 
  beep(b, 125); 
  beep(cH, 250); 

  delay(350);
}

Pantalla

// IngenieriaElectronica.ORG
#include<LiquidCrystal.h> // Libreria para que funcione el LCD
LiquidCrystallcd(12, 11, 5, 4, 3, 2); // esta linea muestra en que pines debe ir conectado la pantalla LCD a nuestro Arduino

voidsetup() {
lcd.begin(16, 2); // Con esta instrucción indicamos cual es la proporción de nuestro LCD
lcd.print("INGENIERIAELEC-"); // Una instrucción muy importante ya que con esta imprimiremos el texto en nuestra pantalla
}

voidloop() {
lcd.setCursor(0, 1); // con esta linea damos a entender que la primera fila de nuestro LCd ya esta siendo usada por lo cual queremos usar la segunda
lcd.print("TRONICA.ORG:"); // Al ser colocadar debajo de la instrucción anterior, este mensaje se mostrara en la segunda fila del LCD
lcd.println(millis() / 1000); // Con esta instrucción realizamos un simple contador y con Prinln indicamos que queremos que se imprima en la segunda fila, después de la instrucción anterior.
}
4.       Esquema de conexiones realizado con Fritzing



5.       Vídeo de funcionamiento

Para el enlace al video promocional pulse aquí: Stephen video



6.       Comentarios posibles mejoras o aplicaciones                

-          En el futuro le pondremos dos motores (cada rueda trasera uno) para que pudiese girar.
-          Aunque hemos hecho una pantalla con el nombre del prestigioso físico, no hemos podido acoplársela por falta de tiempo.
-          Haber montado todo el funcionamiento de la silla de ruedas en un mando a distancia o smarthphone, pero no ha sido posible porque no ha habido suficiente presupuesto.
-          Podríamos haber añadido otro hilo musical que pudiera ser intercambiado con el otro hilo musical ya existente, con un mando a distancia, porque el que hay se hace tedioso y un poco insoportable a la larga.

Conclusión del proyecto realizado.
Realizando este proyecto nos lo hemos pasado muy bien y se realizarán futuras mejoras en la versión Stephen 3.0