Сен 072014
 

Скрипт arduino-serial.sh:

#!/bin/sh
#Последовательный порт, через который работаем с ардуиной
usbPort="/dev/ttyUSB0"
#Устанавливаем параметры последовательного порта
stty -F $usbPort 9600 raw 9600 -echo -cstopb
#Через две секунды, если порт существует, посылаем данные в порт. А сами продолжаем выполнение скрипта
sleep 2 && test -e $usbPort && echo "$1" | dd of=$usbPort 1>/dev/null 2>/dev/null &
#Читаем одну строку из порта
head -n 1 $usbPort

При запуске скрипта, в параметре передаем строку, которую оправим ардуине:

./arduino-serial.sh test

Через две секунды скрипт выведет в консоль то, что ответила ардуина.

Основное отличие от того что советуют на многих форумах – мы пишем и читаем из порта одним скриптом. Для этого сначала открываем порт на чтение программой head и ждем строку данных, а уж только после этого отправляем в порт запрос.

Строка которую отправит ардуина в последовательны порт обязательно должна оканчиваться символом переноса (метод Serial.println как раз то что нужно ;) )!

 Опубликовано в 01:47