comment on fait pour relier arduino a python
parce que j'ai fait ca
mais j'ai ca
Tu as donc changé ton Arduino de port série ?
Tu as le même message qu'avec ton IDE lorsque tu essayais de télécharger ton code.
LE port série ne peut être tenue que par un seul programme (python, IDE).
Si tu débranche l'arduino et le rebranche, le port série 5, s'enlève et reviens?
Une fois que tu as téléversé ton programme sur ton Arduino, tu peux fermer l'application, pour être sûr.
j'ai pas compris
soit c'est Python qui parle à l'Arduino, soit c'est l'IDE, soit c'est le moniteur série. Mais ça ne peut pas être plus d'un à la fois.
➜ quand vous voulez télécharger il faut que le code python ait fermé le port série (ça devrait se faire tout seul si vous quittez la session python)
donc je fais comment pour lancer mon code python reellement parce que j'ai du mal a comprendre la
avec l'accelerometre
mais la c'est sur une arduino uno
comme j'avais le probleme sur l'arduino nano j'ai changé je teste deja que ca focntionne sur ca
Merci de ne pas poster d'image de code. copier coller le code python en utilisant les balises de code tout simplement, comme le code pour votre Arduino.
imaginez votre câble USB comme un élément représentant la connexion Série.
Quand l'IDE a fini de compiler, il va vouloir "prendre le câble USB" pour envoyer le programme à votre Arduino. une fois qu'il a fini de charger le code, il relâche le câble USB.
Quand vous lancez votre programme python, votre ligne
arduinoData = serial.Serial('COM5',9600, timeout = 1)
va dire "prend le câble USB" s'il est disponible. et comme nulle part dans le code python vous relâchez le câble, tant que le programme python est actif, c'est lui qui tient le câble.
Donc si vous essayez de charger une nouvelle version du programme sur votre Arduino pendant que le code python est toujours actif (il tient le câble USB), l'IDE ne pourra pas prendre le câble et vous donnera un message d'erreur disant que le port série n'est pas disponible.
Pour rendre le port série disponible, il faut relâcher le câble ➜ quitter le programme Python.
C'est important uniquement en phase de développement quand vous alternez entre charger du code pour Arduino et utiliser python pour parler à la carte car les 2 essayent de prendre le câble USB. Une fois que le code est stable sur l'Arduino, plus besoin de se soucier de cela, le lancement du code python et l'ouverture du port série fait rebooter l'arduino et les 2 programmes peuvent discuter.
avez vous essayé le code de mon tuto sur python?
d'accord mais comment le code va continuer de se lancer si je quitte le programme python?
Non j'ai pas testé je teste demain
Et demain je reteste avec l'arduino nano , en esperant que ca fonctionne
ben vous relancez le programme Python une fois que vous avez mis à jour le code Arduino
Il est aussi possible de fermer le port dans le code python :
serial.close()
C'est fait automatiquement lorsque le programme python s'arrête. Donc ça n'a pas grand intérêt : une possibilité serait de le faire lorsqu'une certaine touche du clavier est appuyée (Esc par exemple), mais ça complique le programme pour pas grand chose.
Autant faire ce que dit @J-M-L : arrêter le code python avant de téléverser sur l'Arduino.
Donc la procédure est simple :
Comment fait vous avec vos applications, il vous arrive de les fermer et de les réouvrir quand vous en avez besoin ?
non j'avais le code sous le coude depuis un moment (je m'en sers aussi sous diverses formes), ça a juste été l'occasion mais j'espère qu'il servira à tous ceux qui se posent la question de comment connecter Python à leur Arduino sans trop se prendre la tête
c'est ce que je fais pourtant mais deja le programme python ne veut pas se lancer a cause la ligne arduinoData = serial....
d'ou le message d'erreur que je ne comprends pas
from playsound import playsound
import serial
arduinoData = serial.Serial(port="COM5", baudrate=9600, bytesize=8, timeout=2, stopbits=serial.STOPBITS_ONE)
print("COM5")
var2 = arduinoData.readline()
print(var2)
while(1):
var2 = arduinoData.readline().decode('ascii').strip()
print(var2)
if (var2=="un"):
playsound('un.wav')
print('playing sound using playsound')
if (var2=="one"):
playsound('one.wav')
print('playing sound using playsound')
if (var2=="deux"):
playsound('deux.wav')
print('playing sound using playsound')
oui mais la si je ferme le programme python il ne tournera plus
je vais faire ca demain tqt j'ai eu pas mal de choses aujourd'hui a faire
merci beaucoup @J-M-L