Функція lineFollowConfig()
Клас RobotControl
lineFollowConfig()
Змінює параметри руху по лінії. Використовуйте цю функцію, якщо рух по лінії не працює, як очікувалося, або Ви хочете змінити швидкість робота під час руху по лінії.
Ця функція змінює “PD-алгоритми”, які дозволяють роботу думати, що може тратитися далі під час читання рядків. Робот намагається передбачати будь-які можливі помилки під час наступних зчитувань інфрачервоних датчиків та коректувати рухи відповідно, змінюючи швидкості кожного колеса окремо. Дивіться примітку нижче для розгорнутішого пояснення.
Синтаксис
Robot.lineFollowConfig(KP,KD,robotSpeed,intergrationTime)Параметри
KP: int, пропорційний коефіцієнтKD: int, диференціальний коефіцієнт
integrationTime: int, затримка між кожним запуском алгоритму у мс
robotSpeed: int, між 0 та 100, визначає відсоткову швидкість двигунів
Повертає
нічогоПриклади
#include <ArduinoRobot.h>
long timer;
void setup(){
Robot.begin();
Robot.beginLCD();
delay(3000);
Robot.lineFollowConfig(11,5,50,10);// встановити параметри PID
Robot.setMode(MODE_LINE_FOLLOW);
timer=millis();
while(!Robot.isActionDone()){
// призупиняє режим руху по лінії на 3 секунди кожні 5 секунд
if(millis()-timer>=5000){
Robot.pauseMode(true);
delay(3000);
Robot.pauseMode(false);
timer=millis();
}
Robot.debugPrint(millis());
}
Robot.text("Виконано!",0,10,true);
while(true);
}
void loop(){
}Примітка
У функції KP допомагає роботу рухатися по лінії, а KD гасить коливання робота.Щоб знайти хороші значення для них, потрібні деякі експерименти, щоб знайти хорошу пару значень. Тест-приклад перелічений нижче:
- Налаштуйте KP 5, KD 0, виберіть швидкість робота. Встановіть intergrationTime 10.
- Запустіть рух робота по лінії на треку.
- Якщо робот виходить за межі трек, збільшіть KP на 1.
- Повторюйте, поки робот не рухатиметься прямо по лінії. Зупиніть зміну KP, коли рух вже не покращується.
- Збільшіть KD на 1.
- Запустіть робота, зверніть увагу, чи робот коливається менше.
- Продовжуйте збільшувати KD на 1, поки не перестане покращуватися.
- Коли робот рухатиметься по лінії без виходу за межі, регулювання завершено. Зніміть числа, щоб використовувати їх у майбутньому.
Повернутись до головної

Коментарі 0