European Astro Pi Challenge – Mission Zero 2024/2025

Astro Pi Mission Zero je projekt ESA ve spolupráci s nadací Raspberry Pi. Úkolem je vytvořit v programovacím jazyce Python jednoduchý kód. Ten bude po schválení spuštěn na ISS a autor získá certifikát obsahující mapu s místem a časem spuštění programu.

Kromě Mission Zero se mohou účastníci zapojit do Mission Space Lab, kde je vyžadována detailnější znalost programovacího jazyka a zadaný úkol je složitější.

V Mission Zero je za úkol zobrazit na LED panelu Astro Pi obrázek a použít senzor osvětlení. Maximální doba běhu programu je stanovena na 30 s. Účastnit se díky svému jednoduchému zadání a výborným instruktážním materiálům mohou všichni do věku 19 let včetně. U malých dětí je vyžadován mentor.

Projektu jsme se nechtěli účastnit, ale byl to tahový „hec“. Těsně před koncem jsem se rozhodl zkusit naučit Lucinku trochu programovat. Byť ve svých 4 letech nikdy neprogramovala a s počítačem nepracuje, přišlo mi jako dobrý úkol vyzkoušet, co dalšího může dítě v tomto věku zvládnout.

Původně jsem chtěl začít se Scratch, ale nakonec jsem zvolil jiný přístup. Celý týden se stal od ranního vstávání po příchod do školky řadou různých programových kroků s rozhodováním. A Lucinka vše zvládla bravurně. Sama cestu slovně „programovala“ – říkala, jaký krok dělá a co dalšího bude následovat.

Najednou tu byl pátek a my měli několik dní na vytvoření programu. Lucinka jako autorka, já mentor.

Prvotní návrh byl program, který pracuje na technologickém demu LASARsatu. Tedy opakující se srdíčka, smajlík a smutník. Demo LASARsatu a program jsme vytvořili pro LASAR doma a stal se častým návštěvníkem různých akcí a TV pořadů. Původně to byla pouze legrace, která měla fungovat pouze hodinu. Náš nápad se líbil a demo LASARsat přejmenoval Simon Klinga na LUCKAsat :-)

Software LUCKAsatu ale Lucinka neprogramovala. Jejím úkolem bylo pájení a testování funkčního celku. Elektronice poměrně dobře rozumí a pájí i integrované obvody, tak to pro ni byla hračka.

Protože v Astro Pi Mission Zero nemá být program s negativním obsahem, vytvořila Lucinka obrázky sebe, ségry Terezky a Paxiho. Po spuštění programu se střídají malá a velká srdce, následovaná pozdravem pro Paxiho s obrázky holek.

Programování zabralo Lucince páteční odpoledne a skoro celý sobotní den.

Byl jsem překvapen na jak abstraktních projektech může pracovat. A opravdu programovala sama. Až neuvěřitelně převáděla obrázkové matice do proměnných. Každý barevný pixel musela nahradit číselnou kombinací z definované tabulky. Velkou výhodou je, že ve svém věku umí číst a psát. Nicméně, protože není zvyklá s počítačem pracovat, dělalo jí zpočátku největší problémy najít správná písmenka na klávesnici. Zde se ukázala potřeba mentora a písmenka jsem jí po chvilce samo-hledání pomohl nalézt. Lucince pomohlo také kopírování již vytvořených částí kódu jak z příručky Astro Pi na internetu, tak své už napsané části.

A co hnalo Lucinku stále na programu pracovat? V simulátoru viděla, jak její kód pracuje a chtěla přidávat další a další funkce.

Prvních několik řádek kódu je předpřipravených v programovacím prostředí. Kódy barev jsou zkopírovány z ukázkových kódů Astro Pi.

# Importuj knihovny
from sense_hat import SenseHat
from time import sleep

# Nastav Sense HAT
sense = SenseHat()
sense.set_rotation(270)

# Nastav senzor barev
sense.color.gain = 60 # Nastav citlivost senzoru
sense.color.integration_cycles = 64 # Interval, který udává frekvenci měření ze senzoru

# Přidej proměnné s barvami a obrázek
a = (255, 255, 255) # Bílá
c = (0, 0, 0) # Černá
m = (34, 139, 34) # Lesní zelená
v = (255, 0, 0) # Červená
h = (0, 255, 255) # Azurová
t = (255, 140, 0) # Tmavě oranžová
l = (0, 255, 127) # Jarní zeleň
p = (240, 230, 140) # Khaki
e = (0, 0, 205) # Středně modrá

srdce_male = [
c, c, c, c, c, c, c, c,
c, c, c, c, c, c, c, c,
c, c, v, c, c, v, c, c,
c, v, v, v, v, v, v, c,
c, c, v, v, v, v, c, c,
c, c, c, v, v, c, c, c,
c, c, c, c, c, c, c, c,
c, c, c, c, c, c, c, c]

srdce_velke = [
c, c, c, c, c, c, c, c,
c, v, v, c, c, v, v, c,
v, v, v, v, v, v, v, v,
v, v, v, v, v, v, v, v,
c, v, v, v, v, v, v, c,
c, c, v, v, v, v, c, c,
c, c, c, v, v, c, c, c,
c, c, c, c, c, c, c, c]

rgb = sense.color # Získej barvu ze senzoru
x = (rgb.red, rgb.green, rgb.blue)

smajlik = [
c, c, x, x, x, x, c, c,
c, x, c, c, c, c, x, c,
x, c, a, c, c, a, c, x,
x, c, c, c, c, c, c, x,
x, c, l, c, c, l, c, x,
x, c, c, l, l, c, c, x,
c, x, c, c, c, c, x, c,
c, c, x, x, x, x, c, c]

paxi = [
v, c, v, v, v, v, c, v,
c, m, m, m, m, m, m, c,
v, m, a, m, m, a, m, v,
v, m, m, m, m, m, m, v,
v, m, c, m, m, c, m, v,
v, m, m, c, c, m, m, v,
c, v, m, m, m, m, v, c,
m, m, v, v, v, v, m, m]

luci = [
c, p, p, p, p, p, p, c,
c, p, p, p, p, p, p, c,
c, p, p, c, p, c, p, c,
c, p, v, p, t, p, p, c,
c, p, v, v, v, v, p, c,
e, p, p, p, p, p, p, e,
c, c, e, c, c, e, c, c,
c, c, e, c, c, e, c, c]

teri = [
c, p, p, p, p, p, p, c,
c, p, p, p, p, p, p, c,
c, p, p, c, p, c, p, c,
c, p, v, p, t, p, p, c,
c, p, v, v, v, v, p, c,
v, p, p, p, p, p, p, v,
c, c, v, c, c, v, c, c,
c, c, v, c, c, v, c, c]

# Zobraz obrázek
# 2 krát malé a velké
for i in range(2):
 sense.set_pixels(srdce_male)
 sleep(1)
 sense.set_pixels(srdce_velke)
 sleep(1)
sense.set_pixels(smajlik)
sleep(1)
sense.show_message("Hi Paxi", 0.05)
sense.set_pixels(paxi)
sleep(2)
sense.show_message("from Luci", 0.05)
sense.set_pixels(luci)
sleep(2)
sense.show_message("and Teri", 0.05)
sense.set_pixels(teri)

Po Astro Pi challenge jsme s Lucinkou začali společně pracovat na další verzi software pro LUCKAsat.

Lucinky program byl na ISS spuštěn 15. 5. 2025 ve 23:10 přímo na Mexickým zálivem.

Leave a Reply