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
- Arduino Uno avec câble USB
- Python installé sur votre ordinateur (version 3.x recommandée)
- Arduino IDE installé
- 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");
}
}
}
- Ouvrez l'ide Arduino.
- Collez le code ci-dessus dans l'éditeur.
- Sélectionnez le bon Conseil et Port sous Outils menu.
- 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
- Connectez l'Arduino à votre ordinateur via USB.
- 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
).
- Mettre à jour le
port
Valeur dans le script Python pour correspondre au port de votre Arduino. - Exécutez le script Python à l'aide de la commande:
python your_script_name.py
- Observez la communication entre Python et Arduino dans le terminal et le moniteur série.
Applications de la communication Python-Arduino
- Automatisation des tâches matérielles (par exemple, activer les LED, contrôler les moteurs)
- Enregistrement des données du capteur dans un fichier ou une base de données
- Création de GUIS personnalisés pour des projets Arduino à l'aide de bibliothèques Python comme Tkinter ou Pyqt
- 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).
- Ajoutez un retard après l'ouverture de la connexion série (
-
UnicodeDecodeerror:
- Vérifiez l'encodage des données envoyées / reçues. Utiliser
.decode(errors='ignore')
si nécessaire.
- Vérifiez l'encodage des données envoyées / reçues. Utiliser
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!