# Zajęcia pokazowe Arduino z robotem ## WAŻNE **UPEWNIĆ SIĘ ŻE ROBOT JEST NAŁADOWANY I DZIAŁA JEŚLI NIE JEST W PEŁNI NAŁADOWANY, WZIĄĆ POWERBANKA I ŁADOWARKĘ** ## Plan ramowy * Krótki wstęp o płytce * Pokazanie robota * Przedstawienie jego modułów * Pokazanie line followera i częściowe wytłumaczenie * Pokazanie sterowania telefonem * Podsumowanie **Na wszystko jest 25 minut!** **Pamiętaj żeby nie mówić słowo w słowo, dużo tutaj jest napisane by prowadzący wiedział co robić i co pokazuje** **Niestety nie można wszystkiego dogłebnie tłumaczyć, inaczej zabrakłoby czasu. Staraj się odpowiadać na wszelakie pytania, lecz nie zgłębiaj się, odpowiedz tym co trzeba i tyle** ## Krótki wstęp Na początek spytać się dzieci czy słyszały i czy wiedzą czym jest Arduino. Można podsumować ich odpowiedzi, jeśli je dadzą, i przejść płynnie do tłumaczenia. Arduino można traktować jak gołą płytę główną komputera, do której możemy podpinać różne narzędzia, moduły i dodatki. Sercem i jednocześnie najważniejszą częścią Arduino jest mikrokontroler, możemy go wytłumaczyć jako procesor dla naszej płytki. To on odpowiada za wykonywanie działań, które przekażemy mu za pomocą kodu. Dzięk wyprowadzeniom zewnętrznym (14 wejść cyfrowych, 6 analogowych, 6 PWM) możemy do niego podłączyć czujniki, diody, silniki i wiele innych. Nazywa się je PIN-ami. Środowisko, w którym pisze się kod to IDE. Dzisiaj pokażemy co za pomocą płytki można zbudować ## Pokazanie Osoyoo ![](https://i.imgur.com/haI7HbQ.jpg) Oto robot stworzony z różnych modułów, dodatków i narzędzi do Arduino. Daj chwilę każdemu by mógł mu się przyjrzeć. Uważaj tylko żeby się z nim delikatnie obchodzili ## Przedstawienie modułów Części które nas interesują to: * Silniki * Czujniki koloru * Moduł wifi Trzeba je po krótce wyjaśnić, albowiem: **Silnik** - działają jak zwykłe silniki, obracają się w przód lub tył. Możemy kontrolować prędkość za pomocą napięcia (w robocie jest na to osobny pin). **Czujnik koloru** - moduł składa się z pięciu (5) czujników. Czujniki wyczuwają odbijanie się światła od podłoża. Oddają wartości 1/0 (prawda/fałsz), 1 kiedy się odbija (biały) , 0 kiedy się nie odbija (czarny). Przykładowe odczytanie terenu: ```c++ String senstr=""; int s0 = digitalRead(A4); int s1 = digitalRead(A3); int s2 = digitalRead(A2); int s3 = digitalRead(A1); int s4 = digitalRead(A0); int sensorvalue=32; /* 32 jest po to by w przypadku gdzie nigdzie nie wyczuje odbicia nadal miec obraz 00000, zamiast 0 */ sensorvalue +=s0*16+s1*8+s2*4+s3*2+s4; senstr= String(sensorvalue,BIN); senstr=senstr.substring(1,6); //odcina nam pierwszą cyfrę liczby binarnej, w kazdym przypadku byloby to 1 ``` Dzięki niemu możemy odczytać obrazy typu "11100", lub "00011" które pokazują po której stronie odbija swiatlo i które czujniki to wyczuły. **Moduł wifi** - moduł tworzy swój własny hotspot do którego można podłączyć nasz telefon, lub sam się podłączyć do naszego wifi. Działa podobnie jak moduły wifi w naszych telefonach które mogą się podłączyć do wifi lub stworzyć hotspot. Sterowanie zachodzi przez specjalnie sćiągnięty kod i aplikacje stworzoną przez Osoyoo. ## Line follower Jest gotowy kod który pobieramy [mc-lesson3.zip]( https://osoyoo.com/driver/mecanum_acrylic_chassis_v2/mc-lesson3.zip) Wypakowujemy folder i z Arduino IDE otwieramy go i wgrywamy na robota, pamiętając by w narzędziach mieć zaznaczony na Arduino Mega. Po wgraniu położyć robota na start na macie, tak by czujnik już wyczuł linie. Włączyć i dać robotowi przejechać. Po krótce wytłumaczyć program. ### Tłumaczenie Line follower'a Można pokazać dzieciom kawałek kodu który odczytuje sensor koloru.![](https://i.imgur.com/itvyc3c.png) *(Ten kawałek kodu również jest wyżej w miejscu tłumaczenia sensoru.)* Tutaj nasz pogram odczytuje gdzie jest kolor. Zbiera z każdego z pięciu czujników synał i łączy go w napis który pokazuje nam gdzie nasz moduł wyczuł kolor. Dzięki temu możemy założyć różne przypadki i powiedzieć co ma robot robić w danych przypadkach. W danych przypadkach możemy mu powiedzieć gdzie ma skręcić. ## Sterowanie robotem przez telefon Ściągamy na telefon aplikacje **“OSOYOO WIFI UDP Robot Car Controller”** Ściągamy dwie rzeczy: 1. Bibliotekę do korzystania z modułu wifi [WiFiEsp-master.zip](https://osoyoo.com/driver/mecanum_acrylic_chassis_v2/WiFiEsp-master.zip) 2. Sam program [mc-lesson6.zip](https://osoyoo.com/driver/mecanum_acrylic_chassis_v2/mc-lesson6.zip) Na początku otwieramy Aruino IDE i w zakładce Szkic wchodzimy w "Dołącz bibliotekę" i wybieramy Dołącz bibliotekę ZIP. Tam wczytujemy naszą bibliotekę do modułu wifi (**WiFiEsp-master**). Po tym możemy podobnie jak z line-followerem, czyli wczytać nasz program i wgrać na płytkę Wczytujemy **lesson6a**, wtedy nasz robot będzie hotspotem i można do niego podłączyć aplikacje Podłączamy wifi telefonu do robota i otwieramy aplikacje. Po upewnieniu się że jest podłączony możemy nim sterować ## Podsumowanie Po krótkiej prezentacji prowadzenia robota, zrobieniu kółka wokól sai, można się spytać co zapamiętali. Spytać jeszcze raz czym jest płytka Arduino i opowiedzieć jej zastosowania i gdzie jest używana ## Informacje dodatkowe ### Praca Robota Trzeba pamiętać że robot działa prawidłowo dopiero w momencie odłączenia go od komputera i włączenia zasilenia bateriami. UWAGA! ROBOT MA DUŻO SIŁY, UWAŻAĆ ŻEBY NIE POLECIAŁ W ŚCIANE. ### Robot nie chce jechać po linii Jeśli pojawia się problem z jechaniem za linią to: 1. Restart procesu, na początek maty 2. Jeśli drugi raz nie działa, sprawdźcie jego napięcie (w rogu ma wyświetlacz który na to wskazuje, powininen oscylować w 7,5) 3. Jeśli nie, to podłączcie powerbank tym samym kablem co do komputer i włączcie robota Robot niestety może być zawodny, problemy mogą wychodzić z jego baterii i braku energii.