ピコピコっとRaspberry Pi Pico 05「PicoのLEDをチカチカする」

ある日、「Raspberry Pi Pico」をどうぞと渡されて、何をどうすればよいんじゃ? という状態から、かめの歩みでいっぽいっぽすすんでいます。

「Get started with MicroPython on Raspberry Pi Pico」という本を参考にPico に親しもうと試みています。
前回は Thonny というソフトウェアとPicoの関係が少しわかりました。

Physical computing とはどんなもの?

chapter 2 のサンプルプログラムは他にもありますが、今回は、Chapter 3 Physical computing に挑戦編です。

「physical computing」は「物理的コンピューティング」と和訳されるようです。フィジカルときくとすぐ「体幹」と思ってしまうのですが、ITの世界?では、具体物がある〜とかそんなニュアンスなのかなーと現時点では思っています。

Electronic components
Your Pico is only part of what you’ll need to begin working with physical computing; the other half is made up of electrical components, the devices you’ll control from Pico’s GPIO pins.

電子部品
あなたのPicoは物理的コンピューティングを働かせ始めるのに必要な一部にすぎない;残りの半分はPicoのGPIOピンから制御するデバイス(コンピュータに接続した装置?)であるところの電気部品によって作られています。

つづきです。

There are thousands of different components available, but most physical computing projects are made using the following common parts.

数千種類のコンポーネント(部品・構成要素)がありますが、ほとんどのフィジカルコンピューティングのプロジェクト(目的遂行)は、以下の一般的なパーツ(部品)を使って作られます。

・Pico 自体もパーツの一部
・Picoが GPIOピン(?)でつなげた装置を制御する
でもって、部品は何千とあるけど、一般的なパーツというのがあるらしい。

紹介されていたものは以下。

・ブレッドボード(breadboard)
・ジャンパーワイヤー(Jumper wires)オスーオス、オスーメス、メスーメス
・タクトスイッチ(momentary switch)
・LEDライト(light-emitting diode (LED) )
・抵抗(resistors)
・圧電スピーカー/電圧ブザー(piezoelectric buzzer)
・ポテンショメーター/可変抵抗器( potentiometer)
・モーションセンサー(sensors)
・I2C接続のLCD(I2C display)

すべて、はじめましてのものたちです。

そして、「この本のプロジェクトを完成されるために少なくとも必要なアイテムとしては以下」とのことです。

To complete the projects in this book, you should have at least:
A Raspberry Pi Pico with male headers attached
A micro USB cable
A solderless breadboard
A Raspberry Pi or other computer for programming
Male-to-female (M2F) and male-to-male (M2M) jumper wires
3 × single-colour LEDs: red, green, and yellow or amber
1 × active piezoelectric buzzer
1 × 10 kΩ potentiometer, linear or logarithmic
3 × 330 Ω resistors
At least one HC-SR501 PIR sensor
1 × SerLCD module
WS2812B LEDs

なんだか、Pico、USBケーブル以外にもフィジカルコンピューティングには必要なものが色々あったようです。
名前だけみてもどんな物なのかが分かりません、後で調べることにして、ひとまず、手元にあるのは

・A Raspberry Pi or other computer for programming(プログラミング用ラズパイまたはコンピュータ)
・A micro USB cable(マイクロUSBケーブル)

のため、まずは「この2つでできること」をやってみることにします。

Picoを使った物理的コンピューティング

Chapter 4 Physical computing with Raspberry Pi Picoより

Your first physical computing program: Hello, LED!

うわー、やっとなにかに近づいてきたような?

The on-board LED is connected to one of RP2040’s general-purpose input/output pins, GP25.

オンボードLED(PicoのボードにあるLED)は、RP2040の汎用入力/出力ピンの1つである「GP25」に接続されています。

そして、

・GP25は、Picoのエッジ(左右?)に並んでいるピンの中には含まれていない。
・物理的になにか(部品)をつなぐことはできないが、他のGPIOピンと同様にプログラムであつかうことはできる。

Thonnyを起動してスクリプトエリアに以下を入力します。

import machine
led_onboard = machine.Pin(25, machine.Pin.OUT)
led_onboard.value(1)

‘import’
これは、MicroPython のライブラリと呼ぼれるコードの一種だそうです。
'machine'というライブラリを呼び出します。
MicroPythonがPicoと通信するために必要なすべての命令が含まれていて、この行がないと、Pico の GPIO ピンを制御することができないとのこと。

「led_onboard」を=以降であると定義する
「25」はピン(GP25)の番号
「machine.Pin.OUT」このピンは出力(OUT)に使用

led_onboard.value(1)
led_onboardの値を1とする。

画像1

PicoのLEDライトが点灯します。

import machine
led_onboard = machine.Pin(25, machine.Pin.OUT)
led_onboard.value(0)

led_onboard.value(0)とするとLEDは消灯します。

valueの値を(1)または(0)とすることでLEDのオン/オフをプログラムによって指示できました。

import machine
led_onboard = machine.Pin(25, machine.Pin.OUT)
led_onboard.value(1)
led_onboard.value(0)

上記のようにすると、あたかもずっと点灯しないままにみえます。
でも、じつはものすごい速さで点灯>消灯となり、目視できていないだけのようです。

import utime

こんどは'utime'というライブラリも読み込ませます。時間に関係するものらしいです。

import machine
import utime

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

led_onboard.value(1)
utime.sleep(5)
led_onboard.value(0)
utime.sleep(5)

こうすると、今度は5秒点灯、5秒消灯→消えたままとなります。utime.sleep(5) この(5)が値でここでは5秒を表しています。

点灯、消灯を繰り返したい場合は、loop(ループ)をつくります。

import machine
import utime
led_onboard = machine.Pin(25, machine.Pin.OUT)
while True:
   led_onboard.value(1)
   utime.sleep(5)
   led_onboard.value(0)
   utime.sleep(5)

ここで重要ポイント

while True:
    led_onboard.value(1)
    utime.sleep(5)
    led_onboard.value(0)
    utime.sleep(5)

「 while True: 」以降の行は「4つのスペース(または「tabキー1回」)」でインデントする必要がある。これをしないとプログラムは実行できません。

画像2

「Shell」にあるように、 File "<stdin>", line 7 7行目が無効となります。

画像3

上記ならばOK。

画像4

点滅成功です!

プログラムが実行されている感があるぞ。

次は、謎のパーツたちについて、理解を深められたらいいなぁ。

サポートしていただけますと、とっても励みになります! 春ならサクサクいちごのミルフィーユ、夏なら冷た~い桃、秋なら濃厚モンブラン、冬ならハーゲンダッツのクッキーアンドクリームがご褒美の候補です。