Projet Terminal 2

Bonjours tout le monde! Je refait un topic car il ne correspondait pas aux règles d’utilisation générale. Pour mon projet de terminal je doit rendre pilotable un module mp3 par bluetooth , ce que je veux faire c’est permettre aux boutons poussoir d’être compatible avec le programme appinvontor que j’ai fait pour qu’il puisse être manipulable par une application. Qu’elle sont les commandes que je doit mettre pour le rendre compatible avec le Bluetooth(et surtout comment le synchronisée avec mon programme sur appinventor) ?
Merci et bonne journée ou soirée :smiley: :smiley: :smiley: .

#include <SoftwareSerial.h>
#include <MP3Player_KT403A.h>

 SoftwareSerial mp3(2, 3); // création d'un port série sur les broches 2 et 3
                      
int num_piste=1;        // numéro de la piste courante initialisé à 1
int boutonpin=4;        // Bouton lecture/pause connecté à la broche n°4
int boutonpin_valeur;   // Pour lire la valeur du bouton lecture/pause
int mode= 0;
int Next_broche = 6;
int Previous_broche =8;
int Previous_valeur;
int Next_valeur ; 

void setup() 
{
     mp3.begin(9600);           // initialiser l'objet MP3
       delay(100);             // attendre 100ms
    
    SelectPlayerDevice(0x02);   // Sélectionner la carte SD pour le module MP3
    SetVolume(0x1E);            // fixer le volume au maxi (1E)

   pinMode(boutonpin, INPUT);   // configurer la broche n°4 en entrée
}

void loop() 
{


  
      boutonpin_valeur = digitalRead(boutonpin); // lire la valeur présente sur le BP lecture et la stocker

      if (boutonpin_valeur == 1) // si le BP lecture est appuyé
      {
        do
      boutonpin_valeur = digitalRead(boutonpin);
      while(boutonpin_valeur == 1);
        
        if (mode ==0)
        {
        
         mode =1;
       SpecifyMusicPlay(3);// lire la piste courante
     }
    else if(mode == 1)
    {
   
    mode=2;
   PlayPause();
    }
    else if(mode== 2)
    { 
     mode=1;
     PlayResume();     
  }

}  
   Next_valeur = digitalRead(Next_broche);
  if (Next_valeur == 1)
  
  {
    if (num_piste < 3)
  {
    do
      Next_valeur = digitalRead(Next_broche);
      while (Next_valeur ==1);
      num_piste = num_piste +1;
      PlayNext();
  }
}
 


Previous_valeur = digitalRead(Previous_broche);
if (Previous_valeur ==1)

{
 if ( num_piste > 1)
 {
 do
     Previous_valeur = digitalRead(Previous_broche);
      while (Previous_valeur ==1);
      num_piste = num_piste -1;
      PlayPrevious();
  
   }
   }   
   delay(100);

}

Bonjour, tu dois crée un SoftwareSerial bluetooth (); en règle générale les port tx/rx sont sur les pin 0 et 1 mais tu peux les changé et tous va communiquer normalement. Il y a quelque commande a savoir pour lire la valeur reçu : bluetooth.available() et en envoié : bluetooth.print(). Pour communiquer avec App inventor rien de plus simple il suffit de mettre un bluetooth en composant caché sur app inventor. Ensuite tu dois mettre un selectionneur de liste etc (je pense que tu l'as fait car moi je l'ai fait en première). Une fois tout sa fait tu active ton bluetooth sur ton téléphone et donc tu peu te connecter a ton arduino. Si tu as des doutes sur des commande ou sur comment faire ton app inventor j'ai mis un exemple sur mon dernier post (que je suis en train de faire marcher mais pour se connecter un bluetooth mon programme marche). Sur ceux je te souhaite bonne chance pour le bac et pour ton projet !!!

J’ai changer mon programme comme tu la fait dans ton poste , mais maintenant comment je fait pour que les bouton poussoir communique avec mon appli ?:

#include <SoftwareSerial.h>
#include <MP3Player_KT403A.h>

 SoftwareSerial mp3(2, 3); // création d'un port série sur les broches 2 et 3
 SoftwareSerial bluetooth (0,1)                    
int num_piste=1;        // numéro de la piste courante initialisé à 1
int boutonpin=4;        // Bouton lecture/pause connecté à la broche n°4
int boutonpin_valeur;   // Pour lire la valeur du bouton lecture/pause
int mode= 0;
int Next_broche = 6;
int Previous_broche =8;
int Previous_valeur;
int Next_valeur ; 

