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 в отчаянной попытке заставить вещи работать.
Вот несколько вещей, которые, я подозреваю, могут способствовать возникновению проблем:
Неверная скорость передачи (для связи с моим Flight Controller скорость передачи должна быть 57600). Лучший способ установить скорость передачи данных - добавить init_uart_baud=57600 в /boot/config.txt/. Я также читал о других способах, таких как добавление строки в /etc/crontab. Какие-либо предложения?
Pixhawk чудом и время от времени отказывался общаться с RPi.
Любая помощь будет оценена. Спасибо.
2 ответа
РЕШИТЬ:
Похоже, известная ошибка в последней версии Rasbian, которую легко исправить.
Это нужно сделать как пользователь root.
Отключите "последовательную консоль" через настройки GUI или "sudo raspi-config". Затем перезагрузите пи.
Затем измените следующую строку в файле /boot/config.txt внизу файла из:
enable_uart = 0 для enable_uart=1
- Отключите службу ModemMonitor, выполнив в качестве пользователя root следующую команду:
systemctl отключить ModemManager.service
- Затем добавьте себя в группу 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`
Меня устраивает! Приятных экспериментов и полетов!