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 )