sobota, 3 października 2015

Raspberry Pi 2 & Windows 10 IoT Core - odc.3: SPI (MCP3008 + potencjometr)

He, he,  można powiedzieć, że aby oswoić bardziej “malinę”, organizuję sobie “laborki z elektroniki cyfrowej” we własnym domu. Jest to jakieś nawiązanie do kilku semestrów studenckich czasów, tyle że przy udziale Raspberry Pi 2 i Windows 10 IoT. Tym razem padło na szeregową komunikację SPI na przykładzie mierzenia oporu za pomocą przetwornika analogowo-cyfrowego. 

Co to jest SPI?  Skoro zaczęliśmy w duchu studenckim, odsyłam do wykładu http://www.ien.pw.edu.pl/EAZ/_pdf/wykl_cz1.pdf Winking smile, w którym dość wyczerpująco został opisany ten rodzaj komunikacji (i nie tylko). Używanie SPI na przykładzie przetwornika A/C MCP3002 zostało bardzo dobrze pokazane w webcaście 13 Raspberry PI 2 i SPI – czyli jak podłączać różne sensory do RPI używając szyny SPI. Ja jednak mam w ręku układ MCP3008, nie MCP3002. Przeczytałem sobie do niego dokumentację. To także przetwornik 10-bitowy, ale z 8 kanałami (zamiast 2). Ma też więcej nóżek i do komunikacji używa 3 bajtów zamiast 2. Praktyczne przykłady podłączenia MCP3008 do “maliny” znajdziemy choćby na stronie Raspberry Pi YL-69 + MCP3008 czyli analogowy odczyt z czujnika wilgotności gleby czy Raspberry Pi Odczyt informacji z potencjometr obrotowy 10 k Ohm liniowy 1/8 W i układ MCP3008.  Na podstawie zdobytej wiedzy zbudowałem sobie układ wykorzystujący jeden kanał:

03_mcp3008_trimpot_spi_bb

Kanał zero z MCP3008 podpięty jest do potencjometru 10k, który połączony jest z szyną +3.3V.  V dd  i V ref  także są do niej podpięte. Masy cyfrowa i analogowa układu podpiete są do szyny z masą. Połączenia do SPI między przetwornikiem a maliną przedstawiają się następująco:  CLK – SPI0 SCLK, D out – SPI0 MISO, D in – SPI0 MOSI, CS – SPI0 CS0.  Aplikację ze wspomnianego wyżej webcastu zmodyfikowałem sobie, tak by obsługiwała jeden kanał  i układ MCP3008.  Do przetwornika wysyłam tablicę bajtów:  0x01, 0x80, 0x00. W metodzie convertToInt zamiast pierwszego i drugiego bajtu przetwarzam w taki sam sposób drugi i trzeci. Wszystko ładnie od razu zaczęło nawet działać !

WP_20151004_01_28_40_Pro

WP_20151004_01_21_33_Pro

P.S  Na stronie What’s next for Windows 10 IoT Core pojawiły się nowe wieści nt. Windows 10 IoT. Oprócz zapowiedzi udoskonaleń w kolejnej wersji warto wiedzieć, że wraz z Adafruit został przygotowany zestaw z podzespołami kompatybilnymi z tym systemem.

c.d.n

Brak komentarzy: