Salut
Grande confusion.
Ton code ARDUINO attend une chaîne de caractères contenant un certain nombre de digits.
par exemple "1234".
Ensuite parseInt() transforme cette chaîne en entier binaire : 1234.
Cela veut dire que côté python, il faut bien envoyer une chaîne de caractères.
# Transformer un float en float à l'aide de la fonction float ne sert à rien.
>>> a = str(int(float(123.4)))
>>> a
'123'
>>> a = str(int(123.4))
>>> a
'123'
>>>
# Encoder une chaîne de caractères contenant de digits en UTF-8 ne sert à rien.
# C'est utile uniquement si la chaîne contient des caractères accentués
>>> a
'123'
>>> a.encode("utf-8")
'123'
# Cette ligne ne sert à rien. Tu initialise un variable 'variable' à la valeur de x et elle ne sert à rien ensuite :
variable = x
Autrement ton code doit fonctionner.
Essaye ça :
>>> import time
>>> ser.write("1"); time.sleep(1) ; ser.write("0"); time.sleep(1); ser.write("0"); time.sleep(1); ser.write("1"); time.sleep(1) ; ser.write("0");