Описание этапов программирования робота

(1)START(1, 2);

С функции START должна начинаться любая программа для нашего робота. Она инициирует робота и имеет два параметра, которые указываются в скобках через запятую. Функция может оказаться полезной для отладки.

Параметры:

1 - отвечает за сигнальный звук при прохождении каждого пересечения. Может иметь два значения:

0 -сигнальный звук отключён

1 -сигнальный звук включён

2 – устанавливает время обнаружения сенсорами необходимого пересечения, для подачи сигнального звука. Значение задаётся от 0 до 1000 миллисекунд (1000 миллисекунд = 1 секунда). Рекомендуется при первых испытаниях устанавливать значение от 130 до 300. Назовём этот параметр CROSS TIMER, так как потом нам придётся на него ссылаться.

(2)LINECOLOR(1);

Функция устанавливает цвет линии, по которой едет робот.

Параметры:

1 – цвет линии. Может иметь два значения:

BLACK – цвет линии чёрный

WHITE – цвет линии белый

(3)SENSOR(1);

Поскольку сенсорную панель можно установить как спереди так сзади главной панели необходимо указать где находится сенсорная панель. За это и отвечает функция SENSOR.

Параметры:

1 – выбор расположения сенсорной панели:

FRONT - сенсорная панель находится спереди

REAR - сенсорная панель находится сзади

*примечание: на главной панели робота есть подписи FRONT и REAR чтобы было проще ориентироваться куда вы прикрепили сенсорную панель.

(4)ERROR(1, 2);

Во время прохождения линии могут выйти случаи, когда робот выйдет за пределы трассы. В таких ситуациях он может продолжить работать и попасть в «аварию», получив при этом повреждение. Функция ERROR отключает робота если в течении заданного времени сенсоры не видят заданную для прохождения линию.

Параметры:

1 – Включение и выключение самой функции:

0 - функция ERROR отключена

1 - Функция ERORR включена

2 - определяет, через какое время остановить робота, если сенсоры не видят проходимую линию. Задаётся в миллисекундах от 0 до 65000 (1000 м/c = 1c).

(5)DRIVER(1, 2, 3, 4);

Функция помогает балансировать скорость робота при обнаружении определённым сенсором проходимой линии. В параметрах DRIVER устанавливаются значения скорости, от 0 до 20, для каждых сенсоров, которые увидят линию. Она нам пригодится при использовании функций Line о которых мы успеем сказать ниже.

Параметры:

1 – устанавливает скорость для сенсора 4, когда только он видит линию.

2 – устанавливает скорость для сенсоров 3,4 и 4,5. Если во время езды только сенсоры 3,4 видят линию, то скорость определяется для левого мотора, а если 4,5 то для правого.

3 – устанавливает скорость для сенсоров 3 и 5. Если во время езды только сенсор 3 видит линию, то скорость определяется для левого мотора, а если 5 то для правого.

4 - устанавливает скорость для сенсоров 2 и 6. Если во время езды только сенсор 2 видит линию, то скорость определяется для левого мотора, а если 6 то для правого.

DRIVER функция совместима с функциями line, lineT, timeline и linedelay.

Также существует ещё две функции HDRIVER и LDRIVER с абсолютно такими же параметрами которые совместимы только для функций lineDline и lineTline. Об этом поговорим ниже.

(6)MOTORSPEED(1);

В данной функции определяется тип торможения. Он применяется ко всем остановкам робота.

Параметры:

BREAK – при остановках робот тормозит немедленно

STOP – даст роботу момент с помощью простой остановки движения. (Торможение с инерцией)

(7) FFSPEED(1, 2); BBSPEED(1, 2);

Обе функции регулируют скорость каждого мотора для особых случаев. Например если робота заносит в лево на каком-то участке трассы то можно воспользоваться этой функцией, увеличив скорость правого мотора.

FFSPEED регулирует скорость движения вперёд, в то время как BBSPEED регулирует скорость движения назад. Параметры обеих функций аналогичны.

