Перейти к содержанию

Датчик звука

Датчик звука преобразует звук в электрический сигнал.


SoundSensor(slot)

Чтобы создать объект SoundSensor, вызовите SoundSensor(slot).

Также можно использовать короткий псевдоним Sound(slot).

Датчик звука может работать как цифровой и как аналоговый. В аналоговом режиме его можно подключать только к слотам с АЦП (аналого-цифровым преобразователем), а на PiBody есть только 2 таких слота: "C" и "F". Для цифрового сигнала можно использовать любой слот.

Аргументы:

  • slot (string | int | tuple) — метка слота ("A", "B", "C", "D", "E", "F", "G", "H"), порт пина (0, 2 и т.д.), кортеж (0, Pin.IN)

Возвращает: Возвращает объект SoundSensor для slot.

from pibody import SoundSensor

sound = SoundSensor("A")

.read() -> (int, float)

Возвращает (digital, analog) в виде кортежа.
Цифровой сигнал 1, если звук был громким.
Аналоговый сигнал возвращает уровень звука в диапазоне [0, 1.0]. 0.5 — значение по умолчанию, соответствующее синусоидальной волне.

  • digital — цифровой уровень звука 0 или 1
  • analog — аналоговый уровень звука, нормализованный в диапазоне от 0 до 1.0
sound.read()
from pibody import Sound  # короткий псевдоним
from time import sleep

sound = Sound("A")

while True:
    digital, analog = sound.read()
    if digital == 1:
        print("Звук значительный")
    else:
        print("Звук незначительный")

    print("Уровень звука:", analog)
    sleep(1)

.read_digital() -> int

Возвращает цифровой уровень звука: 0 или 1.

data = sound.read_digital()
print(data)

.read_analog(normalized | None) -> float

Возвращает аналоговый уровень звука.

Аргументы: - normalized — если True, возвращает число с плавающей точкой в диапазоне [0, 1.0]. Если False, возвращает сырое 16-битное значение АЦП в диапазоне [0, 65535]. По умолчанию: True

data = sound.read_analog()
print(data)