Strzelnica

Stworzymy laserową strzelnicę z naliczaniem punktów

Czas trwania – 45 min
Poziom trudności – ŁATWY

Wstęp

Dzisiaj przygotujemy prywatną strzelnicę! Brzmi groźnie, ale bez obaw. Naszą bronią będzie wskaźnik laserowy, a celem czujnik światła! GOTOWI, CEL, PAL!

Przygotowanie

Moduły:

  • LOFI Brain
  • Serwomotor
  • Dioda
  • Przycisk
  • Czujnik światła
  • Kabel USB

UWAGA – Do zrealizowania tego projektu potrzebny jest wskaźnik laserowy (najczęściej spotykany w formie wskaźnika do prezentacji lub zabawki dla kotów), ktory nie wchodzi w skład zestawu CODEBOX.

Konstrukcja robota

Instrukcja konstrukcji strzelnicy jest obecnie w przygotowaniu – lik do niej pojawi się tutaj pod koniec maja.

Podłączenie:

  • Czujnik światła → port INPUT3
  • Przycisk → INPUT1
  • Serwomotor → OUTPUT1
  • Dioda → OUTPUT3
  • Zasilanie robota → kabel USB → wyjście USB w komputerze

Przebieg

Działanie strzelnicy

Strzelnica to bardzo prosta ale jednocześnie dająca dużo zabawy gra polegająca a trafianiu w ruchomy cel przy pomocy wskaźnika laserowego.

Gdy trafimy w cel (czujnik światła), robot wylosuje nową pozycję tarczy oraz zasygnalizuje trafienie poprzez zapalenie diody i włączenie buzzera. Te funkcje zrealizujemy przy pomocy naszego ulubionego bloku warunkowego Jeżeli… w przeciwnym razie.

1_jezeli_wprzeciwnymrazie

Trafienie w cel będzie odczytywane przez czujnik światła. Gdy wartość odczytana z fotorezystora przekroczy 75 wykonamy określone wcześniej akcje.

2_input3_wiekszy_od_70

Akcje wykonywane po trafieniu to:

  1. Zaświecenie diody
  2. Ustawienie serwomotora w losowej pozycji
  3. Włączenie buzzera

Dodatkowo dorzucimy chwilę oczekiwania, by pozwolić serwomotorowi zmienić pozycję.

3_trafiony

W momencie gdy fotorezystor nie odczytuje dużego natężenia światła należy wyłączyć diodę i buzzer.

4_nietrafiony

No i właściwie główne założenia strzelnicy zostały spełnione!

Punktacja

Możemy zaimplementować naliczanie punktów po trafieniu, wyświetlanie ich na planszy do rysowania oraz zerowanie po naciśnięciu przycisku. Należy najpierw dodać zmienną, która będzie przechowywała liczbę punktów. Nazwę ją punkty. Naliczanie punktów po trafieniu zrealizujemy poprzez blok Zmień punkty o dodany do sekwencji zadań realizowanych po trafieniu (ale przed blokiem Czekaj).

5_punkty

Teraz czas na wyświetlanie naszej punktacji. Będziemy potrzebowali paru bloków z zakładki RYSOWANIE.
Co trzeba wykonać?

  1. Wymazanie poprzedniego wyniku
  2. Wyświetlenie aktualnej wartości zmiennej punkty

Musimy wymazywać poprzednie wyniki z planszy ponieważ w przeciwnym razie nakładałyby się na siebie i nie byłoby możliwe ich odczytanie. Wymazywanie zrealizujemy poprzez rysowanie białego kwadratu o wielkości całej planszy.

6_wymazywanie

Wyświetlenie wartości zmiennej jest możliwe poprzez użycie bloku Tekst po uprzednim nadaniu mu koloru.

7_wyswietlanie_wyniku

Przydałoby się zerowanie wyniku, prawda? Użyjemy do tego przycisku połączonego z blokiem warunkowym Jeżeli. Warunkiem nie może być samo sprawdzenie czy INPUT1 jest prawdą (czy przyjmuje wartość większą od 0) ponieważ stosunkowo często na wejściu indukują się pewne małe napięcia, które są odczytywane jako na przykład wartość 2. Musimy zatem zastosować coś mniej zawodnego czyli porównanie z większą wartością. Odpowiednim wyborem będzie chociażby sprawdzenie czy INPUT1 jest większy od 50.
Jeżeli jest to prawda to ustawimy punkty na 0.

8_zerowanie_punktow

Dodatkowe utrudnienia

Jako dodatkowe utrudnienie można dodać zmiany położenia serwomotoru niezależnie od naliczonych punktów. W losowych odstępach czasu serwomotor zmieni pozycję i konieczne będzie wycelowanie na nowo. Do stworzenia takiej funkcji naszej strzelnicy wykorzystamy dość nieintuicyjne rozwiązanie, a mianowicie, blok Graj.
W bloku Graj oprócz muzyki odtwarzać można również bloki związane ze sterowaniem robotem – blok Powtarzaj i Graj są wykonywane niezależnie od siebie, więc gdy stworzymy odpowiednią sekwencję bloków uzyskamy dodatkowy ruch ramienia na którym zawieszony jest fotorezystor.

9_calosc

Funkcja czekania jest wykonywana niezależnie od głównego programu więc nie powoduje zatrzymania naliczania punktów i wykrywania trafień.
Robot będzie czekał od 1 sekundy do 3 sekund a następnie ustawiał ramię w losowe miejsce. Należy przy tym pamiętać, że nawet po trafieniu czas oczekiwania na zmianę położenia serwomotoru nie ulega wyzerowaniu, więc zaraz po trafieniu możemy uzyskać nowe pozycje jedna po drugiej.

ZOBACZ GOTOWY PROJEKT

O autorze scenariusza:

LOFI Robot

Ten artykuł napisały dla Ciebie roboty znad morza. Najprawdopodobniej miały na imię Maciek i Tomek.