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
Publicar un comentario