LOFI Blocks - Dokumentacja

LOFI Blocks to aplikacja przeznaczona do nauki programowania z wykorzystaniem robotów. Aplikacja dostępna jest w wersji online oraz na urządzenia mobilne.

Niniejsza dokumentacja zawiera:

Połączenie z robotem - wersja online

1. Zainstaluj Program ARDUINO IDE

Jeśli pierwszy raz podłączasz sterownik LOFI Brain do komputera konieczne jest zainstalowanie programu ARDUINO IDE wraz z którym zainstalują się sterowniki do płytki Arduino

2. Uruchom przeglądrkę CHROME i zainstaluj rozszerzenie LOFI Robot Extension

3. Połącz się z robotem

Podłącz sterownik do komputera przez port USB. Uruchom rozszerzenie LOFI Robot Extension i z pola SERIAL PORT wybierz port zawierający opis ARDUINO LEONARDO a następnie kliknij przycisk CONNECT,przycisk CONNECT powinien zamienić się na DISCONNECT.

4. Uruchom LOFI Blocks

Uruchom aplikację LOFI Blocks wchodząc w przeglądarce CHROME na adres WWW.LOFIBLOCKS.COM/KODUJ

Jeśli sterownik jest poprawnie połączony i ma wgrany skrypt LOFI Firmware, ikona z główką robota w prawym górnym rogu edytora będzie miała obwódkę sygnalizującą połączenie.

Skrypt LOFI Firmware - dla sterownika LOFI Brain

Jeśli przeprogramowałeś wcześniej płytkę Arduino wgrywając do niej inny skrypt, lub korzystasz z normalnego Arduino UNO lub Leonardo aby płytka mogła komunikować się z aplikacją LOFI Blocks konieczne jest wgranie na nią poniższego skryptu.

UWAGA! Sterowniki LOFI Brain w nowych zestawach LOFI Robot mają już wgrany skrypt LOFI Robot Firmware

Skrypt LOFI Robot Firmware dla Arduino UNO

Połączenie z robotem - wersja mobilna

LOFI Blocks na urządzeniach mobilnych dostępne jest w formie dedykowanej aplikacji dostępnej w Google Play dla urządzeń z systemem Android oraz w App Store dla urządzeń z systemem iOS.

UWAGA - Wersja online LOFI Blocks również uruchomi się na tablecie lub smartfonie ale nie będzie możliwości połączenia z robotem, nie będą również działać niektóre funkcje.
UWAGA2 - LOFI Blocks w wersji na Androida pracuje z modułami bluetooth 2.0 (np. HC-06, HC-05). Na urządzeniach z iOS (iPad, iPhone) aplikacja łączy się TYLKO z modułami bluetooth 4.0 (HM-10). Istnieje możliwość połączenia na Androidzie z modułami bluetooth 4.0 należy wówczasz zainstalować inną wersję aplikacji spoza sklepu Google Play.

Interfejs

Ustawienia

Ustawienia dostępne po zalogowaniu:

Menu podręczne

Menu podręczne znajduje się w prawum górnym rogu ekranu i umożliwia uruchomienie dodatkowych funkcji aplikacji LOFI Blocks.

Połączenie z robotem

Ikona z główką robota sygnalizuje czy aplikacja poprawnie komunikuje się ze sterownikiem Arduino - jeśłi tak, wokół ikony pojawia się okrągła obwódka. Kliknięcie na tą ikonę powinno spowodować dwukrotne piknięcie buzzera na sterowniku LOFI Brain.

Monitor czujników i konsola

Monitor czujnikówpozwala w czasie rzeczywistym podejrzeć odczyty ze wszystkich wejść sterownika (nawet jeśłi nie są do nich podpięte żadne moduły) oraz z czujnika odległości.

Konsola umożliwia wyświetlanie wartości różnego rodzaju zmiennych przy pomocy odpowiedniego bloku z działu KONTROLA

Wbudowany gamepad

Wbudowany gamepad umożliwia sterowanie robotem. Jest on powiązany z sekcją bloków ZDARZENIA.

Tablica do rysowania

Otwiera tablicę do rysowania powiązaną z sekcją bloków RYSUJ. W lewym górnym rogu tablicy do rysowania znajduje się przycisk umożliwiający przełączeniu jej w tryb pełnoekranowy.

Wbudowana klawiatura pianina

Otwiera panel z wbudowaną klawiaturą, umożliwiającą granie dźwięków z gamy C-dur w zakresie siedmiu oktaw.

POWTARZAJ

Pętla POWTARZAJ

Główny blok naszego programu. Aby jakakolwiek instrukcja została wysłana do robota musi się ona znaleźć wewnątrz bloku głównej pętli POWTARZAJ.
UWAGA - Tylko jeden tego typu blok może być w naszym programie. Nie można również tego bloku skasować
100Obracaj silnikM1wprzódz mocą

Sterowanie silnikami

Blok steruje silnikami podłączonymi do portów M1 i M2

Parametry

100 Ustaw wyjście OUTPUT1 na

Sterowanie wyjściami OUTPUT1-4

Blok steruje modułami podłączonymi do portów wyjść OUTPUT

Parametry

UWAGA - wyjście OUTPUT4 jest połączone ze sterowaniem silnikiem M2 - nie można używać ich jednocześnie (będą się zakłócać)
UWAGA nr 2 - jeśli użyto bloków sterowania serwomotorami Arduino przełącza piny wyjść w tryb SERVO, przez co nie można już nimi sterować przy pomocy bloków USTAW WYJŚCIE... , aby powrócić do stanu pierwotnego należy zresetować Arduino
100 Ustaw serwo OUTPUT1na

Sterowanie serwomotorami podłączonymi do wyjść OUTPUT1-4

Blok steruje silnikami serwo podłączonymi do portów wyjść OUTPUT

Parametry

UWAGA - wyjście OUTPUT4 jest połączone ze sterowaniem silnikiem M2 - nie można używać ich jednocześnie (będą się zakłócać)
UWAGA nr 2 - jeśli użyto bloków sterowania serwomotorami Arduino przełącza piny wyjść w tryb SERVO, przez co nie można już nimi sterować przy pomocy bloków USTAW WYJŚCIE... , aby powrócić do stanu pierwotnego należy zresetować Arduino
Buzzer włączony

Buzzer

Blok steruje działaniem głośniczka wbudowanego w sterownik LOFI Brain

Parametry

UWAGA - wbudowany głośniczek posiada tzw. generator przez co może on wydawać z siebie tylko dźwięk o jednej określonej częstotliwości - ok 600Hz
Czujnik odległości

Odczyt z czujnika odległości

Blok raportujący - zwracający wartość w centmetrach (w zakresie 0-100cm) zmierzoną przez czujnik odległości
UWAGA - jeśłi czujnik odległości nie wykryje żadnej przeszkody zwraca wartość 100, jest to ograniczenie ustalone w aplikacji LOFI Blocks, rzeczywisty zakres pracy tego czujnika to około 4 metry
Odczyt INPUT1

Odczyt z wejść analogowych INPUT1-4

Blok raportujący - zwracający wartość odczytaną ze wskazanego wejścia.

Parametry

UWAGA - Arduino "nie wie" czy jakikolwiek czujnik podłączony jest do wejścia, jeśli poprosimy go o odczyt z wejścia, do którego nie jest podłączony żaden czujnik, zawsze otrzymamy jakiś odczyt ale będą to najczęściej jakiegoś rodzaju zakłócenia, lub wartości "zasłyszane" z sąsiednich wejść
100 CZEKAJ

Opóźnienie - CZEKAJ

Bloka wstrzymujący wykonywanie operacji znajdujących się w pętli POWTARZAJ na czas określony w milisekundach (setnych sekundy).

Parametry

UWAGA - Jeśli blok CZEKAJ umieścimy wewnątrz pętli RYSUJ - będzie on ignorowany podczas wykonywania programu, pętla rysuj wykonywana jest ze stałą częstotliwością 25 razy na sekundę i nie ma możliwości jej opóźniania
JEŻELI

Warunek - JEŻELI

Wszystkie bloki znajdujące się wewnątrz bloku jeżeli zostaną wykonane jeśli spełniony będzie (PRAWDA) warunek określony na początku bloku. W sytyacji gdy warunek nie będzie spełniony (fałsz) bloki znajdujące się wewnątrz bloku JEŻELI będą ignorowane podczas wykonywania programu.

Parametry

UWAGA Jeśli chcemy określić warunek przy pomocy wartości liczbowej np. odczytu z czujnika odległości, musimy to zrobić przy pomocy jakiegoś porównania np. "Czy odczyt z czujnika odległości jest mniejszy od 20" wówacza otrzymamy wartość logiczną PRAWDA lub FAŁSZ
JEŻELI W PRZECIWNYM RAZIE

