Systemy wbudowane 2017 - ogłoszenia

Będę tu umieszczał wszelkie ogłoszenia związane z SW, równolegle ze SKOS. Moodle niestety nie ma najwygodniejszego interfejsu, a powiadomienia mailowe ze SKOSa zdają się docierać z opóźnieniem, mam nadzieję, że pisząc też tutaj coś ułatwię.

Ze względu na dni rektorskie wokół dnia Wszystkich Świętych, piątkowy wykład (3 listopada 2017) będzie mieć charakter repetytorium i nie będzie wprowadzał nowego materiału (chyba że o coś zapytacie). Pracownia odbędzie się normalnie.

5 polubień

Została opublikowana lista zadań numer 3 dotycząca korzystania z przetwornika analogowo-cyfrowego (ADC).

Z powodu różnic w bootloaderze w różnych wersjach Arduino, niektóre osoby mogą otrzymać komunikację 19200 baud zamiast 9600 przy użyciu przykładowego programu ze SKOS do obsługi UART. Przyczyną jest ustawienie w bootloaderze niektórych wersji Arduino bitu U2X0 w rejestrze UCSR0A, co podwaja baudrate. Aby poprawić problem, należy dodać do inicjalizacji UART czyszczenie rejestru UCSR0A:

UCSR0A = 0;

Zmodyfikowany program przykładowy został wgrany na SKOS.

Została opublikowana lista zadań nr 4 dotycząca obsługi przerwań i zarządzania energią.

Została opublikowana lista zadań nr 5 dotycząca komunikacji przy użyciu protokołów SPI i I2C.

Osoby, które chcą wypożyczyć układ SCT2168 (driver LED, zadanie nr 2) mogą to zrobić w czasie dzisiejszych i piątkowych ćwiczeń, lub po wcześniejszym uzgodnieniu.

W związku z awarią systemu CAS (dostarczającego usługę logowania do SKOS) publikuję treści zadań z listy nr 5.

  1. Podłącz układ EEPROM I2C 24C04 do pinów TWI. Zaimplementuj program umożliwiający zapisywanie i odczytywanie danych wewnątrz układu. Możesz wykorzystać przykładowe procedury obsługi I2C zdefiniowane w książce Make: AVR Programming. Komunikacja z programem ma się odbywać przez UART, program powinien obsługiwać następujące polecenia:

    • read addr – odczyt bajtu z adresu addr,
    • write addr value – zapis pod adres addr wartości value,
    • read addr length – odczyt length bajtów od adresu addr, dane należy wypisać w formacie I8HEX,
    • write – zapis danych, kolejne wiersze powinny zawierać dane w formacie I8HEX.

    Zaimplementowanie każdego z podpunktów jest warte jeden punkt. [4]

  2. Wykorzystaj układ drivera LED SCT2168 (do wypożyczenia), aby zrealizować efekt przewijającej się diodki (Knight Rider / oczy Cylonów). Wykorzystanie układu pozwoli na użycie diod świecących bez rezystorów w szeregu. Jako Rext można wykorzystać rezystor 2.2kΩ (2k2). Pin OE/ należy połączyć na stałe z GND, natomiast pin LA/ powinien być sterowany z wybranego pinu wyjściowego zgodnie z obrazkiem “Timing diagram” w nocie katalogowej SCT2168 (str.3). Należy wykorzystać wbudowany w mikrokontroler podsystem SPI (MOSI - SDI, SCK - CLK); sterowanie układem programowo (bit-banging) obniży punktację o 1 punkt. [3]

  3. Zrealizuj za pomocą dwóch Arduino (zadanie można wykonać w dwie osoby) grę typu zgadnij liczbę.
    Pierwsze Arduino (SPI slave) powinno wylosować liczbę M z zakresu 0-99, po czym przy użyciu protokołu SPI odpowiadać na pytania – czy zadana liczba N jest mniejsza, większa czy równa liczbie M? (Można to zrobić przez dwa zapytania na magistrali: w pierwszym master podaje liczbę N, slave odsyła 0; w drugim master wysyła 0, slave odsyła wartość 1/0/-1). Jeśli master zgadł, liczba M powinna zostać wylosowana ponownie.
    Drugie Arduino (SPI master) powinno odczytać przez UART liczbę N z komputera, spytać o nią slave’a, po czym zaprezentować wynik (np. mignąć jedną z trzech diod i napisać komunikat przez UART). [4]

  4. Połącz przewodami wybrane cztery piny Arduino z pinami MISO, MOSI, SCK, SS. Skonfiguruj kontroler SPI jako slave. Napisz program, który będzie programowo (przez odczyty i zapisy wartości pinów – tak zwany bit-banging) pracował jako SPI master i komunikował się z wbudowanym kontrolerem SPI (np. przesyłając kolejno liczby 1, 2, 3…). Odbieraj dane z kontrolera SPI (rejestr SPDR) i sprawdzaj, czy odebrane liczby są równe wysłanym. [2]

Uwaga! Używając wbudowanego kontrolera SPI jako master należy pamiętać o ustawieniu pinów MOSI, SCK i SS (PB3, PB5, PB2) jako wyjścia. (Nota katalogowa Atmega328P, podpunkt 23.3.2).

Została opublikowana wstępna wersja listy nr 6. W godzinach zajęć w tym tygodniu będzie można wypożyczyć elementy potrzebne do jej wykonania - silniki DC, sterowniki silników oraz serwa modelarskie.