Wytyczne, instrukcje do zajęć prowadzonych w formie zdalnej

zajęcia są wykonywane przy użyciu minikomputera Raspberry Pi 3 B+ z podłączonymi modułami.Szczegółowe informacje o RP i sposobie wykorzystania interfejsów można znaleźć w internecie.

Adres IP do połączenia: 156.17.40.205 port:2020

Uwaga – nowe warunki zaliczenia, wytyczne do kolejnych laboratoriów opisane na dole strony.

Kod programu tworzymy w języku C.

Raspberry Pi to minikomputer z zainstalowanym system linux. Adres komputera podany przy laboratorium.

  1. Logowanie: login:student hasło:PWR2020 – dostęp po ssh (np. program putty). Do łatwego kopiowania plików pomiędzy raspberry a własnym komputerem/tworzenia katalogów/ kasowania plików można skorzystać z oprogramowania WinSCP.
  2. Po zalogowaniu przechodzimy do /home/student i tworzymy nowy katalog o nazwie LAB1.1-14587 (gdzie LAB1.1 to numer laboratorium, 14587 – numer indeksu jednej osoby z grupy)
  3. w założonym folderze tworzymy plik „main.c” i umieszczamy w nim kod programu
  4. kompilacja: gcc -Wall -o program main.c -lwiringPi
  5. uruchomienie programu: ./program
  6. po zakończonych ćwiczeniach należy skopiować kod na swój komputer i skasować utworzony wcześniej folder
  7. zalecane jest aby jednocześnie pracowała jedna grupa, w przeciwnym razie mogą powstać konflikty dostępu do podłączonych modułów i błędy – można to sprawdzić po istnieniu folderu LABxxx – dlatego rozpoczynając pracę sprawdzamy czy jest taki folder, jeśli ie ma to tworzymy nowy, wykonujemy prace, kasujemy.

Podstawowe polecenia systemu linux:

  • mkdir LAB1.1-14587 – tworzy folder LAB1.1-14587
  • ls – wyświetla listę plików/folderów w danej lokalizacji
  • pwd- wyświetla ścieżkę danej lokalizacji
  • cd LAB1.1-14587 – wchodzi do katalogu LAB1.1-14587
  • cd .. – wychodzi do katalogu nadrzędnego
  • gcc -Wall -o program main.c -lwiringPi – kompiluje plik main.c zawierający program do programu o nazwie: program
  • rm -r LAB1.1-14587 – kasuje katalog LAB1.1-14587
  • ctl+c lub ctrl+x – zakończenie uruchomionego programu
Wytyczne do przygotowania sprawozdania z LAB 1.2:
  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ć: tytuł kursu, 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 opis wykonanych prac, schemat podłączenia modułu, kod oprogramowania realizujący założenia ćwiczenia (kompletny kod z pliku main.c), jeśli są jakieś inne pliki to należy również umieścić ten kod w sprawozdaniu,
  6. do każdego zadania należy umieścić zdjęcie z terminala, gdzie program wyświetli w jednej linii „Praca studentów: 1458,1478 -6.05.2020”, czyli numery indeksów i date wykonania a pod spodem wyniki z zadania
  7. każda linia tworzonego oprogramowania (kodu, który jest autorski) musi być zaopatrzona w komentarz opisujący funkcję tego kawałka kodu,
  8. sprawozdanie należy wysłać z adresu email uczelnianego jednego z autorów na adres prowadzącego zajęcia. Przykładowy temat wiadomości: IK-LAB1.1-1458,1478 (gdzie LAB1.1 – numer aktualnie wykonywanego laboratorium, 1458,1478- numery indeksów autorów sprawozdania),
  9. 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.2 (I2c-MPU6050)
  1. zapoznajemy się z instrukcją do laboratorium (IK-LAB1.2),
  2. zapoznać z funkcjami do obsługi I2C: link
  3. jak działa interfejs I2c, najważniejsze cechy, parametry pracy, przykładowe podłączenie – napisać jeden rozdział w sprawozdaniu,
  4. ściągnąć plik: I2C_MPU6050
Zadanie 1

Uzupełnić kod programu tak aby dokonał odczytu wartości rejestru o nazwie „WHO_AM_I”. Wartość wyświetlić na ekranie i porównać z dokumentacją. Do czego służy taki rejestr?

Zadanie 2

Napisać program, który odczyta temperaturę (rejestry „TEMP_OUT_H” i „TEMP_OUT_L”) i wyświetli ją w stopniach Celsjusza. Należy zwrócić uwagę na typy zmiennych TEMP_OUT – „16-bit signed value”.

Zadanie 3

Jak działa żyroskop cyfrowy i akcelerometr. Opisać działanie.

Napisać program, który odczyta dane z żyroskopu i akcelerometru (rejestry „ACCEL_XOUT_H”, ….  i „GYRO_XOUT_H”,…) dla każdej osi, przeliczyć i wyświetlić.

Zadanie 4

Wykorzystać dane z zadania 3 do zrobienia cyfrowej poziomnicy. Wyświetla stopnie w zależności od położenia czujnika.

 

Na dole strony został zamieszczone przykładowe programy, można uruchomić i sprawdzić odczyty z układów w danym momencie.

Utworzyć sprawozdanie z wykonanych zadań i przesłać do prowadzącego do dnia 13.05.2020

Laboratorium 1.3 (I2C – RTC, EEPROM)
  1. zapoznajemy się z instrukcją do laboratorium (IK-LAB1.3),
  2. wykorzystać funkcję do obsługi I2C z poprzedniego laboratorium,
Ćwiczenie 1

Co to jest układ RTC? Do czego się go wykorzystuje, gdzie można znaleźć? Do czego służy wyprowadzenie „SQW/OUT”?

Co to jest pamięć EEPROM? Czy różni się od pamięci Flash i RAM? Do czego służą wyprowadzenia A0,A1,A2? Jak działa i co możemy uzyskać za pomocą wyprowadzenia „WP”?

Ćwiczenie 2

Przygotować program, który odczytana datę z układu RTC i wyświetli w formacie: 2020-05-14 12:30:20.

Ćwiczenie 3

Przygotować program, który umożliwi ustawienie daty w układzie RTC.

Ćwiczenie 4

Przygotować program, który umożliwi odczyt pojedynczej liczby 8-biotwej z podanego adresu pamięci EEPROM.

Ćwiczenie 5

Przygotować program, który umożliwi zapis pojedynczej liczby 8-biotwej do podanego adresu w pamięci EEPROM.

Przykładowy program dla pamięci EEPROM:

 

Na dole strony został zamieszczone przykładowe programy, można uruchomić i sprawdzić odczyty z układów w danym momencie.

Ćwiczenie i notatki z wykonanych zadań należy wykonać do dnia 20.05.2020 – szczegóły formy zaliczenia na końcu strony.

Laboratorium 1.4 (SPI – BMP280)
  1. jak działa interfejs SPI, najważniejsze cechy, parametry pracy, przykładowe podłączenie – napisać jeden rozdział w sprawozdaniu
  2. zapoznanie się z dokumentacją czujnika ciśnienia BMP280: link
  3. ściągnąć pliki: link
Zadanie 1

Uruchomić program z paczki, co robi program. Czy odczytywana wartość jest zgodna z dokumentacją?

Zadanie 2

Odczytać temperaturę mierzoną przez układ, przeliczyć na stopnie Celsjusza i wyświetlić.

Zadanie 3

Odczytać ciśnienie atmosferyczne mierzone przez układ, przeliczyć na hPa i wyświetlić.

 

Uwagi: odczyt danych po SPI jest zamieszczony w przykładowym pliku, więc analogicznie należy odczytać kolejne rejestry. Aby przeliczyć temperaturę i ciśnienie należy zastosować formułę podaną na stronie 22 dokumentacji.

Konfiguracja:

  • rejestr „ctrl_meas” – ustawić tryb „Normal” – diagram na stronie 17,  oversampling – dla pomiaru ciśnienia i temperatury,
  • rejestr „config” – ustawić bity „t_sb”.

 

Na dole strony został zamieszczone przykładowe programy, można uruchomić i sprawdzić odczyty z układów w danym momencie.

 

Ćwiczenie i notatki z wykonanych zadań należy wykonać do dnia 7.06.2020 – szczegóły formy zaliczenia na końcu strony.

Laboratorium 1.5 (program końcowy)

Adres modułu MPU6050 na I2C zmienił się i obecnie wynosi: 0x69.

Przygotować program końcowy, który będzie posiadał menu. Wybór opcji z menu odbywać będzie się na podstawie wybranego numeru zgodnego z następującą listą:

  • „1” – odczytanie temperatury z modułu MPU6050
  • „2” – odczytanie wartości pomiarów z akcelerometru i żyroskopu
  • „3” – odczytanie aktualnej daty z modułu RTC, forma wyświetlenia: 2020-05-14 12:30:20
  • „4” – możliwość ustawienia nowej daty dla modułu RTC – datę należy wprowadzić na terminalu
  • „5” – odczytanie 16-bitowej wartości z pamięci EEPROM spod podanego adresu, użytkownik jest pytana spod jakiego adresu chce odczytać wartość
  • „6” – możliwość zapisania 16-bitowej wartości do pamięci EEPROM pod podany adres, użytkownik wprowadza najpierw adres a potem liczbę do zapisania
  • „7” – BMP280 – odczytanie ID modułu, temperatury i ciśnienia atmosferycznego
  • „9” – wyświetlenie informacji o autorach (imię, nazwisko, numer indeksu)
  • „0” – wyświetla informacje o dostępnych opcjach do wyboru, wyświetla listę funkcji

 

wszystkie funkcje powinny prezentować wynik na terminalu i być możliwe do uruchomienia na prezentacji programu.

 

Laboratorium 1.6
  1. Termin 9-10.06.2020 lub 15-16.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-15 minut, (5 minut na przygotowanie oprogramowania, 10 minut prezentacja i rozmowa),
  3. ostateczne omówienie sprawozdań, 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.2 w podanym terminie,
  2. wykonanie ćwiczeń w ramach LAB 1.3 – 1.5, 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. przygotowanie sprawozdania końcowego, zawierającego opis z wykonanych prac realizujących zakres programu z LAB 1.5, wysłanie do dnia 8.06.2020,
  5. prezentacja online działania programu w ramach konsultacji w terminie laboratorium 1.6,
  6. po prezentacji, zapoznaniu się ze sprawozdaniem końcowym przez prowadzącego nastąpi wystawienie oceny końcowej.

 

Wytyczne do przygotowania sprawozdania końcowego:
  1. pracujemy w grupach 1-2 osobowych – jedna grupa, jedno sprawozdanie,
  2. sprawozdanie tworzymy w formacie A4, strona pierwsza musi zawierać: tytuł kursu, temat laboratorium, autorów sprawozdania, datę wykonania, imię i nazwisko prowadzącego (przykładowa strona),
  3. do każdego funkcji należy umieścić zdjęcie z terminala przedstawiające jej działanie,
  4. każda linia tworzonego oprogramowania (kodu, który jest autorski) musi być zaopatrzona w komentarz opisujący funkcję tego kawałka kodu,
  5. sprawozdanie należy wysłać z adresu email uczelnianego jednego z autorów na adres prowadzącego zajęcia. Przykładowy temat wiadomości: IK-SPR-końcowe-1458,1478 (gdzie 1458,1478- numery indeksów autorów sprawozdania),
  6. sprawozdawanie to jeden plik PDF o nazwie (IK-SPR-1458_1478.pdf), w sprawozdaniu mają być umieszczone kody programu końcowego, nie umieszczamy programu jako załączniki,
  7. kompletne i własne sprawozdanie końcowe należy wysyłać do określonego terminu.
Schemat sprawozdania końcowego:
  • 1 – „Interfejs I2C” – opisać jak działa interfejs, krótki opis i przykładowy schemat podłączenia
  • 1.1 – „Układ MPU6050” – opisać funkcje układu, zamieścić treści dotyczące funkcji 1 i 2
  • 1.2 – „Układ  DS1307” – opisać funkcje układu, zamieścić treści dotyczące funkcji 3 i 4
  • 1.3 – „Układ  AT24C32” – opisać funkcje układu, zamieścić treści dotyczące funkcji 5 i 6
  • 2 – „Interfejs SPI” – opisać jak działa interfejs, krótki opis i przykładowy schemat podłączenia
  • 2.1 „Układ  BMP280” – opisać funkcje układu, zamieścić treści dotyczące funkcji 7
  • 3 „Wnioski” – co udało się nauczyć w ramach laboratoriów, co było łatwe a co stwarzało największe problemy. Czy forma zdalnych zajęć i nauka na Raspberry Pi była ciekawą formą zastąpienia standardowych laboratoriów?
Przykładowe programy:
  • „MPU_6050” – polecenie: „zostanie uzupełnione” – odczytuje dane z modułu MPU6050
  • „RTC_test_read” – polecenie: „/home/test/RTC_test_read.out” – odczytuje ustawiony czas w module RTC
  • „RTC_test_reset” – polecenie: „/home/test/RTC_test_reset.out” – zeruje czas w module RTC
  • „BMP280” – polecenie: „/home/test/BMP280_run.out” – odczytuje dane z modułu BMP280