2019年2月11日月曜日

【プログラミング教育】「正三角形のしくみを考えよう」の授業案

自作の教材をどのように授業で活かすかを例示するという点で、いろいろと試行錯誤を重ねておりました。料理人によって、食材の活かし方が違うのと同様に、同じ教材でも、それを使って授業をする教員によって活かし方が違うと思っています。その意味で、私自身が授業の仕方まで例示してしまうことに一定の躊躇があります。しかし、プログラミング教育の場合は、やったことも見たこともないという先生方が大半だろうと思われますので、試みに「こんな授業はどうですか」という提案をするつもりで例示をしてみようと思います。今回をスタートとして、【プログラミング教育】の授業案を掲載します。

【使用教材】
 【算数】いろいろな正三角形をかく(1)

【課題】
 「どうして正三角形になるのかな?」正三角形のしくみを考えよう

【児童の問】
 正三角形は、3つの辺の長さがどれも等しい三角形だよね。
 どんなに大きさが変わっても、正三角形になるのかな?

三角形の3つの辺の長さがどれも等しい場合に、正三角形と言われる図形になりますが、これをプログラムから確かめる活動をさせてみたいと思います。プログラムのどの部分が正三角形を描くためのプログラムなのかを探し出し、正三角形のしくみを考えるのです。

このプログラムでは、「答え」に入力された数値を使って(このプログラムでは、「5歩」を「答え」回繰り返すようにしています)線を描いて120度回ることを3回やって元のところに戻ります。(あえて、「(3)回繰り返す」にしていません)この部分にさえ注目させれば、他のところはあまり重要ではありません。えんぴつが描く図形が正三角形であると言えるのは、この部分があるからだと見出だせればよいのです。(人が歩くa歩は、人により状況により違いますが、Scratchの場合は、常に一定であることを説明しておく必要があると思います)

こうして、プログラムによる正三角形を描くしくみがわかったら、いろいろといじってみたくなるはずです。どこの数字をどうかえていったら面白いか、プログラムをより効率的にするにはどうしたらよいか、どんな図形でも描けるのか、…遊んでいるように学べるのもプログラミングの良いところだと思います。

2019年1月14日月曜日

Scratchでプログラミング教育用の教材づくり

これまでにも、総合的な学習の時間を中心にフィジカル・コンピューティングの教育実践を行ってきましたが、その時々の子どもたちの実態に応じてカリキュラムを作っていくような実践が多く、広く一般的に取り組むには、かなりハードルの高いものになっていました。

立場も変わり、できることが限られていく中で、「プログラミング教育」が必修化されるということになり、自分自身にもまだまだやれることがあるのではないかと思うようになりました。とはいえ、これだけに没頭できる立場ではないし、自分自身が授業ができる立場でもないので、先生方に実践してもらえる状態まで準備をしなければなりません。1年近く前に「プログラミング教育をはじめます」と宣言をしてからコツコツと計画を練り、授業ができる環境づくりをしてきました。手始めに、既にScratchのWebサイトで公開しているプログラミング教育用の教材をこのBLOGでも紹介し、授業実践に結びつけた記事を書いていきたいと考えています。
これらの教材は、「単体で使う」あるいは「完成品として使う」ということではなく、複数のものを組み合わせたり、中身を改変したりしながら「プログラミング的な考え方」を学んでもらうことをねらっています。

2018年11月11日日曜日

M5Stackを使ってみる

M5Stack」は、ESP32を搭載し、Wi-FiやBluetoothも利用可能な小さな(5cm角)マイコンボードです。ColorLCD(TFT 320*240)を搭載し、SDカードスロットもついています。拡張モジュールによって機能を追加することができるため、やりたいことをスマートに実現させるガジェットとしては申し分なく、コンパクトなAll in Oneマイコンボードと言えると思います。Arduino IDEでの開発が可能なため、手軽に始められると思って購入してみました。
スイッチサイエンスマガジンでも紹介されています。「M5Stackであそぼう

今回参考にしたのは、公式サイトにあるMacOS向けのページです。もともと、Arduino IDEを使っていたので、今回は、インストール作業をしませんでしたが、まだインストールしていない場合は、先述のサイトからお使いの環境に合ったものをダウンロードしてインストールしてください。

次に、USBドライバのインストールなのですが、Silicon LabsCP2104を使っているようなので、それに合わせてSiLabs CP2104 Driverをインストールします。今回は、こちらもインストール済みだったので、インストール作業はしませんでした。

