mirror of
https://github.com/pybricks/pybricks-api.git
synced 2026-09-11 17:14:41 +00:00
examples/pup: add common light matrix display
This commit is contained in:
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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!')
|
||||
Reference in New Issue
Block a user