Podwójny warunek JEŻELI ... W PRZECIWNYM RAZIE ...

Podwójny warunek określający jakie bloki mają zostać wykonane w sytuacji kiedy wejściowy warunek zostanie spełniony (PRAWDA) oraz bloki, które mają zostać wykonane kiedy wejściowy warunek nie będzie spełniony (FAŁSZ)

Parametry

UWAGA Jeśli chcemy określić warunek przy pomocy wartości liczbowej np. odczytu z czujnika odległości, musimy to zrobić przy pomocy jakiegoś porównania np. "Czy odczyt z czujnika odległości jest mniejszy od 20" wówacza otrzymamy wartość logiczną PRAWDA lub FAŁSZ
5 POWTARZAJRAZY

Pętla POWTARZAJ

Bloki umieszczone wewnątrz pętli POWTARZAJ zostaną wykonane ilość razy określoną przez parametr.

Parametry

 KONSOLA:  

KONSOLA

Blok KONSOLA pozwala wyświetlić dowolną wartość we wbudowanej w LOFI Blocks konsoli. Pozwala to nam sprawdzić jaka jest rzeczywista wartość zmiennej, parametru lub warunku dzięki czemu łatwiej znaleźć ewentualne błędy w programie.

Parametry

+

Działania arytmetyczne

Blok wykonujący podstawowe DZIAŁANIA arytmetyczne - DODAWANIE, ODEJMOWANIE, MNOŻENIE, DZIELENIE na dwóch otrzymanych zmiennych. Wartość zwracana przez ten blok jest LICZBĄ.

Parametry

UWAGA - Jeśli jako którąś ze stron działania podamy zmienną logiczną zostanie ona przekształcona na liczbę PRAWDA - 1, FAŁSZ - 0
=

Porównanie

Blok wykonujący podstawowe PORÓWNANIA arytmetyczne - RÓWNY, WIĘKSZY, MNIEJSZY, NIERÓWNY na dwóch otrzymanych zmiennych. Wartość zwracana prze ten blok jest zmienną LOGICZNĄ! (PRAWDA/FAŁSZ).

Parametry

UWAGA - Jeśli jako którąś ze stron działania podamy zmienną logiczną zostanie ona przekształcona na liczbę PRAWDA - 1, FAŁSZ - 0. Wynik porównania to zawsze wartość logiczna - PRAWDA lub FAŁSZ
0

Zmienna liczbowa

Blok zwracający stałą wartość liczbową

Parametry

0 100Losujodna

Losowa liczba

Blok zwracający losową liczbę w zakresie określonym przez parametry

Parametry

prawda

Losowa liczba

Blok zwracający wartość logiczną PRAWDA lub FAŁSZ

Parametry

UWAGA - Jeśli zmienną logiczną umieścisz w polu, które akceptuje wartości liczbowe, zmienna logiczna zostanie przekształcona na liczbę PRAWDA - 1, FAŁSZ - 0. Wynik porównania to zawsze wartość logiczna - PRAWDA lub FAŁSZ
i

Iloczyn logiczny - koniunkcja

Iloczyn logiczny zwraca wartość PRAWDA jeśli zarówno lewa jak i prawa strona działania mają wartość PRAWDA. Jeśli chociaż jedna ze stron działania ma wartość FAŁSZ, wynikiem dizałania będzie FAŁSZ.

Parametry

UWAGA - Iloczyn logiczny wykorzystujemy jeśli chcemy sprawdzić czy dwa warunki są jednocześnie spełnione.
lub

Suma logiczna - Alternatywa

Suma logiczna zwraca wartość PRAWDA jeśli lewa LUB prawa strona działania mają wartość PRAWDA. Jeśli obydwie strony równania mająś wartość FAŁSZ, wynikiem dizałania będzie FAŁSZ.

Parametry

UWAGA - Sumę logiczną wykorzystujemy jeśli chcemy sprawdzić czy spełniony jest choć jeden z dwóch warunków.
RYSUJ

RYSUJ

Główna pętla wykonująca operacje malowania na wbudowanej w LOFI Blocks tablicy. Wszystkie bloki umieszczone w pętli RYSUJ będą "narysowane" na tablicy 25 razy na sekundę.
UWAGA1 - Pętla rysuj ignoruje blok opóźnienia CZEKAJ - nie ma możliwości jej zatrzymania
UWAGA2 - W pętli rysuj można też umieszczać normalne bloki - np. sterujące robotem ale ponieważ wykonuje się ona bez opóźnień może to prowadzić do zakłóceń np. przy komunikacji z robotem przez bluetooth ze względu na zbyt dużą ilość przesyłanym informacji
Tekst

Tekst

Blok tworzący zmienną tekstową (łańcuchowa - string).

Parametry

UWAGA - Umieszczenie zmiennej tekstowej w polu akceptującym liczby lub zmienne logiczne spowoduje, błąd w kodzie, który uniemożliwi wykonanie zawierającego go bloku
0 0 100 100 Linia X1 Y1 X2 Y2

Linia

Blok rysujący na tablicy linię prostą pomiędzy punktem początkowym określonym przez współrzędne X1 i Y1 a punktem końcowym określonym przez współrzędne X2 i Y2

Parametry

5 Obróć Punkt obrotu: X Y

Obracanie

Blok raportujący - zwracający wartość odczytaną ze wskazanego wejścia.

Parametry

UWAGA - Działanie bloku RYSUJ na pierwszy rzut oka może wydać się chaotyczne. Wszystkie obiekty umieszczone w bloku rysuj przemieszczane są do punktu określonego współrzędnymi środka obrotu a nastęnie obracane o zadaną wartość. Aby przykładowo obrócić kwadrat o bokach 50 na 50 względem jego środka, umieszczamy go w bloku rysuj podając jako współrzędne kwadratu X = -25, Y = -25
1 0 0 0 100 Kontur: Grubość R G B A

Kontur

Blok ustalający grubość i kolor lini rysowanej przy pomocy bloku LINIA

Parametry

0 0 0 0 Prostokąt X Y

Prostokąt

Blok rysujący prostokąt zaczynający się od lewego górnego rogu w punkcie o współrzędnych (X,Y), zadanej szeokości i wysokości, wypełniony kolorem określonym przez blok WYPEŁNIENIE.

Parametry

UWAGA - Współrzędne X i Y oraz wartości szerokości i wysokości mogą mieć wartości ujemne lub większe od 100, będą się one wówczas znajdować poza obszarem pola do rysowania
0 0 0 100 Wypełnienie: R G B A

Wypełnienie

Blok określający kolor wypełnienia elementów rysowanych przez bloki PROSTOKĄT, ELIPSA i TEKST

Parametry

UWAGA - Raz ustawione wypełnienie obowiązuje wszyskie bloki rysujące, które następują po nim, do momentu aż ponownie nie zmienimy go przy pomocy bloku WYPEŁNIENIE
0 0 50 50 Elipsa X Y

Elipsa

Blok rysujący elipsę zaczynając się od lewego górnego rogu w punkcie o współrzędnych (X,Y), zadanej szeokości i wysokości, wypełnionej kolorem określonym przez blok WYPEŁNIENIE.

Parametry

UWAGA - Współrzędne X i Y oraz wartości szerokości i wysokości mogą mieć wartości ujemne lub większe od 100, będą się one wówczas znajdować poza obszarem pola do rysowania
0 0 20 Tekst: Wielkość X Y

Tekst

Blok rysujący tekst zaczynający się od lewego górnego rogu w punkcie o współrzędnych (X,Y), o zadanej wysokości czcionki, wypełniony kolorem określonym przez blok WYPEŁNIENIE.

Parametry

UWAGA - Współrzędne X i Y mogą mieć wartości ujemne lub większe od 100, będą się one wówczas znajdować poza obszarem pola do rysowania
GRAJ

Pętla GRAJ

Główna pętla, w której umieszczamy instrukcje z sekcji GRAJ. Od głównej pętli POWTARZAJ różni się ona brakiem dodatkowego opóźnienia na końcu pętli.
UWAGA Jeśli bloki z sekcji GRAJ umieścisz u głównej pętli POWTARZAJ również będą one wykonywane, tak samo bloki sterujące robotem umieszczone w pętli GRAJ
UWAGA 2 Aplikacja LOFI Blocks napisana jest w języku JavaScript, jego "słabością" jest słabe zarządzanie czasem wykonywania instrukcji, jeśli jednocześnie wykonywanych jest dużo operacji opóźnienia definiowane przez blok CZEKAJ mogą ulec wydłużeniu, co szczególnie słychać gdy zaprogrmujemy odtwarzanie jakiejś rytnicznej dźwiękowej sekwencji.
40 Piano

