Erreur connection python serie sur windows

Bonjour, je viens ici pour demander de l'aide. Je suis en train d'écrire un programme pour contrôler mon arduino (uno) en python. J'ai donc installé pyserial et quand je communique avec l'arduino, bah j'ai ça :

Python 3.3.2 (v3.3.2:d047928ae3f6, May 16 2013, 00:06:53) [MSC v.1600 64 bit (AMD64)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> import serial
>>> arduino = serial.Serial(2, 9600)
>>> arduino.write("a")
[color=red]Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    arduino.write("a")
  File "C:\Python33\lib\site-packages\serial\serialwin32.py", line 283, in write
    data = to_bytes(data)
  File "C:\Python33\lib\site-packages\serial\serialutil.py", line 76, in to_bytes
    b.append(item)  # this one handles int and str for our emulation and ints for Python 3.x
TypeError: an integer is required[/color]
>>>

Vous pouvez m'aider svp ? Merci

Bonjour,

A priori la méthode write attend un objet de type bytes et toi tu lui envoi une str. Essaie avec

arduino.write(b"a")

OMG je t'aime ! :stuck_out_tongue:
Etant assez noob en la matière je ne comprend pas bien le b dans b"a", peux tu me renseigner un peu plus ?

Oula, on pourrait remplir des rayonnages entiers de bibliothèque en écrivant des bouquins sur la question de l’encodage des chaînes de caractères, et on n'en aurait toujours pas fait le tour :slight_smile: Tout ça pour dire que je n'aurai ni le temps ni l'espace de répondre ici à ta question, donc juste un lien pour aller vite : Apprendre à programmer avec Python 3
J'ai juste lu en diagonale, mais ça à l'air plutôt bien fait, bon courage :slight_smile:

Ce serait intéressant de voir tout ton code, mais avec Python 2.7, l'envoi de string avec serial.write fonctionne.