Бильярдный клуб "РУССКАЯ ПИРАМИДА".
Меню
  • Настольные игры
  • Свинтус
  • Правила игр
  • Шакал
  • Активити игры
  • Бэнг
  • Секреты побед
Menu

Лабиринтус 100 шагов 13 см: Лабиринтус 13 см 100 шагов (Labirintus) купить по цене 590 руб. в интернет-магазине Мистер Гик

Posted on 08.08.202322.07.2023 by alexxlab

Содержание

  • Головоломки Лабиринтус 13 см 100 шагов LB1301 в Энгельсе: 667-товаров: бесплатная доставка, скидка-45% [перейти]
  • Головоломка шар лабиринт лабиринтус 13 см,100 шагов в Кропоткине: 216-товаров: бесплатная доставка, скидка-55% [перейти]
  • Лабиринт Настройка и калибровка | LEARN.
    • Circuit
    • Лабиринт
    • Движение вперед
    • Калибровка левого поворота на 90°
    • Калибровка правого поворота на 90°
    • Калибровка Т-образного пересечения
    • Навигация в тупике и «искусственный интеллект»
    • Держите Boe-Bot на правильном пути!

Головоломки Лабиринтус 13 см 100 шагов LB1301 в Энгельсе: 667-товаров: бесплатная доставка, скидка-45% [перейти]

Партнерская программаПомощь

Энгельс

Каталог

Каталог Товаров

Одежда и обувь

Одежда и обувь

Стройматериалы

Стройматериалы

Текстиль и кожа

Текстиль и кожа

Здоровье и красота

Здоровье и красота

Детские товары

Детские товары

Продукты и напитки

Продукты и напитки

Электротехника

Электротехника

Дом и сад

Дом и сад

Торговля и склад

Торговля и склад

Промышленность

Промышленность

Мебель и интерьер

Мебель и интерьер

Все категории

ВходИзбранное

Шар-Лабиринт 3D «Лабиринтус» Classic, 100 шагов Производитель: IQ-ZABIAKA, Головоломка: лабиринт,

ПОДРОБНЕЕ

Игрушка логическая «Лабиринтус» 100 уровней Производитель: Без бренда, Головоломка: набор,

ПОДРОБНЕЕ

IQ-ZABIAKA Шар-головоломка «Лабиринтус», 100 уровней Производитель: IQ-ZABIAKA, Головоломка:

ПОДРОБНЕЕ

Игрушка логическая «Лабиринтус» 100 уровней Головоломка: лабиринт, Пол: для девочек, для мальчиков,

ПОДРОБНЕЕ

Игрушка логическая «Лабиринтус» 100 уров StarPony Головоломки Головоломка: лабиринт, Пол: для

ПОДРОБНЕЕ

ЛАС играс / Развивающий логический шар «Лабиринтус«, 3D-головоломка, 100 уровней сложности, ЛАС играс

ПОДРОБНЕЕ

Игрушка логическая «Лабиринтус» 100 уровней Головоломка: лабиринт, Пол: для девочек, для мальчиков,

ПОДРОБНЕЕ

Лабиринт 3D Лабиринтус 13 см (100 шагов) Головоломка: лабиринт, Пол: для девочек, для мальчиков,

ПОДРОБНЕЕ

Шар-головоломка Лабиринтус, 100 уровней IQ-ZABIAKA Производитель: IQ-ZABIAKA, Головоломка:

ПОДРОБНЕЕ

Головоломка Лабиринт 100 шагов Возраст: 3-5 лет, 5-7 лет, Пол: для девочек, для мальчиков, унисекс

ПОДРОБНЕЕ

См-100Головоломка Лабиринтус 13 см

Игрушки головоломки Волшебный мир Track ball 3D 13 см 100 ходов Производитель: Волшебный мир, Пол:

ПОДРОБНЕЕ

Головоломка ZABIAKA «Лабиринтус«, головоломка шар, лабиринт, 100 уровней Производитель: Zabiaka,

ПОДРОБНЕЕ

Головоломка Шар — Лабиринт 100 шагов, 13 см Производитель: Лабиринтус, Головоломка: лабиринт,

ПОДРОБНЕЕ

Волшебный МИР Головоломка Track Ball 3D 13 см 100 ходов Производитель: Волшебный мир, Пол: для

ПОДРОБНЕЕ

-45%

1 642

2999

Массажер Аппликатор Ляпко «Коврик малый», металлоигольчатый, 23,7 см х 13,7 см, шаг игл 6 мм, 100% оригинал

В МАГАЗИН

Головоломка Шар лабиринт, 100 шагов, размер 12 см Производитель: S+S Toys, Головоломка: лабиринт,

