1 Ανοίξτε μια εφαρμογή επεξεργασίας κώδικα ή να χρησιμοποιήσετε μια εφαρμογή επεξεργασίας κειμένου, όπως TextEdit σε Mac OS X ή το Σημειωματάριο στα Microsoft Windows . Δημιουργήστε ένα νέο έγγραφο για να στεγάσει το σενάριο του παλμογράφου Python . 2
Καθορίστε τις παραμέτρους που θα χρησιμοποιηθούν στο σενάριο , καθώς και οι δύο Python βιβλιοθήκες που απαιτούνται για το σενάριο χρησιμοποιώντας τον ακόλουθο κώδικα :
os εισαγωγής , sysimport Imageimport serialimport pygameimport χρόνο
από pyBusPirateLite.UART εισαγωγής * από pyBusPirateLite.BitBang εισαγωγής *
εικόνων 3
Ορίστε το ρυθμό μετάδοσης δεδομένων και να χρησιμοποιήσετε τη λειτουργία εκτύπωσης για να μπορέσει το πρόγραμμα να καταγράψετε τις εισαγωγές που γίνονται από τον παλμογράφο :
DATA_RATE = 5.720,0 # μέτρα /δευτερόλεπτο ( εκτιμώμενο experimenticaly ) DEFAULT_TIME_SCALE = RES_X /DATA_RATE # default χρόνο σε δευτερόλεπτα για να κάνει ένα παράθυρο fillpygame . init ( ) bp = UART ( BUS_PIRATE_DEV , 115200 ) print "Εισαγωγή binmode : " αν bp.BBmode ( ) : print "OK . " else: print " . απέτυχε" sys.exit ( ) < br > Φτηνές 4
Καθορίστε τις παραμέτρους για το παράθυρο της εφαρμογής χρησιμοποιώντας τη λειτουργία pygame.display :
παράθυρο = pygame.display.set_mode ( ( RES_X , RES_Y ) ) φόντο = ( 0,0 , 0 ) = γραμμή ( 0,255,0 ) trig_color = ( 100,100,0 )
5
Δημιουργήστε το σενάριο για τον ίδιο τον παλμογράφο ορίζοντας τις παραμέτρους που θα πρέπει να γραφτεί στο γράφημα και παρέχοντας επιχειρήματα για την x και y άξονα :
bp.port.write ( "\\ x15 " ), ενώ 1 : οικόπεδο = { } = { τάσης } maxv = 0minv = 100time_scale = DEFAULT_TIME_SCALE * time_divprev_voltage = 0measure = 0 ? εάν ( trig_mode = NO_SYNC ! ) : για k στο φάσμα ( 1,2000 ) : prev_voltage = voltagemeasure = bp.response ( 2 , True ) Τάση = ord ( μέτρο [ 0 ] ) << 8voltage = τάση + ord ( μέτρο [ ,"( trig_mode = NO_SYNC ! ) :̱ gia k sto fásma ( 1,2000 ) :̱ prev_voltage = voltagemeasure = bp.response ( 2 , True ) Tási̱ = ord ( métro [ 0 ] ) << 8voltage = tási̱ + ord ( métro [ 1 ] ) Τάση = ( voltage/1024.0 ) * 6.6 # άνοδο slopeif ( ( τάση > = trigger_level ) και ( prev_voltage < ( τάση * TRIG_CAL ) ) και ( trig_mode == RISING_SLOPE ) ) : breakif ( ( τάση < trigger_level ) και ( τάση > 0.01 ) και ( prev_voltage > τάσης /TRIG_CAL ) και ( trig_mode == FALLING_SLOPE ) ) : breakfor i in range ( RES_X ) : για k στο φάσμα ( time_div - 1 ) : # αγνοώντας ( time_div - 1 ) δείγματα για να επιτευχθεί η ορθή resolutionbp.response χρόνου ( 2 , True ) = μέτρο bp.response ( 2 , True ) Τάση = ord ( μέτρο [ 0 ] ) << 8voltage = τάση + ord ( μέτρο [ 1 ] ) Τάση = ( voltage/1024.0 ) * 6.6plot [ i ] = voltagefor i in range ( 1 , RES_X ) : εάν οικόπεδο [ i ] > maxv : maxv = οικόπεδο [ i ] αν οικόπεδο [ i ] < minv : minv = οικόπεδο [ ,"( voltage/1024.0 ) * 6.6plot [ i ] = voltagefor i in range ( 1 , RES_X ) :̱ eán oikópedo [ i ] > maxv :̱ maxv = oikópedo [ i ] an oikópedo [ i ] < minv :̱ minv = oikópedo [ i ] y = ( RES_Y ) - οικόπεδο [ i ] * ( RES_Y /MAX_VOLTAGE ) - OFFSETx = ipx = i - 1 ? ργ = ( RES_Y ) - οικόπεδο [ i - 1 ] * ( RES_Y /MAX_VOLTAGE ) - OFFSETpygame.draw . line ( παράθυρο , γραμμή , ( px , py ) , ( x , y ) ) = trig_y RES_Y - trigger_level * ( RES_Y /MAX_VOLTAGE ) pygame.draw.line ( παράθυρο , trig_color , ( 0 , trig_y ) , ( RES_X , trig_y ) )
Η 6
Οριστικοποίηση του παλμογράφου ορίζοντας τις παραμέτρους για την γραφική διεπαφή χρήστη του παλμογράφου είναι :
# # GUI ) font = pygame.font.Font ( None , 19 ) text_max_voltage = font . καθιστούν ( "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 ( " Χρονοδιάγραμμα : 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 )
εικόνων
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα