Comment utiliser Python pour communiquer avec un arduino uno sur la série

How to Use Python to Communicate with an Arduino Uno Over Serial

La communication entre Python et Arduino Uno sur Serial vous permet de contrôler le matériel à l'aide de scripts Python ou d'envoyer des données de l'Arduino à Python pour le traitement. Ce tutoriel vous guidera à travers la configuration et l'utilisation de Python pour communiquer avec un Arduino Uno sur une connexion série.


Ce dont vous aurez besoin

  1. Arduino Uno avec câble USB
  2. Python installé sur votre ordinateur (version 3.x recommandée)
  3. Arduino IDE installé
  4. Une bibliothèque pour la communication série Python (par exemple, pyserial)

Étape 1: Installez le logiciel requis

1. Installer Python

Si vous n'avez pas installé Python, téléchargez-le depuis python.org et suivez les instructions d'installation.

2. Installez l'ide Arduino

Télécharger et installer l'ide Arduino à partir de arduino.cc.

3. Installez la bibliothèque pysériale

Pyserial est nécessaire pour que Python communique sur les ports en série. Installez-le à l'aide de la commande suivante:

pip install pyserial

Étape 2: Écrivez et téléchargez le code Arduino

L'Arduino enverra et recevra des données sur le port série. Vous trouverez ci-dessous un exemple de croquis:

Code arduino

void setup() {
  Serial.begin(9600); // Start serial communication at 9600 baud
  while (!Serial);    // Wait for the serial port to connect
  Serial.println("Arduino is ready!");
}

void loop() {
  // Check if data is available on the serial port
  if (Serial.available()) {
    String data = Serial.readString(); // Read the incoming data
    Serial.print("Received: ");
    Serial.println(data); // Echo the data back

    // Optional: Respond based on the received data
    if (data.trim() == "LED_ON") {
      Serial.println("Turning LED on");
    } else if (data.trim() == "LED_OFF") {
      Serial.println("Turning LED off");
    }
  }
}
  1. Ouvrez l'ide Arduino.
  2. Collez le code ci-dessus dans l'éditeur.
  3. Sélectionnez le bon Conseil et Port sous Outils menu.
  4. Faire un clic Télécharger Pour télécharger le code sur Arduino Uno.

Étape 3: Écrivez le code Python

Vous trouverez ci-dessous un exemple de script Python pour communiquer avec l'Arduino:

Code python

import serial
import time

# Configure the serial connection
arduino = serial.Serial(port='COM3', baudrate=9600, timeout=1) # Replace 'COM3' with your Arduino's port

def send_data(data):
    print(f"Sending: {data}")
    arduino.write(f"{data}\n".encode()) # Send data to Arduino
    time.sleep(0.1)

    response = arduino.readline().decode().strip() # Read response from Arduino
    if response:
        print(f"Arduino responded: {response}")

if __name__ == "__main__":
    time.sleep(2)  # Wait for Arduino to initialize
    print("Connected to Arduino")

    # Example: Send commands to Arduino
    send_data("LED_ON")
    time.sleep(2)
    send_data("LED_OFF")

    # Close the serial connection
    arduino.close()

Étape 4: Testez la configuration

  1. Connectez l'Arduino à votre ordinateur via USB.
  2. Trouvez le port d'Arduino:
    • Sous Windows: vérifiez le port dans le gestionnaire de périphériques (par exemple, com3).
    • Sur macOS / Linux: utilisez le ls /dev/tty.* commande pour trouver le port correct (par exemple, /dev/ttyUSB0).
  3. Mettre à jour le port Valeur dans le script Python pour correspondre au port de votre Arduino.
  4. Exécutez le script Python à l'aide de la commande:
python your_script_name.py
  1. Observez la communication entre Python et Arduino dans le terminal et le moniteur série.

Applications de la communication Python-Arduino

  1. Automatisation des tâches matérielles (par exemple, activer les LED, contrôler les moteurs)
  2. Enregistrement des données du capteur dans un fichier ou une base de données
  3. Création de GUIS personnalisés pour des projets Arduino à l'aide de bibliothèques Python comme Tkinter ou Pyqt
  4. Intégration d'Arduino aux plates-formes IoT

Dépannage

  • Aucune connexion avec Arduino:

    • Assurez-vous que le port correct est spécifié dans le script Python.
    • Vérifiez que le taux de bauds correspond au croquis Arduino.
  • Aucune réponse d'Arduino:

    • Ajoutez un retard après l'ouverture de la connexion série (time.sleep(2)).
    • Assurez-vous que l'Arduino n'est pas utilisé par un autre programme (par exemple, moniteur de série dans l'ide Arduino).
  • UnicodeDecodeerror:

    • Vérifiez l'encodage des données envoyées / reçues. Utiliser .decode(errors='ignore') si nécessaire.

Conclusion

Vous avez réussi à mettre en place une communication entre Python et Arduino Uno sur Serial. Cela ouvre des possibilités infinies pour intégrer les bibliothèques puissantes de Python avec les capacités matérielles d'Arduino. Expérimentez plus loin en ajoutant des capteurs, des moteurs ou de la création de GUIS à base de python pour vos projets!

Laissez un commentaire

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.