Welkom op de Nederland Computer Kennisnetwerk!  
 
Zoeken computer kennis
Home Hardware Netwerken Programmering Software Computerstoring Besturingssysteem
Computer Kennis >> Programmering >> python Programming >> Content
Hoe een oscilloscoop in Python
oscilloscopen worden gebruikt om de intervallen van verschillende soorten golven en elektrische signalen te meten maken . De metingen helpen onderzoekers in inzicht in de frequentie en sterkte van golven uitgezonden door elektrische apparaten en andere bronnen . Voor de hardware een oscilloscoop te werken , moet worden aangesloten op een softwareprogramma dat de waarden geïnterpreteerd en weergegeven in een grafiek . Instructies
1

Open een code editing applicatie of gebruik een tekstbewerking toepassing , bijvoorbeeld TextEdit in Mac OS X of Kladblok in Microsoft Windows . Maak een nieuw document aan het script van de Python oscilloscoop huisvesten . Kopen van 2

Definieer de parameters die gebruikt zullen worden in het script , evenals de twee Python bibliotheken nodig voor het script met de volgende code :

import os
, sysimport Imageimport serialimport pygameimport tijd

van pyBusPirateLite.UART import * van pyBusPirateLite.BitBang import *
3

Definieer de datasnelheid en gebruik de printfunctie om het programma in staat te stellen de grafiek van de ingangen die door de oscilloscoop :

DATA_RATE
= 5720,0 # maatregelen /seconde ( geschat experimenticaly ) DEFAULT_TIME_SCALE = RES_X /DATA_RATE # default tijd in seconden tot een venster fillpygame maken . init ( ) bp = UART ( BUS_PIRATE_DEV , 115200 ) afdrukt " invoeren binmode : " als bp.BBmode ( ) : print " OK . " else : print " . mislukt" sys.exit ( ) < br > Goedkope 4

Definieer de parameters voor het programmavenster met de pygame.display functie :

venster
= pygame.display.set_mode ( ( RES_X , RES_Y ) ) achtergrond = ( 0,0 , 0 ) lijn = ( 0,255,0 ) trig_color = ( 100,100,0 )
5

Maak het script voor de oscilloscoop zelf door het definiëren van de parameters die zullen worden geschreven op de grafiek en het verstrekken van argumenten voor de x -en y-as :

bp.port.write
( " \\ x15 " ) , terwijl 1 : perceel = { } spanning = { } MaxV = 0minv = 100time_scale = DEFAULT_TIME_SCALE * time_divprev_voltage = 0measure = 0 ; indien ( trig_mode = NO_SYNC ! ) : voor k in range ( 1,2000 ) : prev_voltage = voltagemeasure = bp.response ( 2 , True ) spanning = ord ( maatregel [ 0 ] ) << 8voltage = spanning + ord ( maatregel [ ,"1 ] ) spanning = ( voltage/1024.0 ) * 6.6 # stijgende slopeif ( ( spanning > = trigger_level ) en ( prev_voltage < ( spanning * TRIG_CAL ) ) en ( trig_mode == RISING_SLOPE ) ) : BREAKAls ( ( spanning < trigger_level ) en ( spanning > 0.01 ) en ( prev_voltage > spanning /TRIG_CAL ) en ( trig_mode == FALLING_SLOPE ) ) : breakfor i in range ( RES_X ) : voor k in range ( time_div - 1 ) : # negeren ( time_div - 1 ) monsters om een ​​goede tijd resolutionbp.response bereiken ( 2 , True ) maatregel = bp.response ( 2 , True ) spanning = ord ( maatregel [ 0 ] ) << 8voltage = spanning + ord ( maatregel [ 1 ] ) spanning = ( voltage/1024.0 ) * 6.6plot [ i ] = voltagefor i in range ( 1 , RES_X ) : als perceel [ i ] > MaxV : MaxV = perceel [ i ] als perceel [ i ] < minv : minv = perceel [ ,"i ] y = ( RES_Y ) - perceel [ i ] * ( RES_Y /MAX_VOLTAGE ) - offsetX = ipx = i - 1 ; py = ( RES_Y ) - perceel [ i - 1 ] * ( RES_Y /MAX_VOLTAGE ) - OFFSETpygame.draw . lijn ( venster , lijn , ( px , py ) , ( x , y ) ) trig_y = RES_Y - trigger_level * ( RES_Y /MAX_VOLTAGE ) pygame.draw.line ( venster , trig_color , ( 0 , trig_y ) , ( RES_X , trig_y ) )
6

Voltooi de oscilloscoop door het definiëren van de parameters voor de oscilloscoop grafische gebruikersinterface :

# # GUI ) font = pygame.font.Font ( Geen, 19 ) text_max_voltage = lettertype . 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 ( " Timing : % 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 ) op Twitter

Previous: Next:
  python Programming
·Hoe vindt u een lijst in Pytho…
·Hoe te duplicaten te verwijder…
·Wat is Erlang in Python ? 
·Hoe maak je een string gebruik…
·Hoe te Lambda verbinding in Py…
·Hoe kan ik een artikel Oversla…
·Hoe te gebruiken Mijn Python S…
·Wat voor soort computer progra…
·De Pass -functie in Python 
  Related Articles
Hoe maak je een Combo Box Maak in Visual…
Hoe maak je een Check Box Maak in Visual…
Hoe maak je een tekstvak maken in Visual…
Hoe maak je een optie Box in Visual Basi…
Hoe maak je een schijf keuzelijst in Vis…
Hoe kan ik een keuzelijst maken in Visua…
Hoe kan ik een Picture Box Maak in Visua…
Hoe een bestand keuzelijst Maak in Visua…
Hoe kan ik een afbeelding Box Maak in Vi…
  Programmering Articles
·Hoe te lezen & Explode Bestanden 
·Hoe maak je Variabelen in een Select sta…
·Hoe maak je een afbeelding invoegen in e…
·Hoe je code VB6 Functies controleren 
·Hoe kan ik een Word- Blocker Creëren 
·Hoe te Static Blocks in Java 
·Hoe te SSIS Taken Maak Programmatisch 
·Hoe je Java- code maken Into een applet 
·Hoe te Logboeken lezen in VB.NET 
Copyright © Computer Kennis http://www.nldit.com