Вхідний пін далекоміра не задано, або ним не можна користуватися
Що пише ArduPilot:
- RNGFNDN_PIN=N, set SERVON_FUNCTION=-1
- RNGFNDN_PIN not set
- RNGFNDN_PIN=N invalid
Аналоговий далекомір (RNGFNDn_TYPE 1) або PWM (5 чи 22) читається через пін польотного контролера, названий у RNGFNDn_PIN. «not set» означає, що параметр досі -1. Датчику PWM ще й потрібно, щоб пін був вільним GPIO (пін загального призначення): «invalid» означає, що на цій платі немає піна з таким номером, а «set SERVOn_FUNCTION=-1» — що цей пін є виходом серво/мотора і досі працює як вихід.
Що робити: найімовірніше спершу
Датчик зовсім не аналоговий і не PWM: послідовному чи I2C-лідару задали не той тип.
ПеревіртеТипи 1, 5 і 22 — лише для датчиків, що видають напругу або ширину імпульсу одним сигнальним дротом.
ВиправтеЗадайте
RNGFNDn_TYPEтип саме вашого датчика (20 для TFmini чи TF-Luna на UART) і перезавантажте.RNGFNDn_PINніколи не задавали.ВиправтеЗадайте
RNGFNDn_PINпін, на якому сидить сигнальний дріт: номер аналогового входу для аналогового датчика, номер GPIO — для PWM. Обидва списки є на сторінці вашої плати в документації ArduPilot.Пін — один із виходів серво/моторів і досі налаштований як вихід.
ПеревіртеПовідомлення називає вихід: «set
SERVO9_FUNCTION=-1» — це вихід 9.ВиправтеЗадайте цьому
SERVOn_FUNCTION-1 (GPIO) і перезавантажте: виходи стають пінами GPIO лише під час запуску. До цього виходу не має бути під'єднано нічого іншого (мотор, серво).Піна з таким номером на цій платі немає: значення скопійовано з параметрів іншої плати.
ВиправтеВізьміть номер піна з документації саме вашої плати; на різних платах номери різні.
Параметри, на які варто глянути
| Параметр | Що це |
|---|---|
RNGFND1_TYPE | Rangefinder type |
RNGFND1_PIN | Rangefinder pin |
RNGFND2_TYPE | Rangefinder type |
RNGFND2_PIN | Rangefinder pin |
SERVO9_FUNCTION | Servo output function |
SERVO10_FUNCTION | Servo output function |
Де це зробити:Планувальник плати й підключення
Код, який це надсилає
RNGFNDN_PIN=N, set SERVON_FUNCTION=-1
libraries/AP_RangeFinder/AP_RangeFinder.cpp RangeFinder::prearm_healthy() · Відкрити в ArduPilot Copter-4.7.1
RNGFNDN_PIN not set
libraries/AP_RangeFinder/AP_RangeFinder.cpp RangeFinder::prearm_healthy() · Відкрити в ArduPilot Copter-4.7.1
RNGFNDN_PIN=N invalid
libraries/AP_RangeFinder/AP_RangeFinder.cpp RangeFinder::prearm_healthy() · Відкрити в ArduPilot Copter-4.7.1