ПОДРОБНЕЕ

Шар-головоломка Собери Лабиринтус, 100 уровней, микс IQ-ZABIAKA Производитель: IQ-ZABIAKA,

ПОДРОБНЕЕ

Головоломка Шар лабиринт 3D Лабиринтус 100 шагов

ПОДРОБНЕЕ

Интеллектуальный шар 3D, 100 барьеров, диаметр лабиринта 19 см Головоломка: лабиринт, Материал:

ПОДРОБНЕЕ

-15%

542

638

Головоломка Шар лабиринт, 100 шагов, 12 см Производитель: S+S Toys, Головоломка: лабиринт,

ПОДРОБНЕЕ

Развивающий логический шар «Собери Лабиринтус«, 3D игра-головоломка, 100 уровней Производитель:

ПОДРОБНЕЕ

Шар-головоломка «Лабиринтус», 100 уровней Головоломка: лабиринт, Возраст: 7-9 лет, 9-14 лет, Пол:

ПОДРОБНЕЕ

Ляпко / Аппликатор Ляпко «Коврик малый силикон», шаг игл 6,0 мм, размер 13,7х23,7 см, 100% оригинал, Ляпко

ПОДРОБНЕЕ

Шар-лабиринт «100 барьеров 3D» диаметр 13 см Производитель: Gamestil, Головоломка: лабиринт, Пол:

ПОДРОБНЕЕ

Массажер Аппликатор Ляпко «Коврик малый», металлоигольчатый, 23,7 см х 13,7 см, шаг игл 6 мм, 100% оригинал

ПОДРОБНЕЕ

Шар-лабиринт Track Ball 3D 13 см (100 ходов) Головоломка: лабиринт, Пол: для девочек, для

ПОДРОБНЕЕ

-33%

1 072

1600

Шар-головоломка «Лабиринтус«. 100 уровней Kangaeru Головоломка: лабиринт, Пол: для девочек, для

ПОДРОБНЕЕ

Головоломка ABtoys Шар интеллектуальный 3D, 100 барьеров, диаметр 19 см, в коробке Производитель:

ПОДРОБНЕЕ

2 страница из 18

Головоломки Лабиринтус 13 см 100 шагов LB1301

Головоломка шар лабиринт лабиринтус 13 см,100 шагов в Кропоткине: 216-товаров: бесплатная доставка, скидка-55% [перейти]

Партнерская программаПомощь

Кропоткин

Каталог

Каталог Товаров

Одежда и обувь

Одежда и обувь

Стройматериалы

Стройматериалы

Текстиль и кожа

Текстиль и кожа

Здоровье и красота

Здоровье и красота

Промышленность

Промышленность

Продукты и напитки

Продукты и напитки

Детские товары

Детские товары

Электротехника

Электротехника

Дом и сад

Дом и сад

Сельское хозяйство

Сельское хозяйство

Приборы и автоматика

Приборы и автоматика

Все категории

ВходИзбранное

-55%

Шаг 100, 3D головоломка, шар, волшебный Интеллектуальный шар, лабиринт, детские игрушки, сложные барьеры, игра, мозговой тестер, тренировка баланса

ПОДРОБНЕЕ

Головоломка шар—лабиринт 100 шагов Головоломка: лабиринт, Возраст: 5-7 лет, 7-9 лет, Пол: для

ПОДРОБНЕЕ

Логическая игрушка головоломка Шар лабиринт, 100 шагов Головоломка: лабиринт, Материал: пластик,

ПОДРОБНЕЕ

Головоломка Шар—лабиринт 100 шагов Головоломка: лабиринт, Возраст: 5-7 лет, 7-9 лет, Пол: для

ПОДРОБНЕЕ

Развивающий логический шар «Собери Лабиринтус«, 3D игра-головоломка, 100 уровней Производитель:

ПОДРОБНЕЕ

-25%

578

771

3D-головоломка, 100 шаг, сфера шар, лабиринт Головоломка: лабиринт, Пол: для девочек, для

ПОДРОБНЕЕ

-45%

469

854

100-299 шагов 3D большой шар магический Интеллект лабиринт шар Головоломка замок логическая игра обучающая магический интеллект головоломка IQ Balance

ПОДРОБНЕЕ

Track Ball 3D / Шар—лабиринт Track Ball 3D (100 ходов), Track Ball 3D Головоломка: лабиринт,

ПОДРОБНЕЕ

Игра головоломка «Шар—лабиринт«, 100 шагов Головоломка: лабиринт, Материал: пластик, Возраст: 3-5

ПОДРОБНЕЕ

Головоломка Шар лабиринт, 100 шагов, размер 12 см Производитель: S+S Toys, Головоломка: лабиринт,

