Schrijf eens iets naar je seriële poort
23-11-2021
serieel
Stuur vanuit een Bash-script iets via de seriële poort naar de Arduino.Soms moet je vanuit een shell-script iets naar de aan je PC (via USB) aangesloten Arduino sturen. Stappenplan:
1. Prepareer de hardware
Het script heeft dan nog deze twee stappen:
2. Zoek de seriële poort op waar de Arduino aan hangt.
3. Schrijf een bericht naar de gevonden seriële poort.
Prepareer de hardware
Zet een elco (minimaal 10μF, maar ik had er nog een van 100μF liggen) tussen de reset-pen en GND op de Arduino. Dit is nodig om te voorkomen dat de Arduino zich reset als je vanuit de PC de seriële poort opent.
Script
ls /dev/ttyACM* | head -n 1
vindt de eerste de beste Arduino (UNO of Mega). Voor een WeMos-type zul je ttyUSB* moeten gebruiken als zoekstring.Run het script met een parameter, bijvoorbeeld:
serieel 'Hallo Wereld'
#!/bin/bash
#Gebruik: serieel iets
POORT=$(ls /dev/ttyACM* | head -n 1)
echo "Poort=$POORT"
if [ ${#POORT} -eq 12 ]
then
echo "OK. Poort=$POORT Te versturen=$1"
stty -F $POORT 115200
echo -e $1 >> $POORT
fi
Opmerkingen: de baudrate van de Arduino is 115200 (
Serial.begin(115200);
staat in de setup) en stty is aanwezig (sudo apt install stty
).