"Já imaginou levar seus filhos na escola sem precisar entrar no carro e dirigir? Trasportar pessoas sem precisar se expor a riscos?"

O Unique Project é um carro elétrico que foi criado com a intenção de atuar em diversas situações, sejam elas de uso pessoal ou até mesmo de emergência. Utilizando o Arduino como uma fonte de dados que fornece comandos a serem seguidos, exigindo o mínimo de ação humana possível.

Arduino é uma plataforma de prototipagem eletrônica de hardware livre e de placa única. Com base nisso resolvemos criar um protótipo de carro elétrico e inteligente, utilizando um "Arduíno UNO" e um sonar. 

Utilizando recursos simples, acessíveis e materiais de baixo custo, o projeto zela pela sustentabilidade e acessibilidade.

Seu motor, que alcança até 240KM/h, elétrico, utiliza Energia Solar sem gerar custos extras e permitindo uma longa duração da vida útil da bateria, reduzindo custos de manutenção. O sonar utilizado no projeto tem por função captar  obstáculos  durante o trajeto, evitando acidentes desnecessários durante a rota do veículo, o que o torna único. O bluetooth permite que o veículo tenha controle remoto e possa alcançar lugares de situações remotas sem colocar em risco a vida do condutor.  

Além destas aplicações ainda teremos um modelo voltado a área de saúde, para resgate e transporte de pessoas em situações críticas ou em áreas de risco.

A compra deste produto será de fácil acesso, devido aos seus aspectos ecológicos e sustentáveis, gerando um baixo custo e um alto desempenho. 

###### Código #####

#include 
int trigger = 12;
int echo = 13;
int motorA1 = 3;
int motorA2 = 4;
int motorB1 = 6;
int motorB2 = 7;
bool estado = false;
Ultrasonic ultrasonic(trigger, echo);
void setup() {
  Serial.begin(9600);
  //pinMode (led, OUTPUT);
  pinMode (motorA1, OUTPUT);
  pinMode (motorA2, OUTPUT);
  pinMode (motorB1, OUTPUT);
  pinMode (motorB2, OUTPUT);
}
float leitura() {
  float cmMsec;
  long microsec = ultrasonic.timing();
  cmMsec = ultrasonic.convert(microsec, Ultrasonic::CM);
  //Serial.print("CM: ");
  //Serial.println(cmMsec);
  return cmMsec;
}
void frente() {
  digitalWrite (motorA1, HIGH);
  digitalWrite (motorA2, LOW);
  digitalWrite (motorB1, HIGH);
  digitalWrite (motorB2, LOW);
}
void tras() {
  digitalWrite (motorA1, LOW);
  digitalWrite (motorA2, HIGH);
  digitalWrite (motorB1, LOW);
  digitalWrite (motorB2, HIGH);
}
void curvaE() {
  digitalWrite (motorA1, HIGH);
  digitalWrite (motorA2, LOW);
  digitalWrite (motorB1, LOW);
  digitalWrite (motorB2, HIGH);
}
void curvaD() {
  digitalWrite (motorA1, LOW);
  digitalWrite (motorA2, HIGH);
  digitalWrite (motorB1, HIGH);
  digitalWrite (motorB2, LOW);
}
void parar() {
  digitalWrite (motorB1, LOW);
  digitalWrite (motorB2, LOW);
  digitalWrite (motorA1, LOW);
  digitalWrite (motorA2, LOW);
}
void decisao() {
  parar();
  delay(1000);
  curvaD();
  delay(300);
  parar();
  delay(2000);
  if (leitura() >= 10) {
    frente();
  } else {
    curvaE();
    delay(500);
    parar();
    delay(2000);
    if (leitura() >= 10) {
      frente();
    } else {
      curvaD();
      delay(200);
      parar();
      delay(2000);
      tras();
      delay(2000);
    }
  }
}
void loop() {
  /*if (leitura() >= 10) {
    frente();
    // parar();
    } else {
    decisao();
    }*/
  char caracter;
  if (Serial.available() > 0) {
    caracter = Serial.read();
    Serial.print(caracter);
  }
  if (caracter == 'X' || caracter == 'x') {
    Serial.println("Entrou");
    if (estado == false) {
      estado = true;
    } else {
      estado = false;
    }
  }
  if (estado == false) {
    switch (caracter) {
      case 'F':
        frente();
        break;
      case 'B':
        tras();
        break;
      case 'L':
        curvaE();
        break;
      case 'R':
        curvaD();
        break;
      case 'S':
        parar();
        break;
      case 'I':
        curvaD();
        delay(200);
        frente();
        break;
      case 'G':
        curvaE();
        delay(200);
        frente();
        break;
      case 'J':
        curvaD();
        delay(200);
        tras();
        break;
      case 'H':
        curvaE();
        delay(200);
        tras();
        break;
    }
  } else {
    if (leitura() >= 10) {
      frente();
    } else {
      decisao();
    }
  }
}


Atividades recentes