Arduino:Библиотеки/Robot/Класс Robot/lineFollowConfig()
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Функция lineFollowConfig()[1]
Меняет параметры того, как Arduino Robot движется по линии.
Используйте эту функцию, если при движении по линии возникают какие-то проблемы, или для того, чтобы увеличить скорость робота во время движения по линии.
Эта функция меняет «ПИД-алгоритм», чтобы робот мог предугадывать ошибки ИК-датчиков при анализе линии, по которой он движется, и соответствующим образом корректировать скорость своих колес (каждое колесо корректируется отдельно).
Более подробно читайте в примечании ниже.
Синтаксис
Robot.lineFollowConfig(KP,KD,robotSpeed,intergrationTime)
Параметры
KP – пропорциональный коэффициент. Тип данных – int
KD – дифференцирующий коэффициент. Тип данных – int
integrationTime – задержка перед каждым новым запуском алгоритма (в миллисекундах). Тип данных – int
robotSpeed – скорость моторов (в процентах) в диапазоне от «0» до «100». Тип данных – int
Что возвращает
Ничего.
Пример
#include <ArduinoRobot.h>
long timer;
void setup(){
Robot.begin();
Robot.beginLCD();
delay(3000);
Robot.lineFollowConfig(11,5,50,10);// задаем параметры ПИД-алгоритма
Robot.setMode(MODE_LINE_FOLLOW);
timer=millis();
while(!Robot.isActionDone()){
// каждые 5 секунд останавливает движение по линии на 3 секунды
if(millis()-timer>=5000){
Robot.pauseMode(true);
delay(3000);
Robot.pauseMode(false);
timer=millis();
}
Robot.debugPrint(millis());
}
Robot.text("Done!",0,10,true); // "Готово!"
while(true);
}
void loop(){
}
Примечание
В этой функции параметр KP отвечает за то, чтобы робот следил за линией, а KD – за ослабление колебаний робота.
Чтобы подобрать для этих параметров подходящие значения, потребуется, возможно, немного поэкспериментировать. Можно воспользоваться, к примеру, этой инструкцией:
- Выставьте KP на «5», а KD – на «0». Задайте какую-нибудь скорость. Параметр integrationTime выставьте на «10».
- Запустите робота по линии.
- Если робот съезжает с линии, увеличьте KP на единицу.
- Повторяйте третий пункт, пока способность робота придерживаться линии не достигнет предела.
- Увеличьте KD на единицу.
- Запустите робота и обратите внимание, не раскачивается ли он.
- Если раскачивается, увеличьте KD на единицу. Повторяйте это, раскачивание не снизится до предела.
- Если робот, наконец, не съезжает с линии и не раскачивается, значит, настройка завершена. Запишите эти значения, чтобы использовать их в будущем.
См.также
- setMode()
- pauseMode()
- isActionDone()
Внешние ссылки
Arduino продукты | |
---|---|
Начальный уровень | Arduino Uno • Arduino Leonardo • Arduino 101 • Arduino Robot • Arduino Esplora • Arduino Micro • Arduino Nano • Arduino Mini • Arduino Starter Kit • Arduino Basic Kit • MKR2UNO • TFT-дисплей Arduino |
Продвинутые функции | Arduino Mega 2560 • Arduino Zero • Arduino Due • Arduino Mega ADK • Arduino Pro • Arduino Motor Shield • Arduino USB Host Shield • Arduino Proto Shield • MKR Proto Shield • MKR Proto Large Shield • Arduino ISP • Arduino USB 2 Serial Micro • Arduino Mini USB Serial Adapter |
Интернет вещей | Arduino Yun • Arduino Ethernet • Arduino MKR1000 • Arduino WiFi 101 Shield • Arduino GSM Shield V2 • Arduino WiFi Shield • Arduino Wireless SD Shield • Arduino Wireless Proto Shield • Arduino Ethernet Shield V2 • Arduino Yun Shield • Arduino MKR1000 Bundle |
Носимые устройства | Arduino Gemma • Lilypad Arduino Simple • Lilypad Arduino Main Board • Lilypad Arduino USB • LilyPad Arduino SimpleSnap |
3D-печать | Arduino Materia 101 |
Устаревшие устройства | - |
Примеры Arduino | |
---|---|
Стандартные функции | |
Основы |
|
Цифровой сигнал |
|
Аналоговый сигнал |
|
Связь |
|
Управляющие структуры |
|
Датчики |
|
Дисплей |
Примеры, объясняющие основы управления дисплеем:
|
Строки |
|
USB (для Leonardo, Micro и Due плат) |
В этой секции имеют место примеры, которые демонстрируют использование библиотек, уникальных для плат Leonardo, Micro и Due.
|
Клавиатура |
|
Мышь |
|
Разное |