Программа лего nxt лабиринт

Обновлено: 15.05.2024

1. Лабиринт (для дистанционных соревнований)

2. Задача робота: Двигаясь внутри лабиринта, за время не более 3 минут, добраться из зоны старта в зону финиша, или как можно

ближе к зоне финиша
Полигон для соревнования «Лабиринт» представляет собой
прямоугольную поверхность с размером сторон три клетки. Всю
поверхность полигона мысленно можно разделить на квадратные
ячейки со сторонами в три клетки, расположенный смежно друг с
другом. Между ячейками могут быть установлены не преодолимые
для робота перегородки. По периметру полигона имеется ограждение
той же высоты. Зоны старта и финиша выделены линиями черного
цвета

3. Требования к роботу

Для
дистанционных
соревнований
«Лабиринт» робот строится на основе
двухмоторной тележки из контроллера
Lego EV3, Lego NXT или TRIK. Датчики
расстояния ориентируются один –
вперёд, другой – вправо или лево и
располагаются так, чтобы они не
выступали за габариты тележки для
исключения зацепления ими за стенку
при
поворотах.
Датчик
света
располагается аналогичным образом
Время заезда останавливается по истечении 3 минут, когда робот
прибыл в финишную ячейку, либо когда робот не может покинуть ячейку
в течении 15 секунд. Местонахождения робота фиксируется и
производится подсчёт ячеек, которые роботу требуется пройти до зоны
финиша по кратчайшему маршруту. Чем меньше количество таких
ячеек, тем лучше результат. При равном количестве, побеждает тот, кто
затратил меньшее время.

4. Робот ТРИК, датчики расстояния подключены к портам 1 и 2. Модель робота – 2D модель. Физика – реалистичная физика

Для нахождения выхода из лабиринта применяют правило правой (левой)
руки: Если двигаться по лабиринту, держась рукой за правую (левую)
стену, то рано или поздно выйдешь выходу из него, либо в точку начала
пути, если лабиринт замкнут.
Для начала настроим робота в Trik Studio
Робот ТРИК, датчики расстояния подключены к портам 1 и 2.
Модель робота – 2D модель. Физика – реалистичная физика

6. Однако, как Вы заметили, если подпрограмма «Вперёд» настраивается достаточно просто, то после поворота налево и направо, робот

смещается относительно
центра ячейки. А это негативно будет сказываться на всём дальнейшем его
движении. При каждом повороте смещение всё больше и когда-то робот просто
упрётся в стену.
Перед поворотом
После поворота
Для точного поворота на месте, кроме собственно поворота, необходимо сделать
ещё два корректирующих движения: перед поворотом – проезд немного вперед, и
откат назад после поворота. Тогда робот встанет точно в центр клетки. Таким
образом, начиная каждый раз движение из центра клетки, робот постоянно будет
находится посередине коридора.

7. Так выглядит подпрограмма для поворота направо по энкодеру:

Здесь намеренно искажены настройки блоков ожидания. Их вы должны подобрать
при настройке подпрограмм сами

8. Так выглядит подпрограмма для поворота налево по энкодеру:

Здесь намеренно искажены настройки блоков ожидания. Их вы должны подобрать
при настройке подпрограмм сами

9. Но кроме энкодера, выполнить поворот можно и по гироскопическому датчику. Поворот направо по гиродатчику:

10. Поворот налево по гиродатчику:

Напоминаю: Во всех примерах намеренно искажены настройки блоков ожидания.
Их вы должны подобрать при настройке подпрограмм сами

11. Теперь, когда подпрограммы движений робота написаны, настроены и сохранены в коллекцию, можно приступить к сборке главного

алгоритма. Главная программа
(Диаграмма поведения робота) будет выглядеть так:
Здесь применены повороты по гиродатчику. Но можно написать программу с
поворотами по энкодеру, или комбинировать: например, правый – по энкодеру,
левый – по городатчику.

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

13. Отладка робота в Trik Studio

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

На данном уроке мы рассмотрим, как пользоваться собственными блоками Ev3 при программировании Ev3.

Напишем программу для Ev3 для прохождения лабиринта. Когда в программе много раз повторяется одна и также последовательность команд, то удобно использовать собственные блоки. Это делает программу очень наглядной и удобной для изменения. Каждый блок отвечает за свой смысловой набор действий,, который можно обособить и выделить.

А далее из этих собственных блоков конструируется программа, согласно логике задания. Рассмотрим, как написать программу для Ev3 для прохождения лабиринта с помощью собственных блоков. Напишем блокидвижение вперед до стены.

программа на ev3 вперед

Поворот направо на Ev3

поворот направо на ev3

Поворот налево на Ev3

поворот налево на ev3

Выделяя эти части программы и выбирая в меню Инструменты раздел Конструктор моего блока, создадим три блока: vpered, parvo, levo. Подробно как создавать свои блоки в Ev3.Составим программу из собственных блоков Ev3 для прохождения такого лабиринта.Робот должен двигаться со старта вперед до левой стенки, потом повернуться направо и двигаться до стенки, потом повернуться направо и двигаться до стенки, налево и до стенки, и налево и до стенки до финиша.

лабиринт

Реализуем этот лагоритм с помощью собственных блоков Ev3 , которые мы создали.

программа для Ev3 прохождение лабиринта

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

Роботы в работе! Создаем, программируем, проектируем, соревнуемся и выигрываем!

Облако тегов:

ДО курс по робототехнике

4 апреля 2013 г.

Робот для состязаний: выход из лабиринта

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

Итак, вы оказались в лабиринте.



Нет. На самом деле, если вы робот, собранный на базе Lego Mindstorms, как только вы попали в лабиринт, он будет для вас выглядеть вот так.

Да. Вы ничего не видите. У вас нет глаз. У вас нет стереозрения. Для вас расположение стен лабиринта и уж тем более наличие ответвлений и проходов – загадка. Единственное, что вы, скорее всего, знаете наверняка, что прямо под вами твердая поверхность.

Что вы будете делать в таком случае? Идти вперед выставив руки перед собой? Не плохая идея. А потом что? И вообще, что значит "вперед"? А если это очень большой зал? В таком случае, есть вероятность, что, поскольку вы не видите ориентира, на который могли бы равняться, то вы будете шагать чуть-чуть в сторону. В итоге, прошагав окружность вы вернетесь на тоже место с какого начали, но так и не узнаете, что вернулись в него – так вы будете ходить очень долго.
Наиболее разумной идеей было бы попытаться найти опору в виде стены для какой-либо руки. Допустим, правой. Как только стена обнаружена, вы в вправе двигаться вперед или назад. Стена в таком случае будет являться вашим путеводителем, опорой в этом "темном" мире.

У робота такой рукой могут быть сенсоры расстояния, касания или даже освещенности. Если робот использует сенсор касания, то во время движения в момент, когда стена потеряется, он выдаст сигнал, который будет служить для робота поводом изменить свое поведение. Если используется сенсоры расстояния, то для того, чтобы двигаться вдоль стены, не обязательно приближаться к ней вплотную – достаточно приблизится на какое-нибудь удобное расстояние и во время движения стараться находиться все время на том же расстоянии от стены. В таком случае, резкое изменение расстояния, сигнализирует о том, что роботу нужно совершить существенную корректировку своего курса, например поворот за угол.

Сенсор освещенности может также использоваться роботом в контексте определения расстояния – чем ближе сенсор к стене, тем больше света возвращается (от светлой стены), чем дальше от стены, тем меньше света возвращается.

Итак,как будет выглядеть наше движение?

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


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

Поэтому, чтобы уберечь свой лоб, рекомендуется вторую руку держать перед собой. Для робота второй рукой будет еще один сенсор. Причем, можно использовать как один из тех трех сенсоров, что перечислялись выше – сенсор расстояния, сенсор касания, сенсор освещенности, так и счетчики поворота оси двигателей. Если до столкновения счетчик поворота оси двигателя увеличивался на одну постоянную величину за единицу времени, то после столкновения характер изменений будет другим – за ту же единицу времени прирост будет значительно меньше - при столкновении со стеной-препятствием, двигатели начнут вращаться медленнее.

Ответной реакцией на столкновение со стеной будет поворот к ней боком, после чего уже эта стена будет использована как "опорная" вашей правой рукой. Движение продолжится вдоль нее.

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

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

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


Согласно заданию, лабиринт состоит из шести секций, соединенных между собой проходами. Конфигурация проходов заранее неизвестна. Таким образом, одно из возможных конфигураций лабиринта будет выглядеть следующим образом:


