Python

Tutoriel Arduino Python avec exemples

Arduino est une plateforme de prototypage électronique open-source basée sur du matériel et des logiciels flexibles et faciles à utiliser. Il est largement utilisé par les amateurs, les étudiants et les professionnels pour créer des projets interactifs et des prototypes dans divers domaines tels que l’automatisation domestique, la robotique, l’IoT (Internet des objets), et bien d’autres.

Dans ce tutoriel, nous allons explorer comment utiliser Arduino avec Python, un langage de programmation populaire, pour créer des projets interactifs et contrôler des périphériques électroniques.

Prérequis

Avant de commencer, assurez-vous d’avoir les éléments suivants :

  1. Une carte Arduino (comme Arduino Uno, Arduino Nano, etc.).
  2. Le logiciel Arduino IDE installé sur votre ordinateur.
  3. Python installé sur votre ordinateur.
  4. Un câble USB pour connecter la carte Arduino à votre ordinateur.
Étapes du tutoriel
1. Installation de la bibliothèque pySerial

La bibliothèque pySerial permet à Python de communiquer avec des périphériques série comme l’Arduino. Vous pouvez l’installer en utilisant pip, le gestionnaire de paquets de Python, avec la commande suivante dans votre terminal ou votre invite de commande :

pip install pyserial
2. Téléversement du programme de communication sur l’Arduino

Pour permettre à l’Arduino de communiquer avec Python, vous devez téléverser un programme sur votre carte Arduino. Voici un exemple de programme simple :

void setup() {
  Serial.begin(9600);
}

void loop() {
  if (Serial.available() > 0) {
    char data = Serial.read();
    Serial.println(data);
  }
}

Ce programme lit les données envoyées par Python sur le port série et les renvoie.

3. Écriture du script Python

Maintenant, vous pouvez écrire un script Python pour envoyer des données à l’Arduino et lire les réponses. Voici un exemple de script Python :

import serial
import time

# Définir le port série (changez-le selon votre configuration)
port = '/dev/ttyUSB0'

# Initialiser la communication série avec Arduino
arduino = serial.Serial(port, 9600, timeout=1)
time.sleep(2)  # Attendez que la connexion soit établie

# Envoyer des données à l'Arduino
arduino.write(b'Hello from Python!')

# Lire la réponse de l'Arduino
response = arduino.readline().decode('utf-8')
print("Réponse de l'Arduino :", response)

# Fermer la connexion
arduino.close()

Assurez-vous de modifier le port série en fonction de votre système d’exploitation (par exemple, /dev/ttyUSB0 sous Linux, COM3 sous Windows, etc.).

4. Exécuter le script Python

Enfin, exécutez le script Python. Assurez-vous que votre carte Arduino est connectée à votre ordinateur via le câble USB. Vous devriez voir la réponse de l’Arduino imprimée dans votre terminal ou votre invite de commande.

Exemples supplémentaires

Voici quelques exemples supplémentaires pour étendre vos projets Arduino Python :

  • Contrôler un LED : Utilisez Python pour envoyer des commandes à l’Arduino pour allumer ou éteindre une LED.
  • Capteurs et acquisition de données : Lisez les données des capteurs connectés à votre Arduino et utilisez Python pour les traiter ou les visualiser.
  • Contrôle de moteurs : Utilisez Python pour contrôler la vitesse et la direction des moteurs connectés à votre Arduino.

Voici quelques exemples de manipulation et de prise en main de l’Arduino avec Python, accompagnés de leur code correspondant :

Exemple 1 : Contrôler une LED avec Python

Dans cet exemple, nous allons contrôler une LED connectée à un pin de l’Arduino en utilisant Python.

Schéma de câblage :
  • Connectez une LED avec une résistance de 220 ohms en série au pin 13 de l’Arduino.
Code Arduino :
int ledPin = 13;

