Les Presento Mi Auto Controlado Por Bluetooth

Iniciado por rreedd, Marzo 06, 2016, 12:14:35 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

RREEDD
Hola !!!

Les presento mi auto basado en Arduino y que se controla por bluetooth.



El armazón esta hecho de cartón piedra, cuenta con:1 Arduino nano, 1 puente H, 4 reductores de velocidad, 2 servo y una placa que regula el voltaje para alimentar los servos por que consumen mucha corriente de mis baterías de 9v


La pinza la hice yo solo con cartón y silicona


Como control utilizo una aplicación que se llama Arduino BT Joistick
Aqui LINK de descarga
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

El código fuente de mi auto lo dejo a continuación por si es que les sirve, para sus proyectos o de referencia.
Lo intente comentar lo mas que puede pero si es que surge cualquier duda solo díganme


Código: php


// incluimos la biblioteca Servo

#include <SoftwareSerial.h>
#include <Servo.h>   

// Se crean los objetos Servo
Servo servoAngulo;       
Servo servoPinza;


int comando = 0; // variable a la cual de daremos el valor de la que venga por la comunicacion serial

//pines de entrada de motores
int Motor4 = 5;
int Motor3 = 4;
int Motor2 = 3;
int Motor1 = 2;

//angulos de controlpara el servo
int angulo =90;
int anguloPinza =30;
/*

Los pines GND y VCC del Servo no aparecen porque use un regulador de tencion para que no me consumiera toda la bateria


             
                    _________________
                    |d13         D12| Servo
                    |3v3         D11| Servo
                    |REF         D10|     
                    |A0   Arduino D9|
                    |A1    NANO   D8|
                    |A2           D7|
                    |A3           D6|
                    |A4           D5| Motor3
                    |A5           D4| Motor4
                    |A6           D3| Motor2
                    |A7           D2| Motor1
     VCC bluetooth  |5v          GND| gnd bluetooth, gnd PuenteH(para igualar tierra)
                    |RST         RST|
     - 9v, - PunteH |GND          TR| tr bluetooh
     + 9v, + PunteH |VIN          TX| tx bluetooh
                    |_______________|       

*/

void setup() {

//inicializar servos
servoAngulo.attach(12);
servoPinza.attach(11);

//se declaran como OUTPUT los pines para controlar los motores junto al puente H
pinMode (Motor3, OUTPUT);
pinMode (Motor4, OUTPUT);
pinMode (Motor2, OUTPUT);
pinMode (Motor1, OUTPUT);

// Se declara la recepcion Serial a 9600 baud
Serial.begin(9600);
}

void loop() {
//si viene algo por Serial se continua
if(Serial.available() > 0){
//el contenido de Serial se guarda en comando
comando = Serial.read();
}


   if (comando == '1') {
        digitalWrite (Motor3, HIGH);
        digitalWrite (Motor4, LOW);
        digitalWrite (Motor2, HIGH);
        digitalWrite (Motor1, LOW);
        Serial.println("Derecha");
        delay(20);
   }
   else if (comando == '0') {
        digitalWrite (Motor3, LOW);
        digitalWrite (Motor4, HIGH);
        digitalWrite (Motor1, HIGH);
        digitalWrite (Motor2, LOW);
        Serial.println("izquierda");
        delay(20);
   }
   else if (comando == '3') {
        digitalWrite (Motor3, HIGH);
        digitalWrite (Motor4, LOW);
        digitalWrite (Motor1, HIGH);
        digitalWrite (Motor2, LOW);
        Serial.println("Abajo");
        delay(20);
   }
   else if (comando == '4') {
        digitalWrite (Motor4, HIGH);
        digitalWrite (Motor3, LOW);
        digitalWrite (Motor2, HIGH);
        digitalWrite (Motor1, LOW);
        Serial.println("Arriba");
        delay(20);
   }
   else if (comando == '5') {
   //servo arriba
         angulo = angulo + 5;
        Serial.println(angulo);
        servoAngulo.write(angulo);               
        delay(15);                       
        angulo =constrain(angulo,0,180);
        Serial.println("angulo arriba");
   }
   else if (comando == '6') {
       angulo = angulo - 5;
        Serial.println(angulo);
        servoAngulo.write(angulo);               
        delay(15);
        angulo =constrain(angulo,0,180);
        Serial.println("angulo abajo");


   }
   else if (comando == '8') {
        anguloPinza = anguloPinza + 5;
        Serial.println(anguloPinza);
        servoPinza.write(anguloPinza);               
        delay(15);                                 
        anguloPinza =constrain(anguloPinza,0,180);
   Serial.println("pinza cierra");
   }
   else if (comando == '9') {
       anguloPinza = anguloPinza - 5;
       Serial.println(anguloPinza);
       servoPinza.write(anguloPinza);               
       delay(15);                                 
       anguloPinza =constrain(anguloPinza,0,180);
       Serial.println("pinza abre");

   }else{
        // se ponen todos los valores en LOW para detener la detener los motores hasta que llege una nueva orden
        digitalWrite (Motor3, LOW);
        digitalWrite (Motor4, LOW);
        digitalWrite (Motor2, LOW);
        digitalWrite (Motor1, LOW);
   }
}
   



Saludos Desde Chile

Estupendo trabajo!!

Te felicito y agradezco que lo compartieras con nosotros!
Te dejo coins  ;D

Saludos.

Gabriela
Tú te enamoraste de mi valentía, yo me enamoré de tu oscuridad; tú aprendiste a vencer tus miedos, yo aprendí a no perderme en tu abismo.

RREEDD
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Estupendo trabajo!!

Te felicito y agradezco que lo compartieras con nosotros!
Te dejo coins  ;D

Saludos.

Gabriela

muchas gracias, me gusta mucho esta comunidad, así que pronto estaré haciendo mas post.
Saludos desde chile.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
RREEDD
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Estupendo trabajo!!

Te felicito y agradezco que lo compartieras con nosotros!
Te dejo coins  ;D

Saludos.

Gabriela

muchas gracias, me gusta mucho esta comunidad, así que pronto estaré haciendo mas post.
Saludos desde chile.
Simplemente... Excelente! +10

[N]ation Special Edition by ice

ice | Maggot | No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta