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).

Hoe te gebruiken

Zet het script in een bestand serieel en maak het uitvoerbaar met:
chmod +x serieel
Run het script vanuit een terminalvenster:
./serieel

Automatisch

Zet dit script in crontab zodat het automatisch periodiek wordt uitgevoerd:
crontab -e
Bekijk 22 meer scripts
 
×