Skip to content

Latest commit

 

History

History
219 lines (161 loc) · 8.67 KB

1-setup.md

File metadata and controls

219 lines (161 loc) · 8.67 KB

1. Pico Wのセットアップ

Thonnyをインストール

今回はMicroPythonというプログラミング言語を使って,プログラミングをしていきます. そのための実行環境として Thonny というソフトウェアを使用します.自分のパソコンのOSにあったものをインストールしましょう.

Windows

こちらからダウンロードします.ダウンロードできたらthonny-4.1.4.exeをクリックして実行します.

Windows版Thonnyのインストール手順
  1. Select setup Install Mode: Install for me only (recommended)を選択します.

  2. Welcome to using Thonny!: Nextをクリックします.

  3. Lisense Agreement: I accept the agreementを選択し, Nextをクリックします.

  4. Select Destination Location: Nextをクリックします.

  5. Select Start Menu Folder: Nextをクリックします.

  6. Select Additional Tasks: Create desktop iconにチェックを入れて,Nextをクリックします.

  7. Ready to Install: Installをクリックします.

  8. Great success!: Finishをクリックします.

macOS

Homebrewをインストールしている場合は以下のコマンドをターミナル.appで実行するとダウンロードできます.

brew install thonny

インストールしているかわからない場合は,こちらからダウンロードします.ダウンロードできたらthonny-4.1.4.pkgをクリックして実行します.

起動

Thonnyのインストールが済んだら,起動してみましょう.初回起動時は以下のスクリーンショットのような画面が表示されます.

Thonny初回起動時の画面

今回は「日本語」と設定した場合の画面で説明を行います.

Pico Wを接続

Pico Wとパソコンを接続します.

  1. Pico WのUSB端子にMicro-USBケーブルを接続します.(この段階ではまだパソコンとMicro-USBケーブルは接続しないでください

  2. 写真の赤枠で囲んでいるBOOTSELボタンを押したままで,Micro-USBケーブルをパソコンと接続します.

  3. 接続するとスクリーンショットのようなエクスプローラーのウィンドウが開きます.BOOTSELボタンを離します.エクスプローラーのウィンドウを閉じずに,次の節に移ります.

ファームウェアを焼き込み

Pico WでMicroPythonを実行するためには,ファームウェアを書き込まなければいけません.

  1. まずはこのリンクからファームウェアをダウンロードします.

  2. 「Pico Wのセットアップ」の節で開いたエクスプローラーのウィンドウ(RPI-RP2)にRPI_PICO_W-20240222-v1.22.2.uf2をドラッグ&ドロップします.

  3. RPI_PICO_W-20240222-v1.22.2.uf2のコピーが完了したら,Thonnyを開きます.

  4. 右下のローカルPython3・ThonnyのPythonをクリックして,スクリーンショットのようにMicroPython (Raspberry Pi Pico)を選択します.

ここまでで,環境構築が完了しました.次の節からは実際にMicroPythonのプログラムを実行してみます.

Lチカ (local)

  1. まずは,Pico WについているLEDを点滅させてみます.pico_led.on()でLEDを点灯,pico_led.off()でLEDを消灯できます.以下のプログラムをコピーして,Thonnyにペーストします.
import machine
import time

led = machine.Pin("LED", machine.Pin.OUT)

while (True):
    led.on()
    time.sleep(0.5)
    led.off()
    time.sleep(0.5)
  1. ペーストして,メニューバーの下の左から3つ目のフロッピーディスクのアイコンをクリックします.

  2. 「どこに保存しますか?」と聞かれるので Raspberry Pi Pico を選択します.

  1. ファイル名はled1.pyなど任意の名前をつけて保存します.

Important

末尾に.pyを忘れずにつけます.

  1. メニューバーの下の左から4つ目のアイコンをクリックして,プログラムを実行します.
    なお,稀にこのRunボタンが効かない(押せない)場合があります.その際は数回Stopボタンをクリックして再度Runボタンを押してみてください.
    それでもうまく書き込めないときは,遠慮なく近くのCore-team membersを頼ってくださいね.

  2. LEDが点滅したかと思います.実行を停止したい場合は右から2つ目のアイコンをクリックして,実行を停止します.

Important

Windows版Thonnyで 6. の操作を行い,ファイルの編集,保存を行おうとした時に以下のようなエラーが出る場合があります.その際はもう一度STOPのアイコンをクリックすることで保存や実行などができるようになります.

Lチカ (Wi-Fi)

この節でこの章は最後になります.最後はPico Wの上でWebサーバを動かして,そのWebページにアクセスしてLEDの点灯・消灯を制御します.

前節と同様に以下のプログラムをコピーして,Thonnyにペーストします.プログラムの8行目のパスワードを変更して,保存,実行してください.

import network
import socket
from time import sleep
import machine

ssid = "KIT-EVENT"
# passwordの値を書き換えます
password = "パスワードを入力"

led = machine.Pin("LED", machine.Pin.OUT)

def serve(connection):
    # Webサーバを起動
    state = "OFF"
    led.off()
    while True:
        client = connection.accept()[0]
        request = client.recv(1024)
        request = str(request)
        try:
            request = request.split()[1]
        except IndexError:
            pass
        if request == "/lighton?":
            led.on()
            state = "ON"
        elif request =="/lightoff?":
            led.off()
            state = "OFF"
        html = webpage(state)
        client.send(html)
        client.close()

def webpage(state):
    # HTMLのテンプレート
    html = f"""
            <!DOCTYPE html>
            <html>
            <form action="./lighton">
            <input type="submit" value="Light on" />
            </form>
            <form action="./lightoff">
            <input type="submit" value="Light off" />
            </form>
            <p>LED is {state}</p>
            </body>
            </html>
            """
    return str(html)

def open_socket(ip):
    # 接続の受付
    address = (ip, 80)
    connection = socket.socket()
    connection.bind(address)
    connection.listen(1)
    return connection

def connect():
    # Wi-Fiに接続
    wlan = network.WLAN(network.STA_IF)
    wlan.active(True)
    wlan.connect(ssid, password)
    while wlan.isconnected() == False:
        print("Waiting for connection...")
        sleep(1)
    ip = wlan.ifconfig()[0]
    print(f"Connected on {ip}")
    return ip

try:
    ip = connect()
    connection = open_socket(ip)
    serve(connection)
except KeyboardInterrupt:
    machine.reset()

実行すると,スクリーンショットのようにConnected on XXX.XXX.XXX.XXXと表示されたかと思います.

そのXXX.XXX.XXX.XXXという数字とピリオドで構成された文字列を,ブラウザのアドレスバー(普段google.comなどと入力するところ)に入力します.

そうするとスクリーンショットのようなページが開きます.Light onもしくはLight offのボタンをクリックすると,LEDの点灯・消灯を制御できます.

2. LINE Notify を利用した簡易Botの開発 へ進む

目次に戻る