Salut je galère à écrire des données vers l'Arduino

voici le petit programme tout simple pour basculer des relais

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include "Adafruit_MCP23017.h"
#include "Wire.h"
 
Adafruit_MCP23017 mcp;
 
void setup() {
mcp.begin();
for (int pin = 0; pin  < 16; pin ++)
    {
        mcp.pinMode(pin, OUTPUT);
    } 
for (int pin = 0; pin < 16; pin++)
    {
        mcp.digitalWrite(pin, HIGH); 
    }
Serial.begin(9600);   
}
void loop() {
    if(Serial.available())
    {        
        String pinstr = Serial.readStringUntil(',');
        String commandestr = Serial.readStringUntil('\n');
        int pin = pinstr.toInt();
        int commande = commandestr.toInt();
 
        switch (commande) {
          case 0:
              mcp.digitalWrite(pin, HIGH);
              break;
          case 1:
            mcp.digitalWrite(pin, LOW);
              break;
        }
 
    }
}
Je cherche donc à envoyer le pin et 0 pour low ou 1 pour high

en Python3 en mode console ça passe nickel

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
Python 3.6.7 (default, Oct 22 2018, 11:32:17) 
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import serial
>>> ser = serial.Serial('/dev/ttyUSB0', 9600)
>>> ser.write(b'1,1')
3
>>> ser.write(b'1,0')
3
>>>
Par contre en mode fichier la rien ne passe .... je lance

python3 pilote.py 1 1

par d'erreur mais l'arduino n'interprete pas bien ce que j'envoi, surement un mauvais encodage ...

Code Python : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import sys
import serial
import time
 
ser = serial.Serial('/dev/ttyUSB0', 9600, timeout=1, writeTimeout=1)
if (ser.isOpen()):
        print("open")
        arg1=sys.argv[1]    
        arg2=sys.argv[2]
        pin=arg1+","+arg2
        print (type(pin))
        pin=bytes(pin,'utf-8')
        print(pin)
        ser.write(pin) 
        ser.close()

Un peu aide merci