MicroPythonの基本

MicroPythonを紹介します。


Author: Francesca Sanfilippo & Karl Söderby、Last revision: 2023/03/04


概要で読んだように、MicroPythonは、Pythonの一実装です。このページでは、Arduinoボードで利用できる、いくつかの初級・中級のMicroPythonスクリプトを紹介します。変数やループ、遅延、表示など、いくつかの共通の概念が含まれます。

i
MicroPythonとPythonには、いくつかの違いがあります。ほとんどは、ライブラリと型です。さらに、言語レベルの機能にも違いがあります。

Arduino Lab for MicroPythonをダウンロードしたら、システム用のファイルをクリックし、アプリケーションを抽出し実行してください。Arduino IDEと似たインターフェイスです。

まず、ボードをPCにUSB経由で接続する必要があります。

ボードを接続したら、接続ボタンをクリックし、ポートを選びます。

接続しポートを選択する

接続しポートを選択する

ボードを接続したので、ボードで実行するスクリプトを含むファイルを作成しましょう。Newボタンをクリックし、ファイルを作成します。エディタが自動的にボードにメインファイルを作成します。

エディタを使っていないときは、ファイルの名前は、main.pyです。ボードには手動でセーブします。ボードはこれをメインプログラムとして認識ます。

最初のMicroPythonスクリプト

最初の例は、1秒ごとにターミナルにHello world!を表示する基本的なスクリプトです。以下のスクリプトをエディタにペーストし、“Play"ボタンを押してください。

1
print('Hello world!')

プログラムの構成要素

逐次、繰り返し、分岐の3つの基本的なプログラム構成要素があります。

  • 逐次: 命令列
  • 繰り返し: プログラムは利用される条件に従い実行されます。whileループとforループの2つの機能があります。
  • 分岐: 条件に合致したときだけコードを実行するためのプログラム構造です。

このセクションでは、いくつかのプログラム構成要素を紹介します。

変数とWhileループ、Sleep

この2番目の例では、特定の時間だけ実行を停止するために、importを使い、timeモジュールをインポートします。モジュールは、MicroPythonでボードを制御するのを補助します。

1
2
3
4
5
6
import time    
content = "Hello world!"
 
while True:
   print(content)   
   time.sleep(1)

定義では、変数は文字と数字によリ構成される文字列で、情報に紐づいたものです。変数の内容として、Hello world!と定義しています。

whileループで、条件がtrueの間、命令を実行します。このコードでは、表示する前に、sleep関数を使い、1秒スクリプトの実行を停止します。これは、timeモジュールからインポートします。

関数

関数はコードの集合で、いくつかの文により構成された命令列で、呼ばれたときにだけ実行されます。関数には、パラメータとして情報を渡すことができます。関数は入力引数と出力引数を持つことができます。

自分で関数を定義することができます。最も共通的な方法は、defキーワードを使うことです。カッコ内には、引数を書きます。以下の例を見てみましょう。

1
2
def my_function():    
    print("Hello world!")

その後、関数名の後にカッコを書けば、関数を呼ぶことができます。

1
my_function()

関数には2つの要素が必要です。defキーワードで始まり、その後にカッコが続きます。カッコ内には引数があり、コロン(:)で終わります。その後インデントした本体を、文字列、関数、returnで構成します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
import time

content = "Hello world!"
count = 0

def counter_function():
    global count
    count = count + 1

while True:
    counter_function()
    print(content, count)
    time.sleep(1)

条件とループ

MicroPythonは数学の論理条件をサポートします。これらはいくつかの方法で利用できます。最も共通的なものは、“if条件"と"forループ"です。if文は、ifキーワードにより記述し、インデントが必要です。インデントがないとエラーになります。

if/else文

if/else文は、プログラムで条件を扱うときに使います。これらの文は、プログラム内で条件に基づいた決定をする際にプログラムを分岐させます。

以下のコードを試してください。

1
2
3
4
5
6
a = 42
b = 23
if a > b :
    print("a is greater than b")
else :
    print("a is not greater than b")

この場合の結果は、42が23よりも大きいので、常に、a is greater than bです。

forループ

forループと関数の簡単な使い方です。このスクリプトは10まで数え、0に戻ります。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
import time

count = 0

def function_increase():
    global count
    count = count +1
    print(count)

def function_decrease():
    global count
    count = count -1
    print(count)

while True:
   for x in range(10):
    function_increase()
    time.sleep(1)
    
   for x in range(10):
    function_decrease()
    time.sleep(1)

配列

配列は、よく知られている、プログラムの構成要素です。MicroPythonでの配列は、定義によると、要素(値や変数)の集合です。実行時に計算される添え字により選択され、添え字により配列の要素を参照します。

1
2
3
4
5
6
7
myFruit = ['orange', 'persimon', 'apple', 'kiwi', 'lemon']

def printFruitNames():
    for fruit in myFruit:
        print(fruit)

printFruitNames()

オリジナルのページ

https://docs.arduino.cc/micropython/basics/micropython-basics/

最終更新日

April 14, 2024

inserted by FC2 system