Visualisierung mit Rasperry

  • Hallo Leute,
    ich habe eine analoge Spannung durch den MCP3008 zu Raspberry Pi geschickt. die entsprechende digitale Spannung habe ich auf den Bildschirm mit Hilfe von Python bekommen.
    Nun möchte ich gern eine Graphik (Balkengraphik or was anders) haben, die mir eine Kurve über eine bestimmte Zeit von der digitaler Spannung ausgibt.

    ich weiß nicht wie ich anfangen soll, um mein Skript zu schreiben.
    Hat jemand ein Tipp?
    Danke

  • Hello Leute,
    ich dies geschrieben aber ich habe einen Fehler : def main (): ; IndentationError: unindent does not match any outer indentation level

    import pygame
    import sys
    import os
    import mcp3008 as MCP3008

    #Farbdefinition
    black (0, 0, 0)
    blue = (0, 0, 255)
    white = (255, 255, 255)
    yellow = (255, 255, 0)

    class ValueBar ():
    #konstruktor
    def__init__(self, screen, color, (x,y), thickness, height, labeltext):
    self.screen = screen
    self.color = color
    self.x = x
    self.y=y
    self.thickness = thickness
    self.height = height
    self.labeltext = labeltext
    #Textdefinition
    self.myfont =pygame.font.SysFont (“CourierNew”, 15)

    def__update (self,value) :
    self.value = value
    # label anzeigen
    label = self.myfont.render(self.labeltext, 1, yellow)
    self.screen.blit(label, (self.x, self.y))
    #Value anzeigen
    labelvalue = self.myfont.render(str(self.value), 1, white)
    self.screen.blit(labelvalue, (self.x, self.y +15))
    # Rechteck zeigen
    pygame.draw.rect(self.screen, self.color, \ [ self.x +90, self.y, self.value/2, self.height], self.thickness)

    def main():
    # Initialisierung von Screen
    pygame.init()
    size =[800, 400]
    screen = pygame.display.set_mode(size)
    pygame.display.set.caption\ (´Datenerfassung mit Raspeberry PI`)

    # Variablendefenition
    ADC_Channel = 0 # Analog/Digital Channel
    SCLK = 18 # Serial-Clock
    MISO = 24 # Master-In-Slave-Out
    MOSI = 23 # Master-Out-Slave-In
    CS = 25 # Chip-Select
    PAUSE = 0.05

    # Pin_Initialisierung
    MCP3008.setupGPIO(SCLK, MOSI, MISO, CS)
    # Valuebar instanzieren (screen, color, startposition, thickness, height, kanal)
    vb0 = Valuebar(screen, blue, (0, 5), 2, 30, “Kanal 0:”)

    done False
    while done == False
    for event in pygame.event.get():
    if event.type == pygame.QUIT:
    done = True

    # Schwarzer Hintergrund
    Screen.fill((0, 0, 0))
    # Valuebar update
    vb0.update(MCP3008.readAnalogData(0, SCLK, MOSI, MISO, CS, PAUSE))
    # update des Bildschirms
    pygame.display.flip()
    # Programm ende
    pygame.quit ()

    if __name__ == '__main__':
    main()


    wie kann mich diesen Fehler weg kriegen?
    LG Riki

  • Hello Leute,
    nun mit Einrückungen
    ich dies geschrieben aber ich habe einen Fehler : def main (): ; IndentationError: unindent does not match any outer indentation level

    import pygame
    import sys
    import os
    import mcp3008 as MCP3008

    #Farbdefinition
    black (0, 0, 0)
    blue = (0, 0, 255)
    white = (255, 255, 255)
    yellow = (255, 255, 0)

    class ValueBar ():
    #konstruktor
    def__init__(self, screen, color, (x,y), thickness, height, labeltext):
    self.screen = screen
    self.color = color
    self.x = x
    self.y=y
    self.thickness = thickness
    self.height = height
    self.labeltext = labeltext
    #Textdefinition
    self.myfont =pygame.font.SysFont (“CourierNew”, 15)

    def__update (self,value) :
    self.value = value
    # label anzeigen
    label = self.myfont.render(self.labeltext, 1, yellow)
    self.screen.blit(label, (self.x, self.y))
    #Value anzeigen
    labelvalue = self.myfont.render(str(self.value), 1, white)
    self.screen.blit(labelvalue, (self.x, self.y +15))
    # Rechteck zeigen
    pygame.draw.rect(self.screen, self.color, \ [ self.x +90, self.y, self.value/2, self.height], self.thickness)

    def main():
    # Initialisierung von Screen
    pygame.init()
    size=[800, 400]
    screen = pygame.display.set_mode(size)
    pygame.display.set.caption\ (´Datenerfassung mit Raspeberry PI`)

    # Variablendefenition
    ADC_Channel = 0 # Analog/Digital Channel
    SCLK = 18 # Serial-Clock
    MISO = 24 # Master-In-Slave-Out
    MOSI = 23 # Master-Out-Slave-In
    CS = 25 # Chip-Select
    PAUSE = 0.05

    # Pin_Initialisierung
    MCP3008.setupGPIO(SCLK, MOSI, MISO, CS)
    # Valuebar instanzieren (screen, color, startposition, thickness, height, kanal)
    vb0 = Valuebar(screen, blue, (0, 5), 2, 30, “Kanal 0:”)

    done = False
    while done == False:
    for event in pygame.event.get():
    if event.type == pygame.QUIT:
    done=True

    # Schwarzer Hintergrund
    Screen.fill((0, 0, 0))
    # Valuebar update
    vb0.update(MCP3008.readAnalogData(0, SCLK, MOSI, MISO, CS, PAUSE))
    # update des Bildschirms
    pygame.display.flip()
    # Programm ende
    pygame.quit ()

    if __name__ == '__main__':
    main()

  • Du musst den Code in die Code Tags hier im Editor packen [*code][*/code] ohne das * Zeichen oder auf die Raute-Taste drücken...

    Der Code ist sehr fehlerhaft und wird nicht gehen.

    Code
    black (0, 0, 0) # <----- falsch
    def__init__(s <--- falsch

    weiter schaue ich gar nicht mehr. Zwischen der Deklaration und dem Namen muss ein Leerzeichen sein...


    Was für ein Editor benutzt du?

  • Da sind auch noch ein paar mehr Zeilen falsch- aber wie meine beiden Vorredner schon sagten wäre es für alle besser wenn du den Code in CODE postest - Wenn du die Schnellantwort nutzt dann erst auf " Beitragsvorschau " und dann oben in der Tool-Leiste auf die Raute drücken zum öffnen des [ CODE ] und anschließend noch mal auf # damit der auch wieder geschlossen wird: [/ CODE]

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!