• pitches.h

    Thomas04/20/2014 at 20:34 0 comments

    /*************************************************

    * Public Constants

    *************************************************/

    #define NOTE_B0 31

    #define NOTE_C1 33

    #define NOTE_CS1 35

    #define NOTE_D1 37

    #define NOTE_DS1 39

    #define NOTE_E1 41

    #define NOTE_F1 44

    #define NOTE_FS1 46

    #define NOTE_G1 49

    #define NOTE_GS1 52

    #define NOTE_A1 55

    #define NOTE_AS1 58

    #define NOTE_B1 62

    #define NOTE_C2 65

    #define NOTE_CS2 69

    #define NOTE_D2 73

    #define NOTE_DS2 78

    #define NOTE_E2 82

    #define NOTE_F2 87

    #define NOTE_FS2 93

    #define NOTE_G2 98

    #define NOTE_GS2 104

    #define NOTE_A2 110

    #define NOTE_AS2 117

    #define NOTE_B2 123

    #define NOTE_C3 131

    #define NOTE_CS3 139

    #define NOTE_D3 147

    #define NOTE_DS3 156

    #define NOTE_E3 165

    #define NOTE_F3 175

    #define NOTE_FS3 185

    #define NOTE_G3 196

    #define NOTE_GS3 208

    #define NOTE_A3 220

    #define NOTE_AS3 233

    #define NOTE_B3 247

    #define NOTE_C4 262

    #define NOTE_CS4 277

    #define NOTE_D4 294

    #define NOTE_DS4 311

    #define NOTE_E4 330

    #define NOTE_F4 349

    #define NOTE_FS4 370

    #define NOTE_G4 392

    #define NOTE_GS4 415

    #define NOTE_A4 440

    #define NOTE_AS4 466

    #define NOTE_B4 494

    #define NOTE_C5 523

    #define NOTE_CS5 554

    #define NOTE_D5 587

    #define NOTE_DS5 622

    #define NOTE_E5 659

    #define NOTE_F5 698

    #define NOTE_FS5 740

    #define NOTE_G5 784

    #define NOTE_GS5 831

    #define NOTE_A5 880

    #define NOTE_AS5 932

    #define NOTE_B5 988

    #define NOTE_C6 1047

    #define NOTE_CS6 1109

    #define NOTE_D6 1175

    #define NOTE_DS6 1245

    #define NOTE_E6 1319

    #define NOTE_F6 1397

    #define NOTE_FS6 1480

    #define NOTE_G6 1568

    #define NOTE_GS6 1661

    #define NOTE_A6 1760

    #define NOTE_AS6 1865

    #define NOTE_B6 1976

    #define NOTE_C7 2093

    #define NOTE_CS7 2217

    #define NOTE_D7 2349

    #define NOTE_DS7 2489

    #define NOTE_E7 2637

    #define NOTE_F7 2794

    #define NOTE_FS7 2960

    #define NOTE_G7 3136

    #define NOTE_GS7 3322

    #define NOTE_A7 3520

    #define NOTE_AS7 3729

    #define NOTE_B7 3951

    #define NOTE_C8 4186

    #define NOTE_CS8 4435

    #define NOTE_D8 4699

    #define NOTE_DS8 4978

  • Code

    Thomas04/20/2014 at 20:32 0 comments

    //GPS

    #include <SoftwareSerial.h>

    #include <TinyGPS.h>

    //LCD

    #include <LiquidCrystal.h> //Inclui a biblioteca do LCD

    //Servo

    #include <Servo.h>

    //Defines

    #define GPS_TX 2

    #define GPS_RX 3

    #define LCD1 13

    #define LCD2 12

    #define LCD3 11

    #define LCD4 10

    #define LCD5 9

    #define LCD6 8

    //#define LUZ_FUNDO 6

    #define MOTORPIN 6

    #define POWERPIN 5

    #define GPSRATE 9600

    #define SERIALRATE 115200

    #define LATDESTINO -18.919555 //UFU LATITUDE

    #define LONDESTINO -48.256945 //UFU LONGITUDE

    //#define LATDESTINO -18.885643 //Teste LATITUDE

    //#define LONDESTINO -48.256570 //Teste LONGITUDE

    //#define LATDESTINO -18.885277 //Teste mto proximo LATITUDE

    //#define LONDESTINO -48.255819 //Teste mto proximo LONGITUDE

    #define PROXIMIDADE 10 //Quantos metros para abrir a caixa.

    #define buzzer 4

    #define compasso 1500 //Altera o compasso da música

    #include "pitches.h"

    const int gameover[] = {

    NOTE_A4,NOTE_A4,NOTE_A4,NOTE_A4,NOTE_A4,NOTE_A4,NOTE_A4,NOTE_A4,NOTE_A4,NOTE_A4,NOTE_A4,NOTE_A4

    };

    const int tempo_gameover[] = {

    8,8,8,8,8,8,8,8,8,8,8,8

    };

    //GPS

    TinyGPS gps;

    SoftwareSerial serialgps(GPS_TX,GPS_RX); //TX -> 2(amarelo), RX -> 3(Verde), Vermelho -> 3,3

    int year;

    byte month, day, hour, hour1, minute, second, hundredths;

    unsigned long chars;

    unsigned short sentences, failed_checksum;

    long previousMillis = 0;

    long interval = 5000; //Set 10000

    float DLA = 0;

    float DLO = 0;

    float DistDestino = 0;

    float DistMax = 10000;

    //Servo

    Servo motor;// Motor de 10 à 130

    //LCD

    LiquidCrystal lcd(LCD1, LCD2, LCD3, LCD4, LCD5, LCD6); //LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

    unsigned long UtlTime;

    void setup()

    {

    //GPS

    //Serial.begin(SERIALRATE);

    serialgps.begin(GPSRATE);

    //Serial.println("Print no serial");

    //Servo

    //motor.attach(MOTORPIN);

    //LCD

    lcd.begin(16, 2);

    lcd.setCursor(4,0);

    lcd.print("Procura");

    lcd.setCursor(4,1);

    lcd.print("Tesouros");

    delay (5000);

    //lcd.clear();

    lcd.clear();

    lcd.setCursor(0,0);

    lcd.print(" Aguardando GPS ");

    delay(1000);

    }

    void loop()

    {

    motor.attach(MOTORPIN);

    motor.write(10);

    delay(350);

    motor.detach();

    while(1)

    {

    //INICIO GPS

    while(serialgps.available())

    {

    int c = serialgps.read();

    if(gps.encode(c))

    {

    float latitude, longitude;

    gps.f_get_position(&latitude, &longitude);

    gps.crack_datetime(&year,&month,&day,&hour,&minute,&second,&hundredths);

    gps.stats(&chars, &sentences, &failed_checksum);

    if (millis() - previousMillis > interval)

    {

    previousMillis = millis(); // remember the last time we blinked the LED

    DLA = LATDESTINO - latitude;

    DLA = (DLA*60)*1852;

    DLO = LONDESTINO - longitude;

    DLO = (DLO*60)*1852;

    DistDestino = sqrt((DLA*DLA) + (DLO*DLO));

    if (DistDestino < DistMax)

    {

    //lcd.clear();

    lcd.setCursor(0,0);

    lcd.print("Distancia: ");

    lcd.setCursor(4,1);

    lcd.print(" ");

    lcd.setCursor(0,1);

    lcd.print(DistDestino,1);

    lcd.setCursor(10,1);

    lcd.print("metros");

    if (DistDestino < 10000)

    {

    DistMax = 10000;

    }

    }

    else

    {

    DistMax = DistMax + 10000;

    }

    while(DistDestino < PROXIMIDADE)

    {

    lcd.clear();

    lcd.setCursor(0,0);

    lcd.print("Voce chegou!!!");

    //Tocar som.

    for (int Nota = 0; Nota < 12; Nota++) {

    int tempo = compasso/tempo_gameover[Nota];

    tone(buzzer, gameover[Nota],tempo);

    delay(tempo*1.25);

    }

    delay(7000);

    lcd.setCursor(0,0);

    lcd.print("Lembra do nosso ");

    lcd.setCursor(0,1);

    lcd.print("primeiro beijo? ");

    delay(5000);

    lcd.setCursor(0,0);

    lcd.print("Foi bem aqui ");

    lcd.setCursor(0,1);

    lcd.print("nesta esquina...");

    delay(5000);

    lcd.setCursor(0,0);

    lcd.print("Como mudou esse ");

    lcd.setCursor(0,1);

    lcd.print("lugar, neh!? ");

    delay(5000);

    lcd.setCursor(0,0);

    lcd.print("Como nos mudamos");

    lcd.setCursor(0,1);

    lcd.print("tambem... ");

    delay(5000);

    lcd.setCursor(0,0);

    lcd.print("E mudamos para ");

    lcd.setCursor(0,1);

    lcd.print("melhor, certeza!");

    delay(5000);

    lcd.setCursor(0,0);

    lcd.print("Chegou a hora de");

    lcd.setCursor(0,1);

    lcd.print("mudar denovo!!! ");

    delay(5000);

    lcd.setCursor(0,0);

    lcd.print("Chegou a hora do");

    lcd.setCursor(0,1);

    lcd.print("proximo passo!!!");

    delay(5000);

    lcd.setCursor(0,0);

    lcd.print("Abre-te sesamo! ");

    lcd.setCursor(0,1);

    lcd.print("=D, linda!!! ");...

    Read more »