Προγραμματισμός

* Γνώση Υπολογιστών >> Προγραμματισμός >> Python Προγραμματισμός

Πώς να κάνει ένα παλμογράφο σε Python

οι παλμογράφοι χρησιμοποιούνται για τη μέτρηση των διαστημάτων των διαφόρων ειδών των κυμάτων και των ηλεκτρικών σημάτων . Αναγνώσεις τους βοηθήσουν για την παροχή των ερευνητών στο εσωτερικό εικόνα για τη συχνότητα και τη δύναμη των κυμάτων που εκπέμπονται από τις ηλεκτρικές συσκευές και άλλες πηγές . Για το υλικό σε έναν παλμογράφο για να λειτουργήσει , θα πρέπει να συνδεθεί με ένα πρόγραμμα λογισμικού που ερμηνεύει τις αναγνώσεις και τα εμφανίζει σε ένα γράφημα. Οδηγίες
Η

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 ( )
Φτηνές 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 ( ( τάση 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 ] maxv :̱ maxv = oikópedo [ i ] an oikópedo [ i ] Η 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 )


εικόνων

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα