Programação  
 
Conhecimento computador >> Programação >> Programação Python >> 
Como Fazer um osciloscópio em Python
osciloscópios são usados ​​para medir os intervalos de diferentes tipos de ondas e sinais elétricos. Suas leituras ajudar a fornecer investigadores na visão sobre a frequência e intensidade das ondas emitidas por aparelhos elétricos e outras fontes. Para o hardware em um osciloscópio para trabalhar , ele precisa ser conectado a um programa de software que interpreta as leituras e os exibe em um gráfico. Instruções
1

Abra um aplicativo de edição de código ou usar um aplicativo de edição de texto, como o TextEdit no Mac OS X ou o Bloco de Notas do Microsoft Windows. Crie um novo documento para abrigar o roteiro do osciloscópio Python.
2

Defina os parâmetros que serão utilizados no script, assim como as duas bibliotecas Python necessários para o script usando o seguinte código :

import os , sysimport Imageimport serialimport pygameimport tempo

de pyBusPirateLite.UART importação * de pyBusPirateLite.BitBang import *
3

Definir a taxa de dados e utilizar a função de impressão para permitir que o programa gráfico as entradas feitas pelo osciloscópio :

DATA_RATE = 5720,0 # medidas /segundo ( experimenticaly estimado ) DEFAULT_TIME_SCALE = RES_X /DATA_RATE # default tempo em segundos para fazer um fillpygame janela . init () pb = UART ( BUS_PIRATE_DEV , 115200 ) print " Entrando binmode : " se bp.BBmode () : print " OK. " else : print " . falhou" sys.exit ()

4

Defina os parâmetros para a janela do aplicativo usando a função pygame.display :

janela = pygame.display.set_mode ( ( RES_X , RES_Y ) ) Fundo = (0,0 , 0) linha = ( 0,255,0 ) trig_color = ( 100,100,0 )
5

Criar o script para o próprio osciloscópio , definindo os parâmetros que serão escritos sobre o gráfico e fornecer argumentos para a x e eixo -y :

bp.port.write ("\\ x15 " ), enquanto 1: Lote = {} tensão = {} = maxv 0minv = 100time_scale = DEFAULT_TIME_SCALE * time_divprev_voltage = 0measure = 0; se ( trig_mode = NO_SYNC !) : para k in range ( 1,2000 ) : prev_voltage = voltagemeasure = bp.response (2 , True) tensão = ord ( medida [0]) << 8voltage = Tensão + ord ( medida [ ,"1] ) Tensão = ( voltage/1024.0 ) * 6.6 # subindo slopeif ( (tensão > = trigger_level ) e ( prev_voltage <( tensão * TRIG_CAL ) ) e ( trig_mode == RISING_SLOPE ) ) : BREAKSe ( ( tensão < trigger_level ) e ( tensão> 0,01) e ( prev_voltage > tensão /TRIG_CAL ) e ( trig_mode == FALLING_SLOPE ) ) : breakfor i in range ( RES_X ) : para k in range ( time_div - 1 ): # ignorando ( time_div -1 ) amostras para alcançar resolutionbp.response bom tempo (2, verdadeira medida ) = bp.response (2, tensão True ) = ord ( medida [0]) << 8voltage = Tensão + ord ( medida [1] ) Tensão = ( voltage/1024.0 ) * 6.6plot [i] = voltagefor i in range (1, RES_X ): se trama [i ]> maxv : maxv = parcela de [i] se trama [i] < minv : minv = enredo [ ,"i] y = ( RES_Y ) - lote [i] * ( RES_Y /MAX_VOLTAGE ) - offsetX = ipx = i- 1; py = ( RES_Y ) - lote [ i-1 ] * ( RES_Y /MAX_VOLTAGE ) - OFFSETpygame.draw . linha ( janela , linha, ( px, py ) , (x, y)) = trig_y RES_Y - trigger_level * ( RES_Y /MAX_VOLTAGE ) pygame.draw.line ( janela, trig_color , ( 0, trig_y ) , ( RES_X , trig_y ) )
6

Finalize o osciloscópio , definindo os parâmetros para a interface gráfica do usuário do osciloscópio:

# # GUI) font = pygame.font.Font (None , 19) text_max_voltage = font . 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 ( " Escala de tempo : % 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 )

Anterior :

Próximo : No
  Os artigos relacionados
·Como criar uma lista de quatro elementos em Python 
·Funções Python Carga 
·Como fazer uma cópia de um objeto com Python 
·Como criar uma nova pasta programação em Python 
·Como limitar Logins no código Python 
·Como obter valores de chaves em Python 
·Como criar uma função de conversão de temperatura co…
·Python velocidade 
·Como a aproximação das Séries de Fourier em Python 
·Como Números em Python 
  Artigos em destaque
·Como fazer o primeiro caractere de uma string em Caps e…
·Como enviar correio PHP para um IIS 6 
·Como inserir uma matriz em MySQL em PHP 
·Descrição do trabalho de um gerente de programa da Mi…
·As propriedades do iFrame em Java 
·A altura de uma árvore binária em Java 
·O que o operador ^ média em Java 
·Como permitir Número Entradas em Java 
·Como tirar uma String de um arquivo de entrada e revert…
·Como obter uma data do sistema em C # 
Cop e direita © Conhecimento computador http://ptcomputador.com Todos os Direitos Reservados