Programowanie i robotyka w Szkole Podstawowej

Roboty edukacyjne można wykorzystać na lekcjach przedmiotowych (informatyka, technika) oraz na zajęciach pozalekcyjnych. Zobacz naszą serię Podstawy programowania i robotyki, by zacząć tę przygodę!

Programowanie i robotyka to niezwykle intensywnie rozwijające się dziedziny nauki. W szkołach już od kilku lat prężnie działają koła naukowe i zajęcia pozalekcyjne, które wdrażają dzieci w świat algorytmów. Ponadto powstają też inicjatywy edukacyjne, konkursy, programy i projekty o tej tematyce, jak np. Laboratoria Przyszłości realizowany przez Ministerstwo Edukacji i Nauki.

Najlepszą formą nauki programowania jest wykorzystanie robotów edukacyjnych, dzięki którym dzieci widzą efekt stworzonego przez siebie kodu. Nauka kodowania może zacząć się już od wczesnych lat (edukacja przedszkolna i wczesnoszkolna), gdzie uczniowie za pomocą symboli i łatwych poleceń uczą się myśleć logicznie i analitycznie. Dla tej grupy wiekowej dedykowane są proste, kolorowe roboty, które uczą przez zabawę, bez patrzenia na ekran. Przykładem jest Seria Code-Go oraz Koduj i baw się, gdzie kodowanie polega głównie na sterowaniu zwierzątkami za pomocą strzałek. Nieco bardziej złożonym robotem jest Kodowany robot: Botley, który wprowadza już takie pojęcia jak pętla.

nauka programowania z robotami edukacyjnymi LABORATORIA PRZYSZŁOŚCI

W dalszych etapach nauki programowania na poziomie szkoły podstawowej, liceum, technikum, czy nawet w szkole wyższej wprowadza się już konkretne języki jak Arduino, Scratch, Java, Python, czy C++, a w nauce ich biegną z pomocą takie roboty jak JD humanoid, Edupająk SIX, Cubroid, Artie i cała seria ATOROBOT (zobacz). Skąd jednak nauczyciel ma wiedzieć jak ich używać i programować? Dzięki instrukcji i przykładowym lekcjom w języku polskim dodanych do każdego robota, lekcje robotyki stają się łatwiejsze. Każda lekcja opiera się na danej funkcji robota lub jego czujnika, którego działanie jest opisane, a każdy kod wyjaśniony.

Czym są pętle, instrukcje warunkowe i zmienne?

Możemy porównać pętle do biegania wokół boiska. Na przykład: przebiegnij 10 okrążeń wokół boiska. Będzie to wtedy rodzaj pętli, którą nazywamy ,,pętla (loop) for”. Będziemy biegać tak długo, aż ilość okrążeni wyniesie 10. Możemy także powiedzieć: Biegaj wokół boiska, gdy będzie świecić słońce. Wtedy, jeżeli zostanie spełniony warunek – zaświeci słońce, musimy biegać wokół boiska tak długo, aż zajdzie za chmurę. To ,,pętla (loop) while”, czyli powtarzaj to, gdy (spełniony warunek). Jest także wariant, który nazywamy ,,pętlą (loop) do while”. Na przykład, gdy powiemy: Biegaj, aż nie zajdzie słońce. Różnica jest niewielka, ale zauważ, że już założyliśmy, że słońce świeci. W poprzedniej pętli najpierw sprawdziliśmy, czy jest spełniony warunek: jeżeli świeci słońce – biegnij. Tutaj przynajmniej raz zostanie wykonana ta pętla, ponieważ warunek sprawdzamy po pierwszym ,,okrążeniu” pętli: biegnij – jeżeli przestało świecić zatrzymaj się.

Zmienne (variables) są niczym pudełka, do których możemy wkładać różne informacje. Program zapamiętuje jakąś informacje pod daną nazwą. Na przykład możemy mierzyć temperaturę i wszystkie odczytane dane włożyć do pudełka. Wyobraź sobie, że zaglądasz do pudełka i widzisz mnóstwo liczb – nie masz pojęcia, czego dotyczą. Ale na pudełku napiszemy markerem ,,temperatura” staje się jasne, że liczby to wartości mówiące o tym, ile jest stopni. Podobnie w programowaniu będziemy używać zmiennych, by program mógł zapamiętać dane pod wybraną przez nas nazwą. W związku z tym, że istnieją różne typy danych są także różne rodzaje zmiennych. Inaczej nazywamy zmienną, która jest ,,pudełkiem” na liczby, a inaczej na słowa.

int – liczby

float - zmienna przechowuje wartości po przecinku np. 36,6 - przydaje się, gdy chcemy wypisać lub zapisać np. temperaturę z dokładnością do paru miejsc po przecinku

bolen - przechowuje tylko wartość logiczną 0 lub 1 (fałsz lub prawda)

string - przechowuje tekst, np. słowo „Jangar” – musisz umieścić tekst w cudzysłowie.

char – poszczególne liczby odpowiadają znakom z tablicy, czyli coś podobnego jak współrzędne podczas grania w statki.

Instrukcja warunkowa ustala, kiedy robot ma wykonać to, o co go poprosimy. Na przykład możemy powiedzieć: Jeżeli (if) będzie ładna pogoda, (do) pójdziemy się pobawić na dwór. Jest to instrukcja warunkowa. Oznacza, że zrobimy coś tylko gdy spełniony zostanie jakiś warunek. Możemy także powiedzieć: Jeżeli (if) będzie ładna pogoda (do) pójdziemy się pobawić na dwór, w innym wypadku (else) pogramy w grę planszową. Dodaliśmy w ten sposób drugą opcję, w przypadku robota byłoby to inne polecenie. Możemy ich dodać, ile tylko chcemy, np: Jeżeli (if) będzie ładna pogoda, (do) pójdziemy się pobawić na dwór, jeżeli (else if) będzie padał śnieg, pozjeżdżamy na sankach, w innym przypadku (else) pogramy w grę planszową.

Jak działa ultradźwiękowy czujnik odległości?
Co umożliwia robotom śledzenie linii i jak wykorzystujemy podczerwień?

Nasze uszy mogą usłyszeć tylko dźwięki o konkretnym zakresie częstotliwości. Gdy częstotliwość dźwięku jest niższa niż ten zakres – nazywamy je infradźwiękiem, gdy są wyższe – ultradźwiękiem. Czujnik ultradźwiękowy używa sonaru do oceny odległości, dokładnie tak jak robią to nietoperze. Czujnik ma dwie sondy, jedna to nadajnik, drugi to odbiornik. Nadajnik wysyła sygnał ultradźwiękowy, który odbija się od przeszkody i wraca do odbiornika. W zależności od tego, ile czasu zajmuje sygnałowi powrót do odbiornika, w takiej odległości znajduje się przedmiot. Odległość to prędkość razy czas. Należy pamiętać, że czas jest w rzeczywistości dwa razy krótszy, ponieważ sygnał dochodzi do przedmiotu, odbija się od niego, a następnie wraca. To znaczy, że wykonuje dwa razy tę samą drogę. Czujnik ten jest wykorzystywany w wielu różnych elektronicznych urządzeniach, od wykrywania przeszkód po obliczanie odległości.

Czujnik ultradźwiękowy wykorzystuje się w programowaniu robotów m.in. do funkcji omijania przeszkód lub śledzenia obiektów.

Czujnik śledzenia linii to w rzeczywistości czujnik podczerwieni. Jego zasadą działania jest emitowanie promieni podczerwonych i wykrywanie zmian w odbijaniu się ich od podłoża. Dzieje się tak dlatego, że czarny ,,pochłania” światło, a biały je odbija. Dlatego latem w czarnym aucie będzie cieplej, a w białym nieco chłodniej. Czujnik wykrywa tę różnicę w odbiciu promieni podczerwonych, dzięki temu możemy zaprogramować, aby jechał wzdłuż czarnej linii. Wysokość wykrywania czujnika wynosi najczęściej około 0-1cm.

Innym zastosowaniem czujnika podczerwieni jest czujnik ruchu PIR. Czujnik ruchu na podczerwień może wykrywać sygnały podczerwone od poruszającej się osoby lub zwierzęcia i wysyłać sygnały przełączające. Może być stosowany przy różnych okazjach do wykrywania ruchu, np. otwieranie drzwi czy włączanie światła. By zaprogramować czujniki należy użyć instrukcji warunkowej. ,,Uczymy” w ten sposób robota, jak ma się zachować, gdy otrzyma określony sygnał. Patrz: Podstawy programowania i robotyki: Czym są pętle, instrukcje warunkowe i zmienne?

Czym jest serwomechanizm?

