Buzzer
pibody.Buzzer() — сигнал алғанда дыбыс шығаратын құрылғы. Дыбыстағыштар әдетте қауіпсіздік жүйелерінде, таймерлерде және дыбыстық ескерту қажет болатын әртүрлі электронды құрылғыларда қолданылады.
Негізгі қолдану
Buzzer(slot) -> PWM
Buzzer объектісін жасау үшін Buzzer(slot) шақырыңыз.
Аргументтер:
slot (string | int | tuple)— слот белгісі ("A", "B", "C", "D", "E", "F", "G", "H"), пин порты (0, 2 және т.б.), кортеж (0, Pin.OUT)
Қайтарады:
slot үшін pibody.PWM шығысын қайтарады.
from pibody import Buzzer
buzzer = Buzzer("A")
.make_sound(freq, volume, duration)
freq Гц жиілігімен volume дыбыс деңгейінде duration секунд бойы дыбыс шығарады.
Аргументтер:
freq (int)— дыбыс биіктігін орнататын опционалды параметр (элементтің секундына тербеліс саны). Пайдалы диапазон: [20, 5000]. Әдепкі: 1000volume (float)— дыбыс деңгейін орнатады және дыбыстағыштың толтыру коэффициентін өзгертеді. [0, 1.0] аралығындағы мәнді қабылдайдыduration (int)— дыбыстың миллисекундтағы ұзақтығы
# 660 Гц жиілігінде 0.5 секунд бойы толық дыбыс деңгейінде дыбыс шығарады
buzzer.make_sound(660, 1, 500)
.volume(volume | None) -> None | float
Дыбыс деңгейін алу немесе орнату.
Аргументтер:
volume (float)— дыбыс деңгейін орнататын опционалды параметр. [0, 1.0] аралығындағы мәнді қабылдайды. Әдепкі: 1.0
Аргументсіз шақырғанда ағымдағы дыбыс деңгейін қайтарады, әйтпесе дыбыс деңгейін орнатып, None қайтарады.
buzzer.volume(0.1)
print(buzzer.volume()) # 0.1
.beep()
Қысқа жоғары дыбыс (1000 Гц, 0.1 с).
Егер жиілікті, дыбыс деңгейін немесе ұзақтығын көрсетпей қысқа дыбыс шығарғыңыз келсе, .beep() функциясын пайдалануға болады.
buzzer.beep()
.boop()
Қысқа төмен дыбыс (500 Гц, 0.1 с).
Егер жиілікті, дыбыс деңгейін немесе ұзақтығын көрсетпей қысқа төмен дыбыс шығарғыңыз келсе, .boop() функциясын пайдалануға болады.
buzzer.boop()
.on()
Дыбысты қосып, ағымдағы дыбыс деңгейінде жалғастырады.
buzzer.on()
.off()
Дыбыстағышты өшіреді (жиілік параметрін сақтайды).
buzzer.off()
ИЕМ
Дыбыстағыш сигнал өзгерген кезде тербелетін пьезоэлемент арқылы дыбыс шығарады. Пьезо дыбыстағыш үшін freq дыбыс биіктігін, ал duty дыбыс деңгейін басқарады.
Ұсынылатын бастапқы нүкте
buzzer.freq(440) # A4 нотасы — таза орта диапазонды дыбыс
buzzer.duty(0.5) # максималды дыбыс деңгейі
.freq(value | None) -> None | int
Аргументтер:
-
value (int)— дыбыс биіктігін орнататын опционалды параметр (элементтің секундына тербеліс саны). Әдепкі: 1000- 20–200 Гц — төмен, бас дыбыстар (гуілдеу)
- 200–2000 Гц — орта диапазон; музыкалық ноталар мен дабыл сигналдарының көпшілігі осында
- 2000–5000 Гц — жоғары дыбыстар (ысқырық, хабарландыру сигналдары)
- 5000 Гц жоғары — өте ащы; кішкентай дыбыстағыштарда тыныш болуы мүмкін
- ~20 Гц төмен — дыбыс ретінде естілмейді; әр цикл сайын бөлек шертулер шығарады
Егер value бос болса, әдіс бұрын пайдаланылған жиілікті қайтарады.
buzzer.freq(440)
print(buzzer.freq()) # 440
.duty(value | None) -> None | float
0 немесе 1 толтыру коэффициенті «жалпақ» pibody.PWM сигналын жасайды. Мұндай сигнал дыбыстағышта дыбыс шығармайды. 0.5 толтыру коэффициенті дыбыстағыштың дыбыс деңгейін ең қатты етеді.
Дыбыс деңгейін ыңғайлы басқару үшін .volume() функциясы бар. Ол 0-ден 1-ге дейінгі мәндерді қабылдайды, мұнда 0 — үнсіз, 1 — максималды дыбыс деңгейі.
Аргументтер:
value (float)— ИЕМ толтыру коэффициентін орнататын опционалды параметр. [0, 1.0] аралығындағы мәнді қабылдайды. Әдепкі: 0.5 = максималды дыбыс деңгейі (меандр — тең қосулы/өшірулі уақыт)
Егер value бос болса, әдіс бұрын пайдаланылған толтыру коэффициентін қайтарады.
buzzer.duty(0.5)
print(buzzer.duty()) # 0.5
.duty_u16(value | None) -> None | int
.duty() сияқты, бірақ [0, 65535] аралығындағы өңделмеген мәндерді пайдаланады.
Аргументтер:
value (int)— ИЕМ толтыру коэффициентін орнататын опционалды параметр. [0, 65535] аралығындағы мәнді қабылдайды. Әдепкі: 32768 = максималды дыбыс деңгейі (меандр — тең қосулы/өшірулі уақыт)
Егер value бос болса, әдіс бұрын пайдаланылған толтыру коэффициентін қайтарады.
buzzer.duty_u16(32768)
print(buzzer.duty_u16()) # 32768
Қарапайым әуен мысалы
from pibody import Buzzer
from time import sleep
buzzer = Buzzer("A")
buzzer.duty(0.5) # макс. дыбыс деңгейі
# Ноталар (жиілік, ұзақтық_с)
melody = [
(262, 0.3), # C4
(294, 0.3), # D4
(330, 0.3), # E4
(349, 0.3), # F4
(392, 0.3), # G4
(440, 0.3), # A4
(494, 0.3), # B4
(523, 0.5), # C5
]
for freq, dur in melody:
buzzer.freq(freq)
sleep(dur)
buzzer.off()