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

Bibliothèques tierces Python Discussion :

[Python 3.X] smbus envoie de char en I2C


Sujet :

Bibliothèques tierces Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 9
    Points : 11
    Points
    11
    Par défaut [Python 3.X] smbus envoie de char en I2C
    Bonjour à tous,
    je souhaite envoyer une chaîne de caractères en python a partir d'une Raspberry Pi vers une Arduino. voici mes débuts

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    import smbus
    import time
    #bus = smbus.SMBus(0)  # Rev 1 Pi uses 0
    bus = smbus.SMBus(1) # Rev 2 Pi uses 1
     
    DEVICE = 0x12
    var =["a","b","c"]
     
    while True:
        for x in xrange(1,4):
            bus.write_byte_data(DEVICE,0x00,var[x])
        time.sleep(5)
    et voilà sur quoi je tombe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    pi@raspberrypi ~ $ sudo nano /home/pi/Python/envoie/envoie.py
    pi@raspberrypi ~ $ python /home/pi/Python/envoie/envoie.py
    Traceback (most recent call last):
      File "/home/pi/Python/envoie/envoie.py", line 11, in <module>
        bus.write_byte_data(DEVICE,0x00,var[x])
    TypeError: an integer is required
    pi@raspberrypi ~ $
    Pouvez-vous m'aider ?

    Merci

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 240
    Points : 36 696
    Points
    36 696
    Par défaut
    Salut,

    Lorsque vous rencontrez une erreur comme "TypeError: an integer is required", c'est que vous n'envoyez pas à la méthode .write_byte_data le type de données attendu et le message d'erreur est suffisamment explicite pour vous permettre de le corriger sauf à penser que c'est un de vos premiers programmes Python. Dans ce cas, çà serait bien d'apprendre à coder en Python.

    Citation Envoyé par bearcorrupted Voir le message
    je souhaite envoyer une chaîne de caractères en python a partir d'une Raspberry Pi vers une Arduino. voici mes débuts
    Pourquoi ne pas utiliser la méthode .write_block_data(addr,cmd,vals)?
    Ca évite N appels à .write_byte_data et çà simplifie le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    var =[ ord(z) for z in "abc" ]
     
    bus.write_block_data(DEVICE,0x00,var)

    - W
    PS: attention quand même: çà ajoute un octet en en-tête donnant la longueur du block (contrairement à .write_i2c_block_data)
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 9
    Points : 11
    Points
    11
    Par défaut Merci !!
    Merci cela fonctionne.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/02/2015, 23h48
  2. Réponses: 4
    Dernier message: 21/06/2010, 02h19
  3. [sockets TCP] pb envoi de chaines, char :s
    Par sqwam71 dans le forum C
    Réponses: 9
    Dernier message: 14/01/2007, 01h10
  4. Envoi d'email en Python
    Par ArHacKnIdE dans le forum Réseau/Web
    Réponses: 16
    Dernier message: 07/07/2006, 19h35

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