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 , 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ł:
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ć !
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:
Prześlij komentarz