(495)240-8280ПН-СБ с 12:00 до 20:00
We speak English

Урок 1.3. Работа со звуком

В рамках данного урока вы узнаете о двух способах создания звука на микроконтроллере TI-Innovator Hub и научитесь использовать переменные для хранения и получения значений.

Вы научитесь

  • Воспроизводить звук на микроконтроллере TI-Innovator Hub
  • Использовать переменные для хранения введенных значений
  • Использовать функции input() и int()
  • Воспроизводить ноты на микроконтроллере

В микроконтроллер TI-Innovator Hub встроен небольшой динамик SOUND. Он находится на дне устройства. Усилитель в нем не предусмотрен, поэтому звук очень тихий. Это сделано для того, чтобы во время урока звуковые сигналы не отвлекали окружающих.

1. Для начала создайте новый проект Python, используя шаблон проекта работы с микроконтроллером.

Вы можете либо создать новый документ (home > New), либо добавить страницу в уже существующий документ (ctrl+doc). Используйте меню: Add Python > New.... Также не забудьте выбрать шаблон Hub Project.

Примечание для учителя: Язык программирования Python учитывает регистр символов. Таким образом: x и X являются разными символами. Все ключевые слова здесь указаны в нижнем регистре (прописные). Использование в ключевых словах заглавных букв, например, If, считается ошибкой.

2. Вам нужно записать два выражения ввода (input), чтобы работать со значениями для воспроизведения звука. Эти значения будут сохранены в двух переменных f и t. Вот эти два выражения:

f = input("Frequency? ")

t = input("Time? ")

Теперь шаг за шагом будем создавать код.

3. В пустой строке под нижним комментарием #============= введите букву f, затем знак =.

f =

Поместите курсор справа от знака = и переходите к следующему шагу.

4. Теперь используйте функцию input(), которую можно найти в меню: menu > Built-ins > I/O.

Примечание для учителя: О функции input():
Функция ввода input является встроенной в языке Python. Она позволяет пользователю вводить информацию в уже запущенную программу. Однако функция ввода всегда выдает строковое значение, а не число. Первый запуск программы сгенерирует ошибку выполнения программы. Как ее устранить, вы узнаете немного позже в этом уроке.

5. Выбор функции input() из меню вводит слово input() в программу после знака =. В скобках вам необходимо написать слово-подсказку для этого выражения ввода.

На калькуляторе знак кавычек можно поставить с помощью комбинации ctrl+x (знак умножения). Чтобы сделать букву заглавной, используйте кнопку shift. Вопросительный знак (?) находится в кнопках пунктуации рядом с буквой g. Не забудьте и про закрывающую скобку.

В следующей строке нужно вставить еще одно выражение ввода (input) для переменной t.

6. Под двумя выражениями ввода вставьте функцию sound.tone(), которую можно найти в меню:

menu > TI Hub > Hub Built-in Devices > Sound Output.

Следующее выражение будет вставлено в вашу программу:

sound.tone(frequency, time)

Вместо слова frequency (частота) введите переменную f. Вместо слова time (время) введите переменную t.

7. Нажмите комбинацию кнопок ctrl+R, чтобы запустить программу. В подсказках введите 440 в качестве частоты и 2 в качестве времени.

Что получилось?... "Ошибка выполнения программы"! Она появляется потому, что выражение ввода выдает значение, которое функция sound не может использовать. Ведь это строка (440 и 2), а не числовые значения 440 и 2. Вам нужно конвертировать каждое строковое значение в числовое, используя либо оператор float() (если работаете с десятичными числами), либо int() (если работаете с целыми числами).

8. Вернитесь в программу, добавьте в нее оператор int() перед каждой функцией ввода (input). Можно ввести его вручную, либо вставить через меню:

Menu > Built-ins > Type.

f = int( input( "Frequency? ") )

t = int( input( "Time? ") )

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

Запустите программу снова и введите 440 и 2, и вы услышите звуковой сигнал частотой 440 Гц в течение 2 секунд из динамика, который находится на дне микроконтроллера TI-Innovator Hub. Нажмите ctrl+R, чтобы вернуть программу в приложение Shell, и можете поэкспериментировать с другими частотами (между 0 и 8000 Гц). Все ли звуковые сигналы вы слышите?

9. Игра по нотам

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

sound.note( "A4",2)

Данное выражение проигрывает ноту "ля" (кодовое название - А) 4ой октавы.

Измените первую функцию ввода на запрос ввода ноты (note), а не частоты (frequency). Так как нота находится в кавычках (это строка), то для работы с ней вам понадобится функция int().

Измените звуковую команду с тона (tone) на ноту (note) путем ее введения вручную или с помощью меню. При запуске программы введите ноту в формате без кавычек, например, A4.

Примечание для учителя: Человеческое ухо не слышит слишком низкие и слишком высокие частоты. При выборе очень низкой частоты, например, 3 или 4, динамик будет воспроизводить слышимые щелчки заданное количество раз в секунду. Постепенно увеличивайте частоту, и вы услышите, как щелчки сменятся тонами.

В функции .note() используйте буквы F и S для обозначения бемолей и диезов, например, BF3, DS5 и так далее.