À utiliser avec le Raspberry Pi 3 et Zero W
Pour que la série fonctionne sur les GPIO 14 et 15, vous avez deux options. Désactivez complètement Bluetooth ou déplacez Bluetooth vers le mini-UART.
Désactiver Bluetooth
Si vous n’avez pas besoin d’utiliser Bluetooth, l’option la plus simple consiste simplement à le désactiver. Pour ce faire, modifiez le fichier de configuration de démarrage:
sudo nano /boot/config.txt
Et ajoutez la ligne suivante:
dtoverlay=pi3-disable-bt
Exécutez ensuite la commande suivante:
sudo systemctl disable hciuart
Redémarrez votre Pi et Bluetooth doit être désactivé, et la série sera mappée aux GPIO 14 et 15.
Déplacer Bluetooth vers mini-UART
Si vous avez toujours besoin de la fonctionnalité Bluetooth, modifiez votre fichier de configuration de démarrage:
sudo nano /boot/config.txt
Et ajoutez les lignes suivantes:
dtoverlay= pi3-miniuart-bt core_freq=250
N.B. Il est également nécessaire de modifier /lib/systemd/system/hciuart.service et de remplacer ttyAMA0 par ttyS0, sauf si vous avez un système avec des règles udev qui créent / dev / serial0 et / dev / serial1, auquel cas utilisez / dev / serial1 au lieu de cela, car ce sera toujours correct.
Une fois que vous avez désactivé ou déplacé le Bluetooth, il vous suffit d’activer la série à partir du menu raspi-config:
sudo raspi-config
Console série
Si vous souhaitez vous connecter à votre Pi via la console série de votre ordinateur, vous devrez vous procurer un câble DB9 Null Modem femelle à femelle et éventuellement un convertisseur USB vers série, selon que votre ordinateur dispose d’un port série ou pas.
Branchez le câble null modem sur le Serial HAT, puis le convertisseur USB vers série à l’autre extrémité du câble null modem. Enfin, branchez le câble USB sur votre ordinateur.
Le convertisseur USB vers série doit être Plug N ‘Play. Nous devons savoir quel port COM il utilise. Pour ce faire sous Windows 10, ouvrez le Gestionnaire de périphériques en cliquant avec le bouton droit sur l’icône de démarrage, puis en cliquant sur « Gestionnaire de périphériques ».
Avec le Gestionnaire de périphériques ouvert, vous devriez voir une section intitulée « Ports (COM & LPT) » Si vous étendez cette section, vous devriez voir quelque chose du genre « Port de communication USB-série (COM7) ». Le COM7 dans crochets, dans mon cas, est le port COM qu’il utilise.
Maintenant, nous connaissons le port COM, nous pouvons charger du mastic ou tout autre programme d’interface série et nous connecter à notre Pi. Assurez-vous que « Série » est sélectionné et que la « Ligne série » est la même que le port COM que vous avez obtenu du Gestionnaire de périphériques. Modifiez la vitesse (taux baude) sur 115200 et cliquez sur Ouvrir.
Maintenant que nous avons commencé la connexion série, nous pouvons allumer le Pi! Après quelques instants, vous devriez voir du texte couler dans la fenêtre de mastic et vous devriez finalement être invité à vous connecter.
Connexion d’un périphérique série
Si vous souhaitez communiquer avec un périphérique série, nous devons modifier le fichier de démarrage cmdline.txt. Avant de modifier ce fichier, c’est une bonne idée d’en faire une sauvegarde:
sudo cp /boot/cmdline.txt /boot/cmdline.txt.backup
Maintenant, nous pouvons éditer l’original:
sudo nano /boot/cmdline.txt
Vous devez ensuite supprimer le texte suivant:
console=serial0,115200
Maintenant que nous avons empêché le Pi d’utiliser la série pour sortir ses données de console, nous pouvons utiliser le port série avec notre propre appareil.
Nous avons un ancien ensemble de balances numériques avec un port série, je vais donc vous montrer à quel point il est facile de commencer à lire des données à partir d’un périphérique série.
À l’aide d’un câble null modem, connectez le périphérique série à la carte série HAT. J’ai utilisé un câble mâle à femelle ici.
Ensuite, il suffit d’écrire un petit script python pour obtenir les données de l’appareil:
import serial from time import sleep ser = serial.Serial( port="/dev/serial0", baudrate=9600, parity=serial.PARITY_NONE, stopbits=serial.STOPBITS_ONE, bytesize=serial.EIGHTBITS, timeout=0) print("connected to: " + ser.portstr) try: while True: line = ser.readline() if line: print line sleep(0.1) except: ser.close()
En fonction de votre périphérique série dépend les valeurs que vous aurez définies pour:
vitesse de transmission =
parité =
stopbits =
Lorsque j’exécute ce script, j’obtiens la sortie de mes échelles 🙂