Serwomechanizmy działają jak przeguby do sterowania ruchem robota. Każdy z nich może poruszać się po łuku 180 stopni. Zestaw Revolution JD zawiera sześć serwomechanizmów. Serwomechanizm (lub serwo) to siłownik obrotowy, który pozwala na precyzyjną kontrolę położenia kątowego, prędkości i przyspieszenia. Serwa można znaleźć w wielu miejscach, od zabawek przez elektronikę domową po samochody i samoloty. Serwa pojawiają się również za kulisami w urządzeniach, z których korzystamy na co dzień. Urządzenia elektroniczne, takie jak odtwarzacze DVD, wykorzystują serwomechanizmy do wysuwania lub wsuwania szuflad na płyty.

Serwomechanizmy w robotach edukacyjnych, mikrokontrolery z płytkami prototypowymi

Prostota serwa jest jedną z cech, które czynią je tak niezawodnymi. Sercem serwomechanizmu jest mały silnik prądu stałego (DC), podobny do tego, który można znaleźć w zabawce. Silniki te są zasilane energią elektryczną z akumulatora i obracają się z dużą prędkością obrotową (obroty na minutę), ale wytwarzają bardzo niski moment obrotowy (siła skręcająca wykorzystywana do pracy — przykładasz moment obrotowy, gdy otwierasz słoik). Układ kół zębatych przejmuje dużą prędkość silnika i spowalnia go, jednocześnie zwiększając moment obrotowy (podstawowe prawo fizyki: praca = siła x odległość). Maleńki silnik elektryczny nie ma dużego momentu obrotowego, ale może się kręcić naprawdę szybko (mała siła, duży dystans). Konstrukcja przekładni wewnątrz obudowy serwomechanizmu przekształca moc wyjściową na znacznie mniejszą prędkość obrotową, ale z większym momentem obrotowym (duża siła, mała odległość). Ilość rzeczywistej pracy jest taka sama, tylko bardziej użyteczna.

Co to jest PWM?

PWM to proces szybkiego włączania i wyłączania napięcia cyfrowego w celu symulacji zakresu napięcia. PWM używa się między innymi do sterowania jasnością LED. To nic innego jak bardzo szybkie włączanie i wyłączanie zasilania. W zależności od szybkości tych zmian nasz mózg zaobserwuje różne poziomy jasności diody. Dzieje się tak ponieważ powyżej pewnej częstotliwości wzrok ludzki nie widzi już migotania, a postrzega je jako pewną średnią jasność. PWM służy także do regulacji prędkości obrotowej silników lub częstotliwości pasywnego brzęczyka. Jeśli cyfrowy pin wyjścia mikro ma napięcie 3,3 V, a PWM jest ustawiony na 50% cyklu pracy, napięcie wyjściowe będzie wynosić około 1,65 V. Dzieje się tak, ponieważ mikrokontroler szybko włącza i wyłącza cyfrowy pin 3,3 V, który wytwarza symulowane niższe napięcie.

Innymi słowy PWM to sposób sterowania wyjściem analogowym za pomocą środków cyfrowych. Sterowanie cyfrowe służy do generowania fal prostokątnych o różnych cyklach pracy (sygnał, który stale przełącza się między wysokim i niskim poziomem – LOW i HIGH) w celu sterowania wyjściem analogowym. Ogólnie napięcie wejściowe portu wynosi 0 V i 5 V. Co jeśli wymagane jest 3V? W takiej sytuacji musimy sterować przez PWM. Dla wyjścia napięciowego portu cyfrowego Arduino są tylko LOW i HIGH, które odpowiadają wyjściu napięcia 0V i 5V. Możesz zdefiniować LOW jako 0 i HIGH jako 1. Arduino wyprowadza pięćset sygnałów 0 lub 1 w ciągu 1 sekundy. Jeśli wyprowadzisz ,,010101010101(...)” w ten sposób, port wyjściowy ma napięcie 2,5 V. Można to porównać do klatek w filmie, które nie są całkowicie ciągłe. W rzeczywistości film to wyświetlane 25 zdjęć w ciągu sekundy, które człowiek widzi płynnie. Podobnie działa PWM. Jeśli chcesz mieć inne napięcie, musisz kontrolować stosunek 0 i 1. Im więcej sygnałów wyjściowych 0,1 na jednostkę czasu, tym dokładniejsza kontrola.

Zestaw Arduino - Mikrokontrolery z sensorami, wzmacniaczami, płytkami prototypowymi i innymi akcesoriami

Niedziela Poniedziałek Wtorek Środa Czwartek Piątek Sobota January February March April May June July August September October November December

Zarejestruj nowe konto

Czy założyłeś już konto?
Zaloguj się zamiast tego Lub Zresetuj hasło