Python Forum
Raspberry pi Sensehat auto update
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Raspberry pi Sensehat auto update
#3
(Apr-09-2021, 03:25 PM)BashBedlam Wrote: I don't have a sense hat to work with but I can tell you that after () does not work like you think it would. The first time that you call canvas.after (500) it will wait half a second but the next time you call it, it will not seem to work at all because it only waited the same half a second, not a whole second. To work with this you have to add time each time you call it.

My code below simply increments the values in orientationData instead of getting it from the sense hat but the concept is the same. I hope this helps.

from tkinter import *
 
# Create a container for everything
canvas = Tk()
 
def UpdateOrientationDate():

    #Reaquire the orientation data
    for key, value in orientationData.items () :
        orientationData [key] = value + 1 

    #Update the labels with orientation data from the trycorder
    pitchLabel.config(text=str(round(orientationData["pitch"], 0)))
    rollLabel.config(text=str(round(orientationData["roll"], 0)))
    yowLabel.config(text=str(round(orientationData["yaw"], 0)))
 
#Get intital orientation orientation data from the trycorder
orientationData = {"pitch": 7, "roll": 8, "yaw": 9}

# Pre-populate the Labels with data for orientation from the trycorder
pitchLabel = Label(canvas, width = 9, text="0")
rollLabel = Label(canvas, text="0")
yowLabel = Label(canvas, text="0")

#Place the labels on the grid
pitchLabel.grid(row=0, column=0)
rollLabel.grid(row=1, column=0)
yowLabel.grid(row=2, column=0)

wait_time = 0
for count in range (13) :
    wait_time += 500
    canvas.after (wait_time, UpdateOrientationDate)

canvas.mainloop()

Hi BashBedlam

Thanks for the replay I found the answer via trial and error and got the following
from sense_hat import SenseHat
from tkinter import *
from tkinter.ttk import *


# Create a container for everything  
canvas = Tk()

canvas.title("Sense Hat test")

# Create  a path to the sensors 
trycorder = SenseHat()

def UpdatePitchData(): 
    #Reaquire the orientation data
    data = trycorder.get_orientation()
    
    #Update the labels with orientation data from the trycorder
    p = str(round(data["pitch"],0))
    pitchLabel.config(text="Pitch = " + p)
    pitchLabel.after(100, UpdatePitchData)    

def UpdateRollData():
     #Reaquire the orientation data
    data = trycorder.get_orientation()
    
    #Update the labels with orientation data from the trycorder
    r = str(round(data["roll"], 0))
    rollLabel.config(text="Roll = " + r)
    rollLabel.after(100, UpdateRollData)

def UpdateYawData():
     #Reaquire the orientation data
    data = trycorder.get_orientation()
    
    #Update the labels with orientation data from the trycorder
    y = str(round(data["yaw"], 0))
    yowLabel.config(text="Yaw = " + y)
    yowLabel.after(100,UpdateYawData)

# Pre-populate the Labels with data for orientation from the trycorder
pitchLabel = Label(canvas)
rollLabel = Label(canvas)
yowLabel = Label(canvas)

#Place the labels on the grid               
pitchLabel.grid(row=0, column=0)
rollLabel.grid(row=1, column=0)
yowLabel.grid(row=2, column=0)

UpdatePitchData()
UpdateRollData()
UpdateYawData()

mainloop()
Reply


Messages In This Thread
Raspberry pi Sensehat auto update - by mrbronz61 - Apr-08-2021, 06:00 PM
RE: Raspberry pi Sensehat auto update - by mrbronz61 - Apr-09-2021, 04:12 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
Question Python + Google Sheet | Best way to update specific cells in a single Update()? Vokofe 1 796 Dec-16-2020, 05:26 AM
Last Post: Vokofe

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020