void setup() {
  pinMode(ledPin, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  if (Serial.available() > 0) {
    char command = Serial.read();
    if (command == '1') {
      digitalWrite(ledPin, HIGH);
      Serial.println("LED allumée");
    } else if (command == '0') {
      digitalWrite(ledPin, LOW);
      Serial.println("LED éteinte");
    }
  }
}
Code Python :
import serial
import time

# Définir le port série
port = '/dev/ttyUSB0'

# Initialiser la communication série avec Arduino
arduino = serial.Serial(port, 9600, timeout=1)
time.sleep(2)

# Allumer la LED
arduino.write(b'1')
time.sleep(1)

# Éteindre la LED
arduino.write(b'0')
time.sleep(1)

# Fermer la connexion
arduino.close()

Exemple 2 : Lire les données d’un capteur avec Python

Dans cet exemple, nous allons lire les données d’un capteur analogique (par exemple, un potentiomètre) connecté à l’Arduino et les afficher en utilisant Python.

  • Connectez un potentiomètre entre 5V et GND de l’Arduino, et connectez la patte du milieu à l’entrée analogique A0 de l’Arduino.
Schéma de câblage :
Code Arduino :
int sensorPin = A0;

void setup() {
  Serial.begin(9600);
}

void loop() {
  int sensorValue = analogRead(sensorPin);
  Serial.println(sensorValue);
  delay(1000);
}
Code Python :
import serial
import time

# Définir le port série
port = '/dev/ttyUSB0'

# Initialiser la communication série avec Arduino
arduino = serial.Serial(port, 9600, timeout=1)
time.sleep(2)

# Lire et afficher les données du capteur 5 fois
for _ in range(5):
    data = arduino.readline().strip().decode('utf-8')
    print("Valeur du capteur :", data)
    time.sleep(1)

# Fermer la connexion
arduino.close()

Ces exemples devraient vous donner un bon point de départ pour manipuler Arduino avec Python.

Voici quelques cas particuliers d’utilisation d’Arduino avec Python :

Cas Particulier 1 : Contrôle de Servomoteurs

Les servomoteurs sont des actionneurs largement utilisés dans les projets d’automatisation, de robotique et de modélisme. Ils sont idéaux pour contrôler des mécanismes comme des bras robotiques, des portes automatiques, etc.

Schéma de câblage :

  • Connectez le signal du servomoteur à un pin PWM de l’Arduino (par exemple, pin 9).
Code Arduino :
#include <Servo.h>

Servo myServo;

void setup() {
  myServo.attach(9);
  Serial.begin(9600);
}

void loop() {
  if (Serial.available() > 0) {
    int angle = Serial.parseInt();
    myServo.write(angle);
  }
}
Code Python :
import serial
import time

# Définir le port série
port = '/dev/ttyUSB0'

# Initialiser la communication série avec Arduino
arduino = serial.Serial(port, 9600, timeout=1)
time.sleep(2)

# Contrôler le servomoteur
for angle in range(0, 180, 10):
    arduino.write(str(angle).encode())
    time.sleep(1)

# Fermer la connexion
arduino.close()
Cas Particulier 2 : Surveillance à Distance avec un Capteur de Mouvement

Dans ce cas particulier, nous allons utiliser un capteur de mouvement connecté à l’Arduino pour détecter les mouvements, puis envoyer une alerte à un ordinateur distant via Python.

Schéma de câblage :
  • Connectez le capteur de mouvement au pin digital 2 de l’Arduino.
Code Arduino :
int motionSensorPin = 2;

void setup() {
  pinMode(motionSensorPin, INPUT);
  Serial.begin(9600);
}

void loop() {
  int motionDetected = digitalRead(motionSensorPin);
  if (motionDetected == HIGH) {
    Serial.println("Mouvement détecté !");
    delay(1000); // Délai pour éviter les alertes répétées
  }
}
Code Python :
import serial
import time

# Définir le port série
port = '/dev/ttyUSB0'

# Initialiser la communication série avec Arduino
arduino = serial.Serial(port, 9600, timeout=1)
time.sleep(2)

# Surveillance de mouvement
while True:
    data = arduino.readline().strip().decode('utf-8')
    if data == "Mouvement détecté !":
        print("Alerte: Mouvement détecté !")
    time.sleep(1)

# Fermer la connexion
arduino.close()

Ces cas particuliers illustrent la flexibilité d’Arduino combinée avec la puissance de Python pour créer des applications variées et utiles. Vous pouvez les personnaliser davantage pour répondre à des besoins spécifiques dans vos projets.

Conclusion

Dans ce tutoriel, nous avons exploré comment utiliser Arduino avec Python pour créer des projets interactifs. En combinant la flexibilité d’Arduino pour contrôler des périphériques électroniques avec la puissance de Python pour le traitement des données, vous pouvez créer une grande variété de projets intéressants. Amusez-vous à explorer et à expérimenter avec cette combinaison puissante de technologies !

Autres articles

Maîtriser l'utilisation de la méthode join en...
La méthode join en Python est un outil puissant pour...
Read more
Comment Gérer Efficacement le Budget Mariage avec...
Télécharger un modèle Excel automatisé de budget mariage automatisé avec...
Read more
Manipulation des Tableaux en Python avec Numpy
Numpy est une bibliothèque puissante et efficace pour la manipulation...
Read more

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *