Показаны сообщения с ярлыком проблема. Показать все сообщения
Показаны сообщения с ярлыком проблема. Показать все сообщения

понедельник, 24 марта 2014 г.

EV3 выполняем повороты с помощью датчика-гироскопа. Часть II

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

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

Можно даже выполнить следующий эксперимент:
В простой программе поворота робота на угол 90 градусов вокруг одного колеса от запуска к запуску будет меняться мощность на моторах. В первом запуске мощность будет 100%, во втором - 50%, в третьем - 20% и т.п.
Для сравнения, после поворота вокруг своей оси также будет проводиться эксперимент с поворотом вокруг одного колеса по похожей схеме.

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

воскресенье, 15 декабря 2013 г.

Проблема с двумя датчиками расстояния на EV3

Платформа EV3 - очень новая, и робототехникам, использующим ее для своих проектов, предстоит еще столкнуться с многими тонкостями при ее использовании, а также придумывать способы для борьбы с ошибками, которые появились, как в программном, так и в аппаратном обеспечении.
Например, наверняка, идея использовать два датчика расстояния (ультразвуковых) покажется неплохой идеей для решения задачи поиска выхода из лабиринта роботом: один датчик ищет проходы справа (или слева), другой смотрит - нет ли препятствия перед роботом.

воскресенье, 1 декабря 2013 г.

Решение проблем с EV3 датчиком-гироскопом программным способом

Датчик-гироскоп, по умолчанию идущий в составе образовательных наборов LEGO Mindstorms EV3, - одно из самых интересных устройств для экспериментов в новом наборе! Но те, кто начал использовать его в своих конструкциях, наверняка, столкнулись с одним неприятным свойством - существуют такие моменты, когда показания датчика, работающего в режиме замера угла поворота, самопроизвольно нарастают или уменьшаются, хотя датчик не двигается.
Это явление называется дрифт (drift).

Данное видео демонстрирует этот эффект:

вторник, 27 августа 2013 г.

Как обновить прошивку EV3 блока

Образовательный набор EV3 уже в продаже, и, как в NXT, встроенное программное обеспечение EV3 блока, его "прошивку", можно обновлять. До тех пор, пока lego-гуру трудятся над своими версиями прошивок и своими системами обновления, мы должны использовать утилиту Lego, встроенную в EV3 среду.


суббота, 9 марта 2013 г.

NXT-G: досрочный выход из MyBlock

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

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

Часто бывает необходимо досрочно выйти непосредственно из блока, а не из всей программы. Например, если в ходе работы блока обнаружилась ошибка или выяснилось, что часть действий не нужно выполнять. В данном случае использовать блок "Остановка"/"Stop" некорректно - хотя работа блока и остановится, но также остановится и вся программа.

понедельник, 4 марта 2013 г.

Как печатать заметки из блога

Периодически возникает вопрос у читателей: как распечатать наиболее понравившиеся заметки из блога или сохранить их как отдельный файл? При этом, конечно же, интересует, как избавиться от излишнего оформления - шапки блога и правой панели.
Ориентируясь на большинство пользователей, посетивших блог за последний год, можно предложить один из самых простых и дальновидных вариантов - использовать расширение Clearly для браузеров Chrome и Firefox.

воскресенье, 3 марта 2013 г.

Зачем нужны профили в NXT-G?

Не смотря на то, что среда программирования NXT-G существует уже давно (больше 6 лет), но многие нюансы ее использования всплывают до сих пор.
Вот например, в NXT-G существует возможность создавать профили, но многие ли пользуются этой возможностью?
На блоге NiNoXT информация о этой возможности упоминалась только один раз, но и то вскользь, можно сказать, неосознанно.

Итак, стоить наверное начать с того, что все программы, которые сохраняет пользователь в среде программирования, помещаются по умолчанию в следующую папку, расположенную в папке Мои Документы / My Documents:

суббота, 26 января 2013 г.

Не открываются разделы в CHM справке в BricxCC

"Счастливым" обладателям Windows 7 компания Microsoft довольно агрессивно навязывает свою политику безопасности - не доверять никому. Поэтому если "счастливчики" захотят обновить свою версию BricxCC из тестового релиза, доступного на сайте программы, то после обновления они при попытке использования файлов справки могут получить вот такое сообщение:

И ни один раздел справки не будет доступен.

среда, 23 января 2013 г.

Улучшенная проходимость пластиковых гусениц

Среди множества картинок, демонстрирующих модели собранные из нового набора LEGO Mindstorms EV3 можно увидеть следующую ===>

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

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

воскресенье, 25 ноября 2012 г.

NXT и Python: мотор застрял?

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

Если попробовать запустить робота с небольшими (меньше 50 процентов) параметрами мощности с помощью функции run() - такое, к примеру, возможно при движении тележки вдоль черной линии по PID регулятору, то соответствующий мотор может вообще не начать вращаться. Причем, при этом сам мотор может выдавать высокочастотный писк.

вторник, 6 ноября 2012 г.

Алгоритмы: черно-белое движение. Часть VII

В прошлых двух заметках (1, 2) было указано, что коэффициент пропорциональности линейного регулятора при движении вдоль черной линии зависит от минимального и максимального значений, которые показывает датчик освещенности на данном конкретном поле.
Прежде, чем переходить к исследованию от чего же еще зависит коэффициент, хотелось бы рассмотреть некоторые особенности управления моторами через каналы данных. Данное знание позволит более тщательно подходить к расчету коэффициента пропорциональности или, как это будет показано в конце заметки, сделать программу более устойчивой к изменению освещенности на поле.

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

суббота, 23 июня 2012 г.

Больше, чем три мотора к одному NXT? Почему нет?!

Фотографии взяты из этой статьи.

Для многих, кто хочет делать продвинутые устройства из Lego Mindstorms NXT, возможность подключить только три мотора к NXT блоку является существенным ограничением.
Один из способов обойти это - сделать механические мультиплексор. Как это было показано здесь и здесь. У него, без условно, есть ограничения - нужно много шестерней и конструкция становиться очень большой.

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

Остается еще несколько способов, о которых поговорим ниже.

суббота, 9 июня 2012 г.

Подключаем NXT блок по USB в Linux

Хотя операционные системы на базе ядра Linux шагнули уже далеко вперед в плане пользовательского удобства и автоматической настройки, что называется, из коробки, но все же некоторые вопросы еще приходится решать по старинке - в ручную изменяя конфигурационные файлы и исследуя журналы работы системы (в обычной речи ITшников - логи).
К сожалению, подключение NXT блока для его программирования, не происходит автоматически в удобном для пользователя виде, за исключением специализированных Linux дистрибутивов таких как nxcEditor LiveCD Но это компенсируется тем, что добиться этого можно с минимальным количеством изменения стандартных настроек системы.

Ниже рассматривается пошаговая инструкция настройки подключения NXT блока через USB.

суббота, 19 мая 2012 г.

Не видна панель настройки блоков NXT-G?

Пожалуй каждый, кто программировал робота на нетбуке сталкивался с проблемой маленького разрешения экрана. И если выделить себе место для программы можно, закрыв справа панель Robo Center или My Portal, то с панелью настройки блоков (та, что возникает внизу экрана при выделении любого блока) дело обстоит сложнее. В данной заметке я приведу 2 способа решения проблемы, когда панель настройки в NXT-G не видна.

суббота, 24 марта 2012 г.

Особенности организации bluetooth соединения между NXC и NXT-G

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

воскресенье, 16 октября 2011 г.

NXT Brick: поломка USB порта

Иногда, при активном использовании USB порта в Lego Mindstorms NXT блоке, может произойти его поломка - пластиковой направляющий сердечник может обломится или вдавится внутрь, это приведет к тому, что либо порт сразу перестанет работать, либо контакты погнуться и вставлять USB-коннектор в это разьем уже станет невозможно.

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

вторник, 11 октября 2011 г.

Установить NXT-G на Windows 7 Starter

Один из участников группы Робототехника с Lego Mindstorms NXT, размещенной vkontakte.ru, поделился своей проблемой, что графическая среда программирования NXT-G 2.0 не устанавливается на Windows 7 Starter
Чтобы помочь человеку, был организован быстрый поиск в Интернет, который вывел на блог преподавателя программирования Lego-роботов из Мексики, в котором указывается вполне рабочий совет, как изменить инсталятор NXT-G, для того, чтобы он позволил установку на Windows 7.

Итак,
  1. Скопируйте содержимое инсталяционного диска к себе на жесткий диск
  2. Найдите в скопированной папке с содержимым инстялятора файл setup.ini и откройте его в Notepad/Блокноте для редактирования
  3. Файл разделен на секции, каждая из них начинается с определения секции в квадратных скобках. Найдите секцию [OS] и в конце ее добавьте новую строку:
    AllowWindowsStarter=1
  4. Сохраните и закройте файл
  5. Запустите инсталяцию NXT-G из скопированной папки.
Тот же участник группы подтвердил, что у него теперь инсталяция прошла без проблем.

воскресенье, 8 мая 2011 г.

NXT-G: программа повисла?

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

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

суббота, 7 мая 2011 г.

В помощь владельцам Robotics Invention System.


У владельцев RCX часто возникает подобная проблема: для программирования на компьютере с Windows XP необходим патч. Раньше этот патч хранился на сайте lego.com , но сейчас его удалили. Патч был найден мною на этой странице: ресурс. Также там имеется драйвер для использования Инфракрасной башни.

пятница, 1 апреля 2011 г.

Проблема: робот не едет прямо

От одного из читателей блога прозвучал такой вопрос:
ставлю два двигателя (схема танковая), с синхронизацией, все-ровно прямо
идеально не едет.
Может это болезнь всех NXT?

Да, похоже каждый из NXT страдает этим. Кто-то больше, кто-то меньше. И поскольку проблема общая, то совет публикуется в отдельном посте.

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

Есть несколько возможностей уменьшить этот эффект (убрать совсем - вряд ли):
  1. При большом выборе моторов, можно подобрать два таких мотора, погрешность которых при движении прямо минимальна. Методика подбора описана здесь.
  2. На "текстовых" языках программирования есть возможность передать коэфициенты во внутренний PID регулятор двигателей. При "правильно" подобрнанных коэфициентах, разницу в движении моторов можно нивелировать.
  3. Можно попробовать написать свой собственный PID регулятор для движения. Здесь замерямой величиной будет разница во вращении двигателей за единицу времени, а контроллируемой - мощность, подаваемая на каждый мотор.
P.S. А вообще о PID регуляторах, когда-нибудь напишется небольшая статья для блога. Следите за обновлениями.
Related Posts Plugin for WordPress, Blogger...