7
Textul si imaginile din acest document sunt licentiate Attribution-NonCommercial-NoDerivs CC BY-NC-ND Codul sursa din acest document este licentiat Public-Domain Esti liber sa distribui acest document prin orice mijloace consideri (email, publicare pe website / blog, printare, sau orice alt mijloc), atat timp cat nu aduci nici un fel de modificari acestuia. Codul sursa din acest document poate fi utilizat in orice fel de scop, de natura comerciala sau nu, fara nici un fel de limitari.

Raspberry PI - Senzor Gaze

Embed Size (px)

DESCRIPTION

Raspberry PI - Senzor Gaze shield

Citation preview

Page 1: Raspberry PI - Senzor Gaze

Textul si imaginile din acest document sunt licentiate

Attribution-NonCommercial-NoDerivsCC BY-NC-ND

Codul sursa din acest document este licentiat

Public-Domain

Esti liber sa distribui acest document prin orice mijloace consideri (email, publicare pe website / blog, printare, sau orice alt mijloc), atat timp cat nu aduci nici un fel de modificari acestuia. Codul sursa din acest document

poate fi utilizat in orice fel de scop, de natura comerciala sau nu, fara nici un fel de limitari.

Page 2: Raspberry PI - Senzor Gaze

Raspberry PI si senzorul de alcool brick

Raspberry PI poate citi foarte usor senzori de tip biometric multumita placii SensorShield. Senzorii biometrici detecteaza si masoara cantitatea de alcool sau fum, gaze, monoxid de carbon, metan. Semnalul senzorului este de tip analogic iar placa SensorShield ii ofera posibilitatea placii Raspberry PI de a interpreta acest tip de semnal.

In acest tutorial vei descoperi cum se poate conecta un senzor de alcool (analogic) la placa Raspberry PI. Totodata, in configuratia actuala, se pot conecta si senzorii de la adresa urmatoare asa ca nu vei fi limitat doar la un anumit tip de senzor. Se pot conecta foarte usor senzori de fum si gaze, GPL, metan, monoxid de carbon sau senzori optici pentru praf.

http://www.robofun.ro/senzori/biometric

Vei avea nevoie de urmatoarele componente:

• Raspberry PI.

• Senzor de alcool brick.

• SensorShield V2.

• Breadboard.

• Fire pentru conexiuni.

• Alimentator 5V (pentru Raspberry PI).

• Alimentator 5V @ 1.2A breadboard (pentru senzorul de alcool brick).

http://www.robofun.ro/forum

Page 3: Raspberry PI - Senzor Gaze

Tabelul conexiunilor.

Sensor Shield 3.3V Raspberry PI 3.3V

Sensor Shield 5V Raspberry PI 5V

Sensor Shield Gnd Raspberry PI Gnd

Sensor Shield IN1 Raspberry PI GPIO18

Sensor Shield IN2 Raspberry PI GPIO23

Sensor Shield IN3 Raspberry PI GPIO24

Sensor Shield IN4 Raspberry PI GPIO25

Senzor alcool brick VCC Alimentator breadboard 5V

Senzor alcool brick GND Alimentator breadboard GND

Senzor alcool brick OUT SensorShield A0

Alimentator breadboard GND Sensor shield GND

Daca ai observat din tabelul de conexiuni, senzorul de alcool brick se alimenteaza dintr-un alimentator de breadboard 5V (nu se alimenteaza direct din Raspberry PI). Intre acest alimentator si SensorShield trebuie sa existe masa comuna (ultima conexiune din tabel).

A nu se confunda alimentatorul breadboard cu alimentatorul placii Raspberry PI. Alimentatorul breadboard arata ca in imagine mai jos si se poate identifica prin conectorul de alimentare (2 pini, negru inseamna Gnd si alb inseamna Vcc).

http://www.robofun.ro/forum

Page 4: Raspberry PI - Senzor Gaze

Dupa realizarea conexiunilor vei obtine ceva asemanator ca in imaginea de mai jos.

http://www.robofun.ro/forum

Page 5: Raspberry PI - Senzor Gaze

Cum functioneaza ?

Vei citi concentratia de alcool detectata de senzor printr-o aplicatie Python. Daca se depaseste un anumit prag se afiseaza un avertizment.

1. Deschide editorul nano si copiaza codul sursa listat mai jos.

sudo nano GasSensor.py

2. Salveaza-l cu CTRL X – Y si executa-l cu comanda:

sudo python GasSensor.py

Imediat cum ai pornit aplicatia in executie, in terminal se vor printa valorile analogice ale senzorului de alcool brick.

Codul sursa:

http://www.robofun.ro/forum

Page 6: Raspberry PI - Senzor Gaze

#!/usr/bin/env pythonimport timeimport osimport RPi.GPIO as GPIO

GPIO.setmode(GPIO.BCM)

def readadc(adcnum, clockpin, mosipin, misopin, cspin): if ((adcnum > 7) or (adcnum < 0)): return -1 GPIO.output(cspin, True)

GPIO.output(clockpin, False) GPIO.output(cspin, False)

commandout = adcnum commandout |= 0x18 commandout <<= 3 for i in range(5): if (commandout & 0x80): GPIO.output(mosipin, True) else: GPIO.output(mosipin, False) commandout <<= 1 GPIO.output(clockpin, True) GPIO.output(clockpin, False)

adcout = 0 for i in range(12): GPIO.output(clockpin, True) GPIO.output(clockpin, False) adcout <<= 1 if (GPIO.input(misopin)): adcout |= 0x1

GPIO.output(cspin, True)

adcout >>= 1 return adcout

SPICLK = 18SPIMISO = 23SPIMOSI = 24SPICS = 25

http://www.robofun.ro/forum

Page 7: Raspberry PI - Senzor Gaze

GPIO.setup(SPIMOSI, GPIO.OUT)GPIO.setup(SPIMISO, GPIO.IN)GPIO.setup(SPICLK, GPIO.OUT)GPIO.setup(SPICS, GPIO.OUT)

prag = 700

while True: value = readadc(0, SPICLK, SPIMOSI, SPIMISO, SPICS) print "Concentratie gaz: " + str(value) if value > prag: print "Nivelul de prag a fost depasit!" time.sleep(0.5)

Iti apar erori la executie ?

Este posibil sa-ti lipseasca o librarie sau extensie python. Iti recomand sa parcurgi urmatorii pasi:

1. Instaleaza python:

sudo apt-get install python-dev

2. Instaleaza python – pip:

sudo apt-get install python-pip

3. Instaleaza extensia RPI.GPIO:

sudo pip install rpi.gpio

4. Este posibil sa primesti o eroare legata de easy_install.

sudo easy_install -U distribute

5. Daca ai primit eroare tasteaza din nou comanda de la pasul 3.

Acum totul ar trebui sa functioneze fara probleme.

http://www.robofun.ro/forum