Еще одним важным средством коммуникации робота является воспроизведение звуковых сигналов. Робот может также воспринимать звуки из окружающей среды при помощи звукового датчика, о чем подробнее можно узнать в параграфе, посвященном сенсорам и их назначению. Для работы со звуком в языке NXT-G предназначен блок Sound (рис. 137). Рис. 137 Команда для работы со звуком Этот блок имеет два режима работы – воспроизведение звуков и остановка воспроизведения (Play и Stop). За установку режима отвечает параметр Control. Атрибут Action (Действие) позволяет выбрать, что именно должен воспроизвести контроллер. На выбор программисту дано два варианта – звуковой файл либо один тон (одну ноту). В распоряжении разработчика программы имеется клавиатура в три октавы, на которой он может указать для воспроизведения любую ноту. Чтобы робот сыграл Вашу собственную мелодию, Вы можете поместить подряд в программе несколько блоков Sound (Звук), последовательно выбрав в их параметрах нужные ноты. Функция Repeat позволяет установить циклическое повторение звукового фрагмента. Следует отметить важный момент. Если в блоке Sound (Звук) установлен флажок «Wait for Completion» (Ждать завершения), то звуковой файл будет воспроизведен полностью, и только потом осуществится переход к следующей команде. В этом случае, если программа состоит только из одного блока – блока Sound (Звук), звук все равно будет воспроизведен. Это объясняется тем, что по умолчанию последней командой в каждой программе является команда ее завершения, которую мы не можем наблюдать, т.к. она не отображается на экране в целях оптимизации программного кода. Поскольку в блоке Sound установлен параметр ожидания завершения воспроизведения звука, Вы сможете услышать этот звук полностью. Вам может показаться, что эти объяснения излишни, однако, если снять флажок «Wait for Completion» (Ждать завершения), звукового сигнала Вы не услышите. Все дело в том, что программа выполняет команду Sound практически мгновенно, а затем переходит к выполнению следующей команды. В случае, когда программа состоит только лишь из блока Sound, она выполнит эту команду и сразу перейдет к тому самому «невидимому» блоку завершения программы. Таким образом, Вы не успеете ничего услышать, а программа уже завершится. С этим неприятным моментом можно бороться простым способом – добавить после команды Sound (Звук) блок ожидания Wait (Ожидание), установив на таймере необходимое количество секунд. Помимо установки в программе подряд нескольких блоков Sound (Звук), есть другой способ создания собственной звуковой дорожки. Этот способ аналогичен подобному для блока Display. У Команды Sound (Звук) тоже есть свой редактор – SoundEditor (Редактор звука) (рис. 138). Рис. 138 Открытие SoundEditor После выбора этого пункта меню откроется окно звукового редактора (рис. 139). Звуковой редактор позволяет записать звуковую дорожку с микрофона максимальной длительностью 10 секунд. Эту дорожку можно сохранить командой Save (Сохранить) и она автоматически появится в списке файлов для воспроизведения блока Sound. Однако редактор позволяет сохранять только пять секунд записи. Выделить фрагмент звуковой дорожки можно при помощи двух маркеров, которые находятся по бокам рабочей зоны. Перемещать маркер можно, наведя на него курсор мыши и нажав левую кнопку. Не отпуская кнопку мыши, перенесите маркер в нужное место. Левый маркер является также указателем места начала воспроизведения записи. SoundEditor позволяет регулировать громкость звукового файла при помощи движка Volume (Громкость). Выделенный маркерами фрагмент можно растянуть на всю рабочую область для удобства работы, а затем, при необходимости, вернуть полную запись. За это отвечают кнопки панели Масштаб. Отметим также, что SoundEditor позволяет открыть для редактирования звуковой файл формата rso, mp3 или wav. Нажав на кнопку Open, Вы можете выбрать файл произвольной длительности. В отличие от микрофонной записи, длина импортированного из операционной системы файла не ограничена. Но, как и в случае записи, сохранить для загрузки в команду Sound (Звук) можно только пять секунд из любого места файла. Как только звуковая дорожка превышает лимит в пять секунд, редактор выделяет ее красным цветом. В случае, когда сохранение фрагмента разрешено, он будет выделен зеленым. Рис. 139 Интерфейс SoundEditor Создадим программу PrSound1.rbt, в которой робот скажет фразу «Привет, друг!», после чего начнется основная программа, например, он начнет движение вперед.
Начнем составлять программу. Перенесите в рабочую область командный блок Sound. Установите параметры так, как показано на рисунке 140. Рис. 140 Настройка параметров блока Sound Теперь Ваш робот готов к общению. Он воспроизведет фразу «Привет, друг!» Сразу после запуска программы. Добавьте в программу блок движения, загрузите ее на микроконтроллер NXT и проверьте работу созданной программы (рис. 141). Рис. 141 Пример использования блока Sound в программе
Практическая работа № 12 – «Вежливый робот»: Составьте программу для робота, который при ее запуске будет воспроизводить фразу «Здравствуйте, я робот Джек». Пусть робот движется по кругу и вслух считает пройденные им круги, воспроизводя фразы «Первый круг», «Второй круг» и т.д. Как только робот проедет 5 кругов, он должен остановиться и воспроизвести фразу «До свидания!».
Практическая работа № 13 – «Моцарт»: Составьте программу, которая будет воспроизводить по нотам мелодию на Ваш вкус. Вы можете составить собственную мелодию не менее чем из 20 нот.
Практическая работа № 14 – «Клоунада»: Составьте программу для робота-клоуна. Соберите любого робота на Ваш вкус и украсьте его конструкцию цветными деталями (флажками, креплениями и т.д.) так, чтобы он был похож на клоуна. Подберите или создайте самостоятельно несколько выражений клоунского лица, чтобы робот мог отображать их на дисплее. Под каждое выражение (не менее 5) подберите или создайте самостоятельно звуковой сигнал (Например, для радостного выражения лица – «Ура!»). Пусть робот передвигается по спиральной траектории, начиная от центра (см. рис. 142). Рис. 142 Траектория движения робота Комментарии к заданию На каждом новом витке робот должен воспроизводить новый звуковой файл, выражающий эмоцию, изображенную на его дисплее. Изображения, соответственно, тоже должны меняться. Как только все варианты будут продемонстрированы, робот должен остановиться. |
Поделиться с друзьями: