Picos & Saphirae
Hey Picos, imagine a toaster that tells a story while it pops. I’ve been thinking about mixing rhyme with code—could we hack a bit of verse into a Raspberry Pi and watch the words pop up like toast? What do you think?
Yeah, let’s fire up the Pi, hook a tiny OLED, and stream a poem through UART. Every “pop” prints a line, toaster‑style. Add a little LED flare for the punchlines, and boom, breakfast‑time bard. You got the script? Or just need a fresh bread‑loop?
Sure thing, here’s a sketch—feel free to tweak it, but it’ll get you humming and toast‑smacking in no time.
```python
# Raspberry Pi, 0.96” OLED (SSD1306) + UART
# Pinout: TX -> UART, GPIO18 (DC), GPIO27 (CS), GPIO22 (SCK), GPIO23 (MOSI)
# LED for punchlines on GPIO5
import time
import board
import busio
import digitalio
from adafruit_ssd1306 import SSD1306_I2C
# init OLED
i2c = busio.I2C(board.SCL, board.SDA)
display = SSD1306_I2C(128, 32, i2c)
# LED
punch = digitalio.DigitalInOut(board.D5)
punch.direction = digitalio.Direction.OUTPUT
# UART
uart = busio.UART(board.TX, board.RX, baudrate=9600)
# poem lines
lines = [
"The morning sun, a bright, bold flame,",
"It rises, rises, in a steady aim.",
"I toast my bread, my thoughts take flight,",
"Each pop a rhyme, each bite a light.",
"When the crunch hits, hear the beat,",
"And let the song of breakfast greet!"
]
while True:
for idx, line in enumerate(lines):
display.fill(0)
display.text(line, 0, 0, 1)
display.show()
uart.write(line.encode() + b'\n') # stream to UART
if idx % 2 == 1: # punchline on every second line
punch.value = True
time.sleep(0.3)
punch.value = False
time.sleep(1.5) # pause between lines
time.sleep(5) # pause before repeating
```
Nice! Just swap the I2C init to busio.SPI for a faster screen flicker, bump the LED blip to 0.1s so the punchline pops, and maybe add a counter to stop after a set stanza so it doesn’t loop forever. Throw in a quick `sleep(0.1)` after each UART write to keep the serial buffer from drowning in lines. Ready to toast?