ぴこっとLチカ(RaspberryPi Pico で MicroPythonを使ってみる)
Raspberry Pi Pico、無事日本でも入手できるようになったようです♬
↑RaspberryPi Zero(上)との大きさ比較、けっこう小さいかわいい奴です☆
売ってるところ
↑ここらへんからお好みでゲットしちゃいましょう♪
ではさっそく、
Lチカやってみましょー♪
で、ただやるのはつまらないので、せっかくなのでRapberryPiを母艦にして、そこからやってみようと思います。
今回使うのは
母艦はPi400!
これ。最新のRapberryPi400!を、ズバリパソコンとして使い、母艦にしてみます。
もちろん、このRapberryPi400さんはRapberryPi4相当の品ですから、他のRapberryPiでも(Zeroでも多分大丈夫)同じことができると思います。
準備
ピンヘッダ(足)取付け
Raspberry Pi Picoに足を付けます。
※ただオンボードのLEDを使うLチカだけならばここは不要です。でもブレッドボードに載せたりしてみたいならやっておいた方が良いところ。
はんだ付けしなくちゃいけないのである意味敷居が高いところですが、慣れておいた方がいいし、自分ではんだ付けすると結構愛着沸くので、一度は挑戦してほしいナァと思うところではありますw
はんだ付けのやり方等は各種動画が出回っているとおもうのでそちらをどーぞ☆
コツとして、
こんなふうに先に足(ピンヘッダ)をブレッドボードに刺して
ピンヘッダの上にPicoを載せて、そこからはんだ付けするとずれないし垂直に立つので良いかんじです。
(久しぶりだからちょっとはんだ盛りすぎちゃった><)
MicroPythonの準備
https://www.raspberrypi.org/documentation/pico/getting-started/
↑こちらの本家、公式情報をまず見てみましょー。
サイト中央の「Getting started with MicroPython」をクリックします。
その下の部分に説明がふえてきます。
MicroPythonを使う場合、はじめにファームウェアの書き換えが必要だそうです。
書き換え方はここの動画Gifを見るとわかりやすいです。
それに従って順にやってみましょう♪
①UF2ファイルのダウンロード
公式サイトの [Download UF2 file] というところをクリックして
Fileをダウンロードします。(バージョンいろいろありますがとりあえず最新で!)
②Picoのボタンを押したまま母艦と接続!
↑の黄色いマルのところのボタン(BOOTSELボタン)を押したまま、母艦(Pi400)とのUSB接続をします。(それで電源も入ります)
このつなぎ方をすると、母艦側からはファイルシステムとして認識されるので、ファームウェアのファイルを母艦からドラック&ドロップで転送できるのです。
③~④ファイルのD&D
母艦(Pi400)から見ると、RPI-RP2というドライブが増えています。(USBドライブ)
その中にINDEX.HTMとINFO_UF2.TXTってのが入ってますね。INDEX.HTMをダブルクリックすると、公式サイトが開くようになっていました。INFO_UF2.TXTはファームウェアの情報などが書きこまれているようです。
このドライブに、先ほどダウンロードしてきたUF2ファイルをドラック&ドロップしてつっこみます。
↑Downloadフォルダにあるuf2ファイルを RPI-RP2ドライブにいれる。
⑤MicroPythonが使えるようになる!
uf2ファイルをドロップすると、自動的にファイルシステムから切り離されて(ドライブが見えなくなって)MicroPythonが使えるようになります。(∩´∀`)∩☆
はじめてのMicroPython!
MicroPythonっていままで触ったことなかったんですが、これ、けっこうしっかりPythonしてるんですねぇー。
このあたりで全体的な概要なんかを眺めつつやってみようかな、と、気合いをいれ……る必要、まったくありませんでしたw
なにこれめっちゃ簡単じゃない。(最初ファームウェアを入れる準備が必要なのがひと手間あるぐらい)
Thonnyからいじれます
↑こちらで紹介した、RaspberryPiにデフォで入っているPythonの開発環境、
Thonnyさんがめっちゃ優秀。
立ち上げた時に右下にあるPythonのバージョンが出ているところをクリックすると、
これまた最初からMicroPythonを選べます。(しかもRaspberryPi Pico用の!?)
※この項目が出てくるのは今年頭のバージョンアップ以降のようですので、RaspberryPi OS のお約束、apt-gat update & upgradeはおこなっておきましょー
するともうこんなかんじで、すぐにRaspberryPi Pico用の MicroPythonコードを書くことができます。
試しに、下のShellの所に
>>> from machine import Pin # machineというやつがGPIO
>>> led = Pin(25, Pin.OUT) # 内蔵LEDはGPIO25番
>>> led.value(1) # LED光らせる
>>> led.value(0) # LED消灯する
と入れてみましょう(>>>はプロンプトなのでいりません)
これだけでOK!
を入力すると、
LEDが光りました!!(そしてled.value(0)で消えますw)
すごい! らくちん!
Python伝統のShellによるインタプリタ実行が、マイコン相手にもできちゃうのが驚きですね~。
普通のArduinoマイコンのプログラムの実行は、まずプログラムをコンパイルして実行コードにして、それからマイコンに転送して……とか手間がかかることが常識だったのですが、そのあたりのめんどうなことを意識しなくてもよいのがMicroPythonの売りみたいです。
※MicroPythonは、Pythonのプログラムを、マイコンで実行するために中間コードにして、マイコンに送り込んで実行するようです。(mpyという拡張子になります)
このShellはその「マイコンで実行可能な」中間コードを1行づつ送っている、ということなのかしらん?
では、これでプログラムも書いてみましょう。
import machine
import utime
led = machine.Pin(25, machine.Pin.OUT)
while True:
led.value(1)
utime.sleep(5)
led.value(0)
utime.sleep(5)
こんなかんじ。めんどうなのでコメントは省略w
これをエディタ部分にコピペして、実行(Run)ボタン
を押してみます。
この時、保存先を聞かれます
おもしろいことに(これもMicroPython+マイコンの特徴ですね)「This computer」(つまり母艦のPi400)でも、「Raspberry Pi Pico」のどちらに保存してもOK、そこから実行できます。
なんとそれだけで!
できた!(∩´∀`)∩☆
↑無事チカチカしてます!!(上の動画は1秒間隔にしています)
ふんごい!めちゃ楽!
いやー、ラクチンです。これはいいですねー☆
ほんとはここらでマトメ的な発言を入れておしまいにしようと思ったのだけれど、(noteに書いてた内容が消えちゃったので書き直し><)
せっかくなので↓オマケをどうぞw
そのあとでマトメますw
オマケ
ただLチカするだけじゃつまらないので、せっかくブレッドボードに載せているのだから、もうちょっと大げさ?にLチカしてみようとおもいます。
↑の薄い緑のGP(数字)と書かれているところがGPIOで入出力に使えるpinです。
※25番だけは上の方にあって、内蔵LEDにもともとつながっていることがわかりますね。
先ほどは、この25番を、
led = machine.Pin(25, machine.Pin.OUT)
として、デジタルOUTようにアサインした、というわけです。
じゃ、これを他のピンにもアサインするようにして、それぞれを光らせてみましょう♪
ちょこっと(だいぶ?)プログラムを書き換えて……、それぞれのピンにLEDを配置して……、GNDに抵抗つけてそっちに引っ張って……(プルダウン抵抗というやつ。詳しくはぐぐって!)
これを、(ぷろぐらむ)
こうして……(配線)
ぐちゃあw
こうじゃ!(実行)
でーきたーw
なんも考えないでここまでできちゃいました。
すごいらくーw
いいですねえw
おまとめとか妄想的な戯言などを最後にこっそり
ここであらためてまとめなどを。
いやあ、なんどか書きましたが、ほんと楽です。そして、わかりやすいPythonでプログラムできちゃうのがまた良いですねー。
最初、Linuxが動かないのにRaspberry Piを名乗るのはどーなのよ的なことをちょっぴり考えちゃってもいましたが、やってみてわかりました。Picoだってやっぱり立派なRaspberry Pi ファミリーです(Python動くしねw)
Raspberry Piを母艦にして、そちらでプログラミングをすることがThonnyIDEさんのおかげでひじょーにらくちんで、まるでThonnyというエディタがそのために作られたかのように感じましたねー。
ちょっとビジネス的な視野からみてみても、こういう、今あるリソースを使って、今まで手を出していなかったジャンル(マイコン)へ進出する。使い方や手触り(?)は前の慣れた環境をユーザーが引き継げるようにする。などなど、ラズベリーパイ財団さんの戦略ってばめっちゃ上手いと思います。いろいろよく考えてらっしゃるなー。さすがですわー。
ちょうど同じ時期というか直前に(今回使った)RaspberryPi400を「パーソナルコンピューター」として出してきたのもすごいセンスよいですよねー。
教育分野や学校に安くMacを配って、卒業したら会社で使ってね戦略を取ったとかいう昔のAppleみたいな遠大なビジョンを、小さなマイコンをつかってイギリスからやろうとしちゃっているのかもしれません(いいすぎ?)
なんとなく、RaspberryPiファミリーがスマホの次に世界を制覇しちゃうミライもあり得るかも? なんて、妄想しちゃう今日のこのごろですw
あと10年もしたら、みんなのパソコンの背中に描かれているのはリンゴじゃなくてラズベリーマークかも、しれませんねw