Здесь и сейчас не будет ничего сказано из того, что есть в интернете. Меня заинтересовало, как я могу принимать вывод с Arduino UNO R3 на Raspberry Pi 3 Model B+, т. е. К примеру в скетче исполняется код которые на выходе получает значения по датчикам и вот эти значения я хочу видеть в консоли командной строки raspberry дабы потом их анализировать, визуализировать. Вот как то та я себе представляю данную задумку. В процесс поиска информации на этот счет наткнулся на Youtube видео, где автор показывал, как такую задумку реализовать. Ниже я для себя все записал самолично выполнив все, мне так удобнее когда перед глазами есть пошаговая реальная заметка, а уже на ее основе я строю что-то еще. Чем смотреть видео где автор что-то мямлит, в носу ковыряется и т.д
Схема: все то же самое что и в заметке: «Соединяем Raspberry Pi 3 и Arduino UNO R3»
Arduino UNO R3 — usb — raspberry pi 3 Model B+ – ethernet — Mikrotik – ноутбук
Ниже мои действия:
Подключаюсь по VNC к Raspberry Pi 3 Model B+, устанавливаю среду разработки Arduino IDE
Запускаю среду разработки Arduino IDE
пишу скетч:
void setup(){
Serial.begin(9600);
}
void loop(){
Serial.printIn("Hello");
delay(1000);
}
Нажимаю проверить, но в ответ получаю ошибку:
А что не так, почему везде сообщения об ошибках пишутся таким загадочным образом, что не поймешь что и где случилось не-то.
А разобрался проблема была в неправильно написанной команде:
было: Serial.printIn
а нужно: Serial.println
После исправления все заработало.
Далее скачиваю python и скрипт через который вывод в консольный порт от Arduino будет перенаправлен в консоль командной строки Raspberry:
pi@raspberrypi:~ $ sudo apt-get install python python-serial -y
pi@raspberrypi:~ $ wget https://raw.githubusercontent.com/tbird20d/grabserial/master/grabserial grabserial
После запускаю скачанный скрипт и натравливаю его на подключение Arduino UNO R3 и Raspberry Pi 3 Model B друг с другом через Usb кабель:
pi@raspberrypi:~ $ python grabserial -v -d /dev/ttyACM0 -b 9600 -w 8 -p N -s 1 -o /home/pi/seriallog.txt
Opening serial port /dev/ttyACM0
9600:8N1:xonxoff=0:rtscts=0
Saving data to '/home/pi/seriallog.txt'
Use Control-C to stop...
Hllo
Hello
Hello
Помимо того факта что с последовательного порта все отображается на консоли ,так и происходит запись в файл:
pi@raspberrypi:~ $ cat seriallog.txt
Hllo
Hello
Hello
Вывод на консоль в режиме реального времени с указанием текущей даты и времени и вывода:
pi@raspberrypi:~ $ sudo apt-get install moreutils -y
pi@raspberrypi:~ $ python grabserial -v -d /dev/ttyACM0 -b 9600 -w 8 -p N -s 1 | ts
Mar 27 10:07:40 Opening serial port /dev/ttyACM0
Mar 27 10:07:40 9600:8N1:xonxoff=0:rtscts=0
Mar 27 10:07:40 Use Control-C to stop...
Mar 27 10:07:40 Hello
Mar 27 10:07:41 Hello
Mar 27 10:07:42 Hello
^C
Вот и отлично, написанный скетч на Arduino UNO R3 записываем в последовательный вход слово hello, а посредством скрипта выше мы с Raspberry Pi 3 Model B+ считываем все что идет на последовательный порт. Работает. Теперь у меня есть шпаргалка на будущее использование. А пока я прощаюсь, с уважением автор блога Олло Александр aka ekzorchik.