ПОДРОБНЕЕ

2 страница из 8

Головоломка шар лабиринт лабиринтус 13 см,100 шагов

Лабиринт Настройка и калибровка | LEARN.

PARALLAX.COM

Circuit

Следуйте инструкциям, прилагаемым к комплекту приложений QTI Line Follower (#28108) (цифровую копию см. в разделе «Загрузки и ресурсы» на странице продукта). Для этого приложения необходимы некоторые аппаратные модификации. В инструкциях AppKit каждый QTI монтируется от края до края, но в этом приложении потребуется большее расстояние между QTI, чтобы Boe-Bot мог обнаруживать повороты и другие препятствия. Используйте рисунок 1 в качестве руководства и установите QTI так, чтобы два центральных QTI находились на расстоянии 0,8 см друг от друга, а крайние датчики находились на расстоянии 2 см от центра QTI.

Рисунок 1 — Установленные датчики QTI

Лабиринт

На рисунке 2 показан лабиринт с различными препятствиями, по которым Boe-Bot должен пройти, включая короткие и длинные прямые пути, повороты на 90° влево и вправо, Т-образный перекресток и тупик. Эти препятствия создают ряд навигационных проблем, которые вы можете решить, тем самым улучшив производительность вашего Boe-Bot в более крупных и сложных лабиринтах. При построении лабиринта используйте большой кусок картона и убедитесь, что каждая полоса дорожки имеет ширину 1,5 дюйма из черной ленты. На рис. 2 показан лабиринт, предназначенный для этого занятия (не в масштабе).

Рис. 2 — Лабиринт с электрической лентой Boe-Bot

 

Прежде чем мы начнем, вы должны знать, что последняя программа в этом проекте может быть больше, чем примеры программ, которые вы, возможно, пробовали в Robotics с Boe-Bot . Это потому, что есть много условий, которые должны быть приняты во внимание! Этот «мини-проект» демонстрирует, как взять сложную проблему и разбить ее на мелкие части, чтобы успешно решить ее. Для этого нам нужно откалибровать нашего Boe-Bot, чтобы он маневрировал в каждом состоянии, прежде чем собирать все вместе. Это сэкономит нам время при устранении неполадок, если мы будем знать, что каждая отдельная часть работает должным образом.

Убедитесь, что вы выполнили каждый шаг калибровки!
Очень важно следовать всем инструкциям по калибровке вашего Boe-Bot и обновлять значения в коде, которые они определяют экспериментально. Если вы пропустите какие-либо шаги или попытаетесь запустить код примера как есть, он, вероятно, не сработает.
Имейте в виду, что ценность Boe-Bot заключается в том, что с ним интересно играть, но он не является игрушечным роботом с ограниченным набором функций. Это робот с платформой для прототипирования, который может быть таким, каким вы его создадите. То есть, если вы готовы немного поработать и кое-чему научиться!

Движение вперед

Так как Boe-Bot должен двигаться медленно в некоторых точках лабиринта, нам придется замедлить сервоприводы от обычных 850, 650 PUSLOUT. Это поможет гарантировать, что показания QTI не будут пропущены, когда Boe-Bot перемещается по лабиринту, и вы можете использовать ту же процедуру тестирования, представленную в Robotics, с Boe-Bot Глава 4, Упражнение № 2.

Чтобы замедлить движение вперед, помните, что значение PULSOUT, равное 750, останавливает серводвигатели. Поэтому мы хотим выбрать значения ближе к 750, чтобы Boe-Bot медленно продвигался вперед. Для дальнейшего объяснения взгляните на график зависимости скорости вращения от ширины импульса для сервопривода на стр. 9.0023 Робототехника с Boe-Bot Глава 3, Задание №4. Обратите внимание, что скорость действительно начинает замедляться только тогда, когда импульсы приближаются к 700 с 650 и 800 с 850, поэтому не беспокойтесь, если изменение с 850 на 840 не имеет никакого эффекта.

Ниже представлена ​​версия BoeBotForwardTenSeconds.bs2, которую можно использовать для калибровки Boe-Bot.

 ' SlowlyForward.bs2
' Откалибруйте Boe-Bot так, чтобы он медленно двигался вперед по прямой.
' {$ШТАМП БС2}
' {$PBASIC 2.5}
счетчик   VAR    Word
ДЛЯ счетчика = от 1 до 407
ПУЛЬСАУТ 13, 770
ПУЛЬСАУТ 12, 730
ПАУЗА 20
СЛЕДУЮЩИЙ
КОНЕЦ
 

Калибровка левого поворота на 90°

После калибровки кода замедленной перемотки следующим шагом будет калибровка поворотов на 90°. В лабиринте их много, так что постарайтесь здесь хорошо. Это просто, и вы уже откалибровали своего Boe-Bot для выполнения одного из заданий Robotics с помощью Boe-Bot Глава 4, Задание № 2… верно? Если нет, не продолжайте, пока не закончите этот важный шаг! Теперь все, что нам нужно сделать, это запрограммировать Boe-Bot, чтобы он поворачивал налево, когда лабиринт поворачивает.

Вы можете установить условия, которым должен следовать Boe-Bot, используя операторы SELECT…CASE. Таким образом, если QTI отправляют показания, которые сообщают BASIC Stamp, что Boe-Bot должен повернуть налево, BASIC Stamp затем может отправлять импульсы сервоприводам для выполнения 90° левый поворот.

Запутались?
Если вы не понимаете операторы SELECT…CASE и то, как они здесь применяются, вернитесь и посетите страницу Boe-Bot Line Following with Four QTI Sensors, чтобы получить подробную информацию о том, как работает следование по линии с помощью QTI.

Используйте пример кода ниже и измените значения по мере необходимости, чтобы ваш Boe-Bot выполнял повороты на 90° влево, оставаясь в центре пути лабиринта.

 ' MazeNavigation_LeftTurn.bs2
' Boe-Bot поворачивает налево на основе значений QTI.
' {$ШТАМП БС2}
' {$PBASIC 2.5}
qtis            VAR   Nib                 ' qti черно-белые состояния
pulseCount      VAR   Byte                ' FOR.
.NEXT счетчик цикла для поворота OUTB = %1111                             ' Установить биты OUTB в 1 DO                                       ' Main DO...LOOP GOSUB Check_Qtis                        ' Получить состояния QTI SELECT qtis                            ' Управление скоростью/направлением сервопривода CASE %0110                           ' Прямо вперед ПУЛЬСАУТ 13, 770 ПУЛЬСАУТ 12, 730 ПАУЗА 20 СЛУЧАЙ %1110 GOSUB Turn_Left CASE ELSE                            ' Ничего не делать ПАУЗА 3 КОНЕЦВЫБОР ПЕТЛЯ Check_Qtis: ' Проверяет состояние каждого датчика QTI. 0 означает белую поверхность, 1 означает черную. DIRB = %1111                           ' P7..P4 -> вывод ПАУЗА 0                                ' Задержка = 230 мкс DIRB = %0000                           ' P7..P4 -> ввод ПАУЗА 0                                ' Задержка = 230 мкс qtis = INB                             ' Сохранение выходных данных QTI в INB ВОЗВРАЩАТЬСЯ Поверните налево: FOR pulseCount = 0 TO 15                ' Продвиньтесь немного вперед, чтобы Boe-Bot PULSOUT 13, 770                       ' держит курс ПУЛЬСАУТ 12, 730 ПАУЗА 20 СЛЕДУЮЩИЙ FORpulseCount = 0 TO 24                ' Поверните налево, около 90 градусов ПУЛЬСАУТ 13, 650 ПУЛЬСАУТ 12, 650 ПАУЗА 20 СЛЕДУЮЩИЙ ВОЗВРАЩАТЬСЯ

Калибровка правого поворота на 90°

Калибровка Boe-Bot для выполнения правого поворота на 90° работает так же, как и калибровка левого поворота. Эти значения, вероятно, не будут зеркальным отражением левых поворотов, поэтому важно протестировать и найти необходимые значения длительности PULSOUT, чтобы правые повороты были такими же надежными, как и левые. Используйте пример кода ниже и измените значения по мере необходимости, чтобы ваш Boe-Bot выполнял 9Поворачивается вправо на 0°, оставаясь в центре пути лабиринта.

 ' MazeNavigation_LeftTurn.bs2
' Boe-Bot поворачивает налево на основе значений QTI.
' {$ШТАМП БС2}
' {$PBASIC 2.5}
qtis            VAR   Nib                 ' qti черно-белые состояния
pulseCount      VAR   Byte                ' FOR..NEXT счетчик цикла для поворота
OUTB = %1111                             ' Установить биты OUTB в 1
DO                                       ' Main DO...LOOP
GOSUB Check_Qtis                        ' Получить состояния QTI
SELECT qtis                            ' Управление скоростью/направлением сервопривода
CASE %0110                           ' Прямо вперед
ПУЛЬСАУТ 13, 770
ПУЛЬСАУТ 12, 730
ПАУЗА 20
СЛУЧАЙ %0111
GOSUB Turn_Right
CASE ELSE                            ' Ничего не делать
ПАУЗА 3
КОНЕЦВЫБОР
ПЕТЛЯ
Check_Qtis:
' Проверяет состояние каждого датчика QTI.
0 означает белую поверхность, 1 означает черную  DIRB = %1111                       ' P7..P4 -> вывод ПАУЗА 0                                ' Задержка = 230 мкс DIRB = %0000                           ' P7..P4 -> ввод ПАУЗА 0                                ' Задержка = 230 мкс qtis = INB                             ' Сохранение выходных данных QTI в INB ВОЗВРАЩАТЬСЯ Поверните направо: FOR pulseCount = 0 TO 15                ' Продвиньтесь немного вперед, чтобы Boe-Bot PULSOUT 13, 770                       ' держит курс ПУЛЬСАУТ 12, 730 ПАУЗА 20 СЛЕДУЮЩИЙ FORpulseCount = 0 TO 24                ' Поверните направо, около 90 градусов ПУЛЬСАУТ 13, 850 ПУЛЬСАУТ 12, 850 ПАУЗА 20 СЛЕДУЮЩИЙ ВОЗВРАЩАТЬСЯ

Калибровка Т-образного пересечения

Итак, что происходит, когда Boe-Bot сталкивается с Т-образным пересечением? Одно из решений, которое мы будем здесь использовать, состоит в том, чтобы запрограммировать Boe-Bot на принятие случайного решения, когда он достигает Т-образного перекрестка.

Мы можем сделать это, сгенерировав псевдослучайное число, а затем повернув его влево или вправо на основе одного бита этого случайного числа (0 или 1).

В MazeNavigation_TIntersection.bs2 псевдослучайное число в диапазоне от 0 до 65535 генерируется каждый раз в основном цикле с помощью команды RANDOM. Взглянув на один бит этого числа, Boe-Bot может повернуться влево или вправо в зависимости от того, равно ли значение этого бита 0 или 1.

Зачем использовать команду RANDOM в основном цикле, а не в подпрограмме T_Intersection?
При каждом использовании команды RANDOM создается псевдослучайное число. Это означает, что даже если сгенерированное число кажется случайным, на самом деле оно генерируется с помощью логической операции, использующей начальное значение («начальное число») в переменной с именем rng для «подключения» к последовательности из 65535 по существу случайных чисел. Таким образом, если бы команда RANDOM rng была помещена в подпрограмму T_Intersection, использовалось бы одно и то же значение rng, каждый раз генерируя одну и ту же последовательность значений.

Однако если поместить эту команду в процедуру Main, значение rng будет меняться каждый раз в цикле, создавая более желательный набор псевдослучайных чисел.
Для получения дополнительной информации найдите команду RANDOM в BASIC Stamp Syntax and Reference Manual или в справке BASIC Stamp Editor.

Используя MazeNavigation_TIntersection.bs2, выполните следующие тесты:

  • Запустите код и используйте терминал отладки, чтобы убедиться, что вы каждый раз получаете псевдослучайные результаты.
  • Нажмите кнопку сброса и двигайте Boe-Bot по прямому пути, пока он не достигнет Т-образного перекрестка
  • Повторите этот процесс несколько раз и убедитесь, что результаты поворота меняются каждый раз при достижении Т-образного перекрестка.
 ' MazeNavigation_TIntersection.bs2
' Когда все датчики QTI обнаруживают черную линию, Boe-Bot случайным образом решает
'повернуться налево или направо. Этот код имитирует решение, печатая «Turn
' Левый!" или "Поверни направо!" к терминалу отладки. 
' {$ШТАМП БС2}
' {$PBASIC 2.5}
rng             VAR   Word                'случайное число
turnDecision    VAR   rng.BIT0            ' 0-й бит случайного числа
qtis            VAR   Nib                 ' qti черно-белые состояния
OUTB = %1111                             ' Установить биты OUTB в 1
DEBUG CLS                                ' Очистить экран отладки
DO                                       ' Main DO...LOOP
GOSUB Check_Qtis                        ' Получить состояния QTI
RANDOM rng                             ' Создать случайное число
SELECT qtis                            ' Управление скоростью/направлением сервопривода
CASE %0110                           ' Прямо вперед
ПУЛЬСАУТ 13, 770
ПУЛЬСАУТ 12, 730
ПАУЗА 20
СЛУЧАЙ %1111
GOSUB T_Intersection
CASE ELSE                            ' Ничего не делать
ПАУЗА 3
КОНЕЦВЫБОР
ПЕТЛЯ
Check_Qtis:
' Проверяет состояние каждого датчика QTI. 0 означает белую поверхность, 1 означает черную
DIRB = %1111                           ' P7..P4 ->
вывод ПАУЗА 0                                ' Задержка = 230 мкс DIRB = %0000                           ' P7. .P4 -> ввод ПАУЗА 0                                ' Задержка = 230 мкс qtis = INB                             ' Сохранение выходных данных QTI в INB ВОЗВРАЩАТЬСЯ T_Intersection: ЕСЛИ (turnDecision = 0), ТО ОТЛАДКА "Поверни направо!", CR ПАУЗА 100 ИНАЧЕ ЕСЛИ (turnDecision = 1) ТО ОТЛАДКА "Поверни налево!", CR ПАУЗА 100 КОНЕЦ ВОЗВРАЩАТЬСЯ

Навигация в тупике и «искусственный интеллект»

Тупик — еще одно распространенное препятствие в лабиринтах, и существует множество различных подходов к решению этой проблемы. Приведенная ниже программа обрабатывает это следующим образом: Boe-Bot будет пятиться назад, пока не достигнет поворота, ведущего в тупик, а затем выполнит поворот на 90°, чтобы вернуться на путь лабиринта.

А что тогда? Boe-Bot все же сделал еще один поворот, который привел его в тупик, и если он снова сделает этот поворот, он вернется к началу, а не продолжит движение до конца. Одним из способов решения этой проблемы было бы создание новой переменной. Назовем его «ИИ». Когда эта переменная равна 1, Boe-Bot будет игнорировать левый поворот, который вернет его в начало. Создав новую подпрограмму с именем AI_Decision, Boe-Bot может выполнять левые повороты на основе значения переменной AI.

Используйте следующий код, чтобы убедиться, что ваш Boe-Bot может успешно выйти из тупика. Помните, что может потребоваться некоторая настройка!

 ' MazeNavigation_DeadEnd.bs2
Boe-Bot отступает назад, пока не заметит поворот, а затем снова движется вперед.
' {$ШТАМП БС2}
' {$PBASIC 2.5}
qtis            VAR   Nib                 ' qti черно-белые состояния
AI              VAR   Byte                ' "Искусственный интеллект"
' помнит тупики
pulseCount      VAR   Byte                ' FOR..NEXT счетчик цикла для поворота
OUTB = %1111                             ' Установить биты OUTB в 1
DO                                       ' Main DO...LOOP
GOSUB Check_Qtis                        ' Получить состояния QTI
SELECT qtis                            ' Управление скоростью/направлением сервопривода
CASE %0110                           ' Прямо вперед
ПУЛЬСАУТ 13, 770
ПУЛЬСАУТ 12, 730
ПАУЗА 20
СЛУЧАЙ %1110
GOSUB AI_Decision
CASE %0000                           ' Резервное копирование до следующего хода
GOSUB Тупик
CASE ELSE                            ' Ничего не делать
ПАУЗА 3
КОНЕЦВЫБОР
ПЕТЛЯ
Check_Qtis:
' Проверяет состояние каждого датчика QTI.  0 означает белую поверхность, 1 означает черную
DIRB = %1111                           ' P7..P4 -> вывод
ПАУЗА 0                                ' Задержка = 230 мкс
DIRB = %0000                           ' P7..P4 -> ввод
ПАУЗА 0                                ' Задержка = 230 мкс
qtis = INB                             ' Сохранение выходных данных QTI в INB
ВОЗВРАЩАТЬСЯ
AI_Decision:
IF (AI = 1) THEN                       ' Если AI = 1, Boe-Bot оказался в тупике
AI = 0                               ' Установить для переменной AI значение 0
GOSUB Ignore_Turn                     ' Игнорировать поворот, который ведет к Start
ELSEIF (AI = 0) THEN                    ' Если AI = 0, Boe-Bot не
GOSUB Turn_Left                      ' тупик, так что можно повернуть налево.
КОНЕЦ
ВОЗВРАЩАТЬСЯ
Игнорировать_поворот:
FORpulseCount = от 0 до 50
ПУЛЬСАУТ 13, 770
ПУЛЬСАУТ 12, 730
ПАУЗА 20
СЛЕДУЮЩИЙ
ВОЗВРАЩАТЬСЯ
Поверните налево:
FOR pulseCount = 0 TO 15                ' Продвиньтесь немного вперед, чтобы Boe-Bot остался
PULSOUT 13, 770                      ' на курсе. 
ПУЛЬСАУТ 12, 730
ПАУЗА 20
СЛЕДУЮЩИЙ
FORpulseCount = 0 TO 17                ' Поверните налево, около 90 градусов
ПУЛЬСАУТ 13, 650
ПУЛЬСАУТ 12, 650
ПАУЗА 20
СЛЕДУЮЩИЙ
ВОЗВРАЩАТЬСЯ
Тупик:
ДЕЛАТЬ
GOSUB Check_Qtis
ПУЛЬСАУТ 13, 730
ПУЛЬСАУТ 12, 770
ПАУЗА 20
LOOP ДО (qtis = %0111)
ЕСЛИ (qtis = %0111) ТО
ПАУЗА 20
FORpulseCount = от 0 до 15
ПУЛЬСАУТ 13, 770
ПУЛЬСАУТ 12, 730
ПАУЗА 20
СЛЕДУЮЩИЙ
FORpulseCount = от 0 до 17
ПУЛЬСАУТ 13, 850
ПУЛЬСАУТ 12, 850
ПАУЗА 20
СЛЕДУЮЩИЙ
КОНЕЦ
ИИ = 1
ВОЗВРАЩАТЬСЯ
 

Держите Boe-Bot на правильном пути!

Последним этапом калибровки будет написание кода, который удерживает Boe-Bot по центру изоленты, поскольку есть несколько факторов, которые могут сбить его с курса: не совсем прямая лента, проскальзывание во время поворотов и т. д. Имейте в виду, что коррекция линии может быть затруднена при перемещении по лабиринтам, поскольку Boe-Bot может сбиться с пути разными способами, и каждая реакция будет разной. В приведенном ниже решении всякий раз, когда Boe-Bot обнаруживает, что он сбился с курса, он реагирует следующим образом:

  • Стоп.
  • Медленно вращайте, пока оба средних датчика не вернутся на линию.
  • Слегка поверните влево/вправо в зависимости от того, в какую сторону Boe-Bot сбился с пути.
  • Слегка поверните в другом направлении, чтобы вернуть Boe-Bot на линию.

Этот код прошел несколько итераций калибровки, тестирования, повторной калибровки, повторной проверки и т. д. Поскольку значения могут быть совершенно разными, вам также может потребоваться пройти несколько итераций проверки и повторной калибровки. Имейте в виду, что эти шаги необходимы для успешного прохождения линии через лабиринт, поскольку центральные датчики должны быть на линии при движении вперед. Выполните следующие шаги, чтобы убедиться, что Boe-Bot может оставаться в центре пути лабиринта:

  • Начните с крайнего левого датчика на изоленте и посмотрите, сколько времени потребуется Boe-Bot, чтобы отцентрироваться на линии.
  • Если вы обнаружите, что Boe-Bot выполняет коррекцию недостаточно быстро, попробуйте увеличить продолжительность импульса в циклах FOR. ..NEXT.
  • С другой стороны, если вы обнаружите, что Boe-Bot поворачивается слишком далеко, попробуйте уменьшить продолжительность импульса в циклах FOR…NEXT.
  • Повторите действия с крайним правым датчиком, крайним левым и средним левым датчиками, а также крайним правым и средним правым датчиками.
  • Как только эти значения кажутся правильными, попробуйте сдвинуть плакат, чтобы заставить Boe-Bot сбиться с пути, и посмотрите, как быстро он отреагирует.
 ' MazeNavigation_StayOnStripe.bs2
Программа калибровки для удержания Boe-Bot на пути изоленты.
' {$ШТАМП БС2}
' {$PBASIC 2.5}
qtis          VAR     Nib                 ' qti черно-белые состояния
pulseCount    VAR     Word                ' FOR...NEXT счетчик циклов для плавного
'  превращение.
OUTB = %1111                             ' Установить биты OUTB в 1
DO                                       ' Main DO...LOOP
GOSUB Check_Qtis                        ' Получить состояния QTI
SELECT qtis                ' Управление скоростью/направлением сервопривода
CASE %0110               ' Обнаружены средние левый и правый датчики, идите вперед
ПУЛЬСАУТ 13, 770
ПУЛЬСАУТ 12, 730
ПАУЗА 20
CASE %1000                           ' Обнаружен крайний левый датчик
GOSUB BackOnTrack_OneSensorLeft
CASE %1100                           ' Обнаружены дальний и средний левый датчики
GOSUB BackOnTrack_TwoSensorsLeft
CASE %0001                           ' Обнаружен крайний правый датчик
GOSUB BackOnTrack_OneSensorRight
CASE %0011                           ' Обнаружен дальний и средний правый датчик
GOSUB BackOnTrack_TwoSensorsRight
CASE ELSE                            ' Ничего не делать
ПАУЗА 3
КОНЕЦВЫБОР
ПЕТЛЯ
Check_Qtis:
' Проверяет состояние каждого датчика QTI. 0 означает белую поверхность, 1 означает черную
DIRB = %1111                           ' P7..P4 -> вывод
ПАУЗА 0                                ' Задержка = 230 мкс
DIRB = %0000                           ' P7..P4 -> ввод
ПАУЗА 0                                ' Задержка = 230 мкс
qtis = INB                             ' Сохранение выходных данных QTI в INB
ВОЗВРАЩАТЬСЯ
BackOnTrack_OneSensorLeft:
PULSOUT 13, 750                        ' Стоп
ПУЛЬСАУТ 12, 750
DO                                     ' Медленно вращайте до середины
GOSUB Check_Qtis                      ' QTI снова в деле
ПУЛЬСАУТ 13, 750
ПУЛЬСАУТ 12, 740
ПАУЗА 20
LOOP ДО (qtis = %0110)
IF (qtis = %0110) THEN                  ' Когда вернутся средние QTI
FOR pulseCount = 1 TO 20              ' в строке, поверните влево для
PULSOUT 13, 750                     ' 20 импульсов, а затем повернуть вправо
PULSOUT 12, 740                    ' для 10 импульсов для центрирования Boe-
ПАУЗА 20                           ' Бот на линии.
СЛЕДУЮЩИЙ
FORpulseCount = от 0 до 10
ПУЛЬСАУТ 13, 770
ПУЛЬСАУТ 12, 750
ПАУЗА 20
СЛЕДУЮЩИЙ
КОНЕЦ
ВОЗВРАЩАТЬСЯ
BackOnTrack_TwoSensorsLeft:
PULSOUT 13, 750                        ' Стоп
ПУЛЬСАУТ 12, 750
ДЕЛАТЬ
GOSUB Check_Qtis                      ' Медленно вращайте до середины
PULSOUT 13, 750                      ' QTI снова в деле
ПУЛЬСАУТ 12, 740
ПАУЗА 20
LOOP ДО (qtis = %0110)
IF (qtis = %0110) THEN                  ' Когда вернутся средние QTI
FOR pulseCount = 1 TO 20              ' в строке, поверните влево для
PULSOUT 13, 750                     ' 20 импульсов, а затем повернуть вправо
PULSOUT 12, 730                    ' для 10 импульсов для центрирования Boe-
ПАУЗА 20                           ' Бот на линии. СЛЕДУЮЩИЙ
FORpulseCount = от 0 до 10
ПУЛЬСАУТ 13, 770
ПУЛЬСАУТ 12, 750
ПАУЗА 20
СЛЕДУЮЩИЙ
КОНЕЦ
ВОЗВРАЩАТЬСЯ
BackOnTrack_OneSensorRight:
PULSOUT 13, 750                        ' Стоп
ПУЛЬСАУТ 12, 750
ДЕЛАТЬ
GOSUB Check_Qtis                      ' Медленно вращайте до середины
PULSOUT 13, 760                       QTI снова в деле
ПУЛЬСАУТ 12, 750
ПАУЗА 20
LOOP ДО (qtis = %0110)
IF (qtis = %0110) THEN                  ' Когда вернутся средние QTI
FOR pulseCount = 1 TO 20              ' в строке, поверните вправо для
PULSOUT 13, 760                     ' 20 импульсов, а затем повернуть влево
PULSOUT 12, 750                    ' для 10 импульсов для центрирования Boe-
ПАУЗА 20                           ' Бот на линии.
СЛЕДУЮЩИЙ
FORpulseCount = от 0 до 10
ПУЛЬСАУТ 13, 750
ПУЛЬСАУТ 12, 730
ПАУЗА 20
СЛЕДУЮЩИЙ
КОНЕЦ
ВОЗВРАЩАТЬСЯ
BackOnTrack_TwoSensorsRight:
PULSOUT 13, 750                        ' Стоп
ПУЛЬСАУТ 12, 750
ДЕЛАТЬ
GOSUB Check_Qtis                      ' Медленно вращайте до середины
PULSOUT 13, 760                       QTI снова в деле
ПУЛЬСАУТ 12, 750
ПАУЗА 20
LOOP ДО (qtis = %0110)
IF (qtis = %0110) THEN                  ' Когда вернутся средние QTI
FOR pulseCount = 1 TO 20              ' в строке, поверните вправо для
PULSOUT 13, 770                     ' 20 импульсов, а затем повернуть влево
PULSOUT 12, 750                    ' для 10 импульсов для центрирования Boe-
ПАУЗА 20                           ' Бот на линии.

Добавить комментарий Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Рубрики

  • Активити
  • Активити игры
  • Бэнг
  • Диксит
  • Каркассон
  • Клуэдо
  • Колонизаторы
  • Манчкин
  • Разное
  • Свинтус
  • Секреты побед
  • Шакал
  • Шакал -правила игры
  • Эволюция
  • Эволюция — секреты игры
2019 © Все права защищены. Карта сайта