Как сделать программу для робота nxt

Добавил пользователь Валентин П.
Обновлено: 04.10.2024

В данном разделе выложены различные инструкции по сборке различных механизмов и роботов из конструкторов LEGO Mindstorms серии NXT и EV3. При сборке следует учитывать, что некоторые из конструкций потребуют дополнительных деталей из ресурсных наборов (каких-то деталей вам может не хватить, каких-то может вообще не быть в вашем наборе). Авторство инструкций принадлежит не мне. Если вы хотите добавить инструкцию к какому-либо набору, то напишите мне. Также большое количество различных инструкций для набора LEGO Mindstorms NXT можно найти на сайте NXT Programs.

Данный курс разработан в 2015-2016 учебном году методистом ГБОУ ДПО ЦПК "Похвистневский РЦ" Федоровой Еленой Ананьевной и учителем информатики ГБОУ СОШ им.Н.Т.Кукушкина с.Савруха Садчиковой Н.Ф.



Конструктор Lego Mindstorms, компьютер, программное обеспечение NXT Software v2.1.6, выход в Интернет, эл.почта.


На первом занятии мы познакомимся с набором 9797, распакуем и изучим детали. Получим представление о микропроцессорном блоке NXT, являющимся мозгом конструктора LEGO Mindstorms. Целью занятия является подготовка конструктора и NXT к дальнейшей работе.

Задания: Рассмотри комплект внимательно, подготовь его к дальнейшей работе.

Мы начинаем знакомство с конструкцией блока NXT, его органами управления и индикации. Рассмотрим подключение к блоку различных устройств в том числе и компьютера. Составной частью LEGO Mindstorms NXT является специальная компьютерная программа.

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

Задание: создать модель, используя инструкцию, которая находится в комплекте.

Задания: продолжите собирать модель, используя инструкцию, в которой указано как подсоединить датчики.



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

Задание: запустите программу, познакомьтесь с инструментами.

На занятии вы получите общее представление о принципах программировании роботов на языке NXT-G, о тех кирпичиках - программных блоках, из которых строятся программы графической среды Mindstorms Edu NXT.

Задание: запустите программу, познакомьтесь с программными блоками.

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

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



Нам предстоит освоить управление роботом с помощью блока движение. Попробуйте запрограммировать робота на движение змейкой или по спирали.

Задание: создайте любую из этих программ и испытайте ее на своей модели.

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

Программа "Парковка в гараж"

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

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

Задание: создайте программу для робота, который остановится, если впереди будет препятствие на расстоянии 10 см.

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

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

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

Задание: запрограммировать робота и протестировать его

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

Задание: создать робота-футболиста, запрограммировать его и протестировать.


обучение основам робототехники и создание действующий модели программируемого робота.

Методы проведенных исследований: конструирование и программирование.

Основные результаты научного исследования (научные, практические): разработана модель бота.

Введение.

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

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

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

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

Появление в школе комплекта Робототехники LEGO Mindstorms NXT нас очень заинтересовало. Это не просто детская игра, а целая наука, объединяющая в себя физику, математику, информатику, английский язык. Мы решили изучить данную науку, чтобы воплощать в роботах свои фантазии.

Цель проекта:

обучение основам робототехники и создание действующий модели программируемого робота.

Задачи проекта:

познакомиться с конструктором LEGO NXT.

изучить основы программирования в среде LEGO MINDSTORMS NXT 2. 0

Исследовательский проект по информатике Программируемый робот Lego Mindstorms NXT

сконструировать модель робота.

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

испытать полученного робота.

Основное содержание.

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

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

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

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

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

LEGO Mindstorms NXT – это конструктор (набор сопрягаемых деталей и электронных блоков) для создания программируемого робота.

Впервые представлен компанией LEGO в 1998 году.

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

Весь материал - в документе.

Содержимое разработки

Полное название темы работы

Программируемый робот Lego Mindstorms NXT

Название научного направления конференции и секции

Физико-математическое направление, секция: информационные системы и технологии в науке, технике, образовании (Программирование)

Возрастная номинация

Фамилия имя
автора, авторов

Место учебы:

МБОУ Абанская СОШ №4 им.В.С. Богуцкого

Место выполнения работы

Руководитель

Бобкова Юлия Валерьевна, СОШ №4, учитель информатики

Научный руководитель

Ответственный за корректуру текста работы

Бобкова Юлия Валерьевна, СОШ №4, учитель информатики

e-mail (обязательно)
Контактный телефон

МБОУ Абанская СОШ №4 им.В.С.Богуцкого, п.Абан, Красноярский край, 8 класс

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

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

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

Появление в школе комплекта Робототехники LEGO Mindstorms NXT нас очень заинтересовало. Это не просто детская игра, а целая наука, объединяющая в себя физику, математику, информатику, английский язык. Мы решили изучить данную науку, чтобы воплощать в роботах свои фантазии.

познакомиться с конструктором LEGO NXT

изучить основы программирования в среде LEGO MINDSTORMS NXT 2.0

сконструировать модель робота

создать программу для управления роботом

