← Усі інструменти

Пояснення повідомлень і помилок

Що означає повідомлення ArduPilot і що з ним робити

English

Пін кнопки або датчика обертів не можна використати

Не даєДалекомір, оптичний потік, камера, OSD та інші пристрої

Що пише ArduPilot:

Вхід кнопки (BTN_ENABLE 1, піни від BTN_PIN1 до BTN_PIN4) або датчик обертів, що читається з піна (RPMn_TYPE 1 чи 2), називає пін, який ArduPilot прочитати не може. «not set»: RPMn_PIN досі -1. «invalid»: на цій платі немає GPIO (пін загального призначення) з таким номером. «set SERVOn_FUNCTION=-1»: цей пін є виходом серво/мотора і досі працює як вихід. «RPM: Failed to attach to pin»: пін існує, але рахувати його імпульси не вдається.

Що робити: найімовірніше спершу

  1. Пін — один із виходів серво/моторів, і його не перетворено на GPIO.

    ПеревіртеПовідомлення називає вихід: «set SERVO9_FUNCTION=-1» — це вихід 9.

    ВиправтеЗадайте цьому SERVOn_FUNCTION -1 (GPIO) і перезавантажте: виходи стають пінами GPIO лише під час запуску.

  2. Оберти надходять від ESC, а не від датчика на піні, і RPMn_TYPE неправильний.

    ПеревіртеТипи 1 і 2 — лише для датчика Холла чи оптичного, під'єднаного до піна.

    ВиправтеЗадайте RPMn_TYPE 5 (телеметрія ESC) або 0, якщо бібліотекою RPM узагалі не користуєтеся.

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

    ВиправтеВізьміть номер GPIO з документації своєї плати або задайте BTN_ENABLE 0 (а невживаним пінам -1).

  4. «Failed to attach»: ту саму лінію переривання вже займає інший пін із таким самим номером на іншому порту.

    ВиправтеПеренесіть датчик на інший GPIO й задайте його в RPMn_PIN.

Список параметрів називає RPMn_TYPE 1 «Not Used», але код поводиться з ним точно як із 2 (GPIO), разом із перевіркою піна.

Параметри, на які варто глянути

ПараметрЩо це
BTN_ENABLEEnable button reporting
BTN_PIN1First button Pin
BTN_PIN2Second button Pin
RPM1_TYPERPM type
RPM1_PINInput pin number
RPM2_TYPERPM type
RPM2_PINInput pin number
SERVO9_FUNCTIONServo output function
Код, який це надсилає

BTN_PINN=N, set SERVON_FUNCTION=-1

libraries/AP_Button/AP_Button.cpp AP_Button::arming_checks() · Відкрити в ArduPilot Copter-4.7.1

RPMN_PIN not set

libraries/AP_RPM/AP_RPM.cpp AP_RPM::arming_checks() · Відкрити в ArduPilot Copter-4.7.1

RPMN_PIN=N invalid

libraries/AP_RPM/AP_RPM.cpp AP_RPM::arming_checks() · Відкрити в ArduPilot Copter-4.7.1

RPM: Failed to attach to pin N

libraries/AP_RPM/RPM_Pin.cpp AP_RPM_Pin::update() · Відкрити в ArduPilot Copter-4.7.1

І ще 2 повідомлень, що надсилаються з тих самих місць.

Тут написано для: Коптер, 4.6. В інструменті можна вибрати свій апарат і версію, побачити значення власних параметрів поруч із названими тут і перетягнути лог польоту, щоб отримати пояснення до кожного повідомлення в ньому.

Відкрити в інструменті