人感センサを使ってみる1

はじめに

人感センサモジュールを使って、人を検知させたいと思います。検出したらコマンドに検出時間と検出回数を出します。

目次

使用部材

・ラズパイ本体
・ブレッドボード
・リード線
・焦電型赤外線センサーモジュール(人感センサモジュール)
akizukidenshi.com

ハード側

電子工作で良く使用される人感センサモジュールを使用しています。この人感センサの電源は5Vで、出力は3Vです。ラズパイのGPIOピンの入力は3Vですのでちょうど良いと思います。

f:id:KatsuyaNote:20181104124133p:plain
回路図

ソフト側

# -*- coding: utf-8 -*-
import RPi.GPIO as GPIO
from time import sleep
import datetime

GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.cleanup()
print("GPIO clean中...")
print("GPIO clean完了")
GPIO.setup(17, GPIO.IN)

def main():
        i = 1
        while True:
            i=human_senser(17,i)

###############################################
#関数:human_senser(x,y)
#引数:x(入力GPIOピン),y(数値)
#戻値:検出あり→y+1,検出なし→y
#役割:人感センサ入力GPIOピンをxで指定して、
#           引数yで検出した回数を表示させる為の初期値
#           を与えます。従って,yの数値は整数であれば問題
#           ありません。
#           関数を使用時は,戻値がありますので、適当に変数
#           に代入させてください。
#必要なimportモジュールは、
#import RPi.GPIO as GPIO
#from time import sleep
#import datetime
def human_senser(x,y):
        sleep(0.5)
        if(GPIO.input(x) == GPIO.HIGH):
                print(datetime.datetime.now().strftime('%Y/%m/%d %H:%M:%S') +
                ":" + str("{0:05d}".format(y)) + "回目の人感知")
                y = y + 1
                sleep(10)
        else:
                print(GPIO.input(x))
                sleep(3)
        return y
###############################################

if __name__ == '__main__':
    try:      
        main()     
    except KeyboardInterrupt:
        print("終了処理中...")
        pass      
    finally:
        GPIO.cleanup()
        print("GPIO clean完了")

参考ウェブサイト等

https://chasuke.com/motionsensor/

LTspiceで波形データをExcel保存

・今回は,シミュレーションで得られた波形をExcelで取り込む方法です。

→波形のデータを解析等に用いたいときに,Excelに保存しておくことでデータの扱いが簡単になり大変便利です。

※残念ながら,直接Excelに変換することはできません。

----------------------------------------------------------

・シミュレーションで波形まで出ている状態から説明に入ります。

 

ステップ

(1)LTspiceでTXTファイルとしてイクスポート

(2)Excelで読み込み

----------------------------------------------------------

(1)LTspiceでTXTファイルとしてイクスポート

 ・波形表示で[File]>[Export data as text]をクリックします。

 

f:id:KatsuyaNote:20181013131408p:plain

・上のようなウィンドウが現れます。Ctrlを押しながら出力したいデータをクリックして選択します。青くなった箇所が出力されます。また,右上の[Browse]から保存場所を変更することができます。

・[OK]をクリックするとテキストファイルが出力されます。

LTspiceはこれで終わりです。

 

----------------------------------------------------------

(2)Excelで読み込み

・新規でExcelを開きます。

・メインタブの[データ]>[テキストまたはCSVから]をクリックします。

・ファイルを選択してインポートします。

・最後に[読み込み]をクリックします。

 

 

以上,ありがとうございました。

RaspberryPiの基礎の基礎2

はじめに

「RaspberryPiの基礎の基礎1」では,取りあえずラズパイでLEDの点滅をさせました。今回はざっくりとソースコードの意味をブロック毎に分けてメモしたいと思います。コードの詳細な意味はまた今度ということにします。
▼前回
katsuyanote.hatenablog.com

目次

  • はじめに
  • ソースコード
  • 4つのポイント
    • ①import文について
    • ②GPIOピンの設定等の初期化について
    • ③メイン文について
    • ④メイン文の実行命令とプログラム終了命令

ソースコード

# -*- coding: utf-8 -*-
import RPi.GPIO as GPIO
from time import sleep

GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM) 
GPIO.cleanup()
print("GPIO clean完了")
GPIO.setup(17,GPIO.OUT)

def main(): 
    while True:
        GPIO.output(17,GPIO.HIGH)
        sleep(0.5)
        GPIO.output(17,GPIO.LOW)
        sleep(0.5)

if __name__ == '__main__':  
    try:     
        main() 
    except KeyboardInterrupt:
    print("終了処理中...")
        pass
    finally:
        GPIO.cleanup()
    print("GPIO clean完了")
続きを読む

RaspberryPiの基礎の基礎1

はじめに

過去の記事と被る内容ですが,もう少し端的にメモとして残したいと思います。「RaspberryPiの基礎の基礎」は初心者が取りあえずラズパイを動作させて,流れを理解する為の内容となっています。尚,ラズパイの初期設定は割愛していますので,他のサイト等を参考にしてください。気が向いたら,いつの日か書くかもしれません。

目次

使用部材

・ラズパイ本体
・抵抗330Ω程度
・LEDダイオード
・リード線
・ブレッドボード

ハード側

ラズパイのピンを使って,下の回路図のように配線します。
グランド接続することを忘れないように注意してください。

f:id:KatsuyaNote:20181013151213p:plain
回路図

ソフト側

下のコードをコピペして,ラズパイのIDEL新規ファイルに適当に「.py」で保存してください。そして,実行(F5)をしてください。

# -*- coding: utf-8 -*-
import RPi.GPIO as GPIO
from time import sleep

GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM) 
GPIO.cleanup()
print("GPIO clean完了")
GPIO.setup(17,GPIO.OUT)

def main(): 
    while True:
        GPIO.output(17,GPIO.HIGH)
        sleep(0.5)
        GPIO.output(17,GPIO.LOW)
        sleep(0.5)

if __name__ == '__main__':  
    try:     
        main() 
    except KeyboardInterrupt:
    print("終了処理中...")
        pass
    finally:
        GPIO.cleanup()
    print("GPIO clean完了")

実行すると,LEDが0.5秒間隔で点滅すれば成功です。もし,しない場合は以下の点を確認してください。

①LEDの向きは正しいか(アノードとカソード)
②ブレッドボードの導通箇所は正しく使えているか
③ピンの接続箇所が誤ってないか(1つずれていないか)
④コードのインテンドは正しいか(詳細は後日記述していきます)
⑤ショートさせていないか,又はオープンとなっていないか

はてなブログでソースコードの貼付け方法

はじめに

ウェブサイト等でソースコードの多くは綺麗に貼り付けられています。一方で私は以前まで,過去のブログを見ていただいてもわかる通り,ソースコードをそのままコピペして本文と同じように貼り付けていました。とても見にくく不細工ですので,今回はソースコードの貼付け方をメモしておきたいと思います。一回理解すれば簡単です。

はてなブログの設定

①新しく「記事を書く」をクリックしてください。
②記事の編集画面の左上に「見たまま」→「はてな記法」に変更します。
③いつものように記事を書くことができます。
(注意)ただし,太文字や見出し等の操作を行うと,若干HTML要素が含まれますが,自動でHTMLに変換してくれるので気にする必要はありません。プレビューで確認しつつ行えば良いと思います。

使い方

ソースコードの貼付け方をメモします。
下のように,>||と||<の間にソースコードを挟みます。また,最初の||の間にpythonと記述すれば,python言語としてソースコードを認識してくれます。

 >|python|
 print"hello world"
 x = 100
 ||<

実際に,上のように記述すると,

print"hello world"
x = 100

となります。

LTspiceでトランジェント解析のさわり2

・今回は,前回の続きとしまして,LTspiceでトランジェント解析のさわりをしたいと思います。

→トランジェント解析は過渡解析のことで,横軸を時間(縦軸を電圧または電流etc)とした波形(オシロスコープと同じような波形)を観測することができます。

→トランジェント解析は,スイッチを入れたときの立上り・立下りやノイズ等の収束の確認など過渡応答の解析に用いられます。

----------------------------------------------------------

・簡単なRC回路でトランジェント解析をしてみます。過渡解析としての使い方ではありませんが,トランジェント解析の使い方としてやってみたいと思います。

 

