Dator
 |  Startsida |  Hårdvara |  Nätverk |  Programmering |  Programvara |  Felsökning |  System |   
Programmering
  • C /C + + -programmering
  • Computer Programspråk
  • Delphi Programmering
  • Java Programming
  • JavaScript programmering
  • PHP /MySQL Programmering
  • perl Programmering
  • python Programming
  • Ruby programmering
  • Visual Basics Programmering
  • * Dator Kunskap >> Programmering >> python Programming >> Content

    Hur man gör ett oscilloskop i Python

    Oscilloskop används för att mäta intervallen av olika typer av vågor och elektriska signaler . Sina läsningar bidra till att ge forskare inom inblick i frekvens och styrka av vågor som avges från elektriska apparater och andra källor . För hårdvara i ett oscilloskop för att arbeta måste den vara ansluten till ett program som tolkar avläsningarna och visar dem i ett diagram . Instruktioner
    1

    Öppna en kod redigeringsprogram eller använda ett textredigeringsprogram , t.ex. Textredigerare i Mac OS X eller Anteckningar i Microsoft Windows . Skapa ett nytt dokument för att hysa manus av Python oscilloskopet .
    2

    Definiera parametrar som ska användas i skriptet , liksom de två Python bibliotek som behövs för skriptet genom att använda följande kod :

    import os , sysimport bildimport serialimport pygameimport tid

    från pyBusPirateLite.UART import * från pyBusPirateLite.BitBang import * Addera 3

    Definiera datahastigheten och använd utskriftsfunktionen för att programmet till grafen ingångarna gjorts av oscilloskop :

    DATA_RATE = 5720,0 # åtgärder /sekund ( uppskattat experimenticaly ) DEFAULT_TIME_SCALE = RES_X /DATA_RATE # default i sekunder för att göra ett fönster fillpygame . init ( ) BP = UART ( BUS_PIRATE_DEV , 115200 ) print " Ange binmode : " om bp.BBmode ( ) : print " OK . " annars : print " . misslyckades " sys.exit ( )

    4

    Definiera parametrarna för programfönstret genom att använda pygame.display funktionen :

    fönster = pygame.display.set_mode ( ( RES_X , RES_Y ) ) bakgrund = ( 0,0 , 0 ) line = ( 0,255,0 ) trig_color = ( 100,100,0 )
    5

    Skapa manus till oscilloskopet själv genom att definiera de parametrar som ska skrivas på kurvan och ge argument för x-och y-axel:

    bp.port.write ( "\\ x15 " ) medan en : plot = {} spänning = {} maxv = 0minv = 100time_scale = DEFAULT_TIME_SCALE * time_divprev_voltage = 0measure = 0 , om ( trig_mode = NO_SYNC ! ) : för ki intervallet ( 1,2000 ) : prev_voltage = voltagemeasure = bp.response ( 2 , Sant ) spänning = ORD ( åtgärd [ 0 ] ) << 8voltage = spänning + ORD ( åtgärd [ ,"1 ] ) spänning = ( voltage/1024.0 ) * 6.6 # stigande slopeif ( ( spänning > = trigger_level ) och ( prev_voltage < ( spänning * TRIG_CAL ) ) och ( trig_mode == RISING_SLOPE ) ) : breakif ( ( spänning < trigger_level ) och ( spänning > 0,01 ) och ( prev_voltage > spänning /TRIG_CAL ) och ( trig_mode == FALLING_SLOPE ) ) : breakfor i i intervallet ( RES_X ) : för ki intervallet ( time_div - 1 ) : # ignorerar ( time_div - 1 ) prov för att uppnå rätt tid resolutionbp.response ( 2 , Sant ) mått = bp.response 2 ( , sant) spänning = ORD ( åtgärd [ 0 ] ) << 8voltage = spänning + ORD ( mått [ 1 ] ) spänning = ( voltage/1024.0 ) * 6.6plot [ i] = voltagefor i i intervallet ( 1 , RES_X ) : om tomten [ i] > maxv : maxv = plot [ i] om tomten [ i] < minv : minv = plot [ ,"i] y = ( RES_Y ) - plot [ i] * ( RES_Y /MAX_VOLTAGE ) - OFFSETx = IPX = i- 1 , py = ( RES_Y ) - plot [ i- 1 ] * ( RES_Y /MAX_VOLTAGE ) - OFFSETpygame.draw . linjen ( fönster , fodra, (px , py ) , ( x, y) ) trig_y = RES_Y - trigger_level * ( RES_Y /MAX_VOLTAGE ) pygame.draw.line ( fönster , trig_color , 0 ( , trig_y ) , ( RES_X , trig_y ) )
    6

    Avsluta oscilloskopet genom att definiera parametrarna för oscilloskopet s grafiska användargränssnitt :

    # # 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 ( " Tidsåtgång : % 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 ) katalog Addera ditt

    Tidigare:

    nästa:
    relaterade artiklar
    ·Hur man byter negativa heltal i en Python Array
    ·Hur man installerar Python IDLE
    ·Hur man gör en IRC Bot från grunden i Python
    ·Dynamiska funktioner i Python
    ·Lägga inledande blanksteg i Python
    ·Lägga till varje element i en lista i Python
    ·Hur man tar bort en Python Decimal
    ·Hur hitta delmängder i en Python
    ·Hur att rensa en Array eller Lista i Python
    ·Hur får man en Python löpa från CMD
    Utvalda artiklarna
    ·Nackdelarna med att använda Widgets i Computer Design
    ·Hur Räkna ord i en textruta i Visual Basic ( VB )
    ·Felsökning av en dator Flödesschema
    ·Så här konfigurerar PHP för att skicka mail
    ·Hur du ändrar Bullet Style Använda HTML Programmering…
    ·Java Undantag Beskrivningar
    ·Hur man använder UBound i VB6
    ·Hur Input ett datum i MySQL
    ·Hur man testar för en fil i Visual Basic
    ·Hur man sparar ett OLE-objekt till en Access- tabell me…
    Copyright © Dator Kunskap http://www.dator.xyz