sobre Mi Proyecto (Feria De La Ciencia)


Proyecto Feria De La Ciencia (Carro Bluetooth Larga Distancia- Recompatible)

Mi Proyecto Cuyo nombre es Carro Bluetooth Larga Distancia- Recompatible, Es lo que dice su nombre, este proyecto se constituye de dos personas (kevin Bravo y Santigo Bonita) quienes lo crearon y programaron, el proyecto se basa en ser una carro cuya funcionalidad util es indefinida pues es mas un medio de entretenimiento que otra cosa principalmente con los funcionamientos que proporciona un bluetooth HC-05 que es maestro y da mas posibilidades.

Los Materiales Que usamos serian implementados en el carro serian los siguientes.

- la powerbank y bateria de celular.
- la base para carro (lo que desee).
- Arduino uno y su cable.
- Modulo Rele (4).
- 2 Motoreductores.
- Cables de conexion macho-macho y macho-hembra.
-  Cables para motores
- Modulo Bluetooth HC- 05
- 2 Ruedas livianas y 1 rueda loca
- tornillos de ensamblaje. 









Se Elaboro desde cero, por lo tanto tuvo una construccion;

Kevin se encargo de la programacion y y algo de construccion, como tambien de la elaboracion de los pequeñas instalaciones de cables.

Santigo se encargo de armar y colocar el carro, en forma fisica.

Basicamente el armado consta de programacion y elaboracion fisica en una forma simple de pasos seria;

1. instalar la base del carro y los lugares donde se pondran los artefactos tomar en cuenta la reduccion de espacios y peso en torno a los motores de los carros.

2. instalacion y armado de los motores del  carro, para esto tomar en cuenta el positivo y negativo de  cada motor para saber la  direccion que tomara.

3. la instalacion del Rele y el arduino, ponerlos y ver si  no tienen problema al funcionar en las bases para el carr.

4. la  union del arduino al rele y del rele a los motores, utilizando y tomando en cuenta los pines y el puerto que se use para cada cosa.

5. una vez provado el rele, y hecho el codigo se hace uno nuevo a partir del bluetooth.

6. instalacion del bluetooth en el carro incorporando el codigo al arduino y comenzando a probar el codigo

7. en el dispositivo  que se quiera que tenga bluetooth se instala la app Ardudroid o se crea una nueva aplicacion que se pueda enlazar al modulo bluetooth HC-05, cuyo codigo suele ser (1234) al  momento de ser enlazado.

8. ya hecho todo esto seria probar y comenzar a corregir todo lo necesario para tener los controles claros y todo bien para mover el carro.

9. depende de cada quien el o la fuente de poder usada para mover el carro (motores) y el circuito, en este caso recomendamos usar una powerbank para el circuito y una bateria de elular para los motores.

Sobre El Motivo.

es mas que nada algo hecho por diversion y con imaginacion, algo mas libre que se limita a lo que puedas hacer con el, con esto quieres decir que si lo puedes hacer volar pues vuela osea a las necesidades del que lo usa y como motivo principal la configuracion del modulo HC-05 modificable desde la configuracion del codigo de arduino










Codigo hecho por Kevin tomando en cuenta los pines del 13 al 10.

(nosostros solo utilizamos 7 Codigos asi que quedan 6 libres para programar.)

Codigo:
/*
 PROYECTO: ArduDroid Kevin
 PROGRAMADOR: modificado por elprofegarcia.com y Kevin   original escrito por  Hazim Bitar (creador)
 FECHA: Ago 16, 2014
LICENCIA: Publica

Desconectar el modulo Bluetooth mientras carga este programa al Arduino, luego conecte:
ARDUINO  BLUETOOTH
Pin 0 (RX)  TXD
Pin 1 (Tx)  RXD
5V    VCC
GND   GND
Descargar plano de conexiones en:  http://elprofegarcia.com/?page_id=2
Descargar aplicacion Android en Play Store:  ArduDroid (Hazim Bitar)
*/
#define CARACTER_INICIO_CMD '*'
#define CARACTER_FINAL_CMD '#'
#define CARACTER_DIV_CMD '|'
#define ESCRITURA_DIGITAL_CMD 10
#define ESCRITURA_ANALOGA_CMD 11
#define TEXTO_CMD 12
#define LECTURA_ARDUDROID_CMD 13
#define MAX_COMMAND 20  
#define MIN_COMMAND 10 
#define LONGITUD_ENTRADA_STRING 40
#define ESCRITURA_ANALOGICA_MAX 255
#define PIN_ALTO 3
#define PIN_BAJO 2

String inText;

void setup() {
  Serial.begin(9600);
  Serial.println("carrito bluetooth XD");
  Serial.flush();
}

