Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
products:laboratory_iot:exp24 [2020/05/17 12:53] labuser29products:laboratory_iot:exp24 [2020/05/18 15:41] (текущий) – [Программный код эксперимента] labuser29
Строка 1: Строка 1:
-==== Схема эксперимента ====+===== Эксперимент 24. Музыкальный автомат =====
  
-{{ :products:esp-iot:exp7_sch.png?nolink |}} +Теперь создадим настоящий музыкальный автоматМы подготовим для него запись мелодииа он будет ее воспроизводить. Возьмем всем известную мелодию "В лесу родилась ёлочка"
-//Рисунок 1Электрическая принципиальная схема эксперимента//+
  
-Сигнал от ШИМ генератора подается на базу транзистора VT1Сигнал подается через резистор R1, чтобы уменьшить ток базыТранзистору не нужен большой управляющий ток. Когда на базу транзистора попадает сигнал логической единицы — транзистор открывается и сопротивление перехода Коллектор-Эмиттер сильно падает. Ток начинает протекать через динамик SP1. Резистор R2 необходим как ограничитель тока через динамик так как последний обладает маленьким сопротивлением, и без дополнительного резистора большой ток испортит динамик.+{{ :products:esp-iot:v_lesu_rodilas_jolochka7.png?nolink |}} 
 +//Рисунок 1Ноты мелодии "В лесу родилась ёлочка"//
  
-<WRAP center round alert 60%> +Если ты не разбираешься в музыкальной грамоте, то не беда. Эксперимент получится и без этого, ведь мы уже перевели эту нотную запись в "язык" для нашего музыкального автомата. Но если тебе интереснои ты хочешь сделать запись другой мелодии, то [[https://soundtimes.ru/uroki-muzyki/notnaya-gramota-dlya-nachinayushchikh-muzykantov|начать знакомство с нотной грамотностью можно, например, здесь]].
-Токоограничительный резистор R2 необходимчтобы динамик не сгорел. Однако, его номинал можно уменьшить, чтобы увеличить громкость звука. Если параллельно резистору 120 Ом подключить еще один такой же, то общее их сопротивление уменьшится в 2 раза, до 60 Ом, а громкость звука увеличится. +
-</WRAP>+
  
 +
 +==== Схема эксперимента ====
 +
 +{{ :products:esp-iot:exp7_sch.png?nolink |}}
 +//Рисунок 1. Электрическая принципиальная схема эксперимента//
  
 {{ :wiki:exp7_mont.png?direct&600 |}} {{ :wiki:exp7_mont.png?direct&600 |}}
Строка 15: Строка 18:
  
 ==== Программный код эксперимента ==== ==== Программный код эксперимента ====
 +<file python Exp24.py[enable_line_numbers="2", start_line_numbers_at="1"]>
 +from machine import Pin, PWM
 +import time
 +_init()
  
-<file python Exp24.py[enable_line_numbers="​2",​ start_line_numbers_at="​1"​]>+tempo = 2
  
-<​file>+tones = { 
 +    'c': 262, 
 +    'd': 294, 
 +    'e': 330, 
 +    'f': 349, 
 +    'g': 392, 
 +    'a': 440, 
 +    'b': 494, 
 +    'C': 523 
 +}
  
 +speaker = PWM(Pin(15, Pin.OUT))
 +
 +melody = 'caagafcccaabgCCddbbagfcaagafCddbbagfcaagaf'
 +rhythm = [8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 3, 8, 8, 8, 8, 8, 8, 8, 
 +8, 8, 8, 8, 8, 8, 3, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 3, 2]
 +
 +for tone, length in zip(melody, rhythm):
 +    speaker.duty(512)
 +    speaker.freq(tones[tone])
 +    time.sleep(tempo/length)
 +    speaker.duty(0)
 +    time.sleep(tempo/length/4)
 +</file>
 +
 +В перменной ''melody'' записаны ноты мелодии, а в массиве ''rhythm'' их длительности.
 ==== Дополнительное задание ==== ==== Дополнительное задание ====
 <WRAP center round tip 60%> <WRAP center round tip 60%>
   * Попробуй записать и воспроизвести другую мелодию,​ например "В траве сидел кузнечик"   * Попробуй записать и воспроизвести другую мелодию,​ например "В траве сидел кузнечик"
-</WRAP>+</WRAP> 
 +