Image
9.2.2016 0 Comments

Vývoj pre Raspberry Pi 2 Snímanie analógových veličín

Vývojová doska Raspberry Pi 2 má okrem mnohých výhod vrátane výkonného hardvéru a podpory Windows 10 aj jedno obmedzenie. Nemá analógové vstupy a výstupy, ktoré sú pri niektorých scenároch nasadenia kľúčové, pretože väčšina veličín charakterizujúca reálny svet, napríklad teplota či intenzita osvetlenia, je analógová.

Našťastie sa spomínané obmedzenie dá jednoducho a lacno prekonať. Buď použijete niektorú rozširujúcu dosku s analógovo digitálnym prevodníkom, ktoré sme predstavili v predošlej časti seriálu, napríklad Explorer HAT, alebo si môžete kvalitný AD prevodník postaviť sami buď na univerzálnej prepojovacej doske, stačí vám úplne najmenšia, akú zoženiete, alebo na malom kúsku univerzálneho plošného spoja, alebo dokonca len tak ako „vrabčie hniezdo“. Náklady sú nižšie než 5 eur.

Na tento účel je vhodný integrovaný obvod MCP3002 (1,75 eura, Farnell) s dvoma analógovými vstupmi v  puzdre DIL s ôsmimi nožičkami, alebo ak potrebujete viac analógových vstupov, použijete ekvivalent MCP3008 (2,16 eura, Farnell), ktorý ich má osem a je v 16-nožičkovom puzdre DIL, ktoré má nožičky s rozstupom 2,5 mm, takže ho môžete zasunúť priamo do univerzálnej prepojovacej dosky. Výstupná hodnota sa z prevodníka prenáša cez sériové  rozhranie SPI. Komunikácia sa uskutočňuje pomocou štyroch vodičov MOSI (Master Out, Slave In), MISO (Master In, Slave Out), hodinového signálu SCK a CS (Chip Select).

Piny AD prevodníka MCP3002

Keďže nie sme periodikum typu Amatérskeho rádia a toto zapojenie opisujeme ako východisko z núdze, ktoré radikálne rozšíri možnosti dosky Raspberry Pi 2, uvedieme zapojenie tak, aby ho zvládli aj úplní začiatočníci. Preto najskôr vysvetlíme, ako funguje univerzálna prepojovacia doska. Má vnútri prepojené piny a drôtiky po jednotlivých stĺpcoch.

Vnútorné zapojenie univerzálnej prepojovacej dosky

Pripojenie najlepšie ilustruje schéma a na spresnenie pridávame aj tabuľku.

Prevodník

Raspberry Pi 2

VDD/VREF (Pin 8)

3.3V  (Pin 1)

CLK  (Pin 7)

SPI0 SCLK (Pin 23)

Dout  (Pin 6)

SPI0 MISO (Pin 21)

Din  (Pin 5)

SPI0 MOSI (Pin 19)

CS/SHDN  (Pin 1)

SPI0 CS0 (Pin 8)

Vss  (Pin 4)

GND (Pin 9)

Popis rozširujúceho konektora Raspberry Pi 2

Prevodník zasuňte do dutiniek prepojovacieho poľa. Na prepojovanie použite drôtiky odizolovanými koncami a ku konektoru dosky Raspberry sa pripojíte najjednoduchšie drôtikmi, ktoré majú na jednom konci dutinky vhodné na nasunutie na piny konektora.  Efektnejšie riešenie je prípravok Adafruit Pi T-Cobbler Breakout for Raspberry Pi (7 eur, Adafruit), ktorý sa zasunie do prepojovacieho poľa a káblom sa spojí s doskou Raspberry.

Pripojenie prepojovacieho poľa cez Adafruit Pi T-Cobbler

Na pin 2 CH0, čo je jeden z analógových vstupov prevodníka, pripojte jazdec potenciometra 10 kΩ s lineárnym priebehom, ktorý má v označení písmeno N.  LED dióda je cez obmedzovací odpor 330 Ω pripojený na GPIO 4.

Pripojenie AD prevodníka k vývojovej doske Raspberry Pi 2

V úvode sme spomínali možnosť postaviť AD prevodník bez prepojovacej dosky a plošného spoja. Najjednoduchšie priamo na nožičkách proti kusu rozširujúceho konektora alebo pre jednoúčelové zariadenie doslova ako „vrabčie hniezdo“.  Jedno takéto zapojenie sme videli na študentskej súťaži. Integrovaný obvod prevodníka bol hore nohami nalepený na kryte konektora USB a drôtiky boli prispájkované na nožičky obvodu a systémový konektor.

Príklad zapojenia

Softvér

Ak používate na Raspberry Pi 2 Windows 10 IoT Core, môžete si kompletný zdrojový kód stiahnuť z GitHubu (https://codeload.github.com/ms-iot/samples/zip/develop) a vo Visual Studiu otvoriť projekt samples-develop\PotentiometerSensor\CS\PotentiometerSensor.csproj. V súbore MainPage.xaml.cs v premennej ADC_DEVICE treba definovať typ použitého prevodníka: AdcDevice.MCP3002, AdcDevice.MCP3208 alebo AdcDevice.MCP3008. Skontrolujte číslo pinu GPIO pre LED. Pre projekt nastavte architektúru ARM, zostavte ho a cez voľbu Remote Machine zaveďte kód do mikrokontrolérovej dosky.

Uvedieme kľúčové fragmenty kódu.

Inicializácia SPI

private async Task InitSPI()

{

       try

       {

             var settings = new SpiConnectionSettings(SPI_CHIP_SELECT_LINE);

             settings.ClockFrequency = 500000;   /* 0.5MHz takt */

             settings.Mode = SpiMode.Mode0;     

 

             string spiAqs = SpiDevice.GetDeviceSelector(SPI_CONTROLLER_NAME);

             var deviceInfo = await DeviceInformation.FindAllAsync(spiAqs);

             SpiADC = await SpiDevice.FromIdAsync(deviceInfo[0].Id, settings);

       }

 

       catch (Exception ex)

       {

             throw new Exception("SPI ERROR", ex);

       }

}

 

Načítanie hodnoty z prevodníka

public void ReadADC()

{

       byte[] readBuffer = new byte[3];

       byte[] writeBuffer = new byte[3] {0x00,0x00,0x00 };

 

       writeBuffer[0] = MCP3002_CONFIG;

       //citanie údajov

       SpiADC.TransferFullDuplex(writeBuffer, readBuffer);

       adcValue = convertToInt(readBuffer

       var task = this.Dispatcher.RunAsync

                 (Windows.UI.Core.CoreDispatcherPriority.Normal, () =>

       {

            //pre zobrazenie     

            textPlaceHolder.Text = adcValue.ToString();  

       });

}

Upozorňujeme, že tento kód sa nedá použiť pre rozširujúcu dosku Explorer HAT Pro. Táto doska má štyri analógové vstupy a využíva integrovaný obvod ADS1015, ktorý je pripojený cez zbernicu I2C s adresou 0x48 (hexadecimálne).

Zobrazit Galériu

Nechajte si posielať prehľad najdôležitejších správ emailom

Mohlo by Vás zaujímať

ITPro

Red Hat a Veracomp: Open source a cloudy

09.12.2016 12:05

Cieľom ďalšej z radu spoločných akcií firiem Red Hat a Veracomp Slovakia v Bratislave bola prezentácia produktov, služieb a stratégií týkajúcich sa najhorúcejších tém IT podpory biznisu s využitím naj ...

ITPro

Právne okienko

08.12.2016 12:02

1. Ako postupovať, ak obchodník nechce uznať reklamáciu tovaru objednaného z e-shopu? V takomto prípade môžu nastať v zásade dve situácie. Ak zákazník reklamuje tovar do 12 mesiacov od jeho kúpy, mož ...

ITPro

Red Hat Forum 2016: Otvorená digitálna transformácia

09.12.2016 11:51

Podujatím v Prahe pre región CENE (stredná a severná Európa) rezonovala komunitná atmosféra a snaha o spoluprácu podľa pravidla „každý s každým“. IT musí priniesť do digitálneho biznisu novú kultúru a ...

Žiadne komentáre

Vyhľadávanie

Kyocera - prve-zariadenia-formatu-a4-s-vykonom-a3

Najnovšie videá