Problema Arduino uno + Pololu dual vnh5019

Salve a tutti, sono nuovo sia sul forum che nel mondo arduino, sto cercando di realizzare il mio primo progetto seguendo un tutorial che vi linko --> QUI

Seguendo le istruzioni riesco ad installare la libreria, e a quanto ne so a caricare il programma, alimento l'arduino tramite usb e la scheda con i motori tramite batterie, che bypassando la scheda funzionano, ma quando provo ad usare l'app arduino rc non funziona assolutamente nulla, io penso di sbagliare qualcosa nella programmazione. Non ho mai usato arduino quindi prendetemi come completamente estraneo a tutto

Grazie a chiunque voglia/possa aiutarmi

Rimango a disposizione per eventuali foto/schemi ecc.

Buonasera, essendo il tuo primo post, nel rispetto del regolamento della sezione Italiana del forum (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD ([u]spiegando bene quali conoscenze hai di elettronica e di programmazione[/u] ... possibilmente [u]evitando[/u] di scrivere solo una riga di saluto) e di leggere con MOLTA attenzione il su citato REGOLAMENTO ... Grazie. :)

Patrick_M: Buonasera, essendo il tuo primo post, nel rispetto del regolamento della sezione Italiana del forum (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD ([u]spiegando bene quali conoscenze hai di elettronica e di programmazione[/u] ... possibilmente [u]evitando[/u] di scrivere solo una riga di saluto) e di leggere con MOLTA attenzione il su citato REGOLAMENTO ... Grazie. :)

Grazie, chiedo scusa ma nella fretta del problema non ho pensato a presentarvi, rimedio subito ;)

:D avendo tu ammesso che di arduino non ne sai praticamente nulla sarei tentato di dirti di cominciare con l'esempio numero 1 che trovi nell'ide e procedere da li cercando di capire cosa succede, sicuramente voler costruire un droide tipo star wars è parecchio ambizioso anche solo copiandolo

in ogni caso se ci posti lo schema elettrico (anche disegnato a mano) e il programma possiamo cercare di darti una mano sui dubbi che hai

Eh lo so, purtroppo speravo fosse più semplice, comunque ti posto lo schema di come ho collegato il tutto e il codice del programma. Nel link del primo commento c’è la guida che stavo seguendo comunque.

Naturalmente la scheda pololu sta sopra la arduino collegata con i pin, posso anche alimentare tutto il sistema con un pacco di batterie, ne sto usando due per comodità

Ho testato il funzionamento del modulo bluetooth con la prova del led e funziona.

Qui il codice

#include <DualVNH5019MotorShield.h>
DualVNH5019MotorShield md;
/*
#include <Servo.h>
Servo myservo; 
*/

char dataIn='S';
char determinant;
char det;
int vel = 200; //Bluetooth Stuff

int overdrive = 13; //Press Toggle Switch #1, the pin13 LED will light up

void setup(){
Serial.begin(9600);md.init();

/*
myservo.attach(6);delay(100);
myservo.write(90);delay(100);
*/

}

void loop(){ det = check();  // You'll need to reconstruct this if your not using the Pololu Dual VNH5019
     
      while (det == 'F')   // F, move forward
       {md.setSpeeds(vel,vel);det = check();}
     
      while (det == 'B')   // B, move back
       {md.setSpeeds(-vel,-vel);det = check();}

      while (det == 'L')   // L, move wheels left
       {md.setSpeeds(-vel,vel);det = check();}
      
      while (det == 'R')   // R, move wheels right
       {md.setSpeeds(vel,-vel);det = check();}
    
      while (det == 'I')   // I, turn right forward
       {md.setSpeeds(vel,vel/2);det = check();}
    
      while (det == 'J')   // J, turn right back
       {md.setSpeeds(-vel,-vel/2);det = check();}  
     
      while (det == 'G')   // G, turn left forward
       {md.setSpeeds(vel/2,vel);det = check();}
    
      while (det == 'H')   // H, turn left back
       {md.setSpeeds(-vel/2,-vel);det = check();}  
     
      while (det == 'S')   // S, stop
       {md.setSpeeds(0,0);det = check();}
      
      //---------------------Toggle switch code------------------//
      /*while (det == 'W'){myservo.write(180);delay(100);det = check();} 
      while (det == 'w'){myservo.write(90);delay(100);det = check();} 
       
      while (det == 'U'){myservo.write(0);delay(100);det = check();} 
      while (det == 'u'){myservo.write(90);delay(100);det = check();} 
      */

}

