examples/pup: add common light matrix display

This commit is contained in:
Laurens Valk
2020-11-11 17:09:44 +01:00
parent 983562f7b8
commit abe1be18b2
9 changed files with 183 additions and 0 deletions
+29
View File
@@ -0,0 +1,29 @@
from pybricks.hubs import ExampleHub
from pybricks.parameters import Button, Icon
from pybricks.tools import wait
# Initialize the hub.
hub = ExampleHub()
# Wait for any button to be pressed, and save the result.
pressed = []
while not any(pressed):
pressed = hub.buttons.pressed()
wait(10)
# Display a circle.
hub.display.image(Icon.CIRCLE)
# Wait for all buttons to be released.
while any(hub.buttons.pressed()):
wait(10)
# Display an arrow to indicate which button was pressed.
if Button.LEFT in pressed:
hub.display.image(Icon.ARROW_LEFT_DOWN)
elif Button.RIGHT in pressed:
hub.display.image(Icon.ARROW_RIGHT_DOWN)
elif Button.BT in pressed:
hub.display.image(Icon.ARROW_RIGHT_UP)
wait(3000)
@@ -0,0 +1,19 @@
from pybricks.hubs import ExampleHub
from pybricks.parameters import Icon
from pybricks.tools import wait
# Initialize the hub.
hub = ExampleHub()
# Turn the hub light off (optional).
hub.light.off()
# Create a list of intensities from 0 to 100 and back.
brightness = list(range(0, 100, 4)) + list(range(100, 0, -4))
# Create an animation of the heart icon with changing brightness.
hub.display.animate([Icon.HEART * i/100 for i in brightness], 30)
# The animation repeats in the background. Here we just wait.
while True:
wait(100)
@@ -0,0 +1,32 @@
from pybricks.hubs import ExampleHub
from pybricks.parameters import Icon, Side
from pybricks.tools import wait
from urandom import randint
# Initialize the hub.
hub = ExampleHub()
hub.display.orientation(up=Side.RIGHT)
while True:
# Start with random left brow: up or down.
if randint(0, 100) < 70:
brows = Icon.EYE_LEFT_BROW*0.5
else:
brows = Icon.EYE_LEFT_BROW_UP*0.5
# Add random right brow: up or down.
if randint(0, 100) < 70:
brows += Icon.EYE_RIGHT_BROW*0.5
else:
brows += Icon.EYE_RIGHT_BROW_UP*0.5
for i in range(3):
# Display eyes open plus the random brows.
hub.display.image(Icon.EYE_LEFT + Icon.EYE_RIGHT + brows)
wait(2000)
# Display eyes blinked plus the random brows.
hub.display.image(Icon.EYE_LEFT_BLINK*0.7 + Icon.EYE_RIGHT_BLINK*0.7 + brows)
wait(200)
+18
View File
@@ -0,0 +1,18 @@
from pybricks.hubs import ExampleHub
from pybricks.tools import wait
from pybricks.parameters import Icon
# Initialize the hub.
hub = ExampleHub()
# Display a big arrow pointing up.
hub.display.image(Icon.UP)
# Wait so we can see what is displayed.
wait(2000)
# Display a heart at half brightness.
hub.display.image(Icon.HEART / 2)
# Wait so we can see what is displayed.
wait(2000)
+28
View File
@@ -0,0 +1,28 @@
from pybricks.hubs import ExampleHub
from pybricks.tools import wait
from pybricks.geometry import Matrix
# Initialize the hub.
hub = ExampleHub()
# Make a square that is bright on the outside and faint in the middle.
SQUARE = Matrix([
[100, 100, 100, 100, 100],
[100, 50, 50, 50, 100],
[100, 50, 0, 50, 100],
[100, 50, 50, 50, 100],
[100, 100, 100, 100, 100],
])
# Display the square.
hub.display.image(SQUARE)
wait(3000)
# Make an image using a Python list comprehension. In this image, the
# brightness of each pixel is the sum of the row and column index. So the
# light is faint in the top left and bright in the rop right.
GRADIENT = Matrix([[(r + c) for c in range(5)] for r in range(5)]) * 12.5
# Display the generated gradient.
hub.display.image(GRADIENT)
wait(3000)
+10
View File
@@ -0,0 +1,10 @@
from pybricks.hubs import ExampleHub
from pybricks.tools import wait
# Initialize the hub.
hub = ExampleHub()
# Count from 0 to 99.
for i in range(100):
hub.display.number(i)
wait(200)
@@ -0,0 +1,15 @@
from pybricks.hubs import ExampleHub
from pybricks.tools import wait
from pybricks.parameters import Side
# Initialize the hub.
hub = ExampleHub()
# Rotate the display. Now right is up.
hub.display.orientation(up=Side.RIGHT)
# Display a number. This will be shown sideways.
hub.display.number(23)
# Wait so we can see what is displayed.
wait(10000)
+20
View File
@@ -0,0 +1,20 @@
from pybricks.hubs import ExampleHub
from pybricks.tools import wait
# Initialize the hub.
hub = ExampleHub()
# Turn off all the pixels.
hub.display.off()
# Turn on the pixel at row 1, column 2.
hub.display.pixel(1, 2)
wait(2000)
# Turn on the pixel at row 2, column 4, at 50% brightness.
hub.display.pixel(2, 4, 50)
wait(2000)
# Turn off the pixel at row 1, column 2.
hub.display.pixel(1, 2, 0)
wait(2000)
+12
View File
@@ -0,0 +1,12 @@
from pybricks.hubs import ExampleHub
from pybricks.tools import wait
# Initialize the hub.
hub = ExampleHub()
# Display the letter A for two seconds.
hub.display.char('A')
wait(2000)
# Display text, one letter at a time.
hub.display.text('Hello, world!')