Lekcja 1 Scratch -> światło AlMo
RPi posiada ponad 20 wyprowadzeń, które możemy z dużą dowolnością programować. Dziś zajmiemy się programowaniem jednego z wyprowadzeń do sterowania światłem diody świecącej.
Pojedyncze wyprowadzenie nazywamy PIN em. PIN ustawiony ( ON ) ma wartość umowną = 1 i występuje na nim napięcie (ok. 3,3V –mówimy stan wysoki), PIN wyzerowany, skasowany ( OFF ) ma wartość umowną = 0 i nie występuje na nim napięcie (ok. 0V –stan niski).
Jeśli do PINu podłączymy np. diodę świecącą, to ustawienie napięcia (ON /=1) spowoduje jej świecenie. Wyłączenie napięci (OFF /=0) –wygaszenie diody. W ten sposób, jeśli program będzie ustawiał wartość =1 lub =0 –będzie sterował świeceniem diody.
Na komputerze stacjonarnym użyjemy dwóch kostiumów naszego duszka. Jeden z diodą świecącą, drugi z wygaszoną (możemy to też zrobić na RPi).
Diodę podłączamy pamiętając o polaryzacji (Katoda [krótsza] do minusa, Anoda do plusa).
Katoda jest zaznaczona na obudowie i jest krótsza (chyba, że obcięliśmy wyprowadzenia ;o) ).
Diodę podłączamy do wybranego PINu i masy (minusa) zawsze(!) poprzez rezystor ograniczający prąd diody.
Używamy płytki stykowej, wsuwając końcówki elementów i przewodów w odpowiednie otwory…
Płytka stykowa to szereg połączeń równoległych (czarne linie). Przy brzegach płytki (niebieskie i czerwone) biegną połączenia napięć zasilających.
Uruchamiany Scratch’a
Równocześnie tworzymy dwa ‘kostiumy’ dla duszka w programie Scratch. Jeden będzie oznaczał zapaloną a drugi zgaszoną diodę.
3 -> zmieniamy nazwę np. na ‘zapalona’ 4 -> kopiujemy, bo potrzebny nam jeszcze kostium do ‘zgaszona’
5 -> zmieniamy nazwę np. na ‘zgaszona’ 6 -> edytujemy, czyli rysujemy swój kostium
Po kliknięciu edytuj: (rysujemy koło lub cokolwiek…), podobnie dla zgaszonej…
Mamy dwa duszki. Tutaj nazwaliśmy je costumeOFF i costumeON.
Wracamy do zakładki Skrypty. Teraz musimy duszkowi powiedzieć co ma robić… …czyli napiszemy dla niego skrypt.
Skrypt to taki program. Składa się z fragmentów – podobnie jak puzzle. Komputer / RPi wykonuje kolejno polecenia wskazane na fragmentach puzzle. Puzzle układamy przesuwając fragmenty z zasobnika po lewej na pole skryptu po prawej. Elementy dopasowane łączą się automatycznie. Zaczynamy od fragmentu z zieloną flagą z bloku kontrola…
Poproszę ochotników, 3 dzieci. Pomożecie mi w pokazaniu, jak działa skrypt.
Chcemy aby skrypt zapalał i gasił diodę (zmieniał kostium duszka) –podobnie jak kierunkowskaz w samochodzie. Jakie polecenia musimy mu wydawać?
Oczywiście: zapal i zgaś ;o) Pamiętamy też, że zaczynamy od polecenia z zieloną flagą.
No dobrze, ale teraz komputer tylko raz zapali i zgasi lampkę… co nam jeszcze potrzeba?
Potrzeba, aby wykonywał te czynności ciągle, mówimy o wykonywaniu pętli programu, czyli ponownym wykonywaniu tych samych czynności. Pętla ma swój początek i swój koniec…
Program dochodząc do polecenia ‘pętla następny’ wraca do ‘pętla start’…
Poproszę kolegę, aby był naszym procesorem, mózgiem naszego komputera i wykonywał fragmenty skryptu…
…ech! O czymś zapomnieliśmy? Przecież komputer nie wie ile czasu lampka ma świecić i gasi ją zaraz po jej zapaleniu! Co trzeba mu powiedzieć???
Oczywiście! Czekaj!!! Czyli po zapaleniu ma poczekać i po zgaszeniu ma poczekać!
Zawsze, gdy chcemy zatrzymać skrypt. Wystarczy kliknąć czerwone koło.
A tak będzie wyglądało nasze puzzle. Przeciągamy fragmenty z zasobnika po lewej na pole skryptu… Programiści RPi wpisują we fragment nadaj „pin11on” i „pin11off” co oznacza włączenie i wyłączenie diody Nazwy ‘costumeON’… takie jak wymyśliliśmy dla swoich duszków…
…pole skryptu… Musimy jeszcze na początku dodać ‘nadaj[pin11out]’ Aby program wiedział że pin11 ma być wyjściem
Popatrzmy na program. Jak zmienić szybkość błysków? Jak zmienić ich długość?
A gdyby tak polecenia czekaj były zależne od przekazanej im wartości z programu? Wartości w programie przechowywane są w tzw. zmiennych. Wymyślamy nazwę zmiennej i nadajemy jej jakąś wartość, którą możemy zmieniać w programie. Niech to będzie zmienna o nazwie ‘czas’. Jej rolą będzie przekazanie fragmentom ‘czekaj’ informacji jak długo mają czekać ;o)
Wprowadzamy zmienną czas > tworzymy zmienną 1 -> wchodzimy do zmiennych 3 -> wymyślamy dla niej nazwę…
Wprowadzamy zmienną czas do programu...
Teraz, zmieniając wartość zmiennej ‘czas’, zmieniamy szybkość mrugania diody (zmiany kostiumów duszka)…
Kto słyszał o alfabecie Morse’a? Na czym on polega? Samuel Morse w 1832 roku opatentował telegraf i układ kodów zwany później alfabetem Morse’a.
Co trzeba zrobić, aby nauczyć RPi / komputer nadawać alfabetem Morse’a? … zaczniemy od nauczenia nadawania kropki i kreski…
Dla ułatwienia zmieńmy nazwy z ‘kropka’ na ‘.’ i z ‘kreska’ na ‘-’. Zdefiniujmy też odstęp pomiędzy literami jako ‘/’
W jaki sposób nadać sygnał wzywania pomocy ‘SOS’ ? ang. Save Our Soulsang.SaveOurSouls
‘SOS’ –ratujcie nasze dusze! Pierwsze skuteczne wykorzystanie tego sygnału nastąpiło 10 czerwca 1909 roku – w katastrofie liniowca S/s "Slavonia", który rozbił się na Azorach10 czerwca1909liniowcaS/sAzorach
‘SOS’ –ratujcie nasze dusze! Pierwsze skuteczne wykorzystanie tego sygnału nastąpiło 10 czerwca 1909 roku – w katastrofie liniowca S/s "Slavonia", który rozbił się na Azorach10 czerwca1909liniowcaS/sAzorach
Pójdźmy o krok dalej… Co możemy zrobić? …zdefiniować poszczególne literki? …nadawać literki!
Możemy zdefiniować nawet cały alfabet i cyfry! Przyciskając prawym przyciskiem myszy i wybierając duplikuj, a następnie korygując nazwę, oraz kropki i kreski zrobimy to szybciej ;o
Możemy zdefiniować nawet cały alfabet i cyfry! Przyciskając prawym przyciskiem myszy i wybierając duplikuj, a następnie korygując nazwę, oraz kropki i kreski zrobimy to szybciej ;o)
Zobaczmy jak działa ‘zapytaj’:
Popatrzmy teraz i przeanalizujmy razem… Pętla wykonywana jest tyle razy ile liter (a więc jaką długość) ma wprowadzony z klawiatury tekst w zmiennej odpowiedź ;o)
Co powinniśmy zrobić w środku pętli ze znakami z ‘odpowiedzi’? Sprawdźmy jak działa! Przeanalizujmy…
Super! Napisaliście swój pierwszy program. Zachęcam do odważnych eksperymentów ze Scratchem, samodzielnie w domu. Dążąc do założonego celu pamiętajcie, co mawiał premier Wielkiej Brytanii Winston Churchill (…ktoś podpowie?)Winston Churchill Nigdy się nie poddawaj. Nigdy, nigdy i jeszcze raz nigdy! Never, never, never give up. (ang.)
Zamykamy Scratch’a, (jeśli trzeba –zapisujemy nasz program, lub wysyłamy mailem…), klikamy ‘LXTerminal’
W ‘LXTerminal’ wpisujemy: …dobrze było by podłączyć głośnik lub słuchawki do RPi… Dziękuję za uwagę ;o)