子供のプログラミング当サイトは2020年小学生のプログラミング必修化に向けて、関連する情報を纏めています。サイトリニューアルしました。2020年小学生のプログラミング必修化に向けて、関連する情報を纏めています。27前の記事でMakecodeに拡張機能を追加して、Micro:bitからOLED有機ELディスプレイにメッセージを表示する例を紹介しました。今回は、Micropythonを使って同じようにメッセージを表示する例を紹介します。当記事は、シリーズでマイクロビット(Micro:bit)のプログラミングについて紹介しています。方はこちらをご覧ください。Muで実際にテキストを表示するプログラムを動かしてみる前回の記事のチャレンジの回答例1.Aボタンを連続して押すと画面が崩れますので、Bボタンで消去してからAボタンを押してください。あるブロックを『ボタンAが押されたとき』に追加するとそのようなことにはなりません。display』で画面を消去すると画面がくずれません。プログラムの他の部分は同じですので、省略してあります。使用するOLED有機ELディスプレイについては前回の記事を参照してください。Micro:bitとディスプレイは、SCL、SDA、VCC、GNDの4本の線で接続します。Micro:bitとの内部で、I2Cバスにはコンパスと加速度センサーもつながっています。ちなみに、今回使用のデバイスのI2Cアドレスは0x3c(十進数=60)です。実際の接続状態(moto:bitには、I2Cバス用のコネクターがついていますので、それを使用しました。バイトを読み込みます。すると、ストップビットが送られません。バイト列を書き込みます。すると、ストップビットが送られません。デバイスを再初期化します。上記以外の指定をすると磁気センサーと加速度センサーの動作が停止しますので、基本的に変更しないでください。microbit.i2c.scan()デバイスのバスをスキャンします。スキャンに応答したデバイスに該当する7ビットアドレスのリストを返します。注:I2Cデバイスはそれぞれ固有アドレスを持ちますので、Micro:bitから使うには最初にアドレスを知る必要があります。I2Cでのやり取りは、デバイスのアドレスを入手して、そのアドレスを使用してデバイスからデータを読むか書かきこむかだけです。やり取りの手順についてはデバイス毎に異なりますので、各デバイスのマニュアルを読んで調べる必要があります。その場合、多くの命令を書き込んだりする必要があり簡単にはできません。デバイスによっては、ライブラリーが準備されているものもあり、それをMicropythonで利用することにより簡単にデバイスを使うことができる場合もあります。この記事ではOLED有機ELディスプレイ用のライブラリーを利用します。ライブラリーを利用しないと画面を初期化するだけで20近い命令を書きこむ必要がありますが、ライブラリーを利用すればinitialize()の命令だけで初期化できますので、プログラムが非常に簡単になります。いうライブラリーを利用します。ビットマップ描画やテキスト描画を比較的簡単にできます。1.Githubのライブラリーページにアクセスします。ZIP』をクリックします。3.ダウンロードフォルダーに『microbit_ssd1306-master.zip』というファイルがダウンロードされていますので、選択して右クリックで開いたメニューで『解凍→ここに解凍』をクリックします。4.解凍が完了すると『microbit_ssd1306-master』フォルダーが作成され、以下の様にエクスプローラーが開きフォルダーの内容が表示されますので、名前にssd1306がついているxxx.pyファイルをmu_dataフォルダーにコピーしてください。各ファイルの役割(Micro:bit内のメモリーが大きくないので、必要な機能だけを使うことで作成するプログラム用のメモリーをできるだけ多く確保するためです)ssd1306.py:初期化など必須ssd1306_bitmap.py:bitmapファイルの表示ssd1306_effects.py:画面のパルス効果、点滅ssd1306_img.py:ssd1306_stamp.pyで作成されたimageを表示ssd1306_px.py:ドット単位で表示ssd1306_stamp.y:Micro:bit内で定義されたImageからssd1306_img.pyで表示できるImageを作成ssd1306_text.py:Micro:bit内で定義された文字を表示5.今回のライブラリーを使用すると、以下の命令がMuで使えるようになります。今回のライブラリーは128×64専用ですので、128×32では使用すると文字がつぶれるようです。下の実際の表示例を参照ください。命令の説明1.initialize()画面をリセットして初期化します。以下の命令を実行する前に、必ず実行する必要があります。2.clear_oled()画面を消去します。初期化の直後や、前に表示した画面を消去するために使用します。3.show_bitmap(filename)別途準備されたbitmapファイル作成ソフトで作成したfilenameをディスプレイに表示します。draw=1)x(0~127)とy(0~63)で指定した座標をcolor(0=黒か1=白)で指定した色で表示します。draw=0は表示用バッファーにデータを書き込むだけで、draw_screen()命令を使用して表示します。draw=1はすぐに表示されます。y)x(0~127)とy(0~63)で指定した座標の色(0=黒か1=白)を返します。draw=1)x(0~11)桁とy(0~3)行にtextで指定した文字を表示します。draw=1がデフォルト値ですので、指定しなくても表示されます。フォントはMicro:bit内で定義されている5×5のフォントを使用しています。注:Githubの説明では5行表示できると書かれていますが、実際には4行までのようです。Aボタンを押すと、Helloと4行表示し、Bボタンを押すと画面をクリアするプログラム7.create_stamp(img)Micro:bit内で定義されているImageを作成します。draw=1)7で作成したImageを表示します。9.pulse(time=500)画面の明るさを指定した時間で徐々に明るくします。デフォルト値は0.5秒です。10.blink(time=1000)画面をtimeで指定した時間で点滅します。デフォルト値は1秒間隔です。Muで実際にテキストを表示するプログラムを動かしてみる前の項目で紹介したサンプルプログラムのうち、6のテキストを表示するプログラムの手順を紹介します。使用する機能により、使用するライブラリーが異なりますので、注意してください。ビットマップ描画については、次の記事で紹介します。1.Muを開始して、text_sample.pyを作成します。転送しないでください。クリックすると、以下の様な画面になりMicro:bit内とコンピューター内のmu_codeフォルダーが表示されます。Micro:bit内には以前に転送したプログラムがmain.pyという名前で保存されています。どんな名前のプログラムを転送しても、main.pyという名前になります。mu_codeフォルダーはMuで作成したプログラムが保管される場所です。3.必要なライブラリーをコンピューターのファイル:からドラッグして、Micro:bitのファイルでドロップしてコピーします。ssd1306.pyをコピーします。以下のようになります。次に、同じようにssd1306_text.pyもコピーします。これをしないと転送できません。その後、転送をクリックしてプログラムをMicro:bitにコピーします。5.転送が終わるとプログラムが実行され、最初のメッセージが表示されます。Aボタンを押すと右のように表示されます。次の記事で、ビットマップ描画についてビットマップ作成手順と併せて紹介予定です。最後まで記事をお読みいただきありがとうございます。記事の改善に役立てたいと思いますので、よろしければアンケートにご協力ください。(必須)記事の中で解りにくい言葉や、内容について教えてください。上記の内容につき、説明などをこちらからメールしてもよい場合はメールアドレスを入力してください。連絡が不要であれば結構です。今回の記事に使用したMicro:bit以外の製品は以下になります。クロームブラウザーをご使用の方へ当サイトへの訪問ありがとうございます。その際、グーグルクロームブラウザーをお使いの方にお知らせです。グーグルクロームブラウザーでは、2018年7月から、サイトにより以下の表示がブラウザーのアドレスバーに表示されます。当サイトでも表示されますが、心配ありませんのでご安心ください。これは、SSLと呼ばれるWebサイトとそのサイトを閲覧しているユーザとのやり取り(通信)を暗号化するための仕組みを使用していないためです。ネットショッピング、銀行サイトではパスワードやクレジットカードの情報を扱いますので、必須の仕組みです。当サイトでは、そのような情報を扱っておりませんので、暗号化は必須ではありませんが、訪問される方により安心していただけるように、SSL化を予定しております。このメッセージはSSL化完了まで念のため表示します。40年間外資系IT企業で働いて退職後、フリーとして活動しています。小学生や中学生にプログラミングやコンピューターに興味を持ってもらえるような活動をしていければと考えています。コメントをキャンセルメールアドレスが公開されることはありません。WordPress.。