micro:bitでMycroPython!

この記事はMicroPython Advent Calendar 2017の20日目の投稿です。

実は、人生初のAdvent Calendar参加は、昨年MycroPythonのことを書いたこちらの記事でした。
- STM32F4DISCOVERYでMicroPython!

この時は、マイコンをPyhonで動かせるなんて!!と感動した反面、マイコンにMicroPython をのせるまでが何気に難しかった・・・といのが正直な感想でした。しかし、最初からMicroPython が動くmicro:bitというものがあることを、@ken5owata に聞いて、最近いろいろ試しています。本日は、以下2つ試しました。

  • Raspberry Piでmicro:bitを動かすMicroPython開発環境
  • micro:bit MicroPythonで照度センサー扱えるのか?

Raspberry Piでmicro:bitを動かすMicroPython開発環境

micro:bitは、PCがないと開発できません。まずは、娘がいつでも好きな時に触れるように、ラズパイに開発環境を用意。

> sudo apt-get update && sudo apt-get install mu -y

micro:bitのMicroPython開発環境にオフラインで動くMuというエディタがあります。最初にMacにインストールして使ってみたらとても便利だったので、これをラズパイ上でも使えたらいいなーと思ったら、上記で簡単にインストールできました。ただ、公式ではインストール後に、メインメニューのProgramming配下に表示されるはずとありましたが、再起動しても表示されず・・・。 何か失敗したかな・・。 とりあえず、ターミナルから mu とうつと起動できました。

micro:bit MicroPythonで照度センサー扱えるのか?

クリスマスといえば、ケーキ!ケーキといえば電気がきえますね(唐突)!電気が消えらた自動的に音楽が流れて、micro:bitのLEDがピカピカひかるようにしたいねーということで、試してみました。

micro:bit の MicroPython には、音楽とサウンドのモジュールがあり、簡単なコードで好きな音楽を奏でることができます。 よし、クリスマスソングでも!と思いましたが、娘が所望したのは、まどかまぎかの「まだだめよ」。どんだけ好きなの!(私もですが。)とりあえず耳コピでコード部分を娘に書かせました。音の長さをどうするかで結構試行錯誤してましたが、コード自体は本当に簡単!

import music

# まだだめよ byまどかまぎか
tune = ["F4:4", "E", "E", "F", "G", "R",
        "F4:4", "E", "E", "F", "G", "R",
        "F4:4", "E", "E", "F", "G", "R",
        "A4:4", "Bb4:4", "G4:4","A4:8", "F4:2", "F4:8",
        "F4:4", "C5:8", "F4:4", "E4:12",
        "E4:2", "F4:4", "E4:2", "D4:2", "C4:2", "D4:8",
        ]

music.play(tune)

f:id:electricSheep:20171219234108j:plain:w300

よし!ミュージックはできたぞ!と、暗くなったら音を鳴らすの部分。

(「まだだめよ」の曲がきになる方は、上のコードで音楽をならしてみてくださいw) micro:bitのもう1つの開発環境JavaScriptブロックエディタでは、lightLevel() というLED スクリーンを照らす光の強さを 0~255 で返すことができる明るさセンサーの関数があったのでこれに相当するものをMicroPythonで探してみたのですが、みつからず・・・。

あれ?

「lightLevelは device abstraction layer (DAL)にコード化されていますが、MicroPythonはさまざまな理由でコードベースでDALの多くを使用しないため、機能にアクセスすることはできません。」的なことが書いてありました(多分)

ただ、「これを実現するための作業が、ZethによってPyCon UK 2016で行われました。Zethを探すのだ!」的なことも書いてあるので、その後がどうなったのかきになります。 簡単に明るさを取得できたらいろいろ楽しいと思うので、是非実現してほしいなー。というか実現してたりするのかな? もし、なにか情報をお持ちの方がいたら是非教えてくださいー。

ということで、暗くなったらは諦めて、ボタンを押したらに変更しました。
すると娘が、クリスマス会でイントロクイズやったらいいんじゃない!といいだしたので、作ってみようかなー。盛り上がるか盛り上がらないかは曲次第かな。というわけで、24日の子供達のクリスマス会にむけ、イントロマシンをmicro:bit + MicroPythonで作ってみたいと思います!MicroPythonなら本当に手軽に作成できる感あっていいですね!特にmicro:bit MicroPython チュートリアル は日本語のページもありとても丁寧に説明されているので、まずはここをみるのをおすすめします!

明日は、@tshimizu8 さんです。お楽しみにー!