2016年1月2日土曜日

RaspberryPi で圧力センサー を使ってみた

概要

前回 MCP3002 を使って温度センサーを使ってみました
今回は圧力センサーの情報を MCP3002 を使って取得してみました

環境

  • Raspberry Pi Type B Single Board Computer 512MB
  • Raspbian 8.0 (Jessie)
  • Kernel Version 4.1.7+
  • Python 2.7.9
  • pip 7.1.2
  • spidev 3.1
  • 圧力センサー -> 感圧センサ円形0.5インチ

事前準備

SPI を有効にする方法や Python 用のドライバは前回と同様です
あらかじめインストールしておいてください

配線

RaspberryPi + ブレッドボードを使った配線です
rpi_pressure_circuit.jpg

fritzing を使った配線図は以下の通りです
rpi_pressure_circuit_fritzing.png

ポイント

圧力センサーにジャンパを接続するにはハンダごてとハンダが必要になります
とりあえず接触させておけば OK なので、ハンダじゃなくてもいいですが、固定したかったので自分はハンダを使いました

MCP 3002 で信号を受信する部分は前回と一緒です
違うのは圧力センサーでアナログ信号を受信する部分です
片方は電源 3.3V に接続します
もう片方は信号を出力するジャンパとして使います
受信する前に 10K オームの抵抗を接続して回路を安定させています

回路が作成できたら RaspberryPi の電源を入れます

ソースコードのデプロイ

  • cd ~
  • mkdir -p work/mcp3002_pressure
  • cd work/mcp3002_pressure
  • touch pressure_sample.py
#!/usr/bin/env python
# Read the analog sensor value via MCP3002.

import spidev
import time
import subprocess

# open SPI device 0.0
spi = spidev.SpiDev()
spi.open(0, 0)

try:
    while True:
        resp = spi.xfer2([0x68, 0x00])
        value = (resp[0] * 256 + resp[1]) & 0x3ff
        print value
        time.sleep(1)
except KeyboardInterrupt:
    spi.close()
  • python pressure_sample.py

1 秒おきにセンサーで受信したデータを表示します
強く押した場合に値が上昇します
10bit の A/D コンバータなので最大値は 1024 になります
この値を if 分等で切り分けて強弱を判断する感じです

0 件のコメント:

コメントを投稿