Добрый вечер, вопрос: Подключаю Arduino к raspb, на плате Raspbian Т.к. в Линуксе все является файлами, хотелось бы через терминал отправлять и принимать данные ( bash command) на ардуине что-то из серии Код (C++): char x= Serial.read(); if(x!=-1) Serial.print(x); Заранее всем спасибо.
я собираюсь в java это оборачивать совершенно не понятно, read /dev/ttyMyPort < my-data совершенно не работает
Как у Вас обстоит дело с доступностью.У меня на линукс машине есть вот это: Код (Bash): www-data@Moxa:~$ ls /dev/tty* -al crwxrwxrwx 1 root root 5, 0 Jan 1 1970 /dev/tty crwxrwxrwx 1 root root 4, 0 Jan 1 1970 /dev/tty0 crwxrwxrwx 1 root root 4, 1 Jan 1 1970 /dev/tty1 crwxrwxrwx 1 root root 4, 2 Jan 1 1970 /dev/tty2 crwxrwxrwx 1 root root 4, 3 Jan 1 1970 /dev/tty3 crwxrwxrwx 1 root root 4, 4 Jan 1 1970 /dev/tty4 crwxrwxrwx 1 root root 4, 5 Jan 1 1970 /dev/tty5 crwxrwxrwx 1 root root 4, 6 Jan 1 1970 /dev/tty6 crwxrwxrwx 1 root root 4, 7 Jan 1 1970 /dev/tty7 crwxrwxrwx 1 root root 4, 8 Jan 1 1970 /dev/tty8 crwxrwxrwx 1 root root 4, 9 Jan 1 1970 /dev/tty9 crw-r--r-- 1 root root 30, 0 Feb 7 2007 /dev/ttyM0 crw-r--r-- 1 root root 30, 1 Feb 7 2007 /dev/ttyM1 crwxrwxrwx 1 root root 4, 64 Jan 1 1970 /dev/ttyS0 crwxrwxrwx 1 root root 3, 0 Dec 9 21:11 /dev/ttyp0 crwxrwxrwx 1 root root 3, 1 Dec 9 21:16 /dev/ttyp1 crwxrwxrwx 1 root root 3, 2 Jan 1 1970 /dev/ttyp2 crwxrwxrwx 1 root root 3, 3 Jan 1 1970 /dev/ttyp3 crwxrwxrwx 1 root root 3, 4 Jan 1 1970 /dev/ttyp4 crwxrwxrwx 1 root root 3, 5 Jan 1 1970 /dev/ttyp5 crwxrwxrwx 1 root root 3, 6 Jan 1 1970 /dev/ttyp6 crwxrwxrwx 1 root root 3, 7 Jan 1 1970 /dev/ttyp7 crwxrwxrwx 1 root root 3, 8 Jan 1 1970 /dev/ttyp8 crwxrwxrwx 1 root root 3, 9 Jan 1 1970 /dev/ttyp9 www-data@Moxa:~$ как видите (посмотрите на /dev/ttyM0 и /dev/ttyM1) писать в устройство может только root. Для других толькко чтение дозволено. Проверьте свой порт... точнее разрешения.
посмотрите на описание "read" Код (Bash): read: usage: read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...] А применять так: Код (Bash): read -t 10 $dat </dev/ttyXX & #с ожиданием 10 секунд... вдруг ничего не придёт echo "$dat" Если просто read без "&" то "повиснем" на этой строчке пока что-то не придёт А там где echo $dat должен быть разумный цикл проверки содержимого $dat, который изначально инициализируется как "" Вашим скриптом. Кстати вот: http://rus-linux.net/nlib.php?name=/MyLDP/BOOKS/Bash-Guide-1.12-ru/bash-guide-08-2.html Тут точно актуально в отличии от возможно ошибочного моего высказывания... оооооооочень давно не пользовался именно этой функцией
Послать символ на arduino Код (Bash): $echo Q > /dev/ttyACM0 Принимать символы: Ставим Код (Bash): sudo apt-get install picocom Открываем два терминала. В первом устанавливаем связь Код (Bash): nohup picocom /dev/ttyACM0 -b 115200 -l и оставляем окно открытое Во втором терминале даем команду на чтение Код (Bash): cat /dev/ttyACM0 и ничего не трогаем. Arduino шлет символы и видит их во второй терминале. Также можно записывать вывод в текстовый файл. Код (Bash): cat /dev/ttyACM0 >> 1.txt Подробнее у меня на Линукс форуме. https://forum.altlinux.org/index.php?topic=36563.msg282487#msg282487 Но проще надежней работать на Pynhon Управляем светодиодом