今回の目的
前回の pico wで遊ぶ ~その2 ハードウェア - いろいろメモる日記 の内容をグレードアップ!
pico w君にLチカ実行してもらいます! 毎回シェルに手入力するのも面倒だし。
Lチカ動作の検討
まずは、シェルに入力した内容を、pico w君にしてもらいます。
これをそのまま、Thonnyのエディタ部分へコピペする。
ただし、このままだと一瞬光って消える感じなので、消えるまでの時間を伸ばす。
伸ばす時間は timeモジュールのsleep関数を使用して調整する。
コピペしたソースはこんな感じ。
実行->現在のスクリプトを実行(F5キー)で、実行してみると
確かに点灯→1秒継続→消灯と「1回」だけ実行される。
・・・1回だけでなくずっと繰り返してほしい場合はどうするか?
マイコン動作の基本形(繰り返し)
繰り返して動作させたい時は、以下のような構文を使用する。
while True:
~繰り返したい内容
whileの後が繰り返し終了条件で、条件がTrue(真)の間は繰り返し継続、
False(偽)になったら繰り返し終了なのだが、True(真)としているので永遠に終わらないw
プログラミングっぽい書き方である。
書き換えてみたのがこちら。Pythonの書き方で
Whileの次以降の文は、先頭に数文字分インデント入れるのがルール
1秒間隔で、点灯と消灯を繰り返すようになった!
ライブラリ(picozero)を使った書き方
picozeroは、Raspberry Pi 財団が提供しているRaspberry Pi Pico向けのライブラリである。これを使うともう少しわかりやすい構文になる。
導入方法は以下の通り。
ツール->パッケージを管理で、picozeroと入力して検索
検索結果の picozero @ PyPl をクリック
次の画面でインストールをクリック
picozeroを使って書き換えた内容は以下の通り。
value(1)部分がled.onのような英文に近い感じで、理解がしやすくなった。
スタンドアロンな状態を想定した書き込み
現時点は開発中ということで、USBケーブル経由で電源供給及び制御という形であるが、本来運用では電池に接続してPCからの接続されていない「スタンドアロン」な状態のはずである。
平たく言うと、電池つないでずっと繰り返し処理させるにはどうするか?
Raspberry Pi公式ドキュメントによると、
電源つないだ状態で、プログラムを「main.py」という名前でpico wに書き込むこと。
とある。
main.pyの作成と書き込み方法は、以下の通り。
今のソースファイル「lchika_min2.py」に対し、
ファイル->名前をつけて保存をクリックし、Raspberry Pi Picoを選択
ファイル名を main.py にしてOKをクリック
別電源に接続すると・・・問題なくスタンドアロンで動作確認できた。
まとめ
pico w君にLチカ実行させるミッションクリア!
・Lチカを通して、繰り返し処理の書き方がわかった。
・picozero導入により、ライブラリの探し方や使い方がわかった。
・スタンドアロン状態での動作のさせ方やプログラムの書き込み方法がわかった。
次回は、GPIO(電子部品等を接続して入出力に仕えるピン)を使って、電子工作っぽく遊んでみる。