🛠 Interfacer des périphériques industriels sur le MS-U320

BIOSTAR EdgeComp MS-U320 : Mini PC industriel sans ventilateur Intel Wildcat Lake · avance · Configurez les ports série et GPIO pour connecter des capteurs et afficheurs via Linux sur le EdgeComp MS-U320.

Objectifs

Ce tutoriel avancé vise à maîtriser les interfaces d'entrée/sortie du BIOSTAR EdgeComp MS-U320. Contrairement aux cartes de développement classiques, ce mini PC industriel ne dispose pas de broches GPIO physiques exposées directement sur le PCB. L'objectif est donc d'exploiter les quatre ports série COM (RS232/422/485) pour communiquer avec des automates, des capteurs industriels ou des afficheurs séquentiels. Nous apprendrons à configurer les paramètres de la ligne série (baudrate, parité) et à envoyer des commandes via des scripts Python sous Ubuntu 24.04.

Matériel nécessaire

Étapes

Connectez-vous en SSH. Les ports COM physiques sont généralement mappés sur /dev/ttyS0 à /dev/ttyS3. Vérifiez leur présence : ``bash ls -l /dev/ttyS* `` Si les ports n'apparaissent pas, installez les pilotes spécifiques BIOSTAR pour le chipset série virtuel ou physique.

  1. Identification des ports série

Par défaut, seul root peut accéder aux ports série. Ajoutez votre utilisateur au groupe dialout : ``bash sudo usermod -aG dialout $USER `` Déconnectez-vous et reconnectez-vous pour appliquer les changements.

  1. Configuration des permissions

Installez pyserial pour manipuler les ports série en Python : ``bash sudo apt update sudo apt install python3-pip pip3 install pyserial ``

  1. Installation des bibliothèques de communication

Créez un fichier send_data.py pour envoyer une commande à un périphérique connecté sur COM1 (/dev/ttyS0). Exemple pour un afficheur ou un capteur simple : ```python import serial import time

  1. Script d'envoi de données

# Configuration du port série (RS232 standard) ser = serial.Serial( port='/dev/ttyS0', baudrate=9600, bytesize=serial.EIGHTBITS, parity=serial.PARITY_NONE, stopbits=serial.STOPBITS_ONE, timeout=1 )

if ser.is_open: print("Port série ouvert") # Envoyer une commande ASCII (ex: afficher 'Hello Industrial') command = b"Hello Industrial\r\n" ser.write(command)

# Lire une réponse si le périphérique envoie des données time.sleep(0.5) if ser.in_waiting > 0: response = ser.read(ser.in_waiting) print(f"Réponse: {response.decode('utf-8', errors='ignore')}")

ser.close() else: print("Impossible d'ouvrir le port") ```

Lancez le script : ``bash python3 send_data.py `` Observez la communication. Pour le RS485, assurez-vous que le convertisseur est en mode Half-Duplex si nécessaire.

  1. Exécution et test

Vérification

Le script doit s'exécuter sans erreur de permission. Si le périphérique répond, le message "Réponse:" s'affiche dans le terminal. En cas d'échec, vérifiez le câblage (TX/RX croisés pour RS232) et le baudrate correspondant à celui du périphérique.

Pour aller plus loin

Explorez le protocole Modbus RTU sur les ports série pour dialoguer avec des automates programmables industriels (API). Utilisez la bibliothèque pymodbus pour lire des registres de capteurs. Notez que l'absence de GPIO natif oblige à utiliser des modules d'E/S connectés via USB ou les ports série pour le contrôle de relais ou de LEDs.

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels