記事担当:
ハンダ付け必要-非マイコン系


先週は、デジットキットの★「ラズパイピコ 実験基板 / PICO-BOARD-V1」を作りました!
PICO-BOARD-V1-28

★「電工女子、デジットキットを作ります!(第6弾:ラズパイピコ 実験基板)★1」

キット自体は無事完成したのですが、実は未だにRaspberry Pi Pico(ラズパイピコ)(※以後、パイピコ)のことも、パイピコで何ができるのか、どうやって使うのかも全く分かっていません
付け加えるなら、いわゆるプログラム言語的なものもよく分かっていません

でも、せっかく作ったのだからこの基板を動かしたい!!!
と言う事で、とりあえず目標を「Lチカさせる!」にして頑張ってみたいと思います。


今回の記事は、ソフト寄りな話になります。
沢山の人がパイピコの使い方、コードの打ち方をアップしてくださっているので、それを参考に進めていこうと思います!
▼参考にさせて頂いたページ(Qiita)
Raspberry Pi Picoに実際に触れてみた
https://qiita.com/MiXMiX/items/99d0b5fc5e3e78b32ecc



まずは、パイピコのセットアップにチャレンジです!
オカポンの環境は、Windows10です。

(1)ファームウェアの書き込み
パイピコの上にある白いボタンを押しながら、マイクロUSBケーブルを接続します。
PICO-BOARD-V1-2-1
セットアップが完了すると、ファイルエクスプローラーが立ち上がりました。
「RPI-RP2」というファイルが、今繋いだパイピコです。
そのパイピコ「RPI-RP2」を開いてみると、なにやらすでにファイルが入っていますね。
まずは「INDEX.HTM」をダブルクリックして、公式サイトに飛びます。
1


公式サイトに飛んできたら、下左側の写真で赤く囲っているところをクリックします。
次にページ下部の「Download the MicroPython UF2 file.」をクリックします。(下右側の写真参照)
23


「Download the MicroPython UF2 file.」をクリックすると、ファイル(rp2-pico-20220618-v1.19.1.uf2)がダウンロードされるので、そのファイルを「RPI-RP2」(パイピコ)に入れます。
問題なくファイルが書き込まれると「デバイスとドライブ」から「RPI-RP2」がなくなります。

4
これでファームウェアの書き込みが完了です!


(2)Thonny(ソニー)のインストール
Thonny(ソニー)とは、初心者用のPython IDE(統合開発環境)だそうです!
このThonny(ソニー)を使ってコードを書いたり、パイピコに書き込んだりするんだそうです。
つまりこれが無いと先に進めないので、インストールします。

使用しているOSは「Windows10」なので「Windows」を選びます。

下記画面が現れるので、どちらか選びます。
オカポンは「Install for me only」を選びました。
インストール完了すると、右のようなポップアップに変わります。
67

アプリを起動すると、下記ポップアップが出ます。
言語は「日本語」に変えておきましょう!Let’s go!
8

右下のバージョンをクリックして「MicroPython(Raspberry Pi Pico)」を選びます。
9
これでひとまず環境設定は完了。
ホントはココからコードを書いていくんですけど、設定した環境を保存しておきたいので、このまま保存しときます。
保存ボタンを押して、「Raspberry Pi Pico」を選択します。
10
わかりやすいファイル名を付けて保存しましょう。
これでパイピコに保存できました。


2回目以降は、パイピコをマイクロUSBケーブルでPCにつなぐだけでOKです!
その後、Thonny(ソニー)を立ち上げればパイピコへコードを書き込んでいけるというわけです。

が、オカポン改めてパイピコをPCにつないでThonny(ソニー)を立ち上げたら『最新ファームウェアにしてください』と言うメッセージが出てきまして。。。
なので最新ファームウェアをダウンロードしてインストールしてってやってもエラーが出て前に進まなくなってしまいました。
そこで共立内の詳しい人に相談したところ
「挿し込むUSBポートを変えてみたら?」
と。
そんなバカな(笑)と思ってつなぐUSBポートを変えてみると、普通に使えるようになりました...
・・・よくあること、らしいですよ!(゚Д゚;)


さーて、気を取り直してLチカのコードを入れましょう!!
って、何を入れたらわからないので参考にさせて頂いたページのコードをお借りしたいと思います。
「パイピコ Lチカ」で検索すると、似たようなコードが沢山出てくるので、それを試してみても良いと思います!

=======================

import machine
import utime
led = machine.Pin(25, machine.Pin.OUT)

while True:
    led.value(1)
    utime.sleep(2)
    led.value(0)
    utime.sleep(2)

=======================

日本語訳にするとこんな感じ。
=======================
GPIOを使えるようにするよ(machine)
時間を管理するための命令をするよ(utime)
GPIO 25ピンを出力端子にするよ。名前は「led」ね

この中の命令を無限に繰り返して
LEDを1=ONして!
2秒待機
LEDを0=OFFして!
2秒待機
=======================

コードを打ち込んだりコピペしたら、Thonny(ソニー)ウィンドウの上の方にあるプレイボタン(緑丸に白三角のマーク。ビデオの再生ボタンみたいなの)をクリックしましょう。
すると・・・

1-1

ふぉーー!!光った!!
パイピコ上にある小さなLEDがついたり消えたりしていますね!
プレイボタンですぐにコードが実行されるんですね!なんてお手軽。
ちなみに実行しているコードを止めたいときは、プレイボタンの右にあるSTOPボタンをクリックしましょう。


え、え、じゃあ、次は作った基板上のLED(赤・緑・青)を光らせたい!!
・・・・何をどう変えたらいいのかな?
詳しい人に聞いてみたところ、『led = machine.Pin(25, machine.Pin.OUT)』部分の『25』と言う部分を、基板上のLEDのポート番号に変えればいいんだとか。
なのでキットの説明書のP6を見てみましょう!
「☆I/Oポート割り当て」のリストがあります。
今入れた「GP25」の備考には「Pico上のLED」と書かれています。
だからパイピコの上のLEDが光ったんですね。なるほど。
説明書をみていくと、「GP10:LED(赤)」「GP11:LED(緑)」「GP12:LED(青)」が、基板上のLEDのポート、ということが分かりました。
ということは。
『led = machine.Pin(25, machine.Pin.OUT)』の『25』を10~12にすれば基板上のLEDが光るってことなのかな!?

では、試しに青色LEDを光らせてみようと思います!

=======================

led = machine.Pin(25, machine.Pin.OUT)

=======================

=======================

led = machine.Pin(12, machine.Pin.OUT)

=======================

書き換えたらプレイボタンを押して実行!

2

光った!!!!
青色が光った!!!

え、じゃあ、今光った青と緑を同時に光らせたい場合は…?

=======================

led = machine.Pin(12, machine.Pin.OUT)

=======================

=======================

led = machine.Pin(12, machine.Pin.OUT)
led = machine.Pin(11, machine.Pin.OUT)

=======================

でいいのかな!?

3

・・・あれ??緑しか光らない・・・??
なんで~?

ってことで詳しい人に聞いてみたら、そもそもコードの書き方が間違っていたようです。
=======================
led = machine.Pin(12, machine.Pin.OUT)
led = machine.Pin(11, machine.Pin.OUT)
=======================
って書くと、『=』の前(ledの部分)が同じになってるので、コードが実行された時『led』に1行目が読み込まれた後2行目に上書きされてしまうんだそうです。
なのでポート番号11の緑しか光らなかったんだそうです。

ということは、『=』の前に違いをつければ良いって事なのかな!?

仮説を立てたら検証です。
早速コードを修正するのですが、せっかくなのでコード自体も「3色同時に2秒光って、2秒後に消える」をループさせる、に変更して再チャレンジです!

まずはLEDの色ごとに名前をつけてあげないといけません。
それぞれ『led_blue』『led_green』『led_red』としましょうか。
名前を付け終わったら、命令文でそれぞれ「青LED光らす」「緑LED光らす」「赤LED光らす」→2秒待つ→「青LED消す」「緑LED消す」「赤LED消す」→2秒待つ、とコードを書いてみます。

・・・すると。
4

ふぉぉぉぉぉ!!!!
光りました!!!!!


コードは、こんな感じ。
=======================

import machine
import utime
led_blue = machine.Pin(12, machine.Pin.OUT)
led_green = machine.Pin(11, machine.Pin.OUT)
led_red = machine.Pin(10, machine.Pin.OUT)

while True:
    led_blue.value(1)
    led_green.value(1)
    led_red.value(1)
    utime.sleep(2)
    led_blue.value(0)
    led_green.value(0)
    led_red.value(0)
    utime.sleep(2)

=======================

自分が打ったコードが、実際に目で見えて反応返ってくるのが、たーのーしーいー!!!!

Pythonの勉強をしたらもっといろんなことが出来て、もっともっと楽しいんでしょうね。
今回のLEDもランダムにホワホワ光らせたりとか!出来るんでしょうね!!

ちなみに、この実験基板には「NeoPixel制御出力」や「Groveインターフェイス」なども載っているので、Lチカだけじゃなくもっと色んな事が出来るようです!


みなさんも是非、チャレンジしてみてくださいね♪


(記事:オカポン)
更新予定:毎週木曜日(次回は6月30日です!)