void setup() 
{
     mp3.begin(9600);           // initialiser l'objet MP3
       delay(100);             // attendre 100ms
    
    SelectPlayerDevice(0x02);   // Sélectionner la carte SD pour le module MP3
    SetVolume(0x1E);            // fixer le volume au maxi (1E)

   pinMode(boutonpin, INPUT);   // configurer la broche n°4 en entrée
   bluetooth.begin(9600);// definition de la vitesse de la liaison Bluetooth
  Serial.begin (9600);// definition de la vitesse de communication serie
  Serial.println("Pret");
}

void loop() 
{


  
      boutonpin_valeur = digitalRead(boutonpin); // lire la valeur présente sur le BP lecture et la stocker

      if (boutonpin_valeur == 1) // si le BP lecture est appuyé
      {
        do
      boutonpin_valeur = digitalRead(boutonpin);
      while(boutonpin_valeur == 1);
        
        if (mode ==0)
        {
        
         mode =1;
       SpecifyMusicPlay(3);// lire la piste courante
     }
    else if(mode == 1)
    {
   
    mode=2;
   PlayPause();
    }
    else if(mode== 2)
    { 
     mode=1;
     PlayResume();     
  }

}  
   Next_valeur = digitalRead(Next_broche);
  if (Next_valeur == 1)
  
  {
    if (num_piste < 3)
  {
    do
      Next_valeur = digitalRead(Next_broche);
      while (Next_valeur ==1);
      num_piste = num_piste +1;
      PlayNext();
  }
}


Previous_valeur = digitalRead(Previous_broche);
if (Previous_valeur ==1)

{
 if ( num_piste > 1)
 {
 do
     Previous_valeur = digitalRead(Previous_broche);
      while (Previous_valeur ==1);
      num_piste = num_piste -1;
      PlayPrevious();
  
   }
   }   
   delay(100);

}


 {
  if (bluetooth.available()>=(1)){
    c=bluetooth.read();
    Serial.println(c);
    bluetooth.print(10);  
    delay(1000);
  }
  else {
    Serial.println 
    delay (1000);
  }

}

Quand ton BP appuie il envoie une valeur exemple 1 a ton téléphone via la commande Bluetooth.print() et sur ton app inventor tu dois metre ce bleutooth. Pour appareiller ton téléphone a ton Arduino pense a mettre un sélectionneur de liste pour voir tt les bleutooth disponibles.

Il faut séparer les problèmes : d'un côté la communication BT avec l'app sur le smartphone, de l'autre le contrôle du MP3. Pour cela, commence par faire un code pour chaque problème.

Pour la communication BT, il faut en effet utiliser un module HC-05 ou 06 et une liaison série. Si tu veux conserver la communication avec ton ordi (pour du débug par exemple), le plus simple est d'utiliser la bibli SoftwareSerial ou AltSoftSerial. Sauf si tu as un Arduino Mega qui dispose de plusieurs ports série (tu n'as pas précisé ton modèle d'Arduino).

Il faut ensuite que tu apprennes deux choses :

  • comment communiquer sur une liaison série
  • comment communiquer en BT Pour le premier point, tu peux trouver un bon tuto sur le forum, dans la section des tutoriels. Je te conseille aussi de lire ce tuto, qui est complémentaire du précédent.

Pour la com BT, une référence est le site de Martyn Currey, un peu complexe mais très complet. Il y a des exemples d'utilisation de bouton poussoir. Si tu veux en savoir plus sur les BP, lis ceci.

Une fois que tu auras réussi à faire marcher les deux, tu pourras assembler le tout en un seul code.

il est possible de conserver le module Bluetooth sur la série par défaut et de tracer sur le moniteur de l'ide sans avoir trop d'interférence je l'ai fais maintes fois pour des projets. il est intéressant de terminer la communication arduino vers tel par un caractère de fin de bloc

void fin_transmission() { Serial.println(char(23)); // ETB fin de bloc }

qui sera lu par le tel comme caractère de fin de trame

dans le screen initialise placer

un bluetooth.delimiterbyte to 23

et a chaque appel de réception dans le receive indiquer un number of byte = -1

bien définir un format de transmission avec entête(commande) contenu(nombre,chiffre,texte) et délimiteur de fin (23) aide aussi