続いて、ターミナルを起動し、以下のコマンドを丸ごとコピーして貼り付けてから、最後にEnterキーを押します。ちょっと長くて意味がわからない感じがすると思いますが、パソコンとESP32とのやりとりができるようにするために、インターネットを介して必要なファイルをダウンロードして、あるべき場所に配置する作業をしているようです。
mkdir -p ~/Documents/Arduino/hardware/espressif && \
cd ~/Documents/Arduino/hardware/espressif && \
git clone https://github.com/espressif/arduino-esp32.git esp32 && \
cd esp32 && \
git submodule update --init --recursive && \
cd tools && \
python get.py
すべて一度にコピー&ペーストした方が、手間がかからなくて済みます。一つ一つ確かめながらやりたい場合には、1行ずつやって頂いても結構ですが、その場合は「&& \」は、必要ありません。

続けて、Arduino IDEを使って、M5Stackのライブラリーをインストールします。Arduino IDEを起動して、「スケッチ」メニューから、「ライブラリをインクルード」→「ライブラリを管理…」と選択していきます。出てきた画面上の検索窓に「m5stack」と入力します。すると、「Library for M5Stack Core development kit」という項目が現れるので、これを選択してインストール作業を行います。アップデートがある場合には、アップデートもお忘れなく。

Arduino IDEを一度閉じてから再び起動し、M5Satckの本体(Core)をUSB Type-Cに対応したケーブルでパソコンに接続します。今回は、自宅のMacを使っていますので、以下はMacでの動作確認となります。ここからは、「小型万能マイコン「M5Stack」で自分だけのクソダサいスマートウォッチを作る」を参考に、M5Stackの画面に時刻を表示することにしました。
#実は、M5Stackをスマートウォッチ風にする「M5WATCH」を購入していて、何かできないかなと思っていたのでした。

Arduino IDEの「ツール」メニューから「ボード」→「M5Stack-Core-ESP32」と選択します。同じく、「ツール」メニューから「シリアルポート」→「/dev/cu.SLAB_USBtoUART」と選択し、準備は完了です。「スケッチ」メニューから「スケッチ例」→「M5Stack」→「Advanced」→「Display」→「TFT_CLOCK_DIGITAL」とたどって選択し、コンパイルしてM5Stackに流し込んだら、画面に時間が表示されました。まだまだおもしろいことができそうです。これから、スケッチ例も参考にしながらなにができるかやってみたいと思います。
#ちなみに、今回のデジタル時計は、電源を切ってしまうと時間がリセットされてしまうので、注意が必要です。

2018年10月27日土曜日

USBシリアルモジュールでIchigoJamとその仲間たちのファームウェアを更新する

自宅には、教材研究のために購入し組み立てたIchigoJamが、新旧合わせて5個あります。忙しさにかまけて3年ばかり放置しておりましたが、そろそろ先生方にも紹介してみようかなと思いたち、最新のファームウェアに更新することにしました。

前回の更新では、FTDIのチップを載せたUSBシリアルモジュールを使って、Maclpc21ispからhexファイルを流し込む方法で更新を行いましたが、今回は買ったまま放置していたJamToastを使ってやってみることにしました。ところが、Webサイトを眺めていたら「SDカード非対応」らしき記述を発見。MMCカード及び互換カードって何?という状態で調べてみましたが、SDカードでうまくいくかもしれないとか何とか。試しに自宅に在庫しているSDカードを使ってやってみましたが、いくらやっても使えるSDカードに巡りあうことができませんでした。仕方がないのでやっぱり今までの方法で、IchigoJam、IchigoLatte、PanCakeのファームウェアを更新することにしました。
#前回参考にしたものと合わせて「ファームウェアの更新」も参考にしました。

IchigoJamのWebサイトでファームウェアのhexファイル等が公開されているので、ここからダウンロード(現時点での最新版は、1.2.3でした)して、適当なところに展開しておきます。今回は、私が使っているキーボードがUS配列のため、「ichigojam-ntsc-uskbd.hex」を使います。USBシリアルモジュールは、他のものでも構わないようです。
#5Vモードで動かした状態でないとダメみたいですが、はっきりとした検証ができていません。

IchigoJamとUSBシリアルモジュールの接続が終わったら、IchigoJamの電源を入れます。LEDがうっすら光っている状態がISPモードで、ファームウェアの更新を受け入れられる状態です。次に、Maclpc21ispを起動して、更新するhexファイルを選択します。続いて、シリアルポートの選択画面が表示されるので、「/dev/tty.usbserial-(※チップによって違う文字列)」を選択します。後は、書き込みを開始してしばらく待ちます。すると、無事に書き込みが終了して確認を求める画面が表示されます。これでファームウェアの更新は終了です。
#一番新しいIchigoJam Tは、表面実装のチップを含めて手ハンダで作ったためか、うまくファームウェアの更新ができませんでした。

同じことを、IchigoLatteでもやってみました。使ったのは、IchigoLatteファームウェア(ダウンロードファイルへの直リンク)で、現時点での最新版は1.1.7です。こちらは、IchigoJamと同様の操作でファームウェアの更新が完了しました。

次に、PanCakeのファームウェア更新を試みました。使ったのは、PanCakeファームウェア(ダウンロードファイルへの直リンク)で、現時点での最新版は1.2です。いろいろなWebサイトの情報から、PanCakeのファームウェア更新が面倒であることはわかりました。結局一番わかり易い方法として、IchigoJamのLPC1114FN28を外してPanCakeのLPC1114FN28を載せ替えてから、同じ手順でファームウェアの更新を行いました。これ以外の方法も試してみましたが、うまくいきませんでした。
#足が折れてしまうと使えなくなってしまうので、かなり慎重に作業をしなければなりません。

ここまでやって、かなり遅くなってしまったので作業を終了することにしました。残りは、MixJuiceのファームウェア更新です。次の作業ができるのは、いつになることやら。

2018年10月18日木曜日

micro:bitのKL26Zのファームウェアを更新してWeb USBを試す

フィジカル・コンピューティングを学校に持ち込むキラーディバイスとして注目しているmicro:bitですが、「ファームウェアを更新した」という話が聞こえてきて、自分でもどうすれば良いのかやってみなければと思いたち、調べてやってみました。

ファームウェア更新の対象になっているのは、インターフェイスプロセッサKL26Zというチップです。参考にしたのは、「ファームウェア(DAPLink)の更新」というページです。基本的には、このページにある通り更新作業を進めていけばよいのですが、リンク先のARMmbed/DAPLinkには、現時点での最新バージョンとして「REL v0250」がトップに来ています。これを更に調べてmicro:bitのSupportページで見ると、「Beta testing - Web USB」となっています。どうやら、βテスト中ではあるものの、Web開発環境から直接プログラムを書き込めるようになっている(ただし現時点ではChromeのみ対応)らしいのです。これは試してみるしかないと思い、4つ持っているmicro:bitのうちの1つでやってみることにしました。
#Supportページの一番下にあるリンクからmicro:bit用のファームウェアをダウンロードした方が早いです

まず、リセットボタンを押しながらUSBケーブルでパソコン(うちではMac)に接続します。すると、「MAINTENANCE」という名前のドライブアイコンがデスクトップに現れます。この中に、あらかじめダウンロードしておいた「0250_kl26z_microbit_0x8000.hex」ファイルをドラッグ&ドロップします。すると、勝手にドライブがアンマウント(再起動)されます。再びマウントされると「MICROBIT」という名前になりました。中身を開いて「DETAILS.TXT」を開くと、確かに「0250」になっていました。これで、ファームウェアのアップデートは完了です。

続けて、「WebUSBを使ったプログラムの書き込み」を参考にしながら、Chromeからの直接書き込みをやってみます。Chromeは、既にインストールしてあるので、指定されたURLをコピペしてmicro:bitのブロックエディタを開きます。歯車の設定マークから「Pair Device」を選択し、つながっているmicro:bitを選択します。これで、ブロックでプログラミングしたら、「ダウンロード」ボタンを押して直接書き込むことができました。これは便利です。

スイッチサイエンスさんのchibi:bitでもできるかもしれないと思って試してみましたが、ちょっと勝手が違うようでうまくいきませんでした。でも、残りのmicro:bitは、すべてファームウェアの更新ができました。10月26日には、ブロックエディタ(MakeCode)自体がアップデートするみたいなので、楽しみにしています。

2018年10月14日日曜日

カブトムシの世話(2018秋その2)

前回の世話から1ヶ月と少し経ちました。昨年からカブトムシ飼育に腐葉土を取り入れて経費削減を狙っていますが、消費量が多いためか目に見えてかさが減ってしまいます。その上、だいぶ表面近くまでフンで覆われるようになってきたので、急遽マットの状態を確認しつつ腐葉土&クヌギマットを追加することにしました。
#実を言うと、来月職場でパンジーを植えるため、その肥料としてカブトムシのフンを使うことになっているのでした。

