Команды вкладки Дополнения предназначены для различных целей. Некоторые из них обрабатывают числовые и текстовые данные, некоторые работают с моторами и датчиками. Все эти блоки предоставляют дополнительные возможности при составлении программ на NXT-G. В таблице 7 приведены параметры и назначение каждой команды. Таблица 7. Параметры и назначения команд вкладки Advanced
Начнем работу с блоками этой группы с простого примера. Напишем программу, соединяющую вместе две строки и выводящую результат на экран дисплея (рис. 191)
Рис. 191 Программа работы со строками Обратите внимание на параметры блока Text. Надеюсь, эта программа не требует пояснения. Рассмотрим более сложную программу. Составьте программный код так, как показано на рисунке 192.Параметры моторов должны быть одинаковыми. Рис. 192 Программа движения робота. Загрузите программу на блок NXT и протестируйте ее. Для тестирования Вам понадобится линейка или прямая линия, чтобы увидеть отклонения робота от курса, если они будут. Запомните полученный результат. Измените программу, добавив перед циклом команду ResetMotor. В параметрах укажите моторы В и С. Сохраните программу с именем PrAdv1.rbt и протестируйте ее. Сравните результаты работы программы с командой ResetMotor и без нее. Следующий пример будет посвящен работе с файлами. Составим пример программы, вычисляющей математическое выражение и записывающей результат в файл. На рисунке 193 приведен текст программы. Рис. 193 Программа работы с файлами В данном примере вычисляется значение выражения 150 / 5 + 7 – 30. Результат сохраняется в файл с именем FileNum1. Добавьте самостоятельно в конец программы еще один блок Файл с параметром Тип в значении Закрыть. Закрывать файл необходимо каждый раз после работы с ним. Сохраните программу на микроконтроллер с именем PrAdv2.rbt и запустите ее на выполнение. Когда программа завершится, в памяти NXT должен остаться файл с именем FileNum1 и числом внутри. Все оставшиеся команды данной группы Вам хорошо знакомы, кроме одной – Calibrate. Приведем пример ее использования для калибровки датчика освещенности. Вы много раз составляли программы движения робота по черной линии, но когда датчик не откалиброван (не настроен) должным образом, программа может работать с ошибками. Вариант программы калибровки представлен на рисунке 194. Рис. 194 Программа калибровки датчика освещенности В начале программы удалим старые значения. Звуковой сигнал подтвердит, что можно начинать процесс калибровки. Разместите датчик освещенности над черной частью тестового поля, после чего нажмите оранжевую кнопку подтверждения на микроконтроллере. Очередной звуковой сигнал сообщит об успешном завершении операции. Только что Вы указали датчику его минимальное значение. Переместите сенсор над белой частью поля, снова нажмите оранжевую кнопку. Этим Вы укажете датчику максимальное значение. После звукового сигнала программа завершится. Теперь датчик освещенности откалиброван для работы в данной комнате и на данном поле.
Практическая работа №38 – «Калибровка»: Составьте программу калибровки датчика звука. Откалибруйте датчик при помощи полученной программы.
Практическая работа № 39 – «Работа с файлами»: Составьте программу движения робота по прямой линии. Как только робот обнаружит препятствие, он начинает записывать в файл расстояние до объекта. Запись происходит каждые 5 секунд. Как только до объекта останется 5 см, робот останавливается. Вторая часть программы должна считать полученные в файле данные, поместить их в строку и вывести на экран дисплея. Вы можете написать две отдельные программы для записи и чтения данных из файла или одну общую, на Ваш выбор.
Практическая работа № 40 – «Строки»: Составьте программу, склеивающую три строки: «8 +», « 7», « = 15». Результат склеивания должен сохраняться в файл.
Практическая работа № 41 – «Не спать!»: Составьте программу движения робота вперед после нажатия кнопки на датчике касания. Чтобы робот не перешел в «спящий режим», ожидая нажатия кнопки, добавьте в программу соответствующий командный блок. После нажатия на кнопку робот должен проехать 7 оборотов мотора, после чего остановиться и снова ждать нажатия кнопки для продолжения движения. |
Поделиться с друзьями: