Zakres laboratorium:
- zapoznanie się z ekosystemem Arduino
- obsługa przerwań zewnętrznych
- poznanie interfejsu transmisji danych UART
Środowisko programistyczne: arduino
Jak wyciągnąć plik hex/elf z kompilacji Arduino IDE: link
Zapoznać się z zbiorem funkcji dostępnych w Arduino: link
W celu uruchomienia terminala należy kliknąć PPM Arduino i wybrać “Open serial Monitor.”
Zadanie 1 – ocena 3
Zapoznać się z obsługa przerwań w Arduino: link
- stworzyć symulację z płytką Arduino Uno, dodać dwa przyciski dołączone do pinów 2 i 3, oddać 2 diody LED,
- utworzyć program, który za pomocą przerwania z przycisku 1 będzie włączył/wyłączał diodę 1,
- analogicznie do poprzedniego punktu, uruchomić przycisk 2 i diodę 2.
Zadanie 2 – ocena 3,5
Zapoznać się z możliwościami biblioteki do komunikacji Serial: link
- na podstawie programu z zadania 1, należy uruchomić obsługę komunikacji UART,
- ustawić prędkość komunikacji UART na 9600
- na początku programu (tylko jeden raz), należy wysłać do terminala napis “Hello world – numer indeksu”, gdzie za napis numer indeksu podstawiamy swój numer,
- w pętli głównej programu utworzyć licznik zliczający o 1, co 1 sekundę
- na każdą zmianę licznika powinien zostać przesłany po interfejsie uart napis “dziala: n”, gdzie n to stan licznika,
- każdy kolejny napis powinien być w nowej linijce,
- dodać do obsługi przerwań przesyłanie komunikatu po UART o zmianie stanu diody LED.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
int i=0; void setup() { //Initialize serial and wait for port to open: Serial.begin(9600); // prints title with ending line break Serial.println("PTM-testowy program"); } void loop() { Serial.print("Dziala: "); Serial.println(i++); delay(1000); } |
Zadanie 3 – ocena 4
Zapoznać się z kodowaniem znaków ASCII: link
Utworzyć nowy program i skonfigurować komunikację UART jak w zadaniu 2.
- na początku programu (tylko jeden raz), należy wysłać do terminala napis “Hello world – numer indeksu”, gdzie za napis numer indeksu podstawiamy swój numer,
- program co 1 sekundę sprawdza czy został wysłane do mikrokontrolera jakiś znak po UART, jeśli tak to odbiera go i wyświetla na ekranie napis “Odebralem: x-nn”, gdzie x to przesłany znak w postaci znaku ASCII, a nn to jego kod liczbowy,czyli dla przesłanego znaku “a” ma zostać wyświetlony komunikat “Odebrałem: a-97”
- co każde 10 sekund jeśli nie został przesłany jakiś znak, wyświetla na ekranie napis “Czekam na znak, pospiesz się…”
Zadanie 4 – ocena 4,5
Utworzyć program, który oblicza wiek osoby na podstawie wprowadzonego roku urodzenia.
- Po uruchomieniu program przedstawia się, krótkim komunikatem z nazwą programu i opisem co robi,
- następnie prosi o podanie roku urodzenia,
- wczytane dane zamienia na liczbę i dokonuje obliczenia wieku osoby (dla uproszczenia proszę przyjąć rok obecny na 2020),
- wyświetla na ekranie komunikat, gdzie x to obliczony wiek, a “…” to miejsce na wymyślony komentarz, logiczne dokończenie komunikatu:
- jeśli wiek <18 – “Masz x lat, ale jesteś …”,
- dla 18<=wieku < 25 – “Masz x lat, jesteś …”,
- dla 25<=wieku < 65 – “Masz x lat, czy już …”,
- dla 65<=wieku – “Masz x lat, czy to już …”,
- następnie program ponownie rozpoczyna działanie od początku.
Zadanie 5 – ocena 5
Utworzyć program, który na podstawie wprowadzonej daty urodzenia określa czy osoba jest pełnoletnia.
- program prosi o podanie daty urodzenia w formacie dd.mm.yyyy, czyli 01.05.2000,
- oblicza czy osoba ma skończone 18 lat, dla uproszczenia proszę przyjąć dzisiejszą datę jako 08.02.2021,
- wyświetla na ekranie komunikat “Jesteś już pełnoletni.” lub “Jeszcze nie masz 18 lat, musisz poczekać: xxx dni”, gdzie xxx to ilość dni jaka pozostała aby dana osoba osiągnęła pełnoletność.