Где зеленая секция – место старта робота, а красная секция – место финиша.

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

Как результат, траекторию движения робота в приведенной выше конфигурации лабиритна можно будет отобразить как:

Видно, что траектория движения робота неоптимальна. Так, например, при заходе в области обозначенные штриховкой на рисунке ниже, робот попросту теряет время.

А что если для поиска опоры использовать не правую, а левую руку? Тогда методика обхода лабиринта будет уже называться "Правилом левой руки". В ней все действия будут аналогичны, только направление движения будет меняться: роботу все время необходимо двигаться "держась" левой стенки. Обрыв стены означает для робота, поиск ее с левой стороны. Если перед роботом возникает препятствие , то робот выполняет правый поворот, так что препятствие становится по левую сторону и используется роботом к новая "опора", вдоль которой нужно перемещаться.


Траектория движения в этом же лабиринте изменится:

Очевидно, что "Правило левой руки" дает более оптимальную траекторию – т.е. робот сможет проехать лабиринт за меньшее время. И в первую очередь, в данном конкретном задании, это обуславливается положением старта и финиша в лабиринте.


Хотя и в конкретном приведенном примере было видно, что траектория движения робота, выполняющего "Правило левой руки", - более оптимальна, их этого нельзя сделать вывод, что в каждом лабиринте такой робот будет опережать робота, запрограммированного на движение по "Правилу правой руки".

Например,
1. Робот, двигающийся вдоль правых стенок – выполняет меньше ненужных обходов, т.е. придет к финишу быстрее. Общая длина ненужных обходов для него 1 ячейка, в то время как роботу, двигающемуся вдоль левых стенок – нужно сделать ненужных проходов длиной в 3 ячейки (одна в четвертом коридоре и две в пятом).


2. На этом поле, робот, движущийся по "Правилу левой руки", придет к финишу раньше. 2 ячейки против 4-х.


3. В данной конфигурации количество "лишних" заходов у обоих роботов – одинаково (по 2 ячейки).

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

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


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

Следовательно, можно сделать вывод, что у робота, двигающегося вдоль левых стенок, вероятность прийти к финишу первым выше. Т.е. при выборе, какой именно алгоритм реализовывать у робота, выбор, безусловно, ложиться на "Правило левой руки".

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


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


Назовем этот маневр также "ненужным" ходом, тогда табличка станет выглядеть следующим образом:

Т.е. варианты попасть на "хорошее" поле у робота, работающего по "Правилу левой руки" все еще существенно выше.

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

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

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

Напомним, что в конструкции всех роботов, двигающихся по "Правилу левой руки", будет одинаковый элемент: сенсор расстояния/освещенности/касания будет направлен влево.

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

Давайте подумаем, как можно избежать заездов в заштриховнные области?

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

Один из возможных вариантов – не закреплять сенсор расстояния жестко с левой стороны, а прикрепить его к двигателю. Еще вариант – не только сделать сенсор вращающимся, но и добавить еще один. В обоих случаях, при определенном положении робота и сенсора, у него возникает возможность "увидеть", что его ждет в каждом из ответвлений – со стороны, где стенки нет, сенсор будет показывать большее расстояние.

Если робот обнаружил такую ситуацию, он сразу же корректирует свой курс, и, таким образом, избегает "ненужного" поворота.


Такая же конструкция позволит оптимизировать траектория движения и для тупика второго вида.

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


Тогда решением может оказаться, автоматическое изменение конфигурации сенсоров при движени вдоль стены. Сенсоры из расположения "углом" начинают просто смотреть в разные стороны:

Как видно, "свободный проход" в таком случае определяется достаточно просто. В то время как один сенсор работает на движение по "Правилу левой руки", второй просто сообщает роботу, что заметил проход, после чего робот корректирует свое поведение.

  1. Движение прямо с опросом датчиков, обнаруживающих проход справа, и датчиков, обнаруживающих столкновение с преградой
  2. Поворот направо, в случае обнаружения прохода
  3. Поворот налево, в случае обнаружения препятствия

Здесь следует ненадолго остановиться и опять вернуться к рассмотрению конструкции робота.

Первый случай - поворот направо. Подразумевается, что он происходит после срабатывания датчика смотрящего в сторону.



После такой остановки, робот может выполнить два возможных поворота: либо поворот одним колесом, либо поворот вокруг своей оси.

  • сдвинув датчик назад
  • или просто переместив робота после обнаружения прохода, но до выполнения поворота чуть-чуть вперед.


Теперь следует рассмотреть с таких же позиций разворот налево.

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

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

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




Структура основной программы однозначно диктуется правилом правой руки:



Алгоритм начинает свое выполнение с движение вперед. Как уже говорилось, в общем случае, это может быть обычное движение.

Затем, друг за другом идет проверка на обнаружение прохода в правой стене, либо на обнаружение столкновения с препятствием. И, в зависимости от того, какая проверка сработала, вызываются блоки поворотов. Если никакая проверка не сработала в этот момент времени, то в следующий момент времени нужно сделать еще одну проверку, а потом еще и еще.

Очевидно, что после выполнения поворотов нужно опять продолжить движение вперед, и опять перейти к проверкам на проход или препятствие.



В итоге, программа на языке NXT-G будет похожа на подобную конструкцию:



Как уже говорилось, блок движение вперед может быть замещено специальным блоком, который бы обеспечивал перемещение вдоль стены. Хотя во многих случаях эта проблема может быть решена чисто механически: у робота с нужно стороны устанавливаются ролики или направляющие, которые не позволяют ему слишком приблизиться к стене.

Примеры такого решения можно подсмотреть в роликах ниже:




При этом, чтобы не отъезжать далеко от стены, нужно двигаться чуть-чуть с заворотом (распределение нагрузки между моторами) в сторону стены.

NiNoXT

среда, 3 апреля 2013 г.

Робот для состязаний: выход из лабиринта. Часть V

  1. Движение прямо с опросом датчиков, обнаруживающих проход справа, и датчиков, обнаруживающих столкновение с преградой
  2. Поворот направо, в случае обнаружения прохода
  3. Поворот налево, в случае обнаружения препятствия

Здесь следует ненадолго остановиться и опять вернуться к рассмотрению конструкции робота.

Первый случай - поворот направо. Подразумевается, что он происходит после срабатывания датчика смотрящего в сторону.



После такой остановки, робот может выполнить два возможных поворота: либо поворот одним колесом, либо поворот вокруг своей оси.

  • сдвинув датчик назад
  • или просто переместив робота после обнаружения прохода, но до выполнения поворота чуть-чуть вперед.


Теперь следует рассмотреть с таких же позиций разворот налево.

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

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

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




Структура основной программы однозначно диктуется правилом правой руки:



Алгоритм начинает свое выполнение с движение вперед. Как уже говорилось, в общем случае, это может быть обычное движение.

Затем, друг за другом идет проверка на обнаружение прохода в правой стене, либо на обнаружение столкновения с препятствием. И, в зависимости от того, какая проверка сработала, вызываются блоки поворотов. Если никакая проверка не сработала в этот момент времени, то в следующий момент времени нужно сделать еще одну проверку, а потом еще и еще.

Очевидно, что после выполнения поворотов нужно опять продолжить движение вперед, и опять перейти к проверкам на проход или препятствие.



В итоге, программа на языке NXT-G будет похожа на подобную конструкцию:



Как уже говорилось, блок движение вперед может быть замещено специальным блоком, который бы обеспечивал перемещение вдоль стены. Хотя во многих случаях эта проблема может быть решена чисто механически: у робота с нужно стороны устанавливаются ролики или направляющие, которые не позволяют ему слишком приблизиться к стене.

Примеры такого решения можно подсмотреть в роликах ниже:




При этом, чтобы не отъезжать далеко от стены, нужно двигаться чуть-чуть с заворотом (распределение нагрузки между моторами) в сторону стены.

Робот ищет выход из лабиринта

Робот ищет выход из лабиринта

рыночная экономика

В этой статье приводится пример того, как с помощью программирования в NXT-G научить Вашего робота NXT самостоятельно двигаться по заданной траектории и искать выход из лабиринта.

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

Первая - записывает траекторию движения, вторая после запуска - ее воспроизводит.

Программа записи траектории

1. Назовите его Record. Левой кнопкой мыши перетащите в рабочую зону иконку Звук.


2. Настройте блок для воспроизведения музыкального тона - ноты A (ля)- в течении 0,5 секунд.



4. Настройте его для записи (Record) последовательности с именем Labirynth по портам B и C в течении 20-ти секунд. Этого времени должно хватить на прохождение лабиринта.


5. Добавьте еще один блок Звук с теми же параметрами.




После звукового сигнала за 20 секунд проведите робот через лабиринт и верните его на исходную позицию. Записанная траектория хранится в памяти NXT.

Программа воспроизведения траектории

1. Создайте новый документ. Назовите его Play. Левой кнопкой мыши перетащите в рабочую зону иконку Звук.


2. Настройте блок для воспроизведения музыкального тона - ноты A (ля)- в течении 0,5 секунд.




Похожие материалы (по тегу)

1 Комментарий

Ёкубджон

Норм но требуется более точные и сложные программы и вставки из конструкции а так норм!))))) лайк от робототехника!)))

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

Лабораторный практик�…

29-04-2013 Hits: 3586 NXT 2 Capitano

Лабораторный практикум №4 по LEGO MINDSTORMS NXT

Целью данного урока является написание кода для подключения Wiimote по Bluetooth при помощи LabVIEW. Приведен пример написания кода для считывания состояния одной кнопки и статуса XYZ ускорения Wiimote.

Лабораторный практик�…

24-04-2013 Hits: 15594 NXT 2 Capitano

Лабораторный практикум №3 по LEGO MINDSTORMS NXT

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

Лабораторный практик�…

22-04-2013 Hits: 3815 NXT 2 Capitano

Лабораторный практикум №2 по LEGO MINDSTORMS NXT

Целью данного урока является изучение основ среды программирования LabVIEW и получение практических навыков программирования с использованием инструментария LabVIEW NXT. Приведен пример написания кодов для считывания показаний датчиков на NXT-блоке.

Лабораторный практикум №1 по LEGO MINDSTORMS NXT

Целью этого урока является подключение NXT-блока и удаленного контроллера Wii (Wiimote) к ноутбуку или компьютеру при помощи беспроводного протокола Bluetooth. Приведен пример демонстрационной программы LabVIEW, а также пример использования Wiimote…

Проводник

В этой статье предлагается пример програмирования LEGO-спасателя для передвижения в опасной среде по непрямому пути. Студенты узнают, как модернизировать интеллект их машины так, чтобы она могла реагировать на окружающую среду…

LEGO-спасатель на LabVIEW

В этом разделе предлагается пример програмирования LEGO-спасателя для передвижения в опасной среде с целью выполнения операции по спасению. Студенты будут моделировать прототип автономного транспорта, используя набор LEGO MINDSTORMS® NXT и программировать…

Инструментарий и модуль LabVIEW для LEGO MINDSTORMS NXT

Программирует и управляет устройствами NXT со всеми возможностями LabVIEW Получает обновления в реальном времени от устройства NXT во время программирования с помощью фронтальных панелей LabVIEW Создает родные для программного обеспечения LEGO MINDSTORMS…

LabVIEW расширяет возможности MINDSTORMS NXT

Инженеры и научные работники во всем мире, студенты ВУЗов, учащиеся средних специальных заведений и даже школьники используют программный продукт компании National Instruments - LabVIEW™ (Laboratory Virtual Instrument Engineering Workbench). Простота графического…

Ramp Up и Ramp Down в блоке Motor

Довольно многие, узнавая о существовании блока Motor, почти сразу задают вопрос: «А зачем он нужен? Ведь есть блок Move - он может все то же самое?» Правильно было бы сказать -…

Учебный практикум по LabVIEW

На этом уроке Вы не увидите привычных и возможно, в какой-то мере, даже скучных VI по временной, частотной или еще какой-нибудь обработке данных. Если Вы читали этот выпуск журнала не…

NXT-G: неочевидное поведение программы при работе с датчиком касания

Среда NXT-G при работе с датчиком касания предоставляет несколько событий, реакцию на которые можно обработать в программе. Но есть и ряд «не очевидностей». Давайте рассмотрим их подробнее.

Какая кнопка на NXT-блоке нажата?

То, что NXT-G предоставляет возможность получать состояние кнопок, расположенных на NXT-блоке, ни для кого не является секретом. С помощью специального программного блока можно в любой момент времени узнать, в каком…

Читайте также: