LoginSignup
0
0

ラズパイ初心者がRaspbery Pi Picoを使って焦電型赤外線(人感)センサーを動かす

Last updated at Posted at 2024-04-12

目的

Raspbery Pi Picoを使って、人感センサーを動かす。

機材

焦電型赤外線(人感)センサーについては以下の記事も参考にしてください。

私は千石電商にて、ピンヘッダがすでにハンダづけされているRaspbery Pi Picoを購入しました。また、秋月電子電商で人感センサーとジャンパーワイヤを購入しました。

環境構築

以下の記事を参考に、環境構築を行いました。

Thonny

VS Codeなど、すでに自分で用意してある開発環境を使わない場合は、PythonのIDE(統合開発環境)であるThonnyをPCにダウンロードします。
自分はVS Codeを使用しておりpython3などを嗜んでいますが、そこにMicroPythonを新たに導入して、ごちゃごちゃになるのが嫌だったので(初心者ゆえ)、Thonnyを使いました。

以下のページから自分のPCにあったダウンロードします。今回はMac用のThonnyをダウンロードします。

pic1.png

インストール後は指示に従って設定していきましょう。
インストールが全て終わると、Launchpadに以下のようなアイコンが出現します。

pic2.png

起動すると言語などの設定画面が出てくるので、自分に合わせて設定して進みましょう。
私の場合はLanguageを日本語に、Initial settingsをRaspberry Pi (simple)にしました。

pic3.png

Raspbery Pi Picoのセットアップ

事前にダウンロードしたMicroPythonを、Raspbery Pi Picoに書き込みます。
Raspbery Pi Pico上の"BOOTSEL"と書いてある白いボタンを押しながら、USBケーブルでMacに繋ぎます。

IMG_6628.jpg

IMG_6629.jpg

ちなみに私はUSBハブにUGREENのものを使っています。ここはなんでも良いですが、参考までに。
すると、MacでRaspbery Pi Picoにアクセスできるようになります。Finder上でRPI-RP2という名前で表示されます。

スクリーンショット 2024-04-07 8.57.39.png

ここでThonnyの Tool > Option >Interpreter を開き、右下のInstall or update MicroPythonより、インストールを実行します。

Thnny.gif

不正な取り出しのメッセージが来ますが、これはRaspbery Pi Picoが再起動したためなので気にする必要はありません。

スクリーンショット 2024-04-12 14.43.10.png

プログラミングの実行

以下、Thonnyで操作していきます。

Thonnyの画面の左上にある+マークから新規ファイルを作成します。
今回は、焦電型赤外線(人感)センサーを動かしたいので、以下のようなプログラムを書きました。
これはChat GPTに指導してもらいました。

main.py
# モジュールのインポート
import machine
import utime
import uos

PIR_PIN = 15

pir = machine.Pin(PIR_PIN, machine.Pin.IN)

led = machine.Pin(25, machine.Pin.OUT)
 
def format_time(timestamp):
    year, month, day, hour, minute, second, *_ = timestamp
    return "{:04d}-{:02d}-{:02d} {:02d}:{:02d}:{:02d}".format(year, month, day, hour, minute, second)

def save_to_file(data):
    if not "visitor_data.txt" in uos.listdir():
        with open("/visitor_data.txt", "w") as file:
            file.write("timestamp,status\n")
    with open("/visitor_data.txt", "a") as file:
        file.write(data)

while True:
    presence = "presence" if pir.value() else "absence"
    timestamp = utime.localtime()
    current_time = format_time(timestamp)
    data_row = "{},{}\n".format(current_time, presence)
    save_to_file(data_row)
    
    # presenceが"presence"の場合にLEDを点灯させる
    if presence == "presence":
        led.high()
        utime.sleep(1)  # LEDを1秒間点灯させる
        led.low()
    else:
        led.low()  # presenceが"absence"の場合はLEDを消灯させる
    
    utime.sleep(5)

プログラムが書けたら、コードを保存します。Thonnyの ファイル > 保存 よりコードを保存します。保存場所は今回、Raspbery Pi Picoとします。

thonny.gif

main.pyと名付けておくことにより、PCではなくコンセントなどの外部電源に繋いだとき、自動でmain.pyが実行されます。

これで下準備は完了です。

パソコンから取り外し、外部電源に繋げば、勝手にプログラムが起動し、5秒後ごとに

  • 人を感じるとLEDが点灯、presenceと記録
  • 人がいなければ、LEDは点灯せず、absenceと記録します

そのデータはtxtデータとして、visitor_data.txtという名前で記録されます。

記録を取り出したり、プログラムをいじる場合は、再度繋ぎ直し、Thonny上でプログラムの実行を停止すると、Raspbery Pi Pico内のファイルにアクセスできるようになります。

以上

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0