Zakres laboratorium:
  1. Komunikacja po interfejsie UART
  2. Odbieranie danych na terminalu komputera – rysowanie wykresów
  3. Wysyłanie danych z terminala komputera
  4. Program do obliczania wieku

 

1. Komunikacja po interfejsie UART

Skonfigurować interfejs komunikacyjny UART:

  • prędkość transmisji 19200bps
  • rozmiar danych: 8 bitów
  • bity parzystości: – brak
  • bity stopu: 1

Wysłać napis “Hello World: 1” na terminal komputera. Napisy powinny być wysyłane co jedną sekundę, a licznik powinien być zwiększany o 1 przy każdym wysłaniu. Każdy wysłany napis powinien wyświetlić się od początku nowej linii terminala.

W celu podglądu wysyłanych danych na komputer należy uruchomić aplikację komunikującą się na wybranym porcie COM. W środowisku Arduino jest wbudowana taka funkcja “Narzędzia->Monitor portu szeregowego”. Pojawi się nowe okno terminala, gdzie należy ustawić parametry transmisji na zgodne z ustawionymi po stronie mikrokontrolera. Jeśli wszytsko zrobiliśmy poprawnie to w białym oknie powinien pojawiać się nasz wysyłany napis.

Interfejs UART na płytce Arduino Nano jest podłączony przez konwerter UART/USB do złącza USB. Tym samym konwerterem/złączem programujemy mikrokontroler, dlatego nie należy wykonywać żadnych dodatkowych podłączeń.

 

2. Odbieranie danych na terminalu komputera – rysowanie wykresów

Na podstawie zadania 4 z laboratorium 1.4 należy zaprezentować działania regulatora za pomocą wykresów rysowanych na komputerze PC.

Do przygotowania wykresów należy wykorzystać wbudowaną w środowisko Arduino funkcję “Kreślarka” .

Należy narysować (na jednym wykresie kilka przebiegów):

  • przebieg napięcia z fotorezystora
  • przebieg napięcia z potencjometru
  • przebieg binarny przedstawiający działanie włącznika zmierzchowego

przeanalizować za pomocą wykresów działanie wyłącznika i histerezy. Zrobić zdjęcia ekranu i opisać punkty zadziałania w notatce z zajęć.

 

3. Wysyłanie danych z terminala komputera

Napisać program, który odbierze pojedyncze znaki wysyłane z terminala i wykona następujące operacje:

  • odebrany znak ‘a’ – włączenie diody LED1 – wyświetli na terminalu komunikat “LED1 ON”
  • odebrany znak ‘s’ – wyłączenie diody LED1 – wyświetli na terminalu komunikat “LED1 OFF”
  • odebrany znak ‘d’ – sprawdzenie stanu pinu, gdzie podłączymy przycisk – komunikat o stanie przycisku należy wysłać na terminal
  • odebrany znak ‘f’ – wyświetlamy ilość sekund od uruchomienia programu (licznik liczący sekundy powinien działać w tle programu)
4. Program do obliczania wieku

Napisać program, który po uruchomieniu poprosi użytkownika (wyśle odpowiedni komunikat na terminal komputera) o podanie roku urodzenia. Użytkownik wysyła za pomocą terminala rok swojego urodzenia. Program odbiera dane i oblicza wiek użytkownika, wysyła odpowiedź na terminal z odpowiednim komentarzem. Program powinien posiadać zabezpieczenia na błędne podanie roku urodzenia itd.

Jeśli użytkownik podany zły rok, to należy wyświetlić odpowiedni komunikat.

Program działa w sposób ciągły, po obliczeniu wieku, wyświetla ponownie komunikat z prośbą o podanie kolejnego roku.

Komentarz do obliczonego wieku:

  • x to obliczony wiek, a “…” to miejsce na wymyślony komentarz, logiczne dokończenie komunikatu:
    • jeśli wiek <18 – “Masz x lat”, ” …”,
    • dla 18<=wieku < 25 – “Masz x lat”, ” …”,
    • dla 25<=wieku < 65 – “Masz x lat”, ” …”,
    • dla 65<=wieku – “Masz x lat”, ” …”,

 

 

 

 

 

 

 

Zakres laboratorium 2017-2021 (nie aktualne)

 

 

Zakres laboratorium:
  1. Zapoznanie się z sygnałem PWM
  2. Serwo modelarskie – sterowanie
  3. Propozycja oceny – zaliczenie kursu

Na zajęcia należy przynieść kątomierz.

 

Zadania do wykonania:
  • Wejściówka
  • Zadanie 2.1
  • Zadanie 2.2
  • Zadanie 2.3 – zadanie na ocenę 5,5
  • Zadanie 3.1
1. Sygnał PWM

Przygotować informacje o sygnale PWM (wejściówka):

  • co to jest sygnał PWM?
  • do czego służy – wymienić 3 zastosowania
  • narysować przebiegi sygnału PWM (sygnał o długości 3 okresów):
    • urządzenie wyłączone
    • urządzenie włączone na 50% mocy
    • urządzenie włączone na 100% mocy
2. Serwo modelarskie – sterowanie

Podstawowe informacje o serwomechanizmach modelarskich można znaleźć na stronie: Link. Serwo modelarskie jest urządzeniem, któremu za pomocą sygnału nazywanego RC-PWM można zadać położenie ramienia, układ wewnętrzny serwa ustawia ramię odpowiednio do podanego sygnału. Sygnał sterujący jest to sygnał ciągły o częstotliwości 50Hz (długość pojedynczego impulsu to 20ms). Do sterowania wykorzystywane jest tylko część tego sygnału, ponieważ sterujący impuls posiada szerokość w zakresie 0,5-2,5ms (w zależności od serwa). Proces sterowania widać na poniższym rysunku:

Źródło: http://tymkrs.tumblr.com/post/16765013540/rc-servo-basics
Źródło: http://tymkrs.tumblr.com/post/16765013540/rc-servo-basics

Ustawienie pozycji skrajnej “+90” oznacza podanie sygnału o okresie 20ms ale długość stanu wysokiego to tylko 0,9ms. Położenie “-90” to podanie sygnału, w którym stan wysoki wynosi 2,4ms. Inne długości stanu wysokiego oznaczają inne pośrednie położenia.

Pierwsze kroki:

  • podłączyć serwomechanizm do płytki EDU według poniższego schematu:
    • przewód czarny/brązowy – podłączyć do GND
    • przewód czerwony – podłączyć do +5V
    • przewód żółty/biały – podłączyć do PD5

      EDU_Servo
      Podłączenie serwomechanizmu do płytki EDU
  • podłączyć dwa przyciski do mikrokontrolera zgodnie z wcześniejszymi laboratoriami
  • utworzyć projekt według szablonu i skopiować:

 

Zadanie 2.1

  • serwo podłączone jest do nóżki PD5 posiadającą funkcję OC1A (wyjście Kanału A z Timer1), dzięki takiej konfiguracji na tym wyprowadzeniu można generować sprzętowo sygnały z wykorzystaniem Time1, skopiować powyższy kod programu i uzupełnić zgodnie z komentarzami
  • w pętli while(1) – dopisać sterowanie (ustawianie wypełnienia/długości stanu wysokiego) zgodnie z komentarzami. Serwo powinno poruszać się według następującej sekwencji: -90, 0, +90, 0, …

Zadanie 2.2

Za pomocą dwóch podłączonych przycisków zrealizować następujące zadanie:

  • Przycisk Up – zwiększa wychylenie serwomechanizmu
  • Przycisk Down – zmniejsza wychylenie serwomechanizmu

Zadanie 2.3 – zadanie na ocenę 5,5

  • podłączyć wyświetlacz LCD (jak podłączyć LCD) i  wyświetlić wartość:
    • aktualnie podawanego wypełnienia – szerokości impulsu w ms
    • kąt aktualnego położenia serwomechanizmu – 0-180 st.
  • zmieniać wartość przy pomocy przycisków i zrobić tabelkę, w której zostanie porównana wartość wypełnienia z kątem wychylenia, narysować wykres
Zagadnienia na przyszłe zajęcia:
  • powtórzenie całego materiału
  • RS232/UART – komunikacja z komputerem PC
3. Propozycja oceny – zaliczenie kursu

Warunki zaliczenia: Link

Zadanie 3.1

  • przedstawienie propozycji oceny
  • odpowiedź ustna