raspberry pi - senzor gaze
Post on 19-Jan-2016
93 Views
Preview:
DESCRIPTION
TRANSCRIPT
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.
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
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
Dupa realizarea conexiunilor vei obtine ceva asemanator ca in imaginea de mai jos.
http://www.robofun.ro/forum
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
#!/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
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
top related