Campus de Navidad BQ

Disfruta de una oferta especial por ser miembro de la comunidad en nuestros Campus BQ, más información aquí

Problema con bluetooth



  • He montado el robot imprimiento los stl, en principio todo bien, he montado servos y demás sobre una placa arduino uno y he conectado un receptor bluetooth tipo HC-06, cargando la configuracion de 115200 nombre Zowi y pass 1234, luego cargo la librería ofrecida por bq https://github.com/bq/zowi/tree/master/Zowi_mold
    Bien hasta aquí, pero cuando conecto la aplicacion zowi me dice que necesita restaurar, paso que no consigue hacer.

    De todos modos dando a que no lo restaure, me deja entrar y pulso en andar hacia delante y en el caso de las muchas cargas que he probado del software en las cuales solamente alguna me funciona, solo anda una vez, luego al intentar pulsar el botón hacia atrás ya no vuelve a andar a no ser que salga y entre de la opcion del pad.

    Monitorizando lo que recibe el bluetooth veo que la primera vez que pulso el botón andar lanza un M 1 1000
    pero las siguientes pulsaciones del pad siempre escriben S, no se si estoy haciendo algo mal o que ocurre, pero me tiene un poco frustrado.

    Para configurar el Módulo bluetooth utilizo el siguiente codigo

    "

    char ssid[10] = "Zowi"; // Nombre para el modulo Bluetooth.
    char baudios  = '8';    // 1=>1200 baudios, 2=>2400, 3=>4800, 4=>9600 (por defecto), 5=>19200, 6=>38400, 7=>57600, 8=>115200
    char password[10] = "1234"; // Contraseña para el emparejamiento del modulo.


    void setup()
    {
    Serial.begin(9600);
    // Tiempo de espera:
    pinMode(9,OUTPUT);
    digitalWrite(9,HIGH);
    delay(10000);
    digitalWrite(9,LOW);
    // Ahora se procede a la configuración del modulo:
    // Se inicia la configuración:
    Serial.print("AT"); delay(1000);

    // Se ajusta el nombre del Bluetooth:
    Serial.print("AT+NAME"); Serial.print(ssid); delay(1000);

    // Se ajustan los baudios:
    Serial.print("AT+BAUD"); Serial.print(baudios); delay(1000);

    // Se ajusta la contraseña:
    Serial.print("AT+PIN"); Serial.print(password); delay(1000);
    }

    void loop()
    {
    // Al parpadear el led se habrá terminado la configuración:
    digitalWrite(9, !digitalRead(9));
    delay(500);
    }
    "

    Sin más agradecer enormemente el tiempo prestado 
    Diego Alcón

  • Moderador

    Bienvenido @{dalcon},


    Es posible que los comandos AT no estén funcionando correctamente. Si quieres, puedes seguir estos pasos que sirven para cambiar el baudrate a nuestro HC-05 del Kit de Robótica:

    Conecta los pines de la siguiente forma:

    KEY->Pin amarillo 9
    RX->Pin amarillo 11
    TX->Pin amarillo 10
    GND->Negro
    VCC->Rojo

    Carga el siguiente código sustituyendo los corchetes por llaves:

    #include <SoftwareSerial.h>

    SoftwareSerial BTSerial(10, 11); // RX | TX

    void setup()
    [
      pinMode(9, OUTPUT);  
      digitalWrite(9, HIGH);
      Serial.begin(9600);
      Serial.println("Enter AT commands:");
      BTSerial.begin(38400); 
    ]

    void loop()
    [
      if (BTSerial.available())
        Serial.write(BTSerial.read());

      if (Serial.available())
        BTSerial.write(Serial.read());
    ]

    - Una vez cargado, desconecta el cable USB y el cable VCC.
    - Conecta el cable USB y, después, conecta el cable VCC del módulo. El led parpadeará lentamente.
    - Accede al terminal de Arduino y verifica que tienes seleccionado 9600 baudios.
    - Si introduces "OK" deberá de responder OK.
    - A continuación, introduce AT+UART=115200,0,0

    Prueba si así el problema se soluciona.

    Un saludo,



  • Ya lo he solucionado, bien ahora me aparece otro problema un poco mas extraño, conectada la aplicación y funcionando todo correctamente, comienza a los 30 segundos a aparecer el cartel de batería baja en la app, al poco tiempo deja de funcionar.
    Comentar que estoy conectando alimentación desde corriente alterna, puesto que la batería no sabía a que pins conectarla.
    Muchas gracias


  • Moderador

    Hola @{dalcon},


    Te recomiendo que revises el código por si en algún momento midiese la tensión de la batería. De ser así, puedes comentar esas líneas y ver si el problema se repite.

    Un saludo,