初心者にラズベリーパイPicoはmicroPythonで開発をすすめる、これだけの理由

光都ICTクラブでは、ラズベリーパイPicoでプログラミングをするときに、まずmicroPythonを覚えます。一番の理由は、本文にも書くように「かんたん」だからです。これは、「挫折しにくい」「習得しやすい」とも言いかえられます。

ただ、microPythonで開発する理由は、かんたんなだけではありません。そのほかにも考慮して、microPythonを採用しています。これからラズPicoでプログラミングを始めるならば、迷わずmicroPythonをおすすめします。

それでは納得できない、というあなたのために、本文で理由をくわしく説明します。

ラズPicoの開発言語は2つある

Raspberry Pi Pico(ラズPico)は、microPythonとC/C++の2つの開発言語が使えます。microPythonとC/C++を比較して特徴を整理したのが下表です。

項目microPythonC/C++
文法Pythonによく似た文法C/C++ の文法
メモリ管理プログラマーがメモリ管理を意識しなくても良い意識してプログラムしないとメモリの不具合を起こす
開発速度C/C++より、すぐに開発できるmicroPythonより開発に時間がかかる
実行速度C/C++より遅いmicroPythonより遅い

「文法」「メモリ管理」「開発速度」は、プログラマーのレベルによってメリットにもデメリットにもなる項目です。初心者の場合は、microPythonの三項目はメリットです。

一方、「実行速度」は、microPythonにとってはデメリット、C/C++にとってはメリットです。しかし、初心者が気にするレベルの差ではありません。「C/C++で書くとミリ秒オーダーで動作するプログラムが、同じことをmicroPythonで書くと数百ミリ秒オーダーで動作する」といった程度の差です。

おそらく、この速度差が気になる頃には初心者を脱しているはずです。そのときにC/C++を学び直せばよいのです。microPythonでプログラムの基礎ができあがっているので、C/C++の習得も比較的短時間で可能です。

このように、初心者にとってmicroPythonのデメリットはほぼなく、メリットが多いのです。

わたしがmicroPythonをすすめる理由

前章で書いたメリット・デメリット以外にも、わたしがmicroPythonをすすめる理由はいくつかあります。それは、下記の4つです。

  • 環境構築がかんたん(すぐに開発できる)
  • プログラム言語がわかりやすい(プログラムの習得が容易)
  • Pythonの開発コードを流用できる(情報がたくさんある)
  • 高校で習うのを先取りできる(高校入学前の人限定)

ここからは、この4つの理由について詳しく説明します。

環境構築がかんたん

なんといってもmicroPythonをすすめる理由の第一の理由は、「環境構築が非常に容易である」ことです。環境とは、プログラミングから実際にラズPicoを動かすまでの準備・方法をいいます。

プログラムを始めたい多くの人の心をくじくのが、この環境構築です。プログラムの学習をする前に、プログラムを学習する下準備をするのが難してあきらめてしまう人が多いのです。わたしもかつてC言語を勉強しようとして、環境構築で投げ出したことがあります。

具体的には、microPythonでラズPicoを動かすには、以下の手順を踏むだけです。

  1. ラズベリーパイの公式サイトから、最新のmicroPythonのファームウェアをダウンロードします。
  2. ラズベリーパイPicoはPCに接続して、ダウンロードしたファームウェアをラズベリーパイPicoに転送します。
  3. Thonnyをダウンロードしてインストールします。
  4. ラズPicoをPCに接続して、Thonnyで書いたプログラムを実行します(実行ボタンをクリックします)。

この手順を踏むだけで、microPythonで書いたプログラムがラズPicoで動作します。下は、Thonnyでプログラムを書いているところです。ここまで書けていたら、あとはラズPicoをUSBケーブルで接続して実行するだけです。

これがC/C++だと、さらに手順が増えます。専門的にいうと、C/C++はコンパイラ言語なので、ラズPicoで動作する前に「コンパイル」が必要です。コンパイルが成功しないと、ラズPicoでプログラムを実行できません。

ちなみに、microPythonはインタプリタ言語です。C/C++のように、コンパイルを必要としません。環境構築が済めば、すぐにプログラムを実行できます。

