una transformada señales señal serie rápida muestreo muestrear fourier espectro discreta convolucion python raspberry-pi hardware signal-processing gpio

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?