diff --git a/Instrukcje.md b/Instrukcje.md index eb43b26e82297efef98cb2995911517d55b055f0..bf0b96d84ad3e3738c6c6a1e7c8bc5a2b4a938a6 100644 --- a/Instrukcje.md +++ b/Instrukcje.md @@ -127,7 +127,7 @@ PrzykĹadowo, funkcja wĹÄ czajÄ ca LED, bsp_board_led_on, ma nastÄpujÄ cÄ im Timer jest podukĹadem odpowiedzialnym za mierzenie czasu. -W najprostszej postaci skĹada dsiÄ z licznika, czyli rejestru inkrementujÄ cego swojÄ wartoĹÄ z kaĹźdym impulsem zegara ukĹadu. +W najprostszej postaci skĹada siÄ z licznika, czyli rejestru inkrementujÄ cego swojÄ wartoĹÄ z kaĹźdym impulsem zegara ukĹadu. Setup timera zazwyczaj polega na ustawianiu alarmĂłw. Gdy licznik dojdzie do odpowiedniej liczby ustawionej przez alarm, zostaje wywoĹane przerwanie. @@ -173,7 +173,7 @@ Nrf52 zawiera wewnÄtrzny czujnik temperatury. WartoĹÄ jego odczytywana jest z ## Fototranzystor -Tranzystory sÄ elementami elektronicznymi ktĂłre przewodzÄ prÄ d warunkowo. Warunkiem otwarcia kanaĹu i przepĹywu prÄ du miÄdzy gĹĂłwnymi pinami tranzystora jest zazwyczaj wartoĹÄ napiÄcia lub prÄ du na dodatkowym pinie zwanym bramkÄ lub bazÄ (zaleĹźnie od rodzaju tranzystora). W przypadku fototranzystora zamiast dodatkowego pinu mamy czujnik ĹwiatĹa. Im wiÄksze natÄĹźenie ĹwiatĹa padajÄ ce na czujnik, tym wiÄkszÄ przewodnoĹÄ ma fototranzystor. PodĹÄ czajÄ c fototranzystor do mikrokontrolera moĹźemy stworzyÄ prosty detektor ĹwiatĹa, +Tranzystory sÄ elementami elektronicznymi ktĂłre przewodzÄ prÄ d warunkowo. Warunkiem otwarcia kanaĹu i przepĹywu prÄ du miÄdzy gĹĂłwnymi pinami tranzystora jest zazwyczaj wartoĹÄ napiÄcia lub prÄ du na dodatkowym pinie zwanym bramkÄ lub bazÄ (zaleĹźnie od rodzaju tranzystora). W przypadku fototranzystora zamiast dodatkowego pinu mamy czujnik ĹwiatĹa. Im wiÄksze natÄĹźenie ĹwiatĹa padajÄ ce na czujnik, tym wiÄkszÄ przewodnoĹÄ ma fototranzystor. PodĹÄ czajÄ c fototranzystor do mikrokontrolera moĹźemy stworzyÄ prosty detektor ĹwiatĹa. <p align="center"> <img src="./instrukcje_img/fototrans.png" "Title" width=200 > @@ -195,9 +195,9 @@ img: https://www.vhv.rs/viewpic/iJxRhbb_free-vector-electronic-phototransistor-p W przypadku diody w lab1 API nrf52 zajÄĹo siÄ wszystkimi niskopoziomowymi problemami za nas, by zapaliÄ diodÄ. JeĹli chcemy wysterowaÄ lub odczytaÄ inny element musimy napisaÄ sterownik samemu. Do tego moĹźemy uĹźyÄ znanego juĹź GPIO lub ADC (Analog-Digital Converter), korzystajÄ c z niskopoziomowego API tych moduĹĂłw. -PodĹÄ czmy nasz fototranzystor podobnie jak diodÄ z lab1, lecz ustawmy GPIO w tryb wejĹcia. Wtedy zmiana stanu fotorezystora pod wpĹywem ĹwiatĹa wznowi lub zatrzyma przepĹyw prÄ du. Jest do jednoznaczne z podĹÄ czeniem naszego pinu GPIO z napiÄciem 3.3V (gdy tranzystor przewodzi - tworzy poĹÄ czenie miÄdzy swoimi pinami), lub odĹÄ czeniem go od tego zasilania (gdy tranzystor nie przewodzi). Innymi sĹowy fototranzystor staje siÄ swego rodzaju przeĹÄ cznikiem. Za pomocÄ API GPIO jesteĹmy w stanie odczytaÄ wartoĹÄ na pinie GPIO w naszej aplikacji jako jedynkÄ lub zero. +PodĹÄ czmy nasz fototranzystor podobnie jak diodÄ z lab1, lecz ustawmy GPIO w tryb wejĹcia. Wtedy zmiana stanu fototranzystora pod wpĹywem ĹwiatĹa wznowi lub zatrzyma przepĹyw prÄ du. Jest do jednoznaczne z podĹÄ czeniem naszego pinu GPIO z napiÄciem 3.3V (gdy tranzystor przewodzi - tworzy poĹÄ czenie miÄdzy swoimi pinami), lub odĹÄ czeniem go od tego zasilania (gdy tranzystor nie przewodzi). Innymi sĹowy fototranzystor staje siÄ swego rodzaju przeĹÄ cznikiem. Za pomocÄ API GPIO jesteĹmy w stanie odczytaÄ wartoĹÄ na pinie GPIO w naszej aplikacji jako jedynkÄ lub zero. -Problem jaki siÄ tu pojawia to jednowÄ tkowoĹÄ naszego mikrokontrolera. Odczyt wartoĹci GPIO jest instrukcjÄ , liniÄ w kodzie, wiÄc jeĹli chcielibyĹmy wykonaÄ jakÄ Ĺ operacjÄ gdy zmieni siÄ wartoĹÄ natÄĹźenia ĹwiatĹa musielibyĹmy czytaÄ tÄ wartoĹÄ w pÄtli i czekaÄ aĹź siÄ zmieni (polling). Pilnowanie tej wartoĹci i robienie innych operacji nie wchodzi wtedy w grÄ. Na pomoc przychodzÄ nam przerwania - moĹźemy ustawiÄ je tak by zmiana wartoĹci na pinie GPIO generowaĹa przerwanie. DziÄki temu nasz program bÄdzie mĂłgĹ siÄ zajÄ Ä innymi operacjami podczas tego oczekiwania. +Problem jaki siÄ tu pojawia to jednowÄ tkowoĹÄ naszego mikrokontrolera. Odczyt wartoĹci GPIO jest instrukcjÄ , liniÄ w kodzie, wiÄc jeĹli chcielibyĹmy wykonaÄ jakÄ Ĺ operacjÄ gdy zmieni siÄ wartoĹÄ natÄĹźenia ĹwiatĹa musielibyĹmy czytaÄ tÄ wartoĹÄ w pÄtli i czekaÄ aĹź siÄ zmieni (polling). Pilnowanie tej wartoĹci i robienie innych operacji nie wchodzi wtedy w grÄ. Na pomoc przychodzÄ nam przerwania - moĹźemy ustawiÄ je tak by zmiana wartoĹci na pinie GPIO generowaĹa przerwanie. DziÄki temu nasz program bÄdzie mĂłgĹ siÄ zajÄ Ä innymi operacjami podczas tego oczekiwania. ## Zadania @@ -226,7 +226,7 @@ Warto pamiÄtaÄ, Ĺźe wszystkie popularne standardy komunikacji bezprzewodowej ( Podobnie jak protokóŠTCP/IP, BLE ma swĂłj wĹasny stos (rys.). PiszÄ c aplikacje oparte na BLE bÄdziemy operowaÄ na dwĂłch warstwach stosu BLE: GAP i GATT. -Nrf52 implementuje stos ble jako osobny program zwany softdevice, ktĂłry dziaĹa na osobnym dedykowanym rdzeniu. Aplikacja ktĂłra korzysta z protokoĹu BLE, bÄdzie komunikowaÄ siÄ z softdevice za pomocÄ funkcji z przedrostkiem âsd_â np. sd_ble_gap_adv_start. +Nrf52 implementuje stos BLE jako osobny program zwany softdevice, ktĂłry dziaĹa na osobnym dedykowanym rdzeniu. Aplikacja ktĂłra korzysta z protokoĹu BLE, bÄdzie komunikowaÄ siÄ z softdevice za pomocÄ funkcji z przedrostkiem âsd_â np. sd_ble_gap_adv_start. @@ -282,7 +282,7 @@ img: https://infocenter.nordicsemi.com/index.jsp?topic=%2Fsds_s140%2FSDS%2Fs1xx% ## Zadania -BLE jest popularnym standardem komunikacji bezprzewodowej. Najprostszym urzÄ dzeniem BLE jest Beacon wykonujÄ cy Advertising. Advertising jest sposobem urzÄ dzeĹ BLE na "przedstawienie" siÄ nasĹuchujÄ cym klientom. Projekt lab4 posiada juĹź zaimplementowany advertising. Przetestuj go za pomocÄ aplikacji test.py ktĂłrÄ znajdziesz bezpoĹrednio na urzÄ dzeniu zdalnym. PoĹÄ czyÄ siÄ do niego moĹźna przez SSH. (ssh -p [port] lab@[ip] ). O port i IP naleĹźy siÄ spytaÄ prowadzÄ cego. Test wĹÄ czamy poprzez (python3 task.py) w folderze pmk. MoĹźna to teĹź osiÄ gnÄ Ä przez task BLEtest w VSCcode. +BLE jest popularnym standardem komunikacji bezprzewodowej. Najprostszym urzÄ dzeniem BLE jest Beacon wykonujÄ cy Advertising. Advertising jest sposobem urzÄ dzeĹ BLE na "przedstawienie" siÄ nasĹuchujÄ cym klientom. Projekt lab4 posiada juĹź zaimplementowany advertising. Przetestuj go za pomocÄ aplikacji test.py ktĂłrÄ znajdziesz bezpoĹrednio na urzÄ dzeniu zdalnym. NajĹatwiej jÄ wĹÄ czyÄ za pomocÄ tasku BLEtest w VSCode. Advertising moĹźe byÄ uĹźyty rĂłwnieĹź do przekazywania informacji. Ramka advertisingu posiada pole "manufacturer data", w ktĂłrym moĹźna zawrzeÄ kilka bajtĂłw informacji. Zawrzyj w tym polu wartoĹÄ stanu czujnika oĹwietlenia (0 lub 1). WartoĹÄ ta ma siÄ aktualizowaÄ za kaĹźdym razem gdy siÄ zmieni siÄ stan czujnika. W polu company_identifier wpisz 0x0059.