プログラム言語がわかりやすい

microPythonは、その名の通りPythonの派生言語です。Pyhonの文法はそのままで、ラズPicoのようなマイコンで使えるようにアレンジされた言語です。

Pythonの特徴として、非常にシンプルで直感的で読みやすいことが挙げられます。例えば、"Hello, World!"を出力するためのコードは次の一行だけです。

print("Hello, World!")

また、C言語のIF文と比較したのが下のコードです。まずPython(microPython)の例を示します。

x = 0
if x > 10:
    print("大きい")
else:
    print("小さい")

次に、C言語の例を示します。

#include<stdio.h>
main(void){
    int x;
    x = 0;
    if ( x > 10 ){
        printf("大きい");
    } else {
        printf("小さい");
    }
}

Python(microPython)もC言語も、xの値によってプログラムからの応答を変えるプログラムです。Pythonに比べてC言語のほうが、書かなければならないコードが多いのがわかります。同じ動作をするのに、Pythonだと書くコードが少なくて済みます。

microPythonもPythonの特徴を引き継いでいます。そのため、初心者にとって覚えやすく、理解しやすい言語です。また、他の多くのプログラミング言語に比べて文法規則が少ないため、記述ミスによるエラーが少なく、効率的にプログラミングできます。

Pythonの開発コードを流用できる

先にも書いたとおり、microPythonはPythonの派生言語です。そのため、Pythonで書かれたプログラムをmicroPythonに移植するのが容易です。文法がよく似ているので、解読にエネルギーが必要ありません。

ラズPicoに先行して発売されたラズベリーパイ(Raspberry Pi : 下写真)は、Pythonでコードを書いて電子工作します。

上:Raspberry Pi Zero W, 下左:Raspberry Pi 4 B, 下右:Raspberry Pi 3 A+

写真のようなラズパイで作った電子工作のPythonで書かれたコードが、Web上にたくさん公開されています。ラズPicoで電子工作するときは、これらのPythonで書かれたコードが大変参考になります。

ある程度自分でプログラムできるようになったときに、参考にできるコードがあるのがどれだけ助かるか痛感します。自分で白紙から考えてプログラミングしなくても、動作するプログラムがあることのどれだけありがたいことか。

先人の資産を使いやすいということが、microPythonでの開発をさらに便利にし、手軽にするのです。

高校で習うのを先取り

近年、プログラミング教育が小学校から導入されるなど、情報化社会に対応した教育改革が進んでいます。それに伴い、高校でもPythonによるプログラミング教育が始まっています。

下の写真は、西播磨地区のある普通高校の情報Ⅰの教科書(表紙)の写真です。情報Ⅰは、普通高校で必修になった科目です。この教科書では、Pythonを使った授業が必修です。

表紙にPythonと大きく表記してある

この教科書の中の記載を一部写したのが、下の写真です。Pythonを使ったコードが書かれています。

高校情報Ⅰ Python (実教出版)P.148, 149

繰り返しますが、これは工業高校などの情報科の教科書ではありません。普通高校の必修科目の教科書です。

プログラム言語はたくさんありますが、初学者でも学びやすいということで、高校の情報科目ではPythonが多く採用されています。また、大学入試でも情報科目が選択ではなくて、必須科目として設定されます。

このことから、小中学生のうちにラズPicoに興味を持ったなら、まよわずmicroPythonでプログラムを覚えてしまうことをおすすめします。高校で学習する内容を、遊びながら、一歩先に身に着けられます。

まとめ

ラズベリーパイPicoの魅力の一つとして、microPythonの環境構築の容易さが挙げられます。初めての方でも手軽に始められるのが特徴です。実際にラズPicoが動くまでの敷居が低いのは、ほかの言語にはない圧倒的な強みです。

そして、実際にmicroPythonを使って開発するに当たっても、有利な点がそろっています。「文法がかんたんである」「Pythonのコードを引用できる」といった点が、microPythonで開発する有利な点です。

また、特に小中学生では、高校の必修科目を先取りして遊びながら学習できる利点があります。

光都ICTクラブでは、このように習得しやすく将来に役立つmicroPythonを使ってラズPicoを動かしています。