Проверка работы трекера в Мониторе порта
В версии [20190111] добавлен вывод в Монитор порта процесса инициализации устройств в функции Setup() скетча.
Ко мне пару раз обращались с такой проблемой, что скетч не доходил до основного цикла Loop(). Введение вывода процесса инициализации в Монитор порта позволило выявить проблему с инициализацией модулей сенсоров.
Для проверки работы трекера в Мониторе порта нужно сделать следующее:
Переподключите трекер. То есть выключите его и снова включите. Это необходимо в случае Pro Micro.
Выберите в Arduino IDE верный номер COM-порта и запустите Монитор порта.
Проверьте скорость 57600 (или 115200). Если скорость не та, исправьте и начните всё сначала.
В открывшемся окне Монитора порта вы должны увидеть непрерывный поток нетекстовых данных.
Для Arduino Nano и Arduino Pro Mini нажмите кнопку [ Reset ] на плате Arduino.
Введите в верхней строке команду: #o0 [Отправить]. Поток данных должен остановиться.
Вертикальной и горизонтальной полосами прокрутки найдите начало вывода в Монитор. Вы увидите протокол загрузки, похожий на этот:
Здесь можно увидеть:
Razor AHRS 5DOF [20190111] – версия прошитого скетча
SensorVariant 8 – версия прошитого варианта верхнего модуля “Head”
Bluetooth 1 – включено использования связи по Bluetooth
BaudRate 57600 – скорость обмена
BatteryControl 1 – включен контроль батареи
Umin 3.60 – напряжение батареи, ниже которого будет моргать светодиод на пине 13.
Head Sensor Init.. OK – эта строчка означает, что скетч не завис при инициализации верхнего модуля, о работе верхнего модуля из этой строчки нельзя делать выводы.
Neck Sensor Init.. OK, 5DOF mode - эта строчка означает намного больше - что трекер не завис при инициализации нижнего модуля GY-521, и нижний модуль ответил на инициализацию. То есть, резистор к нему подпаян верно, и все провода к нему тоже верно подключены.
Main loop: - эта строка означает, что трекер полностью выполнил функцию Setup() и дошёл до выполнения основного цикла Loop().
Теперь трекер может принимать и выполнять команды, в чём мы уже убедились на команде #o0.
Очень полезно проверить и команды #o1#osrt. Эти команды включают поток данных и задают вывод в текстовом виде некалиброванных значений датчиков верхнего модуля сенсоров:
При повороте верхнего модуля "Head" данные со всех трёх сенсоров должны изменяться.
В версии [20191019] появилась поддержка контроллеров ESP8266.
Проверку работы WiFi трекера на модуле Wemos D1 Mini я делал так:
В Arduino IDE нужно открыть Монитор порта [Ctrl+Shift+M] и задать скорость 57600 бод, как на странице Menu.h.
На экране видим непрерывный поток символов. Введём команду #o0 [Отправить], поток остановится. Очистим экран монитора кнопкой [Очистить вывод]. Нажмём кнопку Reset на модуле Wemos, а затем, когда польётся поток символов, снова остановим поток командой #o0 [Отправить]. Поток остановлен. Теперь полосами прокрутки влево и вверх найдём протокол выполнения функции Setup(), который при удачном подключении к сети WiFi должен выглядеть примерно так:
...
Razor AHRS 5DOF [20191019]
SensorVariant 8
Bluetooth 0
BaudRate 57600
BatteryControl 1
Umin 3.60
UseWiFi 1
(EEprom) SSID: TPlinkLAN
(EEprom) Port: 5550
-------------
Connecting to TPlinkLAN:
............
Connected!
LocalIP : 192.168.0.103
MacAddress : 84:F3:EB:59:EA:EF
SubnetMask : 255.255.255.0
GatewayIP : 192.168.0.1
SSID : TPlinkLAN
RSSI (dB) : -64
Broadcast IP : 192.168.0.255
UDP port : 5550
-------------
Connection status: 3
-------------
Head Sensor Init.. OK
Neck Sensor Init.. OK, 5DOF mode
Main loop:
.................