Esempio n. 1
0
print(board)

distances = np.zeros((size, size))
for i in range(0, size):
    for j in range(0, size):
        if not board[i,j] == 1:
            distances[i,j] = getDistDijkstra(board, (i,j), target, 0)
        else:
            distances[i, j] = -1
            
print(distances)

print(np.nanmax(distances))
maximum = np.nanmax(distances[distances != np.inf])
for i in range(0, size):
    for j in range(0, size):
        if distances[i,j] == -1:
            sense.set_pixel(i, j, 255, 255, 255)
        elif distances[i,j] == 0:
            sense.set_pixel(i, j, 255, 255, 0)
        elif distances[i,j] == np.inf:
            sense.set_pixel(i, j, 0, 0, 0)
        else:
            value = 255-int(distances[i,j]*255/maximum)
            if value == 0:
                sense.set_pixel(i, j, 10, 0, 0)
            else:
                sense.set_pixel(i, j, value, 0, 0)
            
sense.flip_h(True)
Esempio n. 2
0
from sense_hat import SenseHat

from time import sleep

sense = SenseHat()

w = (150, 150, 150)

b = (0, 0, 255)

e = (0, 0, 0)

image = [
    e, e, e, e, e, e, e, e, e, e, e, e, e, e, e, e, w, w, w, e, e, w, w, w, w,
    w, b, e, e, w, w, b, w, w, w, e, e, w, w, w, e, e, e, e, e, e, e, e, e, e,
    e, e, e, e, e, e, e, e, e, e, e, e, e, e
]

sense.set_pixels(image)

while True:

    sleep(1)

    sense.flip_h()
Esempio n. 3
0
from sense_hat import SenseHat
import time

sense = SenseHat()

w = [150,150,150]
b = [0,0,255]
e = [0,0,0]

image = [
    e,e,e,e,e,e,e,e,
    e,e,e,e,e,e,e,e,
    w,w,w,e,e,w,w,w,
    w,w,b,e,e,w,w,b,
    w,w,w,e,e,w,w,w,
    e,e,e,e,e,e,e,e,
    e,e,e,e,e,e,e,e,
    e,e,e,e,e,e,e,e
]

sense.set_pixels(image)

while True:
    time.sleep(1)
    sense.flip_h()

# From here: https://github.com/raspberrypilearning/getting-started-with-the-sense-hat/blob/master/code/eyes.py
Esempio n. 4
0
class senseHAT:
    def __init__(self):
        self.sense = SenseHat()
        self.red = (255, 0 , 0)
        self.green = (0, 255, 0)
        self.blue = (0, 0, 255)
        self.lightGreen = (70, 255, 102)
        self.black = (0, 0, 0)
        self.white = (255, 255, 255)
    
    # Display a message using user input with orange text & black background
    def displayText(self):
        textColor = (253, 95, 0)
        message = input('Enter a message to display: ')

        self.sense.show_message(message, text_colour = textColor, back_colour = self.black)

    # Given any word, this method will display each char every x seconds in red
    def displayChars(self, word, x):
        for letter in word:
            self.sense.show_letter(letter, text_colour = self.red)
            sleep(x)
    
    # Lights the entire board light green
    def makeOneColor(self):
        self.sense.clear(self.lightGreen)
    
    # Makes a happy face by setting individual pixels
    def onePixel(self):
        self.sense.set_pixel(2, 2, self.blue)
        self.sense.set_pixel(4, 2, self.blue)
        self.sense.set_pixel(3, 4, self.lightGreen)
        self.sense.set_pixel(1, 5, self.red)
        self.sense.set_pixel(2, 6, self.red)
        self.sense.set_pixel(3, 6, self.red)
        self.sense.set_pixel(4, 6, self.red)
        self.sense.set_pixel(5, 5, self.red)

    # Lights up entire LED Board based on list
    def manyPixels(self):
        matrix = []

        # Appends black or white into matrix based on number value
        while len(matrix) < 64:
            randNum = randint(0, 1)

            if randNum == 0:
                matrix.append(self.black)
            
            matrix.append(self.white)
        
        self.sense.set_pixels(matrix)
    
    # Given an orientation, LED Matrix will either be flipped horizontally, vertically, or rotated
    def setOrientation(self, option):
        w = (150, 150, 150)
        e = self.white
        b = self.blue
        option = option.lower()

        image = [
            e,e,e,e,e,e,e,e,
            e,e,e,e,e,e,e,e,
            w,w,w,e,e,w,w,w,
            w,w,b,e,e,w,w,b,
            w,w,w,e,e,w,w,w,
            e,e,e,e,e,e,e,e,
            e,e,e,e,e,e,e,e,
            e,e,e,e,e,e,e,e
        ]

        if option == 'horizontal':
                self.sense.flip_h(image)
        elif option == 'vertical':
                self.sense.flip_v(image)
        elif option == 'rotate':
            rotation = int(input('Enter degrees to rotate: '))
            self.sense.set_rotation(rotation)
        else:
            self.sense.set_pixels(image)

    # Output environment details to LED Matrix
    def getEnvironment(self):
        # get_temperature() returns celsius... convert this to farenheit
        temp = round(self.sense.get_temperature() * 1.8 + 32, 2)
        humidty = round(self.sense.get_humidity(), 2)
        pressure = round(self.sense.get_pressure(), 2)

        tempMessage = "Temperature: " + str(temp) + "F"
        humidtyMessage = "Humidity: " + str(humidty) + "%"
        pressureMessage = "Pressue: " + str(pressure) + "millibars"

        self.sense.show_message(tempMessage)
        sleep(1)
        self.sense.show_message(humidtyMessage)
        sleep(1)
        self.sense.show_message(pressureMessage)
        sleep(1)

        # Will water freeze right now?
        if temp <= 32:
            self.sense.show_message('Water will freeze at current temp')
        else:
            self.sense.show_message('Water will not freeze right now')
    
    # Detecting Movement using IMU
    def detectMovement(self):
        while True:
            acceleration = self.sense.get_accelerometer_raw()

            x = acceleration['x']
            y = acceleration['y']
            z = acceleration['z']

            x = abs(x)
            y = abs(y)
            z = abs(z)

            if x > 1 or y > 1 or z > 1:
                self.sense.show_letter('!', self.red)
            else:
                self.sense.clear()
                

    # Using the joystick
    def joystick(self):
        choice = input(
            'Enter the key of what you want to do: \n 1 - Show on terminal directions \n 2 - Show on LED Matrix \n '
        )

        if choice == '1':
            while True:
                for event in self.sense.stick.get_events():
                    print(event.direction, event.action)
        elif choice == '2':
            e = self.black
            w = self.white

            self.sense.clear()
            while True:
                for event in self.sense.stick.get_events():
                    if event.action == 'pressed':

                        if event.direction == 'up':
                            self.sense.show_letter('U')
                        elif event.direction == 'down':
                            self.sense.show_letter('D')
                        elif event.direction == 'left':
                            self.sense.show_letter('L')
                        elif event.direction == 'right':
                            self.sense.show_letter('R')
                        elif event.direction == 'middle':
                            self.sense.show_letter('M')
                        
                        sleep(0.5)
                        self.sense.clear()
