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)
よし!ミュージックはできたぞ!と、暗くなったら音を鳴らすの部分。
(「まだだめよ」の曲がきになる方は、上のコードで音楽をならしてみてください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 さんです。お楽しみにー!