技術系の内容を発信しているhobbyhappyです。
今回は通称:Lチカ
と呼ばれるLEDをチカチカさせる方法についてご紹介します。
標準的なMicroPythonに加えて、CircuitPythonでの方法もご紹介。
初めてRaspberryPiPicoを購入した場合、
標準でRaspberryPiPico上に乗っているLEDを光らせることによって、
しっかり動作するかの動作確認もできます。
さてやってみましょう。
Youtubeチャンネルにさまざまな動画を上げています。
↓↓↓こちらからYoutubeチャンネルにアクセス!! ↓↓↓
用意するもの
まずはRaspberryPi Picoは用意してください。
こちらがないと今回の内容はできません。
もともとは秋月電子通商やSwitchScienceなどで取り扱われていましたが、
最近では少々値段が上乗せされているものの、Amazonでも購入可能です。
↓↓↓Amazonで購入↓↓↓
それから、多分あるとは思いますが、microB端子のUSBケーブルが必要です。
RaspberryPi Picoには付属されていませんので、
別途用意する必要があります。このケーブルを使ってPCと接続します。
↓↓↓microB端子のUSBケーブル↓↓↓
手順
手順を1から説明してきます。
今回の手順の流れは以下のようになっています。
途中、.uf2ファイルを投げ込む行程で分かれ道が発生します。
試しにどちらもやってみると面白いかもしれません。
BOOTSELボタンを押しながらPCと接続する※共通
すでにCircuitPythonを入れている人は、ここでの
BOOTSELボタンは必要ありません。
初めてraspberryPi Picoを触る人はここからスタートです。
まず、BOOTSELボタンとは、
raspberryPiPicoの表面に実装されている物理スイッチです。
この白いボタンを押しながらPCにUSB接続します。
この時、USBセレクタなどを使用していると、
相性によってはUSBとして認識されませんので注意です。
わたしはそれで半日くらい悩みました。
その時の記事はこちら↓↓↓
このようにドライバとして認識されればいったんこの行程は終了です。
uf2ファイルをドライバに投げ込む(MicroPython)
それではRaspberryPiPicoで一般的に使われているMicroPythonを入れてみましょう。
MicroPythonを使えるようにするためには、専用の.uf2ファイルというものが必要です。
ではどこにあるかというと….
こちらをダウンロードします。
その後、ダウンロードした.uf2ファイルをドライブにドラッグ&ドロップします。
ドライブのウインドウが消えますが、
消えたら使えるようになっていますのでご安心ください。
uf2ファイルをドライバに投げ込む(CircuitPython)
CircuitPythonを使いたい場合は、MicroPythonとは少々異なる.uf2ファイルが必要です。
こちらのサイトに飛んで、.uf2ファイルをダウンロードして下さい。
使えるようにする手順はMicroPythonと同じで、
.uf2ファイルをドライブにドラッグアンドドロップです。
※重要な注意点!
わたしの環境だけかもしれませんが、最新のCircuitPythonと、
最新のThonnyのVer.にすると、うまくThonnyで
RaspberryPiPicoを認識してくれませんでした。
なので.uf2ファイルのVer.を6.2.0に落として使用しています。
Lチカのコード(MicroPython)
LEDをMicroPythonで点灯させるソースコードは以下のようになります。
このコードをThonyで書いておいてください。
import machine #GPIOを使えるようにする。
import time #waitを入れられるようにする。
led=machine.Pin(25,machine.Pin.OUT) #25番ピンを出力モードに指定する。
# この下のWhile文は永遠に回る無限ループ
while True:
led.value(1) #出力モードに指定したGPIO 25番の値を1(high)にすることで3.3Vが流れる。
time.sleep(0.5) #wait 0.5Sec(mmSecではないので注意)。
led.value(0) #0(Low)にすることで0VとなるのでLEDは消灯する。
time.sleep(0.5)
Thonnyはpythonファイルを作成・編集できるエディタです。
こちらからダウンロードできます。↓
Lチカのコード(CircuitPython)
LEDをMicroPythonで点灯させるソースコードは以下のようになります。
このコードをThonnyで書いておいてください。
import board #ピンの番号を指定するのに使う。
import digitalio #ピンをIOとして使用するためのもの。
import time #waitを入れるためのもの。
led=digitalio.DigitalInOut(board.GP25) #GP25番をデジタル入出力ピンだと定義する。
led.direction=digitalio.Direction.OUTPUT #GP25番を出力ピンと定義する。
#ここから下は無限ループ
while True:
led.value=True #LEDのピンのvalueをTrueにすることで3.3Vが入って点灯する。
time.sleep(0.3) #wait 0.3Sec
led.value=False #LEDのピンのvalueをFalseにすることで0Vになって消灯する。
time.sleep(0.3) #wait 0.3sec
microPythonがGPIOのピンの設定が1行で済むのに対して、
circuitPythonのほうは2行に分かれているのがわかりますね。
また、ピンに3.3Vが流れるようにする指定方法も若干ですが異なりますので注意が必要です。
RaspberryPyPicoに書き込む※共通
書いたコードを実際にRaspberryPiに書き込む方法ですが、
左上の右三角(再生ボタン)を押すと実行されます。
実行に失敗する場合は、COMポートの番号指定や、
インタープリターと呼ばれる実行モジュールが異なっている場合が多いです。
こちらのように、Thonnyのオプションから設定してください。
先ほどデバイスマネージャーで示したように、
わたしの場合はCOM6につながっているので、
COM6を選択しています。
microPythonの時だけ、このようにどこで実行するか確認されます。
RaspberryPiPicoを選んだら、
保存名を聞かれるので好きなファイル名(半角英数字が無難)にして保存しましょう。
実はThonnyで実行するだけでLEDの点滅はできます。
が、もしこの書き込んだソースコードを、
ほかのPCにつないで即実行したい場合は一工夫が必要になります。
その工夫については別記事にしていますので、
もし必要だったらご覧くださいね。
MicroPythonとCircuitPythonで切り替えたくなったら…
なんとなく思ったと思いますが、
MicroPythonとCircuitPythonは共存ができません。
つまり、どちらかの.uf2ファイルを投げ込むと、
もう一方は使えません。
というわけで、RaspberryPiPicoの初期化についても少し紹介しておきます。
やることはいたってシンプルです。
こちらの公式サイトから初期化用の.uf2ファイルをダウンロード。
※下のほうにResetting Flash memoryという項目があります。
その後、BOOTSELボタンを押しながらPCに接続して、
ダウンロードした初期化用の.uf2ファイルを投げ込んで完了です。
まとめ
今回は、MicroPythonもCircuitPythonもどちらのLチカも紹介しました。
同じRaspberryPiPicoを使用して異なる言語で遊べるのは面白いですね。
ちなみに、MicroPythonとCircuitPythonでどちらがいいとかは言えないのですが、
ライブラリの多さで考えるとCircuitPythonも使えたほうが良いような気がします。
そもそもそんなに難しい言語ではないので、どちらも使えるようにしたほうが良いと思います。
コメント