“Conocimientos Programación>Python Programming

Cómo hacer un osciloscopio en Python

2016/5/31
osciloscopios se utilizan para medir los intervalos de los diferentes tipos de ondas y señales eléctricas. Sus lecturas ayudan a proporcionar los investigadores dentro de penetración en la frecuencia y la fuerza de las ondas emitidas por los dispositivos eléctricos y otras fuentes . Para el hardware en un osciloscopio a trabajar , que debe ser conectado a un programa de software que interpreta las lecturas y los muestra en una gráfica . Instrucciones
1

Abra una aplicación de edición de código o usar una aplicación de edición de texto como TextEdit en Mac OS X o el Bloc de notas de Microsoft Windows. Crear un documento nuevo a la casa de la secuencia de comandos del osciloscopio Python.
2

Definir los parámetros que se utilizarán en el guión , así como las dos bibliotecas de Python necesarios para la secuencia de comandos con el siguiente código :

import os , sysimport Imageimport serialimport pygameimport tiempo

de pyBusPirateLite.UART importación * de pyBusPirateLite.BitBang import *
3

Define la velocidad de datos y utilizar la función de impresión para que el programa para graficar las entradas realizadas por el osciloscopio :

DATA_RATE = 5720,0 # medidas /segundo ( experimenticaly estimado) DEFAULT_TIME_SCALE = RES_X /DATA_RATE # tiempo predeterminado en segundos para hacer una ventana fillpygame . init () pb = UART ( BUS_PIRATE_DEV , 115200 ) print " Entrando binmode : " si bp.BBmode ( ): print "OK . " else : print " . failed" sys.exit ()
4

Definir los parámetros de la ventana de la aplicación mediante la función pygame.display :
ventana

pygame.display.set_mode = ( ( RES_X , RES_Y ) ) background = (0,0 , 0 ) line = ( 0,255,0 ) trig_color = ( 100,100,0 )
5

Crear la secuencia de comandos para el propio osciloscopio mediante la definición de los parámetros que se escribirán en el gráfico y proporcionar argumentos a favor de la x y el eje y :

bp.port.write ("\\ x15 " ), mientras que 1 : parcela = { } { } = tensión MaxV = 0minv = 100time_scale = DEFAULT_TIME_SCALE * time_divprev_voltage = 0measure = 0 , si ( trig_mode = NO_SYNC !) : para k en el rango ( 1,2000 ) : prev_voltage = voltagemeasure bp.response = ( 2 , True) voltaje = ord ( medida [ 0 ] ) << 8voltage = Tensión + ord ( medida [ ,"1 ] ) Voltaje = ( voltage/1024.0 ) * 6.6 # creciente slopeif ( (tensión > = trigger_level ) y ( prev_voltage < (tensión * TRIG_CAL ) ) y ( trig_mode RISING_SLOPE == ) ) : BREAKSi ( (voltaje < trigger_level ) y (tensión > 0.01 ) y ( prev_voltage > tensión /TRIG_CAL ) y ( trig_mode FALLING_SLOPE == ) ) : breakfor i in range ( RES_X ) : para k en el rango ( time_div - 1 ) : # ignorando ( time_div - 1 ) muestras para lograr resolutionbp.response momento adecuado ( 2 , verdadera medida) = bp.response ( 2 , True) voltaje = ord ( medida [ 0 ] ) << 8voltage = Tensión + ord ( medida [ 1 ] ) Voltaje = ( voltage/1024.0 ) * 6.6plot [ i ] = voltagefor i in range ( 1 , RES_X ) : si parcela [ i ]> MaxV : MaxV = parcela [ i ] si parcela [ i ] < minv : minv = parcela [ ,"i ] y = ( RES_Y ) - parcela [ i ] * ( RES_Y /MAX_VOLTAGE ) - offsetX = ipx = i- 1 ; py = ( RES_Y ) - parcela [i- 1 ] * ( RES_Y /MAX_VOLTAGE ) - OFFSETpygame.draw . line ( ventana , línea, ( px, py) , (x, y)) = trig_y RES_Y - trigger_level * ( RES_Y /MAX_VOLTAGE ) pygame.draw.line ( ventana, trig_color , ( 0 , trig_y ) , ( RES_X , trig_y ) )
6

Finalizar el osciloscopio mediante la definición de los parámetros para la interfaz gráfica de usuario del osciloscopio :

# # GUI) font = pygame.font.Font (Ninguno, 19 ) text_max_voltage = fuente . render ( "Max :% f V "% MaxV , 1 , (255, 255 , 255) ) text_min_voltage = font.render ( "Min :% f V "% minv , 1 , (255, 255 , 255) ) text_time_scale = font.render ( " Tiempo de realización: f % s "% time_scale , 1 , (255, 255 , 255) ) text_maxv_Rect text_max_voltage.get_rect = () = text_minv_Rect text_min_voltage.get_rect () text_time_scale_Rect = text_time_scale.get_rect () text_maxv_Rect . x = 10text_maxv_Rect.y = 10text_minv_Rect.x = 10text_minv_Rect.y = 30text_time_scale_Rect.x = 10text_time_scale_Rect.y = 50window.blit ( text_max_voltage , text_maxv_Rect ) window.blit ( text_min_voltage , text_minv_Rect ) window.blit ( text_time_scale , text_time_scale_Rect )

Python Programming
¿Qué es un objeto SQL
Cómo leer una columna CSV y convertir a Python
Cómo hacer una matriz dinámica 2D de cadenas en Python
Obtener la longitud de una matriz en Python
Cómo criar una advertencia en Python
Cómo definir variables globales en Python
Cómo instalar Python
Cómo hacer juegos con Python para principiantes
Conocimientos Informáticos © http://www.ordenador.online