カブトムシたちにとっては、腐葉土よりもクヌギの方が人気があるらしく、クヌギの多いところに密集していました。一つ意外だったことは、腐葉土でも水分の多いところにはカブトムシが集まっていたことでした。度重なる台風襲来のためか、コンテナの蓋の下側から水が上がって入ってしまったものと思われます。あまりベチャベチャなところには寄り付かないと思っていたので、これは意外でした。

ふるいにかけながらフン(一緒に腐葉土の大きな葉も入ってしまいますが)を取り除き、数を数えていくと全部で67頭いました。大きさはまちまちでしたが、水を吸わせて入れておいたクヌギの朽木に群がっている感じでした。(やはり水分は大事なのね)

ふるいにかけたマットを5cmくらい敷いて、その上に新しい腐葉土を40L入れて、カブトムシたちと残りのマットを入れて、最後に加水した新しいクヌギマットを10L入れて終了しました。ふるいにかける作業は、汗だくになるくらい運動になりました。蚊にもたくさん刺されたので、虫刺されの薬を塗りました。

これで、しばらく様子を見ようと思いますが、追加用の腐葉土は 80L、クヌギマットは20Lあるので来年の春まではこれでなんとなると思います。ちなみに、カブトムシのフンは、30〜40Lくらいありました。

2018年10月9日火曜日

古いacerのサブノートにLinux Mint 19をインストールする

先日、Linux Mint 18を18.3にアップグレードした際に、古いacerのサブノート1台で、画面表示に不具合が生じてしまいました。画面の3/5程度がうまく表示されず、実用に耐えない状態になったのでした。そこで、これを解消しようとLinux Mint 18.3のインストールイメージを探しましたが、ふと「だったら19にしても良くない?」と思いつき、Linux Mint 19で実用レベルになるかどうかやってみることにしました。

Linux MintのWebサイトからインストールイメージをダウンロード(今回は、軽さに期待してXfceをチョイスしました)して、Mintで動かしている別のacerのサブノートに保存。「USBメモリフォーマッタ」を使って一度USBメモリ(8GB)自体をフォーマットして、「USBイメージライタ」でISOイメージを焼きました。程なくして出来上がったブータブルUSBメモリを不具合のあったサブノートに挿して起動すると、あっけなく正常に起動してくれました。

続けて、デスクトップに表示されているInstallerを起動して、HDDへのインストール作業開始。途中、日本語を選択、日本語キーボードを選択、タイムゾーンを選択、オープンソースではないソフト(Flashとか)のインストールを選択して、インストール作業が始まりました。これも万事スムーズに進み、再起動を促されたのでそのまま再起動。起動メディア(この場合はUSBメモリ)を抜くように促されて、USBメモリを抜いてEnterを押すと、再起動が始まって、程なくしてLinux Mint 19のデスクトップが表示されました。その後、アップデート作業に少々時間を使いましたが、通過儀礼と思って対応しました。

日本語入力については、Mozcがインストールされていて、特に追加でインストールする必要がありませんでした。このあたりはとても便利になりました。LibreOfficeなど使い慣れたものもインストールされていて、すぐに使えました。さらに、「Synapticパッケージマネージャ」で以下のものをインストールしました。
Scratchは、1.4がインストールされますので、日本語で使用する場合は、既知のバグがあるため対応が必要です。それ以外は、スムーズに動いてくれました。PicoBoardWeDoとの接続については、まだ試していません。

eToysは、日本語を表示するフォントが設定されていないために、日本語が使えない状態でした。これはちょっと時間がかかりそうなので後回しにすることにしました。(シンボリックリンクの設定をしてやればいけるんじゃなかったかなぁ…自信なし)

Arduino(IDE)は、1.0.5がインストールされました。起動こそスムーズにできたものの、肝心なArduino本体との接続がうまくいきませんでした。FTDI関連のドライバをインストールすれば良いかもしれないと思って「Synapticパッケージマネージャ」を使ってインストールしてみたものの、全く変化なしでした。

最後に、Dolittleのインストールを試みました。ダウンロードのページから、Raspberry Pi用のdebパッケージファイルをダウンロードしてインストールしてみました。無事に動いてホッとしました。サブノートの画面では、ちょうどいい感じでした。

オンライン版のScratchやDolittleについては、両方とも問題なく動きました。プログラミング学習環境としては、特に問題ないレベルだと思います。後は、フィジカル・コンピューティングまでできるかどうかというところがネックになるかも。

全体の動きとしては、少し反応が遅い感じがして多少の違和感はありますが、十分実用レベルの状態ではないかと思います。何より、これだけ古い機材を活かし続けられるのも、Linux Mintの開発に関わる方々の努力の賜物と頭の下がる思いです。