transformada - Cómo obtener la frecuencia de una onda cuadrada en una secuencia de comandos python
señales de audio en python (1)
Usa el módulo de tiempo . Tiene una función de reloj que es sensible a 1 microsegundo (1 MHz). Al mirar la hoja de datos de su sensor, solo llega a 500 kHz, que debería ser una resolución suficiente para obtener mediciones de frecuencia precisas con una intensidad de luz alta.
Simplemente calcule una frecuencia promedio de un conjunto de ciclos de entrada.
import time
NUM_CYCLES = 10
start = time.time()
for impulse_count in range(NUM_CYCLES):
GPIO.wait_for_edge(25, GPIO.FALLING)
duration = time.time() - start #seconds to run for loop
frequency = NUM_CYCLES / duration #in Hz
Estoy usando el convertidor de luz a frecuencia TSL235 ( http://www.ti.com/lit/ds/symlink/tsl235.pdf ) y el Raspberry Pi. La salida del sensor es una onda cuadrada (ciclo de trabajo del 50%) con frecuencia directamente proporcional a la intensidad de la luz.
Entonces necesito saber (en una secuencia de comandos python) qué frecuencia llega a la Entrada GPIO-Pin de la Raspberry Pi.
Solo encontré un tutorial ( http://playground.arduino.cc/Main/TSL235R ) que muestra un código C, pero no entiendo C ... Solo estoy trabajando con Python
Leer una entrada GPIO no es tan difícil hasta el momento:
#!/usr/bin/python
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(25, GPIO.IN)
impuls_count = 0
# Do next lines for i.e. 1000ms:
GPIO.wait_for_edge(25, GPIO.FALLING)
impuls_count = impuls_count + 1
Creo que tengo que contar las señales en un intervalo de tiempo. ¿Pero cómo?