испытать полученного робота

Предмет исследования: конструктор со средой программирования LEGO MINDSTORMS NXT. Гипотеза: робототехника позволяет воплощать в роботах свои фантазии.

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

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

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

LEGO Mindstorms NXT – это конструктор (набор сопрягаемых деталей и электронных блоков) для создания программируемого робота.

Впервые представлен компанией LEGO в 1998 году.

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



Изучаем программирование в среде LEGO MINDSTORMS NXT 2.0

На этапе непосредственной реализации проекта мы занимались разработкой механизма робота на основе конструктора LEGO NXT.




Старались составить программу для управления роботом в среде LEGO MINDSTORMS NXT 2.0. Здесь столкнулись с небольшой проблемой, вся программа только на английском языке и нужно было переводить все термины и команды с английского языка на русский.

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








Сборка новой машины


Так возникла новая проблема, которую нужно было решить.

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

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



Теперь нужно протестировать ее работу. Мы довольны результатом. Получилось то, что мы хотели.

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

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

Первый шаг в робототехнику: практикум для 5-6 классов/Д.Г.Копосов. М.: БИНОМ. Лаборатория знаний, 2012. – 87 стр.

Филиппов С.А. Робототехника для детей и родителей. – СПб.: Наука, 2010, 195 стр.

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

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

программирование роботов

программирование роботов

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

Какой язык выбрать?

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

Ассемблер

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

ассемблер

ассемблер

Ассемблер нужно использовать только тогда, когда вам необходим абсолютный контроль над вашим кодом на уровне инструкций;

Basic

Один из первых широко используемых языков программирования. Он по-прежнему используется некоторыми микроконтроллерами ( Basic Micro , BasicX , Parallax ) для программирования учебных роботов;

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

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

Запатентованный язык Microsoft используется для разработки приложений в Visual Studio;

Программирование для контроллеров Arduino

Используется вариант C ++. Программирование роботов на нём включает некоторые упрощения для того, чтобы сделать программирование не таким сложным;

Python

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

На уроке 4 вы выбрали микроконтроллер на основе необходимых вам функций (количество операций ввода-вывода, специальные функции и т. д.). Часто микроконтроллер предназначен для программирования на определенном языке.

  • Микроконтроллеры Arduino используют программное обеспечение Arduino и перепрограммируются в процессе обработки.
  • Базовые микроконтроллеры Stamp используют PBasic.
  • Микроконтроллеры Basic Atom используют Basic Micro.
  • Javelin Stamp из Parallax запрограммирован на Java.

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

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

Программирование роботов — начало.

hello world

hello world

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

В случае с микроконтроллером другой очень простой программой, которую вы можете сделать — это переключение вывода IO. Присоединение светодиода к выходному контакту. Затем установление контакта I / O в положение ON и OFF приведет к миганию светодиода. При помощи контактов I / O можно запрограммировать много сложных функций. Например, включение многосегментных светодиодов для отображения текста и цифр, управления электромагнитными реле, сервоприводами и т.д.

Шаг 1.

Убедитесь, что у вас есть все компоненты, необходимые для программирования микроконтроллера. Не все микроконтроллеры поставляются со всем необходимым для их программирования. Большинство микроконтроллеров необходимо подключить к компьютеру через USB-штекер.

USB штекер

USB штекер

Если ваш микроконтроллер не оснащен разъемом USB, возможно вам понадобится отдельный USB-адаптер для последовательного интерфейса. Этот адаптер нужно правильно подключить. Многие микроконтроллеры программируются либо через порт RS-232, либо через USB. Часто они включают в себя разъем USB на плате. Разъем USB используется не только для двусторонней связи, но и для питания платы микроконтроллера.

Шаг 2.

Подключите микроконтроллер к компьютеру и проверьте, к какому COM-порту он подключен.

com порт

com порт

Шаг 3.

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

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

  • Изучите руководства по продуктам и руководство пользователя.
  • Посетите форум производителя.
  • Проверьте публикации в Интернете для продукта и кода.
  • Прочтите руководство, чтобы понять, как написать код.

Полезные советы.

Создавайте управляемые куски функционального кода.

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

Документируйте все в коде, используя комментарии.

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

Сохраняйте разные версии кода.

Не всегда перезаписывайте один и тот же файл. Если вы обнаружите, что ваши 200+ строк кода не будут компилироваться, не стоит останавливаться только на этой версии кода. Вместо этого вы можете вернуться к ранее сохраненной (и функциональной) версии и добавить или изменить ее по мере необходимости. Код не занимает много места на жестком диске. Поэтому вы можете спокойно сохранять несколько копий.

При отладке робота поднимите его.

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

Если код делает что-то, что кажется неработоспособным.

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

Практический пример

Для нашего проекта был выбран набор Lego Mindstorms EV3. Для него есть специальная графическая среда программирования EV3 Programmer. Её можно бесплатно скачать с официального сайта Лего и сразу приступать к программированию робота.

ev3 programmer

программирование Lego EV3

Программирование происходит при помощи пиктограмм и является доступным для понимания.

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