1 – устанавливает скорость для левого мотора от 0 до 255

2 – устанавливает скорость для правого мотора от 0 до 255

(8)MOTOR(1, 2, 3);

Функция устанавливает скорость движения робота, в течении заданного времени. Может оказаться полезной для езды вне линий.

Параметры:

1 – скорость левого мотора от -20 до 20

2 – скорость движения правого мотора от -20 до 20

3 – время действия от 0 до 65000 миллисекунд

Отрицательное значение скорости даёт задний ход мотора. Если необходимо выполнить поворот, то можно установить в одном моторе положительное значение, а в другом отрицательное.

(9)DELAY(1);

Функция для остановки действий на определённое время.

1 – время задержки от 0 до 65000 миллисекунд.

(10)LINE(1, 2, 3, 4)

Одна из важнейших функций для прохождения линий.

Параметры:

1 – Метод определения пересечения (PP или TT)

2 – Направление после определения пересечения (FF, LL, RR и т.д.)

3 – Скорость движения по линии от 0 до 20

4 – Время действия торможения с обратным ходом от -30000 до 30000

Давайте подробнее остановимся на параметрах этой функции:

Параметр 1: Трассы состоят, как правило, из поворотов и перекрёстков. В этом параметре задаётся тип пересечений (перекрёсток или поворот) на который наткнётся робот во время движения. Тип PP обнаруживает перекрёстки, когда сенсоры улавливают и поворот слева и справа одновременно. PP можно задать несколькими способами: PP0, PP1, PP2, PP3 (По умолчанию, если ставите просто PP то он равен PP0). Обнаруживать поворот они будут со следующими условиями.

PP0 – когда временной промежуток определения пересечения между сенсором 1 и 7 меньше чем установленный CROOS TIMER (см. в функцию START).

PP1 - когда временной промежуток определения пересечения между сенсорами 1, 2 и 6, 7 меньше чем установленный CROOS TIMER.

PP2 – когда 5ть или более сенсоров видят повороты, кроме сенсора 4.

PP3 – когда 6ть или более сенсоров видят повороты, кроме сенсора 4.

Тип TT обнаруживает повороты в одну сторону, тоесть когда есть поворот или только влево, или только вправо. Также может устанавливаться несколькими способами: TT1, TT2, TT3 (По умолчанию TT=TT2). Обнаруживать поворот они будут следующим образом.

TT1 – если поворот должен быть обнаружен только сенсором 1 (для FL, LL, SL) или сенсором 7 (для FR, SR, RR).

TT2 – если поворот должен быть обнаружен только сенсорами 1, 2 (для FL, LL, SL) или сенсорами 6, 7 (для FR, SR, RR).

TT3 – если поворот должен быть обнаружен только сенсорами 1, 2,3 (для FL, LL, SL) или сенсорами 5, 6, 7 (для FR, SR, RR).

Параметр 2: Говорит роботу, в какую сторону ему повернутся после определения пресечения.

FF – робот останавливается после прохождения пересечения.

FL – робот останавливается после прохождения поворота слева.

FR – робот останавливается после прохождения поворота справа.

LL – робот поворачивает налево после прохождения пересекающейся линии.

RR – робот поворачивает направо после прохождения пересечения.

SS – робот останавливается сразу же как обнаруживает пересечение.

SR - робот останавливается сразу же как обнаруживает пересечение справа.

SL - робот останавливается сразу же как обнаруживает пересечение слева.

Для PP возможны направления: FF, LL, RR, SS. Для TT: FF, FR, FL, LL, RR, SL, SR.

Параметр 3: скорость движения от 0 до 20.

Параметр 4: Торможение. При положительном значении применяется инверсия электрического давления, которое применяется после пересечения.

При отрицательном-робот продолжает трассировать линию на заданное время, однако при повороте на лево (LL) или право (RR) отрицательное значение работает как положительное. Робот движется прямо вперёд без трассировки линии, за заданное время для SS, SL, SR.

Давайте приведём пример трассы, где робот будет проходить маршрут с применением функции Line. Проанализируйте маршрут и программный код для лучшего усвоения функции.

(11)LineT (1, 2, 3, 4, 5)

В этой функции робот проходит линию как в функции Line только за заданное время. Останавливается по истечении заданного времени либо когда находит необходимый перекрёсток\поворот. Функция имеет те же самые параметры, что и функция Line, кроме параметра 5.

5 – устанавливает время действия функции от 0 до 65000 миллисекунд.

(12)Timeline (1, 2, 3, 4, 5)

В этой функции робот начинает прохождение линии только после того как истечёт заданное время. Первые четыре параметра аналогичны параметрам функции line.

5 – время задержки действия от 0 до 65000

(13)LEFT, RIGH (1, 2)

Функция, поворачивающая робота направо(RIGHT) или налево (LEFT), пока выбранный сенсор не увидит линию.

Параметры:

1 – скорость поворота от 0 до 20

2 – время торможения с реверсом (инверсией электрического давления) от 0 до 255

Функцию left и right, подобно первому параметру функции line - PP и TT, можно задать по-разному:

left1 – робот останавливается когда сенсор 1 видит линию

left2 (аналогично если вы просто напишете left) - робот останавливается когда сенсор 2 видит линию

left3 – робот останавливается когда сенсор 3 видит линию

left4 – робот останавливается когда сенсор 4 видит линию

right4 - робот останавливается когда сенсор 4 видит линию

right5 - робот останавливается когда сенсор 5 видит линию

right6 (аналогично если написать просто right) - робот останавливается когда сенсор 6 видит линию

right7 - робот останавливается когда сенсор 7 видит линию

Вот ещё пример с использованием функции line и left,right

(14)EXLINE, EXTURN(1, 2, 3, 4).

Функция ориентирующаяся на сенсоры. Робот движется с заданной скоростью левого и правого мотора но останавливается когда выбранный сенсор видит линию. Разница между EXLINE и EXTURN в том, что в EXLINE робот остановится после того как пройдёт линию, в то время как EXTURN останавливает робота сразу же когда выбранный сенсор видит линию.

Параметры:

1 – скорость левого мотора от -20 до 20

2 – скорость правого мотора от -20 до 20

3 – выбор сенсора, например sensor1 выбирает сенсор 1, а sensor1+sensor7 сенсор 1 и 7

4 – время торможения, после выполнения программы от -255 до 255. При положительном значении применяется инверсия давления к мотору после обнаружения пересечения, при отрицательном робот двигается дальше на заданное время после обнаружения пересечения.

(15)LINEDELAY(1, 2, 3);

Функция, для прохождения линии заданное время. Перекрёстки и повороты игнорируются, робот просто проходит по линии, пока не истечёт заданное время или робот не потеряет линию. Очень может быть полезно при волнистой трассе или езды по кругу.

Параметры:

1 – скорость от 0 до 20

2 – время действия от 0 до 65000 миллисекунд

3 – время торможения, после выполнения программы от -255 до 255. При положительном значении применяется инверсия давления к мотору после обнаружения пересечения, при отрицательном робот двигается дальше на заданное время после обнаружения пересечения.

Пример где робот трассирует линию в течении двух минут (2000 миллисекунд)

(16)LINEFIND(1, 2, 3);

Функция для поиска потерянной линии. Если сенсоры перестали видеть чёрную (белую) линию, по которой едет робот, данная функция заставит робота ехать дальше определённое время, и если линия будет найдена, то начнётся выполнение следующей функции. Функция ERROR при выполнении этой функции игнорируется.

Параметры:

1 – скорость левого мотора от -20 до 20 (отрицательное значение даёт обратный ход)

2 – скорость правого мотора от -20 до 20

3 – время на поиск линии от 0 до 65000 миллисекунд

Пример поиска линии в течении 300 миллисекунд.

(17)LOSTLINE(1, 2, 3, 4);

Функция предназначена для езды по ломанной линии. Если линия исчезает, функция всё равно продолжает её видеть.

Параметры:

1 – время потери линии от 0 до 65000 миллисекунд. Чем прерывистей линия тем выше стоит ставить это значение или понизить скорость робота. Робот остановится если не найдёт линию за заданное время.

2 – скорость от 0 до 20

3 – время действия от 0 до 65000 миллисекунд. Если вы используете функцию не на прерывистом участке трассы, то функция lostline будет действовать как linedelay, а этот параметр будет играть роль времени прохождения линии. Если же робот едет по прерывистой линии, то он остановится если параметр 1 или параметр 3 истекут по времени.

4 - время торможения, после выполнения программы от -255 до 255. При положительном значении применяется инверсия давления к мотору после обнаружения пересечения, при отрицательном робот двигается дальше на заданное время после обнаружения пересечения.

*Пример

lostline(10,20,1000,0); /* Робот едет по линии одну секунду однако остановится если не увидит линию за десять миллиекунд. */

(18)BUZZER, LED(1, 2, 3);

Функции отвечающие за включение и выключения сигнального звука и светодиодной панели состояния. Обе функции имеют одинаковые параметры. BUZZER отвечает за сигнальный звук, а LED светодиодную панель состояния робота.

Параметры:

1 – Количество раз от 0 до 255

2 – время включений от 0 до 65000

3 – время выключений от 0 до 65000

*Пример

buzzer(2, 1000, 1000); // программа для включения сигнального звука 2а раза с 1 секундным интервалом

Включить на 1секунду, выключить на 1 секунду, включить на 1 секунду и выключить.

(19)BUZZERLED(1, 2, 3, 4);

Комбинация функций включения и выключения сигнального звука и светодиодной панели.

Параметры:

1 – Использовать сигнальный звук или нет?

0 – Сигнальный звук выкл.

1 – Сигнальный звук вкл.

2 – Использовать светодиодную панель состояния или нет?

0 – Светодиодная панель состояния выкл.

1 – Светодиодная панель состояния вкл.

3 – количество раз от 0 до 255

4 – промежуточный интервал от 0 до 65000 миллисекунд

*Пример

Программа, включающая сигнальный звук и светодиодную панель дважды в одно и то же время с односекундным интервалом

buzzerled(1,1,2,1000);

(20)LINEDLINE, LINETLINE(1, 2, 3, 4, 5);

Функция LINEDLINE это комбинация функции line и linedelay, а linetline функций linet и line. Регулируется функциями hdriver и ldriver поскольку те влияют на linedelay и linet функции. Параметры 2, 3, 4, 5 совпадают с параметрами 1, 2, 3, 4 функции line.

Параметры:

1 – время действия linedelay и linet для соответствующих комбинированных функций от 0 до 65000 миллисекунд

2 – метод определения пересечения (см. функцию line)

3 – направления после достижения пересечения (см. функцию line)

4 – скорость движения от 0 до 20

5 – время обратного торможения (см. функцию line)

Пример:

(21)SLINE(1, 2, 3);

Через эту функцию можно выбрать сенсор (сенсоры) для определения поворотов\перекрёстков. Робот останавливается сразу как выбранный сенсор (сенсоры) увидит (увидят) линию.

Параметры:

1 – выбор сенсора (сенсоров), выбираются они также как и в функции EXLINE, EXTURN

2 – скорость от 0 до 20

3 - время торможения, после выполнения программы от -255 до 255. При положительном значении применяется инверсия давления к мотору, после обнаружения пересечения. При отрицательном значении робот двигается дальше на заданное время после обнаружения пересечения.

(22)TIMER,CROSSTIMER(1);

Функция для изменения временных параметров функции START или функции timeline. Функция TIMER меняет значение функции timeline именно в том параметре, где устанавливается время простоя перед выполнением функции. Функция CROSSTIMER меняет значение второго параметра из функции START.

Параметры:

1 – новое значение времени для функции от 0 до 65000



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: