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:
  1. pracujemy w grupach 1-2 osobowych – jedna grupa, jedno sprawozdanie,
  2. wyniki z wykonane laboratorium należy umieścić w sprawozdaniu (jedno sprawozdanie-jedno laboratorium),
  3. sprawozdanie tworzymy w formacie A4, strona pierwsza musi zawierać: temat laboratorium, autorów sprawozdania, datę wykonania, imię i nazwisko prowadzącego (przykładowa strona),
  4. jedno ćwiczenie/zadanie w ramach laboratorium to jeden rozdział w sprawozdaniu, zadania do wykonania ramach laboratorium są opisane poniżej,
  5. 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,
  6. każda linia tworzonego oprogramowania (kodu, który jest autorski) musi być zaopatrzona w komentarz opisujący funkcję tego kawałka kodu,
  7. 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),
  8. 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
  1. zapoznajemy się z instrukcją do laboratorium (PTM-LAB1.1),
  2. ściągamy projekt i symulacje (pliki),
  3. 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
  1. zapoznajemy się z instrukcją do laboratorium (PTM-LAB1.2)
  2. ściągamy paczkę z projektem i symulacją (pliki),
  3. łą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
  1. zapoznajemy się z instrukcją do laboratorium (PTM-LAB1.3)
  2. ściągamy paczkę z projektem i symulacją (pliki),
  3. łą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
  1. zapoznajemy się z instrukcją do laboratorium (PTM-LAB1.4)
  2. ściągamy paczkę z projektem i symulacją (pliki),
  3. łączymy układ jak na rysunku z paczki i ładujemy program,
  4. 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
  1. zapoznajemy się z instrukcją do laboratorium (PTM-LAB1.5)
  2. co to jest sygnał PWM, do czego można go wykorzystać, jak wyglądają przebiegi dla tego sygnału dla różnego wypełnienia?
  3. przygotować jeden program końcowy zgodnie z wytycznymi.
Program końcowy:
  1. stworzyć układ składający się z:
    1. Atmega32
    2. wyświetlacz LCD Hd44780
    3. wyświetlacz 7 segmentowy
    4. potencjometr analogowy – podający napięcie w zakresie 0-5V,
    5. element „Probe” do pomiaru napięcia podawanego przez potencjometr,
    6. 4 przyciski (UP, Down, X, OK)
    7. 3 diody LED (LED1, LED2, LED3)
  2. 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,
  3. 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,
  4. funkcje programu:
    1. Info – wyświetla ekran powitalny na 4 sekundy i wraca do menu,
    2. 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,
    3. 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,
    4. 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,
    5. 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:

  1. jeden rozdział to jedna funkcja programu,
  2. jeden dodatkowy rozdział poświęcić na opisanie mechanizmu menu,
  3. do każdego rozdziału należy zrobić opis słowny, załączyć zdjęcia z ekranu symulatora przedstawiające działanie,
  4. na końcu sprawozdania należy załączyć kod całego programu (kod wklejamy do sprawozdania, nie mogą być osobne pliki),
  5. sprawozdanie wysyłamy w formacie PDF o nazwie „PTM-końcowe-xxxxxx-xxxxx.pdf” (gdzie xxxxx to numery indeksów autorów),
  6. 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
  1. Termin 9-10.06.2020 w postaci konsultacji online, będzie dostępna lista gdzie można będzie rezerwować termin,
  2. długość na jedną grupę to 10 minut,
  3. ostateczne omówienie sprawozdań, programu końcowego i wystawienie ocen,
  4. prowadzący może zadać pytania do wykonanych ćwiczeń i zakresu materiału.

Warunki zaliczenia:

  1. wysłanie sprawozdania do LAB 1.1 i LAB 1.2 w podanym terminie,
  2. 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,
  3. po wykonaniu ćwiczenia należy zaimplementować odpowiednie funkcje w ramach programu końcowego (LAB1.5),
  4. prezentacja online działania programu w ramach konsultacji w terminie laboratorium 1.6,
  5. po prezentacji, zapoznaniu się ze sprawozdaniem końcowym przez prowadzącego nastąpi wystawienie oceny końcowej.