1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies. En savoir plus.
  2. Bonjour tout le monde ! Veillez consulter la Politique de forum pour comprendre nos règles, Merci a vous !
    Rejeter la notice

[WinDev22] Module Fm TEA5767 code Java

Discussion dans 'Windev' créé par Razorte, Mai 16, 2018.

  1. Razorte

    Razorte Member

    Inscrit:
    Mai 11, 2018
    Messages:
    49
    J'aime reçus:
    50
    Bonjour,
    Voici le code Java qu'il faut pour faire fonctionner son module TEA5767 avec un paramétrage de base. En gros juste changer la fréquence et le "mute", je rajouterais les diverses option par la suite.Il vous faut au préalable avoir installer I2C sur votre Pi (

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    )

    [1.Préparation] -----------------
    Pour commencer placer la librairie Java Pi4J (

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ) dans un dossier.
    Ensuite faite au démarrage du projet
    Code (Text):
    JavaCharge(MonDossierContenantLesLibrairies)
    [2.Créer une petit fenêtre de test] -----------------
    Créer 4 bouton:
    -Augmenter de 1
    -Augmenter de 0.10
    -Diminuer de 1
    -Diminuer de 0.10

    Faite des variables de type monétaire (le type numérique n'étant pas disponible sur les projets Java)
    [3.Création de la procédure Java] -----------------
    Pour ceux qui ne savent créer une procédure de type Java il suffit de clique sur le "WL" de la barre de la procédure pour la passer en procédure Java:

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!



    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!



    [4.On fait le code]
    Maintenant on peut passer au code:
    Code (Text):

    freq14bit est un entier = 4*(MonétaireMaFréquence*1000000+225000)/32768
     
    Ensuite on peut appeler la procédure Java:
    Code (Text):

    resultat est une chaîne = ChangerFrequence(freq14bit,BooleanMute)
     
    Puis il faut maintenant renseigner les librairies dans le code Java:
    Code (Text):

    import java.io.IOException;
    import java.util.Arrays;
    import com.pi4j.io.i2c.I2CBus;
    import com.pi4j.io.i2c.I2CDevice;
    import com.pi4j.io.i2c.I2CFactory;
    import com.pi4j.io.i2c.I2CFactory.UnsupportedBusNumberException;
    import com.pi4j.platform.PlatformAlreadyAssignedException;
    import com.pi4j.util.Console;
     
    Maintenant on peut créer le tableau qui permettras de stocker les données envoyer au modules, avec les variables qui vont nous servir par la suite:
    Code (Text):

    byte radio[] = new byte [5]; //Tableau des données pour le module

    int ADDR = 0x60; //Adresse du Modules sur le PORT 1 / I2C
    int frequencyH = 0; //La fréquence haute
    int frequencyL = 0; //La fréquence basse

     
    Il vaut faire quelque manipulation de byte aussi:
    Code (Text):

    frequencyH=frequencyB>>8;  //Décale les bytes de 8 sur la droite
    frequencyL=frequencyB&0XFF; //Comparaison de byte (pour avoir 1 il faut 1 des 2 coter sinon 0)
     
    Petit plus vous pouvez rajouter la condition pour le mute du module:
    Code (Text):

    if(mute == true){
          frequencyH = 0x80;
    }
     
    Ensuite on remplis le tableau radio:
    Code (Text):

    // data to be sent
        radio[0]=(byte)frequencyH;
        radio[1]=(byte)frequencyL;
        radio[2]=(byte)0xB0;  //Paramètres supplémentaires
        radio[3]=(byte)0x10;  //Paramètres supplémentaires
        radio[4]=(byte)0x00;  //Paramètres supplémentaires
     
    Les 3 dernières case du tableau servent a rajouter un paquet de paramètres, je les aborderais plus tard.

    Maintenant il ne restent plus qu'à envoyer tous ça sur le module:
    Code (Text):

    try{

            I2CBus i2cbus = I2CFactory.getInstance(I2CBus.BUS_1); //Pointe le BUS1 de i2C
            Thread.sleep(100);
            // On déclare le device
            I2CDevice device = i2cbus.getDevice(ADDR); //Pointe l'adresse 0x60 du BUS1 de I2C
            // On écris sur le device
            device.write(radio); //Envoie le tableau de byte radio sur l'adresse 0x60 du BUS1 de I2C
        }catch(UnsupportedBusNumberException e){
            return (String)e.getMessage();
        }
        catch(IOException e){
            return (String)e.getMessage();
        }
        catch(InterruptedException ex) {
            Thread.currentThread().interrupt();
        }
     
    Et voilà si vous avez bien tous suivis vous devriez pouvoir utiliser le modules TEA5767 avec windev sur votre RaspBerrry PI. Je compléterais ce post par la suite afin de rajouter tous les paramétrages du modules.

    Si vous avez des questions ou des idées pour améliorer le post n’hésitez pas et désoler pour mon français, c'est pas mon points fort :p

    #merci à

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    pour m'avoir fait découvrir la librairie Pi4J

    EDIT:
    Si vous souhaiter convertir:
    Code (Text):

    frequencyH=frequencyB>>8;  //Décale le byte de 8 sur la droite
    frequencyL=frequencyB&0XFF; //Comparaison de byte (pour avoir 1 il faut 1 des 2 coter sinon 0)
     
    en windev sa donne:
    Code (Text):

    frequencyH= frequencyB bitRightShift 8 //Décale le byte de 8 sur la droite
    frequencyL=frequencyB&0XFF //Comparaison de byte (pour avoir 1 il faut 1 des 2 coter sinon 0)
     
    Ensuite il suffit de rajouter frequencyH et frequencyL en paramètre pour l'envoyer dans la procédures.
     
    #1 Razorte, Mai 16, 2018
    Dernière édition: Mai 17, 2018
  2. suenodesign

    suenodesign Well-Known Member
    MEMBRE WX

    Inscrit:
    Jan 1, 2018
    Messages:
    507
    J'aime reçus:
    732
    Merciii. Très intéressant. ;)
     
    joker et Razorte aiment ça.
  3. Morpheous

    Morpheous Active Member

    Inscrit:
    Avr 9, 2018
    Messages:
    182
    J'aime reçus:
    199

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    bon travail !! C'est ainsi que la communauté grandira et s'entraidera, partageant les connaissances que nous avons tous et l'expérience que nous avons
     

Partager cette page

Chargement...