Программы для взаимодействия Raspberry Pi с Arduino через последовательный порт



Если вы собрали робота (например такого — на базе контроллера Arduino ) и он принимает управляющие команды через последовательный порт, то возникает проблема — какую терминальную программу использовать.

Предположим, что для управления движением робота используется обработка стандартных WASD:

    int c;
    if(Serial.available()) {
        c = Serial.read();
        if(c == 'w') {
            action_state = ACT_MOVE;
            move_state = MOVE_FORWARD;
        }
        else if(c == 's') {
            action_state = ACT_MOVE;
            move_state = MOVE_BACWARD;
        }
        else if(c == 'a') {
            action_state = ACT_MOVE;
            move_state = MOVE_LEFT;
        }
        else if(c == 'd') {
            action_state = ACT_MOVE;
            move_state = MOVE_RIGHT;
        }
        else if(c == ' ') {
            action_state = ACT_MOVE;
            move_state = MOVE_STOP;
        }
        //...
    }

Под ОС Windows есть несколько замечательных терминальных программ:
Tera Term, TuTTY/PuTTY.

А если вы подключили Arduino/CraftDuino к одноплатнику Raspberry Pi, то тогда на выручку придут:
minicom

установка:

sudo apt-get install minicom

подключение:

minicom -b 9600 -o -D /dev/ttyAMA0
minicom -b 57600 -o -D /dev/ttyUSB0

Возможно, придётся сделать дополнительные настройки:

“Ctrl-A” “O” -> Serial port setup -> Hardware Flow Control : No

выход из программы:

“Ctrl-A” “x”

screen
— очень удобная и полезная утилита, например, при удаленном подключении к системе по ssh, а так же сворачивания в фон программ, которые сами этого не умеют, с возможностью последующего возврата к ним.

подключение:

screen /dev/ttyUSB0 57600

выход:

"Ctrl-A" "\"
"Ctrl-A" "k"

Видеоруководство по использованию screen (всего 2 минуты)

Ссылки
Minicom
How To Use Linux Screen

По теме
Общение с Arduino — программирование работы с COM-портом
Питание для Raspberry Pi
Установка операционной системы для Raspberry Pi
Программирование Arduino при помощи Raspberry Pi
Подключение модуля камеры к Raspberry Pi
Подключение Raspberry Pi к Wi-Fi
Подключение нескольких Arduino под Linux


Добавить комментарий

Arduino

Что такое Arduino?
Зачем мне Arduino?
Начало работы с Arduino
Для начинающих ардуинщиков
Радиодетали (точка входа для начинающих ардуинщиков)
Первые шаги с Arduino

Разделы

  1. Преимуществ нет, за исключением читабельности: тип bool обычно имеет размер 1 байт, как и uint8_t. Думаю, компилятор в обоих случаях…

  2. Добрый день! Я недавно начал изучать программирование под STM32 и ваши уроки просто бесценны! Хотел узнать зачем использовать переменную типа…

3D-печать AI Android Arduino Bluetooth CraftDuino DIY IDE iRobot Kinect LEGO OpenCV Open Source Python Raspberry Pi RoboCraft ROS swarm ИК автоматизация андроид балансировать бионика версия видео военный датчик дрон интерфейс камера кибервесна манипулятор машинное обучение наше нейронная сеть подводный пылесос работа распознавание робот робототехника светодиод сервомашинка собака управление ходить шаг за шагом шаговый двигатель шилд юмор

OpenCV
Робототехника
Будущее за бионическими роботами?
Нейронная сеть - введение