Piano

Blok sterujący głównym syntezatorem.

Parametry

UWAGA Syntezator PIANO to jedyny instrument połączony z POGŁOSEM ani z ECHEM
40 40 40 Piano: Atak Długość Wygaszenie

Piano ATAK i WYGASZENIE

Blok sterujący długością (obwiednią) dźwięków odtwarzanych przez syntezator PIANO.

Parametry

0 0 Piano: Modulacja Siła

Piano - MODULACJA

Blok sterujący modulacją brzmienia syntezatora PIANO. Przy jego pomocy można zmieniać brzmienie syntezatora do "miękkiego" do "bardzo dziwnego", modulacja pozwala generowac różnego rodzaju ciekawe efekty dźwiękowe.

Parametry

UWAGA Modulacja dotyczy tylko syntezatora PIANO
20 Bas

Bas

Blok sterujący syntezatorem odpowiadjącym za odtwarzanie lini basowych.

Parametry

UWAGA Syntezator basowy nie jest połączony z POGŁOSEM ani z ECHEM, ich użycie nie zmieni jego barwy
klawisz

Klawisz

Blok zwracający wartość cyfrową klawisza naciśniętego na wbudowanej w LOFI Blocks klawiaturze ekranowej lub odpowiadające im normalne klawisze (A,S,D,F,G,H,J,K,L, ; , ' , \ ). W momencie gdy żaden klawisz nie jest wciśnięty blok zwraca wartość 0.
UWAGA Wartości z klawiatury odpowiadają 50ciu dźwiękom z gamy C-dur
ostatni klawisz

Klawisz

Blok zwracający wartość cyfrową klawisza naciśniętego na wbudowanej w LOFI Blocks klawiaturze ekranowej lub odpowiadające im normalne klawisze (A,S,D,F,G,H,J,K,L, ; , ' , \ ). Wartość zwracana przez ten blok nie zmienia się na zero w momencie ppuszczenia klawisza.
UWAGA Wartości z klawiatury odpowiadają 50ciu dźwiękom z gamy C-dur
50 false Rytm Stopa Prędkość Rewers

Rytm

Blok odtwarzający dźwięki wbudowanego automatu perkusyjnego.

Parametry

0 0 Echo Siła Długość

Echo

Blok ustalający parametry wdudowanego efektu echa czyli tzw. deley`a.

Parametry

UWAGA Wbudowany efekt echo połączony jest tylko z syntezatorem sterowanym blokiem PIANO, nie będzie on miał wpływu na dźwięki generowane przez bloki BAS i RYTM
0 Pogłos

Echo

Blok ustalający parametry wdudowanego efektu pogłosu.

Parametry

UWAGA Ustawienie siły pogłosu na 100 będzie powodować, że kolejne dźwięki będą do niego dodawane bez żadnego tłumienia, co może prowadzić do przesterowania (nadmiernej głośności) dźwięku.
UWAGA 2 Pogłos połączony jest tylko z syntezatorem PIANO, nie będzie on zmieniał barwy dźwięków generowanych przez bloki BAS i RYTM
Kiedy naciśnięto strzałka w górę

Kiedy naciśnięto klawisz ...

Blok odtwarzający instrukcje znajdujące się w jego wnętrzu, po naciśnięciu wskazanego klawisza.

Parametry

UWAGA Sekwencja instrukcji wykonuje się TYLKO RAZ, nie są on zapętlone
Suwak 1

Suwak

Blok zwracajcy wartość z jednego z suwaków z wbudowanego gamepada.

Parametry

Przycisk Z

Przycisk

Blok zwracający wartość PRAWDA lub FAŁSZ zależnie od tego czy, wskazany klawisz klawiatury jest naciśnięty.

Parametry

Mysz X

Mysz

Blok zwracający pozycję poziomą (X) i pionową (Y) kursora myszy na polu do rysowania.

Parametry

UWAGA Wartości współrzędnych zmieniają się tylko w momencie gdy kursor myszy znajduje się na polu do rysowania
Wychylenie POZIOM

Wychylenie

Blok zwracający wartość odczytaną z akcelerometru tabletu lub smartfonu. Wartość 50 oznacza ustawienie urządzenia w poziomie.

Parametry

UWAGA Blok ten nie występuje w wersji LOFI Blocks na komputerach stacjonarnych
W przygotowaniu.

PRZYKŁADY