Wytyczne, instrukcje do zajęć prowadzonych w formie zdalnej
zajęcia są wykonywane przy użyciu symulatora SimulIDE – dokładny opis wykorzystania symulatora znajduje się na stronie: link.
Wytyczne do przygotowania sprawozdania:
- pracujemy w grupach 1-2 osobowych – jedna grupa, jedno sprawozdanie,
- wyniki z wykonane laboratorium należy umieścić w sprawozdaniu (jedno sprawozdanie-jedno laboratorium),
- sprawozdanie tworzymy w formacie A4, strona pierwsza musi zawierać: temat laboratorium, autorów sprawozdania, datę wykonania, imię i nazwisko prowadzącego (przykładowa strona),
- jedno ćwiczenie/zadanie w ramach laboratorium to jeden rozdział w sprawozdaniu, zadania do wykonania ramach laboratorium są opisane poniżej,
- w rozdziale umieszczamy schemat z wykonanego ćwiczenia (zdjęcie ekranu z oprogramowania SimulIDE), kod oprogramowania realizujący założenia ćwiczenia (kompletny kod z pliku main.c) w formie tekstowej, jeśli są jakieś inne pliki to należy również umieścić ten kod w sprawozdaniu,
- każda linia tworzonego oprogramowania (kodu, który jest autorski) musi być zaopatrzona w komentarz opisujący funkcję tego kawałka kodu,
- sprawozdanie należy wysłać z adresu email uczelnianego jednego z autorów na adres prowadzącego zajęcia. Przykładowy temat wiadomości: PTM-LAB1.1-1458,1478 (gdzie LAB1.1 – numer aktualnie wykonywanego laboratorium, 1458,1478- numery indeksów autorów sprawozdania),
- kompletne i własne sprawozdania należy wysyłać do określonego terminu. Za brak sprawozdania w terminie będzie wystawiana ocena 2.0.
Konsultacje:
Informacje na stronie: http://w-tarnawski.pl/o-mnie/
Laboratorium 1.1
- zapoznajemy się z instrukcją do laboratorium (PTM-LAB1.1),
- ściągamy projekt i symulacje (pliki),
- dokonujemy niezbędnych podłączeń dla linijki diodowej według schematu (PD7-lewa dioda, PD6- lewa dioda-1, ….. , PD0-prawa dioda).
Zadanie 1:
- włączyć wszystkie diody LED – jak można to zrobić, przetestować 3 sposoby.
Zadanie 2:
- napisać funkcję, która będzie mrugała wszystkimi diodami z częstotliwością 1s.
Zadanie 3:
- przygotować funkcje, która będzie realizowała zadanie „biegający punkt”. Jedna dioda na linijce diodowej jest włączona i porusza się w lewo lub w prawo – w zależności gdzie świecący punkt był wcześniej. Przykład biegającego punktu: Biegający punkt.
Utworzyć sprawozdanie z wykonanych zadań i przesłać do prowadzącego do dnia 10.05.2020
Laboratorium 1.2
- zapoznajemy się z instrukcją do laboratorium (PTM-LAB1.2)
- ściągamy paczkę z projektem i symulacją (pliki),
- łączymy LCD i klawiaturę jak na rysunku z paczki.
Zadanie 1:
- wgrywamy przykładowy program z paczki,
- po uruchomieniu w pierwszej linii LCD będą wyświetlać się kolejne cyfry, po kliknięciu przycisku 1 na LCD pojawi się napis w drugiej linii „Wcisnieto: 1”, po przyciśnięciu przycisku po prawej stronie pojawi się napis „Wcisnieto: =”,
- zmodyfikować program tak aby wciśniecie przycisku 2 wyświetliło napis „”Wcisnieto: 2” i tak dla każdej cyfry z klawiatury, wykorzystać mechanizm obsługi klawiatur macierzowych, dla przycisku * wyświetlić „Wciśnięto: 10”, dla hash „Wciśnięto:11” a dla dodatkowe przycisku po prawej „Wciśnięto: 12”
- do powyższego zadania najlepiej stworzyć funkcję, której wywołanie będzie zwracało odpowiedni numer, a dla braku wciśniętego przycisku ma zwrócić -1,
Zadanie 2:
Przygotować program, który będzie realizował funkcje kalkulatora zgodnie z poniższymi wytycznymi. Wprowadzanie liczby 1 wybranie operacji, wprowadzenie liczby drugiej, naciśnięcie przycisku „=”. Ponowne naciśnięcie przycisku „=” kasuje wyniki i pozwala wykonać kolejne obliczenia.
Wynik obliczeń, wprowadzone liczby należy wyświetlać na LCD.
Funkcje przycisków:
- cyfry 0-9 – wprowadzanie liczb do wykonywania operacji, wciśnięcie 1,4,5,9 oznacza liczbę 1459
- znak * – to operacja dodawania
- znak hash – to operacja odejmowania
- przycisk dodatkowy – to wykonanie działania, przycisk na standardowym kalkulatorze „=”
Kalkulator umożliwia dodawanie i odejmowanie dwóch liczb w zakresie 0-9999.
Utworzyć sprawozdanie z wykonanych zadań i przesłać do prowadzącego do dnia 17.05.2020
Laboratorium 1.3
- zapoznajemy się z instrukcją do laboratorium (PTM-LAB1.3)
- ściągamy paczkę z projektem i symulacją (pliki),
- łączymy układ jak na rysunku z paczki i ładujemy program.
Zadanie 1:
- poznajemy system przerwań – co to są przerwania? Do czego można je wykorzystywać?
- uzupełniamy funkcje „void TimerInit()” tak aby wywoływała przerwanie wewnętrzny odpowiednią częstotliwością.
- uzupełnić funkcję przerwania wewnętrznego „ISR(TIMER1_COMPA_vect)”, tak by powodowała miganie diodą LED „Led-ISR” – można skorzystać z makra „tbi”
- podpiąć oscyloskop pod diodę LED i sprawdzić czy ustawiona częstotliwość przerwania odpowiada 2Hz
Zadanie 2:
- zapoznajemy się z budową wyświetlacza 7-segmentowego. Ile linii mikokontrolera potrzeba do obsługi takiego wyświetlacza?
- uzupełniamy funkcję „seg7Init()” – ustawiamy port podłączone do wyświetlacza jako wyjścia
- co robi i jak działa funkcja „seg7ShowCyfra”? uzupełnić tablicę „char cyfra[10]” tak aby odpowiadała wyświeltanym cyfrą na wyświetlaczu 7-segmentowym (indeks tablicy 0 – wyświetla 0, indeks 4-wyświetla 4).
Zadanie 3:
- napisać program do odliczania czasu od 9 do 0 – odliczanie czasu musi być precyzyjne i należy wykonać je przy wykorzystaniu przerwania,
- odliczanie jest wyświetlane na wyświetlaczu 7 segmentowym,
- jak odliczy do zera to uruchamia się dioda LED, świeci przez 5 sekund i następuje reset zegarka,
- jeśli nastąpi przyciśnięcie przycisku w czasie odliczania to następuje zatrzymanie odliczania, ponowne przyciśnięcie resetuje zegarek,
- pierwsze uruchomienie programu, restart zegarka wprowadza układ w tryb oczekiwania na przycisk, po przyciśnięciu następuje odliczania.
Ćwiczenie i notatki z wykonanych zadań należy wykonać do dnia 27.05.2020 – szczegóły formy zaliczenia na końcu strony.
Laboratorium 1.4
- zapoznajemy się z instrukcją do laboratorium (PTM-LAB1.4)
- ściągamy paczkę z projektem i symulacją (pliki),
- łączymy układ jak na rysunku z paczki i ładujemy program,
- sprawdzić czy działa wyświetlacz LCD, wyświetlić w pierwszej linii swoje imię (imiona).
Zadanie 1:
- przygotować funkcję „ADC_init()” w której dokonana będzie konfiguracja przetwornika A/D na podstawie dokumentacji mikrokontrolera:
- Rejestr ADMUX bity: REFS0:1 – konfiguracja napięcia referencyjnego – wybrać napięcie AVCC
- Rejestr ADCSRA bity: ADPS0:2 – konfiguracja podzielnika częstotliwości dla układu przetwornika (częstotliwość sygnału taktującego) – ustawić aby częstotliwość była mniejsza
niż 100KHz - Rejestr ADCSRA bit: ADEN – uruchomienie układu przetwornika
- Rejestr ADMUX bity: MUX0:4 – konfiguracja/wybór kanału/pinu na którym będzie dokonywany pomiar – wybrać ADC0 – odpowiada pinowi PA0
- przygotować funkcję „uint16_t ADC_10bit()” – zwraca zmierzone napięcie:
- Rejestr ADCSRA bit: ADSC – uruchomienie pojedynczego pomiaru – ustawienie bitu
- Rejestr ADCSRA bit: ADSC – oczekiwanie na zakończenie pomiaru – oczekiwanie na wyzerowanie bitu
- Rejestr ADC – przechowuje wynik pomiaru – wartość jaką ma zwrócić funkcja
- napisać funkcję „ADC_10bit()” – która będzie zwracała odczytaną wartość z rejestru pomiarowego przetwornika A/D i wyświetlała a drugiej linii wyświetlacza LCD,
- napięcie zmieniamy kręcąc potencjometrem po prawej stronie układu.
Zadanie 2:
- zapisać wzór na przeliczenie wartości zwracanej przez funkcję „ADC_10bit()” na wartość napięcia w V,
- zaimplementować funkcję „ADC_measure()”, która będzie zwracała napięcie w V z dokładnością do dwóch miejsc po przecinku i przeskalowaną do liczby całkowitych (np. 2,59 to 259, 3,95 to 393),
- wyświetlić na LCD w drugiej lini: Pomiar1 :4.75V – gdzie to wynik pomiaru w woltach,
- porównać wyniki z wartościami wskazywanymi przez miernik „Test1”.
Zadanie 3:
- napisać program, który będzie wyświetlał w pierwszej linii LCD mierzone napięcie,
- w drugiej linii napis „on/off” w zależności od działania komparatora, co to jest komparator? Napisać funkcję realizującą komparator analogowy.
- komparator steruje napisem na LCD i diodą LED1
- jeśli napięcie podawane przez potencjometr jest większe niż 2,5V to ma być stan on, jeśli mniejsze to off, analogicznie ma działać dioda LED.
Ćwiczenie i notatki z wykonanych zadań należy wykonać do dnia 03.06.2020 – szczegóły formy zaliczenia na końcu strony.
Laboratorium 1.5
- zapoznajemy się z instrukcją do laboratorium (PTM-LAB1.5)
- co to jest sygnał PWM, do czego można go wykorzystać, jak wyglądają przebiegi dla tego sygnału dla różnego wypełnienia?
- przygotować jeden program końcowy zgodnie z wytycznymi.
Program końcowy:
- stworzyć układ składający się z:
- Atmega32
- wyświetlacz LCD Hd44780
- wyświetlacz 7 segmentowy
- potencjometr analogowy – podający napięcie w zakresie 0-5V,
- element „Probe” do pomiaru napięcia podawanego przez potencjometr,
- 4 przyciski (UP, Down, X, OK)
- 3 diody LED (LED1, LED2, LED3)
- program po uruchomieniu wyświetla komunikat powitalny ze swoją nazwą „Program PTM 2020” i numerami indeksów autorów, wyświetlanie trwa z 4 sekundy,
- następnie uruchamia się menu z którego za pomocą przycisków (UP,Down) możemy wybrać odpowiednią funkcje, przycisk OK uruchamia funkcję, przycisk X wychodzi z funkcji,
- funkcje programu:
- Info – wyświetla ekran powitalny na 4 sekundy i wraca do menu,
- Liczby – za pomocą przycisków Up,Down ustawiamy liczbę w zakresie 0-50 (wyświetlamy ją na wyświetlaczu LCD i 7 segmentowym- liczby tylko do 9, powyżej wyświetlamy znak „-„), przycisk X pozwala wrócić do menu, dla liczb parzystych świecimy diodę LED1, dla pozostałych diodę LED2, jeśli liczba jest liczbą pierwszą to uruchamiamy diodę LED3,
- Stoper – liczenie z dokładnością do 0,1s należy zrealizować za pomocą przerwań wewnętrznych, po wejściu do funkcji wyświetla się 00:00, przycisk OK resetuje i uruchamia stoper, ponowne przyciśnięcie przycisku OK zatrzymuje stoper, przycisk X wychodzi do menu głównego, co jedną sekundę następuje włączenie/wyłączenie diody LED1 jak stoper jest uruchomiony,
- Zegar – liczenie z dokładnością do 1,0s należy zrealizować za pomocą przerwań wewnętrznych, wyświetlamy na LCD czas 00:00 (minuty i sekundy), na wyświetlaczu 7 segmentowym wyświetlamy tylko pojedyncze sekundy (0-9), dioda LED 3 ma się zaświecić co każdą sekundę na czas 200ms, przycisk X wychodzi z funkcji,
- Miernik – program wykorzystuje przetwornik ADC do pomiaru napięcia z potencjometru. Wyświetla w pierwszej linii bezpośrednio odczytaną wartość z rejestru pomiarowego ADC, w drugiej linii wyświetla napięcie w V (należy dokonać przeliczenia), przycisk X wychodzi z programu.
Tak przygotowany program musi posiadać komentarze opisujące stworzony kod i będzie podlegał prezentacji w ramach zaliczenia przedmiotu.
Do programu należy napisać sprawozdanie końcowe gdzie:
- jeden rozdział to jedna funkcja programu,
- jeden dodatkowy rozdział poświęcić na opisanie mechanizmu menu,
- do każdego rozdziału należy zrobić opis słowny, załączyć zdjęcia z ekranu symulatora przedstawiające działanie,
- na końcu sprawozdania należy załączyć kod całego programu (kod wklejamy do sprawozdania, nie mogą być osobne pliki),
- sprawozdanie wysyłamy w formacie PDF o nazwie „PTM-końcowe-xxxxxx-xxxxx.pdf” (gdzie xxxxx to numery indeksów autorów),
- wysyłamy do prowadzącego jako załącznik wiadomości email.
Sprawozdanie końcowe należy wykonać do dnia 8.06.2020
Laboratorium 1.6
- Termin 9-10.06.2020 w postaci konsultacji online, będzie dostępna lista gdzie można będzie rezerwować termin,
- długość na jedną grupę to 10 minut,
- ostateczne omówienie sprawozdań, programu końcowego i wystawienie ocen,
- prowadzący może zadać pytania do wykonanych ćwiczeń i zakresu materiału.
Warunki zaliczenia:
- wysłanie sprawozdania do LAB 1.1 i LAB 1.2 w podanym terminie,
- wykonanie ćwiczeń w ramach LAB 1.3 – 1.4, studenci tworzą notatki, programy w celu zapoznania się z interfejsami i układami na własny użytek,
- po wykonaniu ćwiczenia należy zaimplementować odpowiednie funkcje w ramach programu końcowego (LAB1.5),
- prezentacja online działania programu w ramach konsultacji w terminie laboratorium 1.6,
- po prezentacji, zapoznaniu się ze sprawozdaniem końcowym przez prowadzącego nastąpi wystawienie oceny końcowej.