Esempio n. 5
0
import argparse

from _str2bool import str2bool
from _return import finish

parser = argparse.ArgumentParser(
    description='Flips the image on the LED matrix horizontally.')
parser.add_argument(
    '--redraw',
    type=str2bool,
    nargs='?',
    default=True,
    help=
    'Whether or not to redraw what is already being displayed on the LED matrix. Defaults to True'
)

args = parser.parse_args()

try:
    from sense_hat import SenseHat

    sense = SenseHat()

    result = sense.flip_h(args.redraw)

    # A list containing 64 smaller lists of [R, G, B] pixels (red, green, blue) representing the flipped image.
    finish({"result": result})
except Exception, e:
    finish(e, 1)
Esempio n. 6
0
from sense_hat import SenseHat
from time import sleep

sense = SenseHat()

w = (150, 150, 150)
b = (0, 0, 255)
e = (0, 0, 0)

image = [
    e, w, w, e, e, w, w, e, w, e, e, e, e, e, e, w, w, w, w, e, e, w, w, w, w,
    w, b, e, e, w, w, b, w, w, w, e, e, w, w, w, e, e, e, e, e, e, e, e, e, e,
    w, w, w, w, e, e, e, w, e, e, e, e, w, e
]

sense.set_pixels(image)

while True:
    sleep(1)
    sense.flip_h()  # Therefore the blue eyeball will flip horizontally,
    # thus giving the visual that it is looking from right
    # to left repeatly every second.
Esempio n. 7
0
from sense_hat import SenseHat
from time import sleep

sense = SenseHat()

# Define some colours
g = (0, 255, 0)  # Green
b = (0, 0, 0)  # Black

# Set up where each colour will display
creeper_pixels = [
    g, g, g, g, g, g, g, g, g, b, b, g, g, b, b, g, g, b, b, g, g, b, b, g, g,
    g, g, b, b, g, g, g, g, g, b, b, b, b, g, g, g, g, b, b, b, b, g, g, g, g,
    b, g, g, b, g, g, g, g, g, g, g, g, g, g
]

# Display these colours on the LED matrix using the 'set_pixels' cmd to change
# all 64 LEDs using just one line of code.
sense.set_pixels(creeper_pixels)  # From sense get the set_pixels function and
# set the creeper_pixels attribute.
sleep(5)
sense.set_rotation(180)  # Rotate the display by 180 degrees.
sleep(5)
sense.flip_h()  # Flip the image on the screen horizontally.
#sleep(5)
#sense.flip_v() # Flip the image on the screen vertically.
sleep(5)
sense.clear()
Esempio n. 8
0
from sense_hat import SenseHat
s = SenseHat()
s.flip_h()
s.show_message("Hello Master")
s.load_image("sword1.png")
Esempio n. 9
0
# Astro Pi Submission for Matthew Charlston, Owen Cole and James Cook for Phase 2 of Mission Space Lab 2018

# Import libraries needed for experiment
from sense_hat import SenseHat  # For outputting to the hat
import time  # For timing and sleeping
import logging  # For logging
from logzero import logger  # For the csv output
import logzero  # For logging
import os  # For getting current directory
import datetime  # For getting the current time

# Initiate Sense Hat
sense = SenseHat()  # Initiate
sense.flip_v()  # Flip the screen so it is visible to the astronauts
sense.flip_h()  # Continued

# Set up libraries, timing, logging and variables
numberOfPassings = 0  # Variable to store the number of times an astronaut has passed
dirPath = os.path.dirname(os.path.realpath(__file__))  # Get current directory
nowTime = datetime.datetime.now()  # Get current time
startTime = datetime.datetime.now()  # Get start time
logzero.logfile(dirPath + "/data01.csv")  # Set file to output data to
formatter = logging.Formatter(
    '%(name)s - %(asctime)-15s - %(levelname)s: %(message)s')
# Create custom formatter
logzero.formatter(formatter)  # Use custom formatter

# Loop for 170 minutes so the program is not terminated by the pi uncleanly
while (nowTime < startTime + datetime.timedelta(minutes=17)):

    # Declare variables