Денис Генадьевич Копосов, учитель информатики из Архангельска, автор учебно-методического комплекта "Первый шаг в робототехнику" (учебник и рабочая тетрадь), подготовил презентацию в которой делится секретами своих достижений, а именно организацией лабораторий инженерной направленности и интеграции их в учебный процесс обычной общеобразовательной гимназии. |
Показаны сообщения с ярлыком опыт. Показать все сообщения
Показаны сообщения с ярлыком опыт. Показать все сообщения
среда, 20 марта 2013 г.
Инженерное образование в школе: как организовать учебный процесс
четверг, 30 декабря 2010 г.
Памятка для будущих победителей состязаний по программированию Lego-роботов
Участие в соревнованиях по программированию Lego-роботов один из увлекательнейших этапов при изучении робототехники. Это не только командная работа, дух состязания и радость победы, но и возможность почувствовать себя вовлеченным в разработку Проекта, подобным тем, что имеют место быть на настоящих предприятиях, исследовательских институтах, R&D центрах. |
вторник, 30 ноября 2010 г.
Новый выпуск журнала Hispabrick
Для всех англочитающих фанатов Lego - праздник, вышел новый (девятый) выпуск журнала бесплатного Hispabrick.
понедельник, 8 ноября 2010 г.
Тонкости и уловки при работе с NXT-G. Часть III.
Первые две части доступны здесь и здесь.
Совет 12.
Хотя и авторы оригинальных "NXT-G Tips & Tricks" говорят, что операция Undo работает хорошо, на самом деле, судя по всему, редактор не хранит достаточно длинную историю изменений. Тем не менее, довольно часто вы можете попробовать "откатить" последний изменения, которые привели к тому, что ваша программа стала выглядеть некорректно.
Совет 13.
Каналы данных можно разветвлять так, чтобы один выход мог вести к нескольких входам:
Просто начните вести новый "провод" от нужного выхода к соответствующему каналу данных и щелкните мышкой для соединения.
Будьте осторожны при удалении таких разветвляющихся каналов. Если выбрать канал, а потом нажать Delete - удалиться весь канал целиком со всех входов. Довольно трудно восстановить по памяти после этого все соединения, которые удалять не надо было. Если нужно удалить только одно ответвление - выбирите соответствующий вход (курсор изменит свой внешний вид) и нажмите на него.
Совет 14.
Если необходимо опубликовать где-то всю вашу программу целиком в виде картинки, а не .rbt файла, лучший способ это сделать воспользоваться пунктом печать.
Он предусматривает печать в html файл, при этом сама программа сохраняется в виде .png картинок. Если программа имеет вызовы подпрограмм (созданных через MyBlock) или блоки Выбор со вкладками - их содержимое будет сохранено в отдельные файлы, если Print Hidden Code выбрана.
Все картинки и .html файл будут сохранены в том же месте, где и сама программа:
На этом пока все. Если у вас есть чем дополнить эти советы - пишите.
Совет 12.
Хотя и авторы оригинальных "NXT-G Tips & Tricks" говорят, что операция Undo работает хорошо, на самом деле, судя по всему, редактор не хранит достаточно длинную историю изменений. Тем не менее, довольно часто вы можете попробовать "откатить" последний изменения, которые привели к тому, что ваша программа стала выглядеть некорректно.
Совет 13.
Каналы данных можно разветвлять так, чтобы один выход мог вести к нескольких входам:
Просто начните вести новый "провод" от нужного выхода к соответствующему каналу данных и щелкните мышкой для соединения.
Будьте осторожны при удалении таких разветвляющихся каналов. Если выбрать канал, а потом нажать Delete - удалиться весь канал целиком со всех входов. Довольно трудно восстановить по памяти после этого все соединения, которые удалять не надо было. Если нужно удалить только одно ответвление - выбирите соответствующий вход (курсор изменит свой внешний вид) и нажмите на него.
Совет 14.
Если необходимо опубликовать где-то всю вашу программу целиком в виде картинки, а не .rbt файла, лучший способ это сделать воспользоваться пунктом печать.
Он предусматривает печать в html файл, при этом сама программа сохраняется в виде .png картинок. Если программа имеет вызовы подпрограмм (созданных через MyBlock) или блоки Выбор со вкладками - их содержимое будет сохранено в отдельные файлы, если Print Hidden Code выбрана.
Все картинки и .html файл будут сохранены в том же месте, где и сама программа:
На этом пока все. Если у вас есть чем дополнить эти советы - пишите.
суббота, 6 ноября 2010 г.
Тонкости и уловки при работе с NXT-G. Часть II.
Продолжение заметки, начатой здесь.
Совет 6.
Перед тем, как начать связывать блоки между собой с помощью каналов данных внутри Циклов и блоков Выбора, целиком разверните все блоки, которые вы хотите связывать - сделав это один раз, вам не нужно тратить время, чтобы среда тратила время на перерисовку в будущем. Затем, связывайте блоки, как вами задуманно. Примите во внимание, что если при проведении канала вы нажмете мышкой на промежуточное место на поле, позволит среде не заниматься дополнительными просчетами, как лучше канал данных отрисовать.
Совет 7.
Старайтесь избегать использования многозадачных программ. Довольно часто они не нужны, к тому же они замедляют общее выполнение.
Да, и еще, NXT-G хорошо работает (позволяет редактировать) только с основной задачей (последовательностью) и гораздо хуже со второй, третьей и т.д.
Также если вы решили разделить какую-то задачу посреди выполнения, то среда будет нормально отрабатывать это, до тех пор пока вы не захотите удалить/добавить что-то из задачи, которую вы разделили. Старайтесь не делать этого.
Совет 8.
Выводите отладочную информацию на экран. Это явно сделает вашу жизнь проще, точно не сложнее. Вы можете использовать готовые блоки для этого, просто скопируйте их в [USER_HOME_DIRECTORY]\Documents\LEGO Creations\MINDSTORMS Projects\Profiles\Default\Blocks\My Blocks\. Использование собственных блоков (MyBlocks) для отладки не увеличит объем вашей программы значительно - в скомпилированном виде только одна копия MyBlock храниться в памяти, в остальных же местах программа просто обращается к этой памяти.
Вывести текстовую строку на экран в нужной позиции: PrintLine.rbt
Вывести число строку на экран в нужной позиции: PrintNumber.rbt
Совет 9.
Пользуйтесь возможностью клонирования уже выставленных на форму блоков: зажмите Ctrl и перетащите блок или группу блоков. Все настройки блоков сохраняться. Например, если вы в блоке Move настроили работу только мотора B, после клонирования новый блок будет содержать все теже настройки.
Совет 10.
Copy-and-Paste скорее не работает, чем работает. Используйте клонирование из Совета 9, вместо Copy-and-Paster.
Совет 11.
Если у вас стали появлятся незавершенные графические элементы в блоках Цикл или Выбор (например, "балка выполнения" не достигает конца блока Цикл, когда вы используете блок Выбора внутри блока Цикл) - это сигнал того, что редактор, начал "терять вещи из виду".
Один из способов исправить - перетащить блок Выбор целиком на пустое пространство и заменить его новым блоком (не спешите, вспомните про Совет 1). Скорее всего, редактор вновь дорисует "балку выполнения" до конца.
Также иногда удаление последнего элемента в блоке Цикл может привести к тому, что в блоке Цикл не будет отображаться достаточно пустого места для вставки нового блока. К сожалению, чтобы исправить это вы должны удалить старый цикл и создать новый.
Часть III
Совет 6.
Перед тем, как начать связывать блоки между собой с помощью каналов данных внутри Циклов и блоков Выбора, целиком разверните все блоки, которые вы хотите связывать - сделав это один раз, вам не нужно тратить время, чтобы среда тратила время на перерисовку в будущем. Затем, связывайте блоки, как вами задуманно. Примите во внимание, что если при проведении канала вы нажмете мышкой на промежуточное место на поле, позволит среде не заниматься дополнительными просчетами, как лучше канал данных отрисовать.
Совет 7.
Старайтесь избегать использования многозадачных программ. Довольно часто они не нужны, к тому же они замедляют общее выполнение.
Да, и еще, NXT-G хорошо работает (позволяет редактировать) только с основной задачей (последовательностью) и гораздо хуже со второй, третьей и т.д.
Также если вы решили разделить какую-то задачу посреди выполнения, то среда будет нормально отрабатывать это, до тех пор пока вы не захотите удалить/добавить что-то из задачи, которую вы разделили. Старайтесь не делать этого.
Совет 8.
Выводите отладочную информацию на экран. Это явно сделает вашу жизнь проще, точно не сложнее. Вы можете использовать готовые блоки для этого, просто скопируйте их в [USER_HOME_DIRECTORY]\Documents\LEGO Creations\MINDSTORMS Projects\Profiles\Default\Blocks\My Blocks\. Использование собственных блоков (MyBlocks) для отладки не увеличит объем вашей программы значительно - в скомпилированном виде только одна копия MyBlock храниться в памяти, в остальных же местах программа просто обращается к этой памяти.
Вывести текстовую строку на экран в нужной позиции: PrintLine.rbt
Вывести число строку на экран в нужной позиции: PrintNumber.rbt
Совет 9.
Пользуйтесь возможностью клонирования уже выставленных на форму блоков: зажмите Ctrl и перетащите блок или группу блоков. Все настройки блоков сохраняться. Например, если вы в блоке Move настроили работу только мотора B, после клонирования новый блок будет содержать все теже настройки.
Совет 10.
Copy-and-Paste скорее не работает, чем работает. Используйте клонирование из Совета 9, вместо Copy-and-Paster.
Совет 11.
Если у вас стали появлятся незавершенные графические элементы в блоках Цикл или Выбор (например, "балка выполнения" не достигает конца блока Цикл, когда вы используете блок Выбора внутри блока Цикл) - это сигнал того, что редактор, начал "терять вещи из виду".
Один из способов исправить - перетащить блок Выбор целиком на пустое пространство и заменить его новым блоком (не спешите, вспомните про Совет 1). Скорее всего, редактор вновь дорисует "балку выполнения" до конца.
Также иногда удаление последнего элемента в блоке Цикл может привести к тому, что в блоке Цикл не будет отображаться достаточно пустого места для вставки нового блока. К сожалению, чтобы исправить это вы должны удалить старый цикл и создать новый.
Часть III
четверг, 4 ноября 2010 г.
Тонкости и уловки при работе с NXT-G. Часть I.
Известно, что среда NXT-G довольно тяжелая и неповоротливая. На медленных компьютерах работа с ней превращается в мучение. С этим ничего нельзя поделать. Но существует несколько советов, которые позволят избежать многих досадных неприятностей при работе с данной программой. Довольно большая коллекция таких советов была собрана командой teamhassenplug.org, за что им отдельное спасибо.
Здесь предлагается перевод данных советов, с примечаниями и дополнениями.
Совет 1.
Не торопите события. Когда вставляете блок между существующими блоками, вы можете перетащить его в нужную позицию так, что "тень" размером 1x3 клеточки появится в нужном месте... Но не спешите сразу же "отпустить" блок, подождите пока редактор действительно освободит место для него.
По неизвестным причинам, редактор начинает ошибаться с расстановкой блоков наиболее часто тогда, когда вы начинаете торопить его и надеятся, что он запомнит, где все захваты и перемещения блоков были выполнены.
Совет 2.
"Сохраняйтесь чаще, как можно чаще". Вы никогда не знаете, в какой момент вы сможете исковеркать то, что работало раньше, или в какой момент редактор перестанет работать вообще. Если имя программы уже задано, комбинация клавиш Ctrl+S поможет вам сохранять вашу программу довольно часто.
Неплохой мыслью является идея сохранять каждую работающую версию с новым именем, так что вы можете всегда вернуться на предыдущую версию или даже более поздние.
Особенно рекомендация актуальна для подпрограмм (MyBlock). Если одна подпрограмма используется в нескольких программах. Но в ходе работы над новой программой, необходимо внести изменения в подпрограмму - сделайте для нее новую версию. Тогда вы будете уверены, что старые программы будут работать точно так, как и были протестированы.
Совет 3.
Используйте подпрограммы. Они позволяют сохранить огромное количество памяти ( когда похожие конструкции кода используются несколько раз в программе), являются хорошим тоном при программировании, делают код программы более читабельным и т.п.
Совет 4.
Блок Условия очень нагляден, чтобы показать ветвление алгоритма, но отключение "flat" режима было бы
- занимающим меньше места
- более полезным - в этом режиме вы можете передавать данные в ветки условий и из них, а также вы можете иметь больше чем два ветвления.
- более стабильным - возможно, потому что такая форма блока условия ближе к той, что используется в LabVIEW, в то время как "обычная" форма блока, была специально адаптирована для NXT-G
Совет 5.
Не используйте переменные, там где каналы данных (data wires) сделают это за вас. Трудно избавиться от привычки использовать переменные, для людей пришедших из текстовых языков программирования. Но NXT-G обрабатывает значения, передаваемые "вперед" через канал данных, лучше в некоторых случаях, чем таже реализация, но с переменными.
К тому же есть ограничения на использование переменных: все переменные глобальные, длинные имена переменных не отображаются.
Часть II
Часть III
Здесь предлагается перевод данных советов, с примечаниями и дополнениями.
Совет 1.
Не торопите события. Когда вставляете блок между существующими блоками, вы можете перетащить его в нужную позицию так, что "тень" размером 1x3 клеточки появится в нужном месте... Но не спешите сразу же "отпустить" блок, подождите пока редактор действительно освободит место для него.
По неизвестным причинам, редактор начинает ошибаться с расстановкой блоков наиболее часто тогда, когда вы начинаете торопить его и надеятся, что он запомнит, где все захваты и перемещения блоков были выполнены.
Совет 2.
"Сохраняйтесь чаще, как можно чаще". Вы никогда не знаете, в какой момент вы сможете исковеркать то, что работало раньше, или в какой момент редактор перестанет работать вообще. Если имя программы уже задано, комбинация клавиш Ctrl+S поможет вам сохранять вашу программу довольно часто.
Неплохой мыслью является идея сохранять каждую работающую версию с новым именем, так что вы можете всегда вернуться на предыдущую версию или даже более поздние.
Особенно рекомендация актуальна для подпрограмм (MyBlock). Если одна подпрограмма используется в нескольких программах. Но в ходе работы над новой программой, необходимо внести изменения в подпрограмму - сделайте для нее новую версию. Тогда вы будете уверены, что старые программы будут работать точно так, как и были протестированы.
Совет 3.
Используйте подпрограммы. Они позволяют сохранить огромное количество памяти ( когда похожие конструкции кода используются несколько раз в программе), являются хорошим тоном при программировании, делают код программы более читабельным и т.п.
Совет 4.
Блок Условия очень нагляден, чтобы показать ветвление алгоритма, но отключение "flat" режима было бы
- занимающим меньше места
- более полезным - в этом режиме вы можете передавать данные в ветки условий и из них, а также вы можете иметь больше чем два ветвления.
- более стабильным - возможно, потому что такая форма блока условия ближе к той, что используется в LabVIEW, в то время как "обычная" форма блока, была специально адаптирована для NXT-G
Совет 5.
Не используйте переменные, там где каналы данных (data wires) сделают это за вас. Трудно избавиться от привычки использовать переменные, для людей пришедших из текстовых языков программирования. Но NXT-G обрабатывает значения, передаваемые "вперед" через канал данных, лучше в некоторых случаях, чем таже реализация, но с переменными.
К тому же есть ограничения на использование переменных: все переменные глобальные, длинные имена переменных не отображаются.
Часть II
Часть III
четверг, 23 сентября 2010 г.
Накрылся NXT.. Странное жужжание.. Как быть??
Случилось со мной тут несчастье. Не знаю как это произошло, но блок перестал грузиться. на экране ничего нет, только слышится тихое, еле слышное жужжание. На нажатие кнопок не реагирует.Но что-то как-то.. разобрался, и воскресил его:) Уф... Славно. А то уже испугался! Так вот, что же я сделал:
1. Пытаюсь сначала выполнить резет NXT. Для этого:
3. Установите на компьютер програмное обеспечение LEGO MINDSTORMS NXT. Если установлено, идем дальше.
4. Подключите NXT к компьютеру. Ждем 2-3 минуты.
5. Запускаем LEGO MINDSTORMS NXT на компьютере.
6. Перейдите на выпадающее меню "Инструменты" (Tools) на панели программного обеспечения и выберите "Обновить прошивку" Update NXT Firmware.
7. Выберите прошивку, которая поставлялась с программным обеспечением NXT или скачайте новую.
8. Нажмите "Загрузить" (Download)
9. Начался процесс обновления прошивки. Как полосочка над download будет зеленая, значит апгрейд закончился. Можно снова работать с NXT.
Вот кратенькая инструкция, надеюсь она кому-нибудь будет полезна. Интересно и полезно всем почитаться инструкцию для NXT.
Всем отлично настроения, и новых изобретений!!
1. Пытаюсь сначала выполнить резет NXT. Для этого:
- Убедитесь что NXT включен
- Нажмите кнопку перезакгрузки, расположенную на задней панели NXT в пазе обслуживания(Tehnic hole) LEGO, в верхнем левом углу. Для нажатия например можно использывать скрепку, либо спичку, либо стержень от ручки. Держим меньше 4-х секунд.
- Ждем немного времени. Если экран заработа - то Ура!! Если нет, то тогда пунк 2
3. Установите на компьютер програмное обеспечение LEGO MINDSTORMS NXT. Если установлено, идем дальше.
5. Запускаем LEGO MINDSTORMS NXT на компьютере.
6. Перейдите на выпадающее меню "Инструменты" (Tools) на панели программного обеспечения и выберите "Обновить прошивку" Update NXT Firmware.
7. Выберите прошивку, которая поставлялась с программным обеспечением NXT или скачайте новую.
8. Нажмите "Загрузить" (Download)
9. Начался процесс обновления прошивки. Как полосочка над download будет зеленая, значит апгрейд закончился. Можно снова работать с NXT.
Вот кратенькая инструкция, надеюсь она кому-нибудь будет полезна. Интересно и полезно всем почитаться инструкцию для NXT.
Всем отлично настроения, и новых изобретений!!
среда, 22 сентября 2010 г.
Добавление своих мелодий/звуков
Всем привет,
Возникло у меня как-то желание озвучить своего робота(модель - собачка). Захотелось мне сделать что бы она лаяла и нюхала во время движения по комнате. Проблема в том, что по умолчанию в LabView их(звуков собачки) нет. И пришлось мне импровизировать и искать способы их залить в робота. Итак, все по порядку.
Перед тем как начать искать, я заглянул в LabView и посмотрел на расширение звуковых файлов для NXT. Выяснил что формат файла .rso. RSO - это специфичный для NXT айдио формат, каждый звук/мелодия должны быть в формате .rso.
Полез я в гугл, наивно полагая что меня там ждут уже огромное количество библиотек с .rso. Вообщем обломался я по крупному:( Почти ничего не было.
Иду снова в google, набираю "звуки, собака". Захожу по первой ссылке, скачиваю архив с .wav файлами(не с .rso). Дальше решил поискать конвертер .wav файлов в .rso. Мне повезло, наткнулся на целых две и еще нашел интересный сайт с программами для NXT.
Wavrsocvt и wav2rso - конверторы. Я рассмотрел обе программы и и склонился все таки ко второй. Дело в том, что wavrsocvt - это консольное приложение(не очень удобно), а wav2rso имеет отличный наглядный интерфейс.
И вот только я подумал что все... вот оно счастье!! Выбираю файл, нажимаю "Convert" иииии..... тут абзац.. Вдруг выясняется что wav файл должен быть не любым, а очень даже особенным. А точнее ошибка звучит так: "Error processing D:\NIIT\Lego MindStorm NXT\Projects\DogBot\Sounds\Прочие\dog.wav: wave files must be in PCM, MS ADPCM, or IMA ADPCM format". Оказывается .wav файл должен быть в PCM или MS ADPCM (IMA ADPCM формат на момент написания статьи не поддерживался).
И тут я снова в гугл. Что б я без него делал:) Уже потратив пол часика, я наконец-то наткнулся на сайт, на котором есть информация о треках и о wav файлах(ссылка). Кстати, на этом сайте я нашел все нужные мне звуки. Скачиваю их, выбираю в wav2rso и кликаю "Convert", в результате у меня готовый rso файл.
А дальше... Надо как-то получить доступ к этому файлу из LabView. Единственное что мне пришло в голову, это пойти в папку где установлена "MINDSTORMS NXT", быстро пробежавшись по директориям я наткнулся на дефолтовские .rso файлы(в моем случае путь был такой: C:\Program Files\LEGO Software\LEGO MINDSTORMS NXT\engine\Sounds\). Копирую созданный .rso файл в эту папку, выбираю в LabView эелемен Sound и в списке звуков появилась наша мелодия. Урра!!!! (Если элемент Sound уже был - удалите его, и добавьте новый.)
Еше один нюанс.. Из-за малого количества места на NXT компьютере, пришлось один файл обрезать. Для редактирования файла я использовал Audacity. Бесплатный редактор wav файлов. Для того что бы мелодия повторялась постоянно, в элементе "Sound" ставлю галочку напротив "repeat"
Вот вообщем-то и все.. Собираем программу. Активизируем её на роботе и наслаждаемся результатми. Надеюсь эта информация кому-нибудь поможет:)
P.S. Есть еще один вариант озвучить робота, но это уже в следующий раз.
Возникло у меня как-то желание озвучить своего робота(модель - собачка). Захотелось мне сделать что бы она лаяла и нюхала во время движения по комнате. Проблема в том, что по умолчанию в LabView их(звуков собачки) нет. И пришлось мне импровизировать и искать способы их залить в робота. Итак, все по порядку.
Перед тем как начать искать, я заглянул в LabView и посмотрел на расширение звуковых файлов для NXT. Выяснил что формат файла .rso. RSO - это специфичный для NXT айдио формат, каждый звук/мелодия должны быть в формате .rso.
Полез я в гугл, наивно полагая что меня там ждут уже огромное количество библиотек с .rso. Вообщем обломался я по крупному:( Почти ничего не было.
Иду снова в google, набираю "звуки, собака". Захожу по первой ссылке, скачиваю архив с .wav файлами(не с .rso). Дальше решил поискать конвертер .wav файлов в .rso. Мне повезло, наткнулся на целых две и еще нашел интересный сайт с программами для NXT.
Wavrsocvt и wav2rso - конверторы. Я рассмотрел обе программы и и склонился все таки ко второй. Дело в том, что wavrsocvt - это консольное приложение(не очень удобно), а wav2rso имеет отличный наглядный интерфейс.
Интерфейс wav2rso |
Интерфейс wavrsocvt |
И тут я снова в гугл. Что б я без него делал:) Уже потратив пол часика, я наконец-то наткнулся на сайт, на котором есть информация о треках и о wav файлах(ссылка). Кстати, на этом сайте я нашел все нужные мне звуки. Скачиваю их, выбираю в wav2rso и кликаю "Convert", в результате у меня готовый rso файл.
А дальше... Надо как-то получить доступ к этому файлу из LabView. Единственное что мне пришло в голову, это пойти в папку где установлена "MINDSTORMS NXT", быстро пробежавшись по директориям я наткнулся на дефолтовские .rso файлы(в моем случае путь был такой: C:\Program Files\LEGO Software\LEGO MINDSTORMS NXT\engine\Sounds\). Копирую созданный .rso файл в эту папку, выбираю в LabView эелемен Sound и в списке звуков появилась наша мелодия. Урра!!!! (Если элемент Sound уже был - удалите его, и добавьте новый.)
Еше один нюанс.. Из-за малого количества места на NXT компьютере, пришлось один файл обрезать. Для редактирования файла я использовал Audacity. Бесплатный редактор wav файлов. Для того что бы мелодия повторялась постоянно, в элементе "Sound" ставлю галочку напротив "repeat"
Вот вообщем-то и все.. Собираем программу. Активизируем её на роботе и наслаждаемся результатми. Надеюсь эта информация кому-нибудь поможет:)
P.S. Есть еще один вариант озвучить робота, но это уже в следующий раз.
Подписаться на:
Сообщения (Atom)