RPi2 UART Проблемы с настройкой и эксплуатацией

В настоящее время я занят своим магистерским проектом, который включает в себя настройку связи на UART между Raspberry Pi Model 2 B V1.1 и контроллером полета Pixhawk с использованием протокола Mavlink.

Первый шаг - это, конечно, настроить UART и работать. Я не из тех, кто бежит за помощью при первых признаках проблемы. Я боролся с этим в течение многих дней, и это заставляло меня сомневаться в цели моего существования не раз. Я чувствую себя глупо и разочарован. Посмотрите, можете ли вы оказать какую-либо помощь.

Моим первым ресурсом был этот урок, который должен быть относительно простым:

http://ardupilot.org/dev/docs/raspberry-pi-via-mavlink.html

Учебное пособие просто устанавливает все необходимые пакеты и зависимости, а также настраивает UART. Я следовал инструкциям, чтобы отключить использование ОС последовательного порта через raspi-config, однако после попытки проверить соединение я получаю сообщение об ошибке:

[Errno 2] Нет такого файла или каталога: '/dev/ttyAMA0'

Что очень странно. Таким образом, после отключения и включения использования ОС последовательного порта через rasp-config несколько раз и проверки, каждый раз, когда я отключаю его, файл / dev / ttyAMA0 исчезает. Теперь, как, черт возьми, все должно работать на UART, если отключение ОС для использования UART удаляет этот файл!? Тем не менее я получил питание. Я разрешил ОС использовать последовательный порт, который оставляет файл ttyAMA0 там, где он находится, и последовал другому предложению, а именно: изменить /boot/cmdline.txt и удалить все ссылки на ttyAMA0, как показано в следующей ссылке:

http://www.raspberry-projects.com/pi/pi-operating-systems/raspbian/io-pins-raspbian/uart-pins

Казалось, это работает хорошо. Теперь я мог бы инициировать связь между RPi и контроллером полета Pixhawk и получить некоторую информацию, которая выглядела правильно. Затем началась черная магия. На следующий день я проверил соединение, и оно постоянно выплевывало полный мусор. Но ничего не изменилось с предыдущего дня. Где-то я должен что-то упустить. Я следовал всем тем же учебным пособиям и шагам, пытаясь получить более положительные результаты, которые я получил в предыдущий день. Однако это только привело к более неустойчивому поведению. При подключении последовательных линий к моему контроллеру Pixhawk, клавиатура / мышь, кажется, время от времени прерывается. Все просто пошло в обратном направлении. Я уже переустанавливал Raspbian Jessie в отчаянной попытке заставить вещи работать.

Вот несколько вещей, которые, я подозреваю, могут способствовать возникновению проблем:

  1. Неверная скорость передачи (для связи с моим Flight Controller скорость передачи должна быть 57600). Лучший способ установить скорость передачи данных - добавить init_uart_baud=57600 в /boot/config.txt/. Я также читал о других способах, таких как добавление строки в /etc/crontab. Какие-либо предложения?

  2. Pixhawk чудом и время от времени отказывался общаться с RPi.

Любая помощь будет оценена. Спасибо.

2 ответа

РЕШИТЬ:

Похоже, известная ошибка в последней версии Rasbian, которую легко исправить.

Это нужно сделать как пользователь root.

  1. Отключите "последовательную консоль" через настройки GUI или "sudo raspi-config". Затем перезагрузите пи.

  2. Затем измените следующую строку в файле /boot/config.txt внизу файла из:

enable_uart = 0 для enable_uart=1

  1. Отключите службу ModemMonitor, выполнив в качестве пользователя root следующую команду:

systemctl отключить ModemManager.service

  1. Затем добавьте себя в группу dialout, просто чтобы убедиться, что у вас есть необходимые разрешения для последовательного порта:

Adduser Pi Dialout

Это должно дать вам неограниченный доступ к последовательному порту.

Ресурсы: [url] https://www.raspberrypi.org/forums/viewtopic.php?f=66&t=148515[/url] и [url] https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=82779[/url]

Я исследовал это в течение нескольких дней и устранял неполадки во всех чтениях, перечисленных на сайтах Google. Я решил установить параметры последовательного UART для подключения моего RPi3 Model B (набрал в командной строке следующее:

`cat /proc/cpuinfo` 

найти информацию об оборудовании Pixhawk.)

К вашему сведению: вы должны быть пользователем root при работе с mavproxy, sudo su или же sudo -s

Кроме того, вы должны быть членом группы дозвона, поэтому сделайте это в строке CMD: sudo usermod -a -G dialout root (включите пользователя root!)

  • Делайте все RPi обычные вещи: sudo apt-get update && sudo apt-get upgrade а также sudo rpi-update,
  • Сделал все как указано на сайте Ardupilot. Я НЕ использовал "apsync-rpi". (Я использовал 2017-03-02-raspbian-jessie.img.) Здесь
  • На моем RPi3, используя $uname -a: результаты -> Linux raspberrypi 4.4.50-v7+
  • мой $sudo nano /boot/config.txt файл имеет одно изменение внизу файла; Это утверждение: enable_uart=1 (имеет хороший побочный эффект, заставляя core_freq равным 250, что уменьшает плохую частоту сигнала)
  • Важное открытие: поэтому в статьях говорится, что настройки RPI3 UART и tty изменились. ( ссылка здесь) После долгих церемоний я обнаружил, что это для моего sudo nano /boot/cmdline.txt файл:dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 так далее.,.
    -Примечание, я не использую ttyS0 в файле /boot/cmdline.txt. Я пробовал ttyS0 десятки раз, и он никогда не работал должным образом. По какой-то причине я не могу сейчас это объяснить, хотя console=/dev/tty1 работает, если написано в /boot/cmdline.txt файл.

    • Убедитесь, что у вас правильная проводка между вашим RPi и Pixhawk.
    • Telem 2. Также установите правильные параметры в планировщике миссий, как у меня; Перейдите в КОНФИГУЛИРОВКА-> СТАНДАРТНЫЕ ПАРАМЕТРЫ; (мои настройки)

    • -Скорость последовательного 0 (SERIALO_PROTOCOL) составляет: 115200 -Подбор протокола консоли (SERIAL0_PROTOCOL): MAVlink1 -Темба 1, скорость передачи (SERIAL1_BAUD) составляет: 115200 -Подбор протокола TELEM1 (SERIAL1_PROTOCOL) 2_Bell2_Bell2 921600 - выбор протокола телеметрии 2 (SERIAL2_PROTOCOL) - MAVlink1

RPi и pixhawk обмениваются данными со скоростью 921600 бод.

-После того как я включаю RPi3 с собственного источника +5/VCC и подключаюсь к своему MP с помощью USB-кабеля 3.0 от моего ПК-Windows10PRo, (ладно, у меня есть дистрибутивы Arch и Debian Linux и операционные системы Apple!):

 `mavproxy.py --master=/dev/ttyS0  --baudrate 921600 --aircraft Plane`

Меня устраивает! Приятных экспериментов и полетов!

Другие вопросы по тегам