Kurz Programování na Nuselské bude probíhat od 21. září 2023
a volně navazuje na kurz začátečníci. Je určen pro děti druhých
až pátých tříd libovolné základní školy s tím, že děti druhých
tříd musí mít absolvovaný kurz začátečníci, šikovní jedinci z
řad třetích či čtvrtých tříd mohou přijít i bez předchozího
vzdělání.
Cílem tohoto kurzu je pokračování v rozvoji systematického
myšlení, hlubší poznávání světa informační techniky
a osvojení si základů elektrotechniky.
Kurz bude probíhat 1x týdně, každý čtvrtek od 14:15 do 15:05
v počítačové učebně.
V kurzu budeme využívat robůtky Cubetto,
Beebot i Ozobot.
Později si představíme platformu Micro:bit
a s ní zabředneme trochu blíže k elektrotechnice. Kromě těchto
se budeme věnovat i práci na PC, kde se budeme učit programovat
pomocí vybraných kurzů na code.org,
prostředí scratch a dalších.
To vše proložíme tvůrčími aktivitami s papírem, kostkami a jinými
rekvizitami.
Cílem kurzu není vzdělat hotového programátora, ale rozvíjet logické
myšlení, algoritmizaci a jiné vlastnosti, které se dětem budou hodit
při studiu jakéhokoliv oboru.
Brainstorming ohledně projektů na tento rok, následně 3-hlasé hlasování
Seznámení s naší online laboratoří
Některé projekty vyžadují specifické programy a nastavení, proto jsem se letos rozhodl vyzkoušet virtuální laboratoř. Pro děti jsem připravil virtuální počítače (webtop kontejnery) ke kterým se přihlašují ze školních počítačů. Tyto počítače jsou “jejich”, čili si za tento rok vyzkouší správu vlastního PC i práci s operačním systémem GNU/Linux.
První úkol byl, změňte si pozadí, případně kurzory, panely a další
Krátká připomínka hry Minetest (opensource re-implementace Minecraftu s širokou podporou modů)
Vytváření souborů v systému windows (nutno v nastavení povolit zobrazení přípony souboru, abychom mohli vytvářet soubory .lua a .conf)
Vytvořili jsme základní strukturu našeho modu a započali s jeho tvorbou - error znamená chyba, text okolo nám napoví, co je potřeba udělat (použít pouze znaky [a-zA-Z0-9_] a podobně)
Opakování toho, co jsme minule vytvořili a odladění nedodělků (převážně pojmenování modů/adresářů neodpovídající konvenci [a-z0-9_] a definici bloků s jiným prefixem než $název_modu:
Tvorba textury k našemu bločku v programu Malování (doporučení na změnu velikosti obrázku na 32x32, uložení do adresáře $mod/textures/$nazev_obrazku.png)
Indiánským během tam/zpět - od lampy k lampě běžím/jdu
Osvětlení veřejných prostor z rozvaděče
Technické zázemí kina/divadla - pult osvětlení, pult ozvučení, projektor s odvětráním, PC na pouštění filmů a spoustu kabelů označených a ve svazcích
Osvětlení pomocí scén
Výběr jednotlivých světel, intenzita, barva, směrování, šířka kuželu
Ručně, programově
Scéna, repro-bedny na kino ihned za plátnem (a po obvodu), spousta kladek
Podzemí - Plynové kotle, tepelné okruhy, dálkové vytápění pomocí venkovní teploty
Propadliště - černě natřené, zřídka kdy využívané
Šatny
Půda
stará světla 1kW (výkon jako 17 klasických žárovek) - zapojeno do stmívačů, barva pomocí filtrů, poloha otočením, šířka kužele páčkou
nové LED - zapojeno do zásuvky a na sběrnici, stmívají se digitálně; některé umí svítit barevně, obsahují motůrky pro otočení a šířku kužele
vše přiděláno kovovými lanky (prozatím jim nikdy nic nespadlo)
pohyblivé tyče na zavešení světel, šál, rekvizit i lidí
Vzduchotechnika - kontroluje množství CO2, udržuje teplotu, využívá teplotu vnitřního vzduchu k ohřátí nového venkovního vzduchu, následně dohřeje teplou vodou z plynových kotlů; dlouhé zpoždění od spuštění
Tvorba komentářů - řádky začínající -- jsou v jazyce Lua ignorovány a slouží pro naše poznámky
Pokračování v texturách
7. hodina
Kino
Studenti prezentovali jejich storyboardy, objevilo se několik zajímavých námětů. Máme dva finalisty - “Cesta do vesmíru” a “Rok v životě veverek”. Za domácí úkol mají žáci rozpracovat jejich preferované téma, abychom mohli příště určit vítěze.
Pokračování tvorby zvuků s různými efekty pomocí online editoru zvuku s následnou konverzí do ogg pomocí online konvertoru (určitě existují lepší programy, leč školní počítače nejsou naše; pozor na soukromí, nepoužívat na důležité/citlivé nahrávky)
Ukázali jsme si jak funguje nepájivé kontaktní pole (breadboard)
Vyzkoušeli jsme si připojení několika diod přímo a následně více diod s pomocí výkonového tranzistoru NPN TIP120:
5V z “pevného” zdroje připojíme na vstup tranzistoru - Collector (2. pin)
Výstup z tranzistoru - Emitter (3. pin) přivedeme na diody
Druhý pin diody připojíme na zem - GND
Ovládací pin z microprocesoru (či 3V) přivedeme na ovládací vstup tranzistoru - Bázi (1. pin)
Výsledkem je že malým proudem přivedeným na bázi můžeme otevřít a zavřít obvod mezi Collectorem a Emitterem, čili
rozsvěcet a zhasínat diody (či jinou zátěž až 5A a 60V!)
Zapojení tranzistorů do nepájivých polí (breadboardů) a následné připojení k diodám
Testování zapojení pomocí stabilizovaného zdroje
Grafický tablet
2 dobrovolníci testovali tvorbu obrázku (čáry, obloučky, stíny, 3d objekt a vlastní tvorbu) pomocí grafického tabletu a pro srovnání pomocí trackpointu (postuně se vystřídají všichni)
napětí bezpečné pro všechny diody se přivede na diody, odtud na Colector tranzistoru. Emitor se svede na zem a propojí se zemí microbitu. Výstup z pinu microbitu připojíme (správně přes rezistor) k bázi
obyčejný NPN BC337 má výstupy Colector, Báze, Emitor
výkonový NPN TIP120 má výstupy Báze, Colector, Emitor
Grafický tablet
2 dobrovolníci testovali tvorbu obrázku (čáry, obloučky, stíny, 3d objekt a vlastní tvorbu) pomocí grafického tabletu a pro srovnání pomocí myši (postuně se vystřídají všichni)
Prošli jsme si jak funguje skript, který po stisku klávesy ENTER pořídil fotografii na telefonu, stáhl ji do počítače, zobrazil ji a zároveň kombinaci předchozí a současné fotky vedle sebe.
Shlédli jsme testovací verzi animace z materiálu z předchozí hodiny a rozhodli jsme se pouze znovu natočit stejný scénář s jemnějším krokem a drobnými úpravami abychom měli více času na počítačové efekty.
“Opravili” jsme problém s nažloutlým a pohaslým světlem při plném světle LED pásku připojením napájení z obou stran (bylo by za potřebí připojit ještě další větev cca uprostřed, pásek je hodně dlouhý)
Očištění fotografií (minulou hodinu nám sluníčko “přesvětlilo” některé fotky, používáme automatickou opravu barev + manuální doladění “expozice”, “jasu”, “kontrastu” a případně i “sytosti barev”)
Spojení fotek do videa v programu Kdenlive - Projekt->Přidat obrázkovou sekvenci, zvolit složku s fotkami, nastavit “Trvání rámce” + “Rozplynutí”
“Stříhali” jsme video v programu Kdenlive pomocí x a myší jsme jej rozdělili na části a s posunuli na správné místo. Někteří přidali ještě statické obrázky před/po či zrychlili/zpomalili části pomocí pravého tlačítka a change speed
Přidali jsme efekt Transformace, který nám umožní zvětšit/posunout část videa
Přidali jsme zvuky motoru, majáků a bouraček do správných míst (pravým tlačítkem jsme si přidali více stop - více souběžných zvuků)
pwd - je opravdu důležité, pracovní adresář je nutno nastavit v každém otevřeném terminálu!
mc - Midnight commander, klon Norton commanderu, podobné M602; lidé co pracovali v DOSu znají; užitečné na navigaci ve složkách
touch - “dotknout” se souboru - zajistí, že soubor zadaný jako parametr existuje. Pokud neexistuje, vytvoří prázdný soubor.
ctrl+d - ukončit/odhlásit se (např. python, nebo terminál)
Python
Místo interpretru jsme si vytvořili soubor (editor vim jsme zavrhli, nano také nikoho neokouzlilo, většina použila mcedit, někdo i grafický editor)
Spuštění programu pomocí python NÁZEV_SOUBORU (pozor, opravdu v každém terminálu musíte být ve správném pracovním adresáři)
Hlavní rozdíl oproti interpreteru je, že vyhodnocované příkazy automaticky nezobrazují výsledky/návratové hodnoty, co chceme vidět musíme “vytisknout” pomocí příkazu print() (např.: print(1+1), nebo print("ahoj"))
Prošli jsme si pár chybových hlášek, například zde je chyba na 4. řádku a nelíbí se mu ahoj, protože to není text, ale název neexistující proměnné):
$ python tisk.py
2
1+1
Ahoj
Traceback (most recent call last):
File "/tmp/tisk.py", line 4, in <module>
print(ahoj)
^^^^
NameError: name 'ahoj' is not defined
Krátké opakování příkazové řádky - pwd, ls, cd, mc; každý terminál pracuje zvlášť (pozor v jakém adresáři se nacházíme)
Python
Opáčko interpretru i tvorby skriptu
Tisknutí více prvků pomocí print("něco", "něco dalšího", 5, 9//7)
Tvorba programu pro spočítání obvodu a obsahu čtverce (viz kurz pyladies)
Načali jsme tématiku proměnných
moje_promenna = 1
dalsi_promena = "ahoj"
zjistili jsme, že Python úplně neřeší druhy proměnných a pokusí se pracovat s čímkoliv (např. spočítat obvod čtverce o straně "ahoj" - výsledek je "ahojahojahojahoj")
pozor v jaké pracovní složce jste pwd, ls, cd, mc, touch
v mc lze “rozbalit/sbalit” příkazovou řádku pomocí klávesové zkratky ctrl+o
Python
Opáčko tisknutí více prvků print("součet 5 a 7 je", 5 + 7)
Proměnné promenna = "ahoj" - pozor na uvozovky!
Vstup od uživatele promenna = input("Hlaska pro uzivatele") - do proměnné se uloží vždy text, pokud chceme číslo, musíme “přetypovat” pomocí int(input("Zadejte celé číslo")), případně float(input("Zadejte desetinné číslo")) - pozor na uzavření závorek
32. a 33. hodina
Zjistil jsem, že jsem 7.3. a 23.5. zapomněl zapsat hodiny. Co jsme dělali se již nedovíme, berte tyto hodiny jako dárek