最初のスクリプト

LEDを点滅させるための、基本的なMicroPythonスクリプトの書き方を学びます。


Author:Pedro LimaLast revision:2024/12/18

このチュートリアルでは、Arduinoボードで動作する最初のMicroPythonスクリプトを作成します。古典的なLEDの点滅プロジェクトという簡単なものから始めることで、MicroPythonのプログラミング環境に慣れていきます。

要件

始める前に、要件を確認します。

MicroPythonが利用できるArduinoボード

MicroPythonは、いくつかのArduinoボードで公式にサポートされています。互換性のあるボードの一覧を示します。

ソフトウェア要件

  • Arduino Lab for MicroPython: Arduino Lab for MicroPythonは、Arduinoボードで、MicroPythonスクリプトの作成・実行が可能なエディタです。
i
Arduino Cloud - Arduino Labs for MicroPythonで、オンラインエディタも利用可能です。

ボードとエディタの設定

  1. Arduino Lab for MicroPythonを開きます。
  2. ArduinoボードとPCを、USBケーブルで接続します。
  1. ウインドウの左上の接続ボタンをクリックします。接続したボード(のポート名)が現れます
i
ボードにMicroPythonをインストールするのにヘルプが必要ですか? MicroPythonインストールガイドを参照してください。

最初のスクリプト(LEDの点滅)

ボードを接続すると、コードを書き始めることができます。以下は、ボード上のLEDを1秒ごとに点滅させる基本的なスクリプトです。

  1. まず、ボード上のmain.pyを開いてください。一度セーブすると、ボードをリセットしてもコードが実行されるので、このファイルに書きます。
  1. 以下のコードをエディタにコピー・ペーストします。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
import machine
import time

# The pin used for built-in LED varies
# GIGA: 0 (green), Nano ESP32: 0 (green), Nano RP2040 Connect: 25
# Nano BLE Sense: 13
led = machine.Pin(25, machine.Pin.OUT)

while True:
    led.value(1)
    time.sleep(1)
    led.value(0)
    time.sleep(1)
i
注意: 内蔵LEDのピン番号はボードごとに異なります。例えば、Arduino Nano RP2040 Connectでは、内蔵LEDは、25番ピンです。
  1. エディタのRunボタンをクリックして、スクリプトをボードに転送します。

スクリプトが実行されると、ボード上のLEDが1秒ごとに点滅し始めるはずです。これで、MicroPythonスクリプトのロードが成功したことがわかります。

コードの詳細

コードを1行ずつ見ていき、何が起こっているかを理解しましょう。

  • モジュールのインポート
1
2
import machine
import time

ハードウェア関数の利用と時間の遅延を行うために、machinetimeというモジュールをインポートします。

  • LEDピンの初期化
1
led = machine.Pin(25, machine.Pin.OUT)

ledという名前のPinオブジェクトを生成し、ピン番号を25に設定し、出力に設定します。

  • 無限ループ
1
2
3
4
5
while True:
    led.value(1)
    time.sleep(1)
    led.value(0)
    time.sleep(1)

ループ内では、以下を実行します。

  • 値を1に設定して、LEDを点灯します。
  • 1秒待ちます。
  • 値を0に設定して、LEDを消灯します。
  • 1秒待ちます。
  • このサイクルを繰り返します。

プログラム概念の理解

このスクリプトで使われている、主なプログラミングの概念を詳細に見ていきましょう。

machineモジュール

machineモジュールは、内蔵MicroPythonライブラリで、ボードのハードウェア構成要素に直接アクセスする手段を提供します。以下のような、マイクロコントローラーの機能の制御・操作を行います。

  • ピン: デジタルピンとアナログピンの設定や制御
  • タイマー: タスクをスケジュールするためのタイマー設定
  • 通信インターフェイス: I2CやSPI、UARTといったプロトコルの利用
  • ハードウェア固有の機能: マイクロコントローラ固有機能の制御

今回のスクリプトでは、machine.Pinクラスをボードの特定のピンを制御するのに使います。Pinオブジェクトを生成すると、ピンの電圧レベルを制御でき、LEDの制御ができます。

timeモジュール

timeモジュールは、時間に関連するタスクを管理する機能を提供します。遅延や時間間隔の測定、イベントのスケジュールなどができます。主要な機能には以下があります。

  • time.sleep(seconds): 指定した時間の秒数だけスクリプトの実行を停止します。1秒以下の遅延のために、浮動小数点数も指定できます。

while Trueループ

while Trueループは、無限ループを生成します。この中のコードを繰り返し実行します。LEDを点滅させるような、連続して実行するタスクには必須です。

修正: LEDをより早く点滅させる

LEDをより早く点滅させるように、修正してみましょう。遅延時間を1秒から0.2秒に変更します。

修正版コード

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
import machine
import time

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

while True:
    led.value(1)
    time.sleep(0.5) # 0.5 seconds
    led.value(0)
    time.sleep(0.5) # 0.5 seconds

ステップ

すばらしい。Ardinoボードで、最初のMicroPythonスクリプトを書いて修正しました。この演習では、以下を紹介しました。

  • モジュールのインポート(machinetime)
  • ハードウェア構成要素(LED)の初期化
  • ループの利用(while)
  • 時間遅延の制御(time.sleep())

これらの概念は、MicroPythonのプログラムを書く上で、多くの操作にとって重要なものです。

オリジナルのページ

https://docs.arduino.cc/micropython/first-steps/first-script/

最終更新日

August 16, 2026

inserted by FC2 system