ステップ

(1)回路図を描く

(2)パラメータの入力

(3)解析の設定

(4)波形表示

 

----------------------------------------------------------

 (3)解析の設定

 ・メニューバー→[Simulate]→[Edit Simulation Cmd]で設定ウィンドウが開かれます。

 

f:id:KatsuyaNote:20181007155155p:plain

上のようにパラメータを入力します。

【Stop time】解析終了時間(秒)

【Time to start...】解析保存開始時間(秒)

【Maximum Timestep】ステップ時間(秒)

解析保存開始時間とは,過渡現象の終了部分のみ確認したいときに便利な機能で,スタートはじめの過渡現象のデータを記録として残さない。

・OKをクリックして,コマンド文(ピリオドが先頭にある文)を適当に張付けます。

 

----------------------------------------------------------

(4)波形表示

・シミュレーションを実行します。

・メニューバー→[Simulate]→[Run]でグラフ表示ウィンドウが開かれます。

 

f:id:KatsuyaNote:20181007160754p:plain

回路図の上の赤丸部分にマウスを近づけると,赤色のプローブが出てきます。プローブ地なった状態で左クリックすると,グラフに波形が表示されます。

 

f:id:KatsuyaNote:20181007161009p:plain

 

ありがとうございました。

 

 

LTspiceでトランジェント解析のさわり1

・今回は,LTspiceでトランジェント解析のさわりをしたいと思います。

→トランジェント解析は過渡解析のことで,横軸を時間(縦軸を電圧または電流etc)とした波形(オシロスコープと同じような波形)を観測することができます。

→トランジェント解析は,スイッチを入れたときの立上り・立下りやノイズ等の収束の確認など過渡応答の解析に用いられます。

----------------------------------------------------------

・簡単なRC回路でトランジェント解析をしてみます。過渡解析としての使い方ではありませんが,トランジェント解析の使い方としてやってみたいと思います。

 

ステップ

(1)回路図を描く

(2)パラメータの入力

(3)解析の設定

(4)波形表示

 

----------------------------------------------------------

 (1)回路図を描く

LTspiceを起動します。左上のメニューバーから[File]→[New Schematic]をクリックします。(またはCtril+N)

・電源,抵抗,コンデンサを配置します。

【電源類】メニューバーの[Edit]→[Component]をクリック(またはF2),voltageを選択します。適当に配置して(移動中にCtrl+rで部品が回転します),配置できたら右クリックまたはESCで解除してください。

【抵抗】メニューバーの[Edit]→[Resister]をクリック(またはr),以下同様。

コンデンサ】メニューバーの[Edit]→[Capaciter]をクリック(またはc),以下同様。

【グランド・アース】メニューバーの[Edit]→【Place GND】をクリック(またはg),以下同様。

・次に配線をします。

【配線】メニューバーの[Edit]→【Draw Wire】をクリック(またはF3),端子間をつなぎます。配線できれば,右クリックまたはESCで解除してください。

----------------------------------------------------------

(2)パラメータの入力

・今回は,電源sin波(実効値100V,周波数50Hz),抵抗10kオーム,コンデンサ1uFとします。

・パラメータの入力は各部品の上で,右クリックすると設定ウィンドウが開かれます。

【電源】

f:id:KatsuyaNote:20181007152558p:plain

これはDCと内部抵抗しか設定できないので,右下のAdvanced(詳細設定)をクリックします。

 

f:id:KatsuyaNote:20181007153042p:plain

 上のようにパラメータを入力します。ここで重要なことは,Amplitude[V]です。振幅を入力しなければいけません。実効値が100Vの場合は,100V×√(2)した値(≒141.42)を入力します。

 

 ・同様に抵抗(1kΩ)・コンデンサ(1uF)のパラメータを入力してください。

※なお,単位は入力しません。乗数の単位はn,u,m,k,meg,g使用できます。

 

 

f:id:KatsuyaNote:20181007153805p:plain

 

 

ここまでできたら次は解析の設定をしたいと思いますが,少し長くなりましたので,今回はここまでとします。次回はこの続きをしたいと思います。

 

ありがとうございました。