void loop()
{
  Serial.flush();
  int ard_command = 0;
  int pin_num = 0;
  int pin_value = 0;

  char get_char = ' ';  //lee serial

  // esperar a que los datos entren
  if (Serial.available() < 1) return; // si no hay datos en el serial retornar al Loop().

  // analizar entrada de indicador de inicio de comando
  get_char = Serial.read();
  if (get_char != CARACTER_INICIO_CMD) return; // si no hay indicación de inicio del sistema, volver  loop ().
  // parse incoming command type
  ard_command = Serial.parseInt(); // read the command
  
  // analizar el tipo de comando entrante
  pin_num = Serial.parseInt(); // leer el pin
  pin_value = Serial.parseInt();  // leer el valor

  // 1) OBTENER COMANDO DE TEXTO PARA ARDUDROID
  if (ard_command == TEXTO_CMD){   
    inText =""; // borra variable para nueva entrada
    while (Serial.available())  {
      char c = Serial.read();  // recibe un byte de la memoria intermedia serie
      delay(5);
      if (c == CARACTER_FINAL_CMD) { // si la cadena completa ha sido leida
        // add your code here
        break;
      }              
      else {
        if (c !=  CARACTER_DIV_CMD) {
          inText += c; 
          delay(5);
        }
      }
    }
  }

  // 2) OBTENER DATOS DE digitalWrite ARDUDROID
  if (ard_command == ESCRITURA_DIGITAL_CMD){  
    if (pin_value == PIN_BAJO) pin_value = LOW;
    else if (pin_value == PIN_ALTO) pin_value = HIGH;
    else return; // error en el valor de PIN. regresar.
    set_digitalwrite( pin_num,  pin_value);  // Eliminar el comentario de esta función para utilizarla
    return;  // regrese al inicio de loop()
  }

  // 3) GET analogWrite DATA FROM ARDUDROID
  if (ard_command == ESCRITURA_ANALOGA_CMD) {  
    analogWrite(  pin_num, pin_value ); 
    // add your code here
    return;  // Done. return to loop();
  }

  // 4) Enviar datos a ARDUDROID
  if (ard_command == LECTURA_ARDUDROID_CMD) { 
    // char send_to_android[] = " Coloca el texto aquí." ;
    // Serial.println(send_to_android);   // Ejemplo: Envío de texto
    Serial.print(" Analogo 0 = "); 
    Serial.println(analogRead(A0));  // Ejemplo: Leer y enviar valor analógico del Pin de Arduino
    return;  // Listoe. regrese al loop();
  }
}

// 2a) seleccionar el pin # solicitado para la acción digitalWrite
void set_digitalwrite(int pin_num, int pin_value)
{
  switch (pin_num) {
  //derecha
  case 13:
 
    digitalWrite(13, HIGH);  
    digitalWrite(12, LOW);
    digitalWrite(11, LOW);
    digitalWrite(10, LOW);
    break;
  //izquierda
  case 12:
    pinMode(13, OUTPUT);
    pinMode(12, OUTPUT);
    pinMode(11, OUTPUT);
    pinMode(10, OUTPUT);
    digitalWrite(13, LOW);  
    digitalWrite(12, HIGH);
    digitalWrite(11, LOW);
    digitalWrite(10, LOW);
   
    break;
  //secuencia derecha
  case 11:
    pinMode(13, OUTPUT);
    pinMode(12, OUTPUT);
    pinMode(11, OUTPUT);
    pinMode(10, OUTPUT);
    digitalWrite(13, HIGH);  
    digitalWrite(12, LOW);
    digitalWrite(11, LOW);
    digitalWrite(10, HIGH);
    break;
  //SECUENCIA IZQUIERDA
  case 10:
    pinMode(13, OUTPUT);
    pinMode(12, OUTPUT);
    pinMode(11, OUTPUT);
    pinMode(10, OUTPUT);
    digitalWrite(13, LOW);  
    digitalWrite(12, HIGH);
    digitalWrite(11, HIGH);
    digitalWrite(10, LOW);
    break;
  //aDELANte
  case 9:
    pinMode(13, OUTPUT);
    pinMode(12, OUTPUT);
    pinMode(11, OUTPUT);
    pinMode(10, OUTPUT);
    digitalWrite(13, HIGH);  
    digitalWrite(12, LOW);
    digitalWrite(11, HIGH);
    digitalWrite(10, LOW);
    break;
  //aTRAS
  case 8:
    pinMode(13, OUTPUT);
    pinMode(12, OUTPUT);
    pinMode(11, OUTPUT);
    pinMode(10, OUTPUT);
    digitalWrite(13, LOW);  
    digitalWrite(12, HIGH);
    digitalWrite(11, LOW);
    digitalWrite(10, HIGH);
    break;
 // S?TOP 
 case 7:
    pinMode(13, OUTPUT);
    pinMode(12, OUTPUT);
    pinMode(11, OUTPUT);
    pinMode(10, OUTPUT);
    digitalWrite(13, LOW);  
    digitalWrite(12, LOW);
    digitalWrite(11, LOW);
    digitalWrite(10, LOW);
    break;
  case 6:
    pinMode(6, OUTPUT);
    digitalWrite(6, pin_value);         
    // adicione su código aquí, para este número de pin del Arduino
    break;
  case 5:
    pinMode(5, OUTPUT);
    digitalWrite(5, pin_value); 
    // adicione su código aquí, para este número de pin del Arduino 
    break;
  case 4:
    pinMode(4, OUTPUT);
    digitalWrite(4, pin_value);         
    // adicione su código aquí, para este número de pin del Arduino
    break;
  case 3:
    pinMode(3, OUTPUT);
    digitalWrite(3, pin_value);         
    // adicione su código aquí, para este número de pin del Arduino
    break;
  case 2:
    pinMode(2, OUTPUT);
    digitalWrite(2, pin_value); 
    // adicione su código aquí, para este número de pin del Arduino
    break;      
    // por defecto
    // si nada más fue seleccionado, hacer el defecto (default)
    // default es opcional
  } 
}



Comentarios

Entradas populares