Je recherche un expert dans le domaine de l'arduino (carte Arduino avec utilisation des sons)

comment on fait pour relier arduino a python

parce que j'ai fait ca
image

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

j'ai reussi ca

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

voila ce qu'on me dit en python pour le probleme de port entre arduino et python

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

:person_shrugging: :man_shrugging:

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 :

  1. Téléverser sur Arduino.
  2. Lancer le code Python.
  3. S'il faut changer le code Arduino, arrêter le code Python et revenir au point 1.

Comment fait vous avec vos applications, il vous arrive de les fermer et de les réouvrir quand vous en avez besoin ?

@mel04,lit le tuto de @J-M-L,il va t'aider!
Ne le vexe pas,il l'a fait spécialement pour toi! :grin:

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