6. Analogiatulon käsittely

Raspberry Pi ei tue suoraan GPIO-pinneillä analogiatulojen käsittelyä, vaan analogiatulo käsitellään vaikkapa A/D-muuntimen kautta. Käytämme harjoituksessamme MCP3002 A/D-muunninpiiriä, jonka kanssa kommunikoimme SPI-rajapinnan kautta.

Serial Peripheral Interface (SPI) väylä on sarjaliikennettä, jota voidaan käyttää pinnien 19, 21, 23, 24 ja 26 kautta. Se on siis käytännössä synkroninen sarjaliikenneväylästandardi, jota voidaan käyttää laitteiden väliseen kommunikaatioon

Lisätietoa SPI-väylästä.

Aivan aluksi täytyy SPI-tuki asentaa ja laittaa toimintaan. Avaa Terminal ja aja seuraavat komennot.

sudo apt-get update 
sudo apt-get install python-dev 
git clone git://github.com/doceme/py-spidev
cd py-spidev
sudo python setup.py install

Avaa terminaalissa raspi-config ja sieltä 7 Advanced options ja sen alta A6 SPI enable/disable. Enable.

Onnistuneen asennuksen voi tarkastaa ajamalla komento lsmod | grep spi jonka tuloksena pitäisi näkyä seuraava rivi.

pi@raspberrypi ~ $ lsmod | grep spi
spi_bcm2835 7948 0
pi@raspberrypi ~ $

Tämän jälkeen teemme kytkennän. Uuteen kytkentäämme tarvitsemme:

  • MCP3002 AD-muunninpiirin (datalehti)
  • potentiometrin (n. 10kΩ)
  • kytkentälankoja

MCP3002 pin järjestys

kuva6-9

Kytkemme siis MCP3002 ja raspberry pi välisen yhteyden seuraavasti:

  • MCP3002:1 => GPIO8 (CEO) pin 24
  • MCP3002:2 => potentiometrin säädetty jännite.
  • MCP3002:3 => nc
  • MCP3002:4 => GND
  • MCP3002:5 => GPIO10 (MOSI) pin 19
  • MCP3002:6 => GPIO9 (MISO) pin 21
  • MCP3002:7 => GPIO11 (SCLK) pin 23

Huomaa että alla näkyvässä kytkennässä on myös aiemmin tekemämme painonapit ja led. Älä anna sen häiritä.

tehtävä6_analog_tulo_bb2

Tehdään ohjelma. Avaa terminaali ja siirry kansioon Python-ohjelmat. Suorita komento:

sudo nano potikka.py

Kirjoita alla oleva koodi:

kuva6-7

Kirjoitettuasi ohjelman tallenna se ctrl+o ja paina enteriä kun nano kysyy vahvistusta tiedostonimelle File Name to Write: potikka.py

Voit poistua ohjelmasta ctrl+x.

Kokeillaan ohjelman ajamista antamalla Terminalissa komento

sudo python potikka.py

Testaa pyörittelemällä potentiometriä sitä miten ohjelma toimii.

Suunnilleen jotain tällaista tulosta pitäisi tulla.

kuva6-8