Raspberry Pi 3でpythonを使い磁石スイッチを検出する!

  • 0
    Like
  • 0
    Comment
    More than 1 year has passed since last update.

    はじめに

    「優しいIT」という理念の基、ITコンサルタントをしている亀井亮介と申します!
    現在、仕事では要求分析・要件定義を中心に上流工程をしていますが、プログラムも書きます!
    優しいIT活動の一環として「教育用ようにプログラミング可能なPCを安価に提供する」理念の「Raspberry Pi 3(通称ラズパイ)」の紹介をします!
    今回は、磁石スイッチの制御を検出します。
    ラズパイマガジン-2016年6月号 特集1 アキバの人気パーツ 配線図ベスト17 ⑤磁石スイッチを参考にしています。
    磁石で入力制御をできると…非接触で制御できるではないか!これは使えそうです!まずは基本から

    手順

    1. 配線
    2. プログラム hall_switch.py
    3. プログラムを動かす

    1. 配線

    配線図は、ラズパイマガジン-2016年6月号 特集1 アキバの人気パーツ 配線図ベスト17 ⑤磁石スイッチそのままです。

    回路の写真を参考までに、こんな感じというイメージになれば
    Raspberry Pi 3でpythonを使い磁石スイッチを検出する!.jpg

    テキスト版

    • ラズパイ 2番ピン(5V) - 磁気スイッチ VDD(5V)
    • ラズパイ 11番ピン(GPIO17) - 抵抗1kΩ - 磁気スイッチ OUT
    • ラズパイ 6番ピン(GND) - 磁気スイッチ GND

    2. プログラム hall_switch.py

    プログラムもラズパイマガジン-2016年6月号 特集1 アキバの人気パーツ 配線図ベスト17 ⑤磁石スイッチを参考にしました。ほとんどそのままです。

    GitHubにソースをアップしているので、お好きにお使いください。

    gitでcloneする
    $ git clone https://github.com/RyosukeKamei/raspberrypi3.git
    
    hall_switch.py
    # GPIOを制御するライブラリ
    import wiringpi
    # タイマーのライブラリ
    import time
    
    # GPIO端子の設定
    hall_switch_pin = 17
    
    # GPIO出力モードを1に設定する
    wiringpi.wiringPiSetupGpio()
    # GPIOを入力モード(0)にする
    wiringpi.pinMode(hall_switch_pin, 0)
    # 入力はプルアップに設定
    wiringpi.pullUpDnControl(hall_switch_pin, 2)
    
    while True:
        # GPIO端子の状態を読み込み
        # S極 : 0
        # N極 : 1
        if( wiringpi.digitalRead(hall_switch_pin) == 1 ):
            # 入力が0の時がS極
            print ("South Pole")
        else:
            print ("North Pole")
        # 1秒ごとに検出# 出力が1の時がN極
        time.sleep(1)
    

    3. プログラムを動かす

    動かしている様子を動画に収めました。
    動画解説クリック→

    スイッチを検出
    $ sudo python3 hall_switch.py
    

    スイッチの状況が1秒ごとに表示されます!(詳細は動画で!)
    North PoleがN極で、South PoleがS極です!
    (日本語で書けばよかった…)

    サイトマップ

    Raspberry Pi 3 (ラズパイ)セットアップ

    Raspberry Pi 3インストール→無線LAN→日本語入出力→Macから操作

    Raspberry Pi 3 にDockerを乗せてPython+MySQL環境を構築!

    RaspberryPi3(ラズパイ)にDockerをインストール
    RaspberryPi3(ラズパイ)にDockerでPython+bottle+MySQL環境構築する!【簡単構築編】
    RaspberryPi3(ラズパイ)にDockerでPython+bottle+MySQL環境構築する!【試行錯誤編】

    Raspberry Pi 3でエアコン一体型パソコン「airpi」を作る!

    Raspberry Pi 3でエアコン一体型パソコン「airpi」を作る!

    Raspberry Pi 3 (ラズパイ)とpythonで遊ぼう

    Raspberry Pi 3でプログラミングをする Node-REDと普通にプログラミング
    Raspberry Pi 3でpythonを使いLEDを光らせる(Hello World)
    Raspberry Pi 3でスイッチの状態を検出する
    Raspberry Pi 3でpythonを使いサーボモータを動かす
    Raspberry Pi 3でpythonを使いモータードライバーを使いモータを制御する!
    Raspberry Pi 3でpythonを使いスライドスイッチを検出する!
    Raspberry Pi 3でpythonを使い磁石スイッチを検出する!
    Raspberry Pi 3でpythonを使い温度を検出する!
    Raspberry Pi 3でpythonを使いブザーを鳴らす!
    Raspberry Pi 3でpythonを使いA/Dコンバーターでアナログ信号を検出する!
    Raspberry Pi 3でpythonを使い「明るさ」を検出する!
    Raspberry Pi 3でpythonを使い「温度(A/Dコンバーターを利用)」を検出する!
    Raspberry Pi 3でpythonを使い「7セグメントLED」に出力する!

    テスト駆動開発を重点においた規則

    コーディング規則「優しいコードを書こう」(FuelPHP)
    命名規則「3ヶ月後の自分自身に優しく、チームに優しく、まだ見ぬメンバーに優しく」

    Docker+PythonでWebアプリケーション開発

    Docker上のCentOSにPython3と、関連ライブラリpip, virtualenvとフレームワークDjango, bottle, Flaskのインストール!これらをまとめたDockerfile付き!

    開発しやすい環境構築(Docker+PHP)

    Dockerを利用しApacheにPHP環境 + Eclipseを連携
    Dockerを利用したFuelPHP開発環境構築
    Docker利用したFuelPHP開発環境の初期設定とscaffoldを利用してCRUDスケルトン作成
    FuelPHPのデータベースマイグレーション