int check()
{if (Serial.available() > 0) {dataIn = Serial.read(); 
        if (dataIn == 'F'){determinant = 'F';} 
        else if (dataIn == 'B'){determinant = 'B';}else if (dataIn == 'L'){determinant = 'L';}
        else if (dataIn == 'R'){determinant = 'R';}else if (dataIn == 'I'){determinant = 'I';} 
        else if (dataIn == 'J'){determinant = 'J';}else if (dataIn == 'G'){determinant = 'G';}   
        else if (dataIn == 'H'){determinant = 'H';}else if (dataIn == 'S'){determinant = 'S';}
        else if (dataIn == '0'){vel = 400;}else if (dataIn == '1'){vel = 380;}
        else if (dataIn == '2'){vel = 340;}else if (dataIn == '3'){vel = 320;}
        else if (dataIn == '4'){vel = 280;}else if (dataIn == '5'){vel = 240;}
        else if (dataIn == '6'){vel = 200;}else if (dataIn == '7'){vel = 160;}
        else if (dataIn == '8'){vel = 120;}else if (dataIn == '9'){vel = 80;}
        else if (dataIn == 'q'){vel = 40;}
        else if (dataIn == 'U'){determinant = 'U';}else if (dataIn == 'u'){determinant = 'u';}
        else if (dataIn == 'W'){determinant = 'W';}else if (dataIn == 'w'){determinant = 'w';}
        
        }return determinant;}

sei sicuro di aver connesso il bt al cel…

come la maggior parte dei progetti che si vedono in giro il bt viene connesso ai pin 0 e 1 di arduino… in questo modo ti perdi la possibilità di verificarne il funzionamento su monitor seriale

inoltre sei sicuro di poter collegare così il bt?

nel senso che di solito richiede da 3,3V a +5V per l’alimentazione ma i pin TX e RX vanno a 3,3V e quindi va connesso così:

hc-05-.jpg

Il bluetooth si connette, ho fatto anche la prova mettendo un led collegato alla massa e al pin 13, caricato uno sketch semplice per dargli on/off dalla app apposita e funzionava.

Per quanto riguarda il collegamento mi sono rifatto allo schema postato dalla guida che sto seguendo e lo collega in questo modo

|500x281

si ho visto come il sito dice di collegarlo ma, ripeto hc05 normalmente richiede 3,3V massimi sul pin RX, se gli passi 5V sicuramente per un po funziona ma, alla lunga, brucia :wink:

i moduli di solito sul retro riportano qualche cosa così:

e come vedi i pin tx e rx prevedono 3,3V…

tornando al problema, se il bt risponde e comunica… anche con l’altro programma dovrebbe andare. Ti suggerisco di usare la libreria softwareserial per poter spostare i pin del bt in un’altra posizione in modo da poter verificare con un bel debug sul monitor seriale cosa realmente arriva dal bt

2iaammx.jpg

Patrick_M: si ho visto come il sito dice di collegarlo ma, ripeto hc05 normalmente richiede 3,3V massimi sul pin RX, se gli passi 5V sicuramente per un po funziona ma, alla lunga, brucia ;)

i moduli di solito sul retro riportano qualche cosa così:

Ok, quindi mi potresti dire bene dove collegarli? non riesco a capirlo dall'immagine postata, se puoi per favore usare quella che ho messo io all'inizio, anche solo dicendomi i pin?

Essendoci il pin 3.3v basta che collego il positivo li e il resto lo lascio com'è?

per come lo collegavi tu i pin di arduino non cambiano, devi solo usare le due resistenze sul pin rx del bt quindi dal pin RX del bt colleghi la resistenza da 1K che va al pin tx di arduino e sempre dal pin RX del bt un'altra resistenza da 2K che va a collegarsi su GND gli altri collegamenti non cambiano

Ok perfetto, allora recupero le resistenze e faccio la modifica.

Però questo non penso influisca sul funzionamento, se non che alla lunga si brucia come dicevi. Quale potrebbe essere il o i problemi che non fanno funzionar nulla?

Ho usato 4 batterie LiPo da 3.7v e 900mah collegate in serie, potrebbe essere che non sono sufficienti? Ho provate a collegarle direttamente al motore e gira ma magari tra la pololu e due motori non ce la fanno.

EDIT Collegata ad entrambi i motori girano tutti e due e si alimenta anche la scheda

il fatto è che non ho ancora capito cos'è che non funziona.... il bt non riceve? il motore non gira? il programma non fa quello che vuoi? l'app non trasmette i dati al bt? nel tutorial usa 2 pacchi batterie da 3000mA...