IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Raspberry Pi Discussion :

Protocole I2C smbus2 communication vers Arduino


Sujet :

Raspberry Pi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2021
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2021
    Messages : 128
    Par défaut Protocole I2C smbus2 communication vers Arduino
    Bonjour,
    Je souhaite transmettre des informations ( valeurs integer de 0 à 65535 ) en i2c d'un raspberry pi4 vers un arduino MEGA 2560.
    J'ai installé smbus2 sur le raspberry et essayé les codes en exemple sur le net (notamment sur pypi.org), mais cela n'a pas l'air de fonctionner.
    J'ai aussi bien activé l'i2c sur le rpi. Le cablage entre arduino et Rpi est aussi correct.
    Pour info j'arrive bien a faire communiquer en i2c 2 arduinos.

    le code utilisé est le suivant :

    Code Python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    from smbus2 import SMBus
     
    with SMBus(1) as bus:
        data = 45
        bus.write_byte_data(8, 0, data)

    l'adresse attribuée à l'arduino est la 8. Est-ce qu'il y a quelque chose que j'aurai oublié ? un paramétrage du raspberry ? existe-t'il une commande qui me permette de vérifier que l'arduino est connecté au raspberry (i2c detect ?) ?

    Merci pour votre aide.

  2. #2
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    13 120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 13 120
    Billets dans le blog
    47
    Par défaut
    Bonjour,

    Citation Envoyé par erwannoo Voir le message
    Est-ce qu'il y a quelque chose que j'aurai oublié ?
    J'espère que tu n'as pas oublié que l'Arduino est susceptible de tirer ses sorties en 5V et qu'elles peuvent être connectées à des entrées 3,3V du Pi
    A priori ça n'arrivera pas si le Pi est maître sur le bus, mais il faut faire attention...

    Il y a bien une commande i2cdetect, voir ici par exemple.
    Nom : i2c-rpi2.png
Affichages : 796
Taille : 58,3 Ko

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2021
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2021
    Messages : 128
    Par défaut raspberry protocole I2C smbus2 communication vers arduino
    Bonjour,
    Merci pour cette recommandation. Effectivement cela peut être embêtant.
    En faisant i2cdetect -y 1 j'ai bien une réponse (tableau à moitié rempli) lorsque l'Arduino est connecté et tableau vide lorsqu'il n'est pas connecté. Mais ce n'est vraiment pas parlant...

    Passer par le port série ne serait-il pas plus facile ?

  4. #4
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    13 120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 13 120
    Billets dans le blog
    47
    Par défaut
    Citation Envoyé par erwannoo Voir le message
    Merci pour cette recommandation. Effectivement cela peut etre embetant.
    Bon, a priori il n'y a pas de soucis si le Rpi est toujours maître sur le bus et l'Arduino toujours esclave.


    Citation Envoyé par erwannoo Voir le message
    En faisant i2cdetect -y 1 j'ai bien une réponse (tableau a moitié rempli) lorsque l'arduino est connecté et tableau vide lorsqu'il n'est pas connecté. Mais ce n'est vraiment pas parlant...
    Il devrait être très parlant au contraire, sur la copie d'écran de mon message précédent j'ai aussi un composant esclave à l'adresse 0x08.
    Si tu vois le 0x08 dans le tableau, cela prouve que ton Arduino est bien identifié à cette adresse sur le bus et donc que tout va bien au niveau de la communication. Est-ce que tu vois bien l'adresse 0x08 dans le tableau ?

    Les autres adresses dans le tableau sont sans doute des composants internes au Pi qui sont aussi sur le bus (eeprom et autres).

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2021
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2021
    Messages : 128
    Par défaut raspberry protocole I2C smbus2 communication vers arduino
    bah c'est que non, il n'y a rien à l'adresse 0x08,
    mais peut-être qu'il n'est pas bien adressé coté Arduino...

    dans mon code Arduino l'attribution des adresse est de la forme :

    Code Python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    wire.begin(8)
    wire.request(8, ... )

    8 étant pour moi l'adresse de l'équipement... mais le format n'est peut être pas bon coté Raspberry

  6. #6
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    13 120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 13 120
    Billets dans le blog
    47
    Par défaut
    Donc le souci premier n'est pas du côté du programme Python.
    Soit il y a un souci matériel (mais tu me dis que le câblage est correct), soit l'Arduino est mal configuré.

    Peux-tu poster le code complet côté Arduino ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Embarqué] Communication avec le port série vers Arduino
    Par YannGTT dans le forum Plateformes
    Réponses: 0
    Dernier message: 05/04/2020, 04h45
  2. GPRS communication vers IP par protocole TCP
    Par g_escande81 dans le forum Réseau
    Réponses: 6
    Dernier message: 31/08/2011, 04h20
  3. [EJB3] Communication vers un EJB depuis un client standalone
    Par Aldian dans le forum Java EE
    Réponses: 3
    Dernier message: 29/05/2009, 11h24
  4. Comment partager la communication vers un port USB ?
    Par petitclem dans le forum C++Builder
    Réponses: 1
    Dernier message: 07/05/2009, 15h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo