LinkedIn YouTube Facebook
Szukaj

Newsletter

Proszę czekać.

Dziękujemy za zgłoszenie!

Wstecz
IoT

iNEMO: STM32F103 i MEMS-y

Jednym z dwóch żyroskopów zamontowanych na płytce iNEMO jest układ LPR430AL, oczywiście produkcji firmy STMicroelectronics. Wspomniany układ scalony to dwuosiowy (osie pitch i roll, patrz rysunek 3) żyroskop o wyjściach analogowych. Typowy schemat aplikacyjny przedstawiono na rysunku 4. W zależności od wymagań interfejs analogowy może zostać podłączony do wyprowadzeń wzmacniających wynik pomiaru cztery razy, lub do zwykłych wyprowadzeń, pozbawionych wzmacniaczy. Zakres pomiarowy jest powiązany z typem wyjść analogowych. Korzystając z wyprowadzeń, które nie wzmacniają sygnału z przetwornika, można osiągnąć zakres ± 1200 stopni na sekundę. Jeśli wykorzystamy wyjścia wzmacniające to, jak łatwo się domyślić, zwiększymy dokładność pomiaru, lecz kosztem ograniczenia zakresu do ± 300 dps. Zestaw iNEMO daje możliwość konfiguracji, z którego zakresu chcemy korzystać.

Sensor zamykany jest w bezwyprowadzeniowej obudowie LGA (Land Grid Array), której błogosławieństwem i przekleństwem jednocześnie są małe wymiary. W zasadzie jedyną możliwą metodą montażu jest lutowanie rozpływowe, co w niektórych amatorskich przypadkach skutecznie wyeliminuje ten układ z zastosowania.

 

Rys. 4. Schemat aplikacyjny żyroskopu LPR430AL

Rys. 4. Schemat aplikacyjny żyroskopu LPR430AL

 

 

Rys. 5. Oś pomiarowa układu LY330ALH

Rys. 5. Oś pomiarowa układu LY330ALH

 

 

Drugim z dostępnych w zestawie iNEMO żyroskopów jest jednoosiowy układ LY330ALH. Jego sensor jest przystosowany do reagowania na obrót wokół osi yaw, czyli jest to oś przechodząca prostopadle przez obudowę układu, tak jak przedstawiono to na rysunku 5. Żyroskop pozwala mierzyć prędkości kątowe z zakresie ± 300 dps, a wynik pomiaru jest wyprowadzony na zewnątrz w postaci analogowej. Podobnie, jak miało to miejsce w przypadku poprzedniego układu, również ten zamykany jest w obudowie LGA.

Akcelerometr i magnetometr LSM303DLH

Niemniej ciekawym od żyroskopów układem jest LSM303DLH. Inżynierowie firmy STMicroelectronics zamknęli w jednej obudowie trójosiowy akcelerometr oraz trójosiowy miernik pola magnetycznego. W odróżnieniu do poprzednich układów tutaj mamy już do dyspozycji cyfrowy interfejs I2C. Może on pracować ze standardową prędkością do 100 kHz lub w trybie szybkim, czyli z taktowaniem linii zegarowej do 400 kHz. Konfigurowalne watchdogi oraz tryby obniżonego poboru mocy pozwalają na znaczne obniżenie konsumpcji energii w rozwiązaniach zasilanych bateryjnie. Kombinacja akcelerometru i magnetometru w jednym sprawia, że łatwo można tworzyć aplikacje, których zadaniem jest orientacja w przestrzeni. Typowymi przedstawicielami takich aplikacji mogą być sterowniki do konsol do gier lub elektroniczne kompasy.

Czujnik ciśnienia LPS001DL

Układ LPS001DL jest piezorezystancyjnym czujnikiem ciśnienia z mostkiem Wheatstone’a. Cechuje go duża rozdzielczość, wynosząca do 0,1 mbar, oraz odporność na stresy nawet do 10000 g. Zakres pomiarowy może się wahać w granicach od 300 mbar do 1100 mbar. Dzięki temu, że okno, przez które krzemowa membrana ma kontakt z mierzonym ciśnieniem zostało od wierzchniej strony obudowy, płytka drukowana może być wykonana w standardowej technologii.

Przedstawiany czujnik ciśnienia ma wbudowany 16-bitowy przetwornik A/C, który dostarcza wynik pomiaru w postaci cyfrowej przez interfejs I2C lub SPI. Przerzucenie zadań przetwarzania analogowo-cyfrowego na barki sensora znacznie upraszcza aplikację dla mikrokontrolera, a co za tym idzie – daje możliwość zastosowania tańszego układu (bez dokładnych przetworników A/C). Ciekawą funkcjonalnością układu LPS001DL jest programowalny generator dwóch przerwań. Wyprowadzenia przerwań LPS001DL mogą zostać podłączone do wejść mikrokontrolera i, po przekroczeniu ustawianych progów, na takim wyprowadzeniu pojawi się sygnał, który może być dalej przez MCU interpretowany jako przerwanie zewnętrzne.

Czujnik temperatury STLM75

Na płytce iNEMO nie mogło oczywiście zabraknąć czujnika temperatury. W tej roli użyto układu STLM75, jest to odpowiednik popularnego LM75 o nieco poprawionych parametrach. Odczyt temperatury odbywa się na drodze cyfrowej z wykorzystaniem interfejsu I2C. Układ jest fabrycznie kalibrowany i nie wymaga żadnych dodatkowych elementów kompensacyjnych. Niezbędny jest jedynie kondensator filtrujący napięcie zasilania oraz rezystory podciągające dla linii cyfrowych. Adres na magistrali I2C ustala się przez wymuszanie odpowiednich stanów logicznych na wyprowadzeniach A0..2, przy czym odpowiadają one za młodsze trzy bity adresu. Budowa adresu jest zgodna ze schematem 1001A2A1A0. Układ zamykany jest w przyjaznej obudowie SO8 lub TSSOP8, więc z potencjalnym montażem we własnej aplikacji nie powinno być żadnych problemów.

Firmware

Tym, co najbardziej interesuje praktykującego elektronika/programistę jest zastosowanie niezwykłych możliwości układów z zestawu iNEMO we własnych aplikacjach. W tym miejscu czeka na inżynierów bardzo miła niespodzianka, do zestawu dostajemy źródła aplikacji demonstracyjnej po stronie mikrokontrolera. Ogromne znaczenie ma również fakt, że program napisano w oparciu o darmowy system operacyjny FreeRTOS.

Komunikacja z komputerem PC odbywa się przez wirtualny port szeregowy z użyciem dedykowanego protokołu ramek. Każda ramka może się składać z maksymalnie 64 bajtów. Pierwszy bajt to pole kontrolne, niesie ze sobą miedzy innymi informacje o rodzaju ramki, potwierdzeniu oraz wersji protokołu. Drugi bajt zawiera długość części danych, maksymalna wartość to 61. Ostatni, trzeci, bajt nagłówka to ID wiadomości.

Aplikacja demonstracyjna

Na potrzeby przetestowania możliwości iNEMO, firma ST przygotowała program służący do wizualizacji mierzonych parametrów. Przykładowy rzut ekranu przedstawiono na rysunku 6.

 

Rys. 6. Aplikacja wizualizująca wyniki pomiarów sensorów z płytki iNEMO

Rys. 6. Aplikacja wizualizująca wyniki pomiarów sensorów z płytki iNEMO

 

 

Można wybrać grupę sensorów, które będą monitorowane w czasie rzeczywistym. Konfigurowalne są również parametry logowania danych: ilość zapisywanych próbek oraz częstotliwość ich odczytywania. Program pozwala na chwilę zabawy, której wynikiem powinno być między innymi poczucie różnicy w efekcie działania akcelerometru oraz żyroskopu. O ile teoretyczne zasady działania obydwu można bez problemu wyczytać z książek, o tyle poczucie na własnej skórze różnic w działaniu trudno przecenić.