7809
правок
Vdromanov (обсуждение | вклад) |
Fizikdaos (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
{{DISPLAYTITLE:Зуммер (звуковой излучатель) | |||
Все контроллеры Wiren Board имеют на борту Зуммер (звуковой излучатель). Зуммер питается от 5В и управляется ножкой gpio процессора в режиме ШИМ. Управлять Зуммером можно через sysfs-интерфейс ядра и различное ПО поверх него. Сейчас реализовано управление из web-интерфейса, движка правил wb-rules и python. | |||
Все контроллеры Wiren Board имеют на борту звуковой излучатель | |||
==О ШИМ и пересчёт параметров==<!--T:2--> | ==О ШИМ и пересчёт параметров==<!--T:2--> | ||
[[Файл:Duty_cycle.gif|440px|thumb|right|Duty cycle управляет яркостью светодиодов / громкостью | [[Файл:Duty_cycle.gif|440px|thumb|right|Duty cycle управляет яркостью светодиодов / громкостью Зуммерa]] | ||
ШИМ (PWM) - это распространённый способ управления мощностью, подаваемой к нагрузке. | ШИМ (PWM) - это распространённый способ управления мощностью, подаваемой к нагрузке. | ||
<!--T:3--> | <!--T:3--> | ||
В контексте управления | В контексте управления Зуммером, нас интересуют 2 параметра PWM: | ||
*Коэффициент заполнения (duty cycle) - влияет на громкость звука. Обычно, считается в процентном соотношении от периода сигнала. | *Коэффициент заполнения (duty cycle) - влияет на громкость звука. Обычно, считается в процентном соотношении от периода сигнала. | ||
*Частота PWM (frequency) - влияет на высоту звука (чем выше частота, тем выше и звук). Единица, обратная периоду сигнала. | *Частота PWM (frequency) - влияет на высоту звука (чем выше частота, тем выше и звук). Единица, обратная периоду сигнала. | ||
Строка 27: | Строка 25: | ||
<!--T:8--> | <!--T:8--> | ||
*Для контроллеров WB6.X.X номер порта = 0,(для всех контроллеров до WB6.X.X номер порта = 2) | |||
* | |||
*Номер порта можно узнать, выполнив команду <syntaxhighlight lang="bash">echo $WB_PWM_BUZZER</syntaxhighlight> | *Номер порта можно узнать, выполнив команду <syntaxhighlight lang="bash">echo $WB_PWM_BUZZER</syntaxhighlight> | ||
Во всех примерах далее будем считать, что номер pwm-порта = 0. | Во всех примерах далее будем считать, что номер pwm-порта = 0. | ||
Строка 56: | Строка 52: | ||
==Управление из web-интерфейса==<!--T:14--> | ==Управление из web-интерфейса==<!--T:14--> | ||
[[Файл:buzzer.png |250px|thumb|right| Управление | [[Файл:buzzer.png |250px|thumb|right| Управление Зуммером]] | ||
В web-интрефейсе контроллера управление | В web-интрефейсе контроллера управление Зуммером доступно во вкладке ''"Devices"''. От параметра ''"frequency"'' зависит высота звука. Параметры сохраняются при перезагрузке контроллера. | ||
==Управление из движка правил==<!--T:15--> | ==Управление из движка правил==<!--T:15--> | ||
<!--T:15--> | <!--T:15--> | ||
Управление | Управление Зуммером, выведенное в web-интерфейс - это виртуальное устройство, созданное системным правилом wb-rules при старте контроллера. Исходный код правила доступен [https://github.com/wirenboard/wb-rules-system/blob/master/rules/buzzer.js на нашем github]. | ||
<!--T:16--> | <!--T:16--> | ||
Строка 95: | Строка 91: | ||
<!--T:20--> | <!--T:20--> | ||
На контроллерах Wiren Board работать с | На контроллерах Wiren Board работать с зуммером можно из python с помощью модуля ''beeper'' из пакета ''wb_common''. Это обёртка вокруг интерфейса sysfs. Модуль предустановлен на все контроллеры в составе deb-пакета ''python-wb-common''. Исходный код доступен [https://github.com/wirenboard/wb-common/blob/master/wb_common/beeper.py на нашем github]. | ||
<!--T:21--> | <!--T:21--> | ||
Пример работы | Пример работы из python: | ||
<syntaxhighlight lang="python"> | <syntaxhighlight lang="python"> | ||
from wb_common import beeper | from wb_common import beeper |