【IoT】 学習実験 プログラミング micro:bit
2020年から小学校にコンピュータ教育が導入されることになりました。
そして、世の中はIoT 時代が叫ばれ始めました。
手のひらサイズ以下のボードに、Basic , Python , Unix まで乗っかる時代、何ができるが夢が膨らみますね。
先ずは教育用に絞って話してみませんか?
勿論なんでも教育用に使えますが、ある程度経験の浅い先生や親、子供達で簡単に使えそうなものに絞りたいと思います。
独断と偏見で、イギリス BBC放送が展開している、micro:bit が先ずあげられるでしょう。
micro:bitの冒険をはじめよう!
https://microbit.org/ja/guide/ >>12 iPhone のアプリ micro:bit を立ち上げるとこの画面
https://i.imgur.com/sm3SSer.jpg
Help 画面がこれ
https://i.imgur.com/SzNrPAN.jpg
全て英語、こりゃないよ。 幸い、MakeCode はオープンソースのようだから、俺が日本語化しちゃろかな。
makeCode本体は比較的日本語化もされてるけど
https://i.imgur.com/EljSy1f.jpg
下の方にあるボードの形をしてものは、ボードにコードを書き込まなくてもボードの動きを再現してくれる。
これだけでも結構遊べる。 なんとなくわかってきたのは、microsoftのmakeCodeはJavascriptをCに変換してコンパイルしてバイナリになるから、HEXファイルで送る必要がある。
これをPythonエディタで見ても何も出てこない。
pythonのソースをHEXに変換したもの(uFlash で作れる)は多分エディタに表示されるんだろうけど、makeCodeで作ったバイナリはPythonコードにはならないから何も表示されない。
edublocks と言うのがある、これはブロックエディタだが、Pythonの命令そのものを積み上げていく。
この方が統一性があるかも 英語しかないが
https://microbit.edublocks.org/
ただロジックの結合が全くよくない。
またエディタの上でソースを見れないのでダウンロードして別のエディタで見るしかない。 >>17 micro:bit には、最初はmicroPython が入っていないから、python のソースコードを実行させるには一度HEXファイル(microPythonが埋め込まれている)を作って送り込む必要がある。 だから600kb 位のサイズがある。(バイナリにすれば200kb位か?) google が、blockly と言うブロック方式のアプリを出してる。フリーで使え、開発者が変更することも自由。
javascrip で全て書かれている。 これ良さそうだなと思って、iPhoneにダウンロードしてちっちゃなサーバーを立てて動かしてみたら、遅すぎて使い物にならない。
iOS用に早くしたバージョンもあるが、もうサポート中止になってるらしいからどうかな。
Android版も専用のバージョンがある。
早ければ、python のコードにも変換してくれるから良いんだけどな。 >>19 google のサイトのオンラインのやつを使っても良いんだけど、フルpython用になってるから命令が多すぎ初心者には無理だしmicro:bitでは使えない。
やはりmicro:bit 専用にかつ日本語化して使いたいと思ったら自分でローカルで動かすしかない。
スマホで動かすとしたら大それたことを考えずに、エディタに毛が生えた程度で我慢すべきなのかも。
実機ですぐに確認しながらと言う強みはある。 makeCodeのシミュレーションも侮れないが、言語の統一性がない。 https://makecode.microbit.org/?lang=ja
でmakeCode を使い、ダウンロードすると、スマホの場合は micro:bit アプリにダウンロードする形になる。
それでmicro:bitアプリから書き出す。
アプリには英語の説明が出てくるが、子供は絵を見て理解するだろうから英語なんか一度使えば気にしないかも。
そのうち日本語化もされるだろうし、先ずは使わせてみることかな。
この形だと、makecodeサーバをローカル環境に置いておけば、外部回線を使わなくて処理もできるし。
問題はpython 言語環境だな。mu エディタは、スマホにインストールできないから。 ソニーがもう少し遊び要素を加えた学習教材を出してるね。 これもプログラミングはブロック方式。
KOOV(クープ)
https://www.koov.io/experience#m
https://www.sony.jp/koov/products/KOOV/
iPad Mac Windows Chrombook 版がある。
スターターキットで3.7万円
アドバンスキットで 5万円
拡張キット 2.2万円
面白いが高すぎるんじゃないのかな。 micro:bit に比べたら1桁違う。micro:bit もいろいろ拡張して行くとすぐに1万円を越すが。
こちらはArduino ベースのマイコン。microPythonも動きそうだが、プログラム言語自体は隠されている。 こんなのあった。
pythonよりは簡単そうだけど、makeCodeよりは難しそう。
PG0でmicro:bitのプログラムを書く方法
https://qiita.com/nakka_/items/4f2414e1603027490a01 >>23 なかなか面白い発想だね。 ただWindowsマシンを常にUSB接続して使うというのはどうだろうね。
Windowsマシンで使うなら、mu エディタでよいと思うけどね。
REPLが使えるからブレークポイントとか大げさなものはいらない。 小学校の授業ってプログラム目的ではないらしい。物事の考え方や発想を延ばすためらしい。
親父らでいうと自由工作にいろんなものを作って持っていった感じだよ。
ま、資源は節約になるわなw >>25
新学習指導要領
http://www.mext.go.jp/component/a_menu/education/micro_detail/__icsFiles/afieldfile/2018/03/30/1375607_01.pdf
しかしこいつら、コンピュータやプログラムが本当にわかってるんだろうか?
こんなに全科目で教育するなんて総花的な言葉を並べてもろくなことができるわけがない。
チグハグで子供達は何を習ったのか理解できないんじゃないのかな? しっかり教えるべきだよ。 第一歩としてはいいんじゃない?
専門性を持った人を育てるのが目的じゃないしね >>27 いいんだけど、全科目で教えるなんて言っても、先生達の負担になるだけだろ。
音楽的な楽しみが入っても良いが、なんで音楽の時間に教えないといけないんだよ。
全教科で英語を教えろと言ってるようなもんじゃないの? 先生達ができないのに。 専門家に任せるべきだよ。 中途半端になるだけ。 >>28
言ってることはもっともだと思うけど、やりますって動かないと何もできないわけだからね
負担が増えるのはわかったことなんだから何らかの解決策(ほんとに解決するかは別)は用意してるんじゃない?
色んな物事の考え方を、普通の考え方とプログラミング的な考え方と教えるためには、ひとまずたくさんの教科でやるのはいいと思うけどな
プログラミングって授業したところでプログラムを書くことを覚えるだけだろうし
目的に合っているとは言えないかもしれないけれど、間違ってるわけではないと思うけどね >>29 昔の先生はなんでもできて当たり前だったけど、今の先生はかなり低レベルになってるから期待しない方が良いと思うな。
専門の教師が全科目に渡っての応用を教える方が効果的。もちろんその時に科目の担当教師と共同でやると言うのは効果的だと思うけど。
ま、大上段に構えるからおかしくなるわけで、遊びの延長として教えるのが一番だな。 わざと難しくしてる。 >>30
概ねその通りだと思う
まあ、完璧な学校教育なんてないんだから
ゆとり世代とかしらけ世代バブル世代に、プログラミング世代が加わるだけじゃないかな
期待も落胆もないよ、時代の流れだね、こーゆー考え方は良くないんだろうけど 今の小学生の親の頃は自分でBASICを叩き込んだゲームで遊んでたけどな。
遊びならブロックプログラムなんかなくてもすぐに覚えるもんだよ。 ピンボールゲーム
https://youtu.be/QzWSRXqQBeQ
なかなか凝ってて面白いな。 小学5〜6年生ならこの位は作れるな。 親/教師の指導が必要かもしれないけど。 リモコンカーを作る材料を色々調べてたら、結構材料費が高くなる。
ダイソーが600円でラジコンカーを出してた。
これを改造すると結構安くできるから、色んなダイソーに電話をかけたがみんな在庫がないとのこと。
誰か東京都区内で在庫を見かけた人がいたら教えて欲しい。
仕方ないな、普通の安いラジコンを改造するかな、2000円も出せば手に入る。
本体の方の回路ボードは取り払い、その代わりにmicro:bit とモータードライバーボードを取り付ける。ebay で136円で注文した。
つまり使うのは本体とモーターのみ(左右のステアリングやLEDはそのまま利用する)
拡張ボードなんか買うと本体以上の価格になるから、直付け使い捨てでも良い気がする。
ただ、子供が触る壊すの経験をさせないのもどうかとは思うが。
ラジコンカーの改造で一番楽なのは、送信機のスイッチをmicro:bit で横取りしてコントロールすること。
これだと車本体には全く手を入れない。
micro:bitは送信機に貼り付けておけば良い。
ただ、micro:bit で遊ぶにはやはり本体側に入れた方が遊びがいがある。 ギャレス:我々のイギリスでの調査では、63%の学校で子どもたちの将来に必要となるスキルが教えられていない、という結果が出ています。
各国を視察してみて、この傾向はイギリスに限らないと思っています。日本も同じではないでしょうか? 、これを打開するポイントは先生です。みなさん「Computational Thinking*が重要」という認識はありますが、現状ではどう教えていいか分からない、という先生が大半です。
先生へのトレーニングシステムをどう構築し、彼らをどうサポートしていくか
Micro:bit教育財団CEO来日、その戦略とSTEM教育の現状を語る
加速する期待と不安――2020年、日本のプログラミング教育は本当にスタートできるのか?
https://fabcross.jp/topics/stem/20190108_microbit_ceo.html BLEが使えるnRF51822が載ってて母艦でFree Pascalでコンパイル出来るんやで >>38 micro:bit も同じチップが乗ってるけど、pascal というのは初耳。
もっともpascal は既に人気がないから、動こうが動くまいがどうでも良いが。
もしかして Python の書き間違い? >>39 馬鹿にするもんじゃ無いぞ。
第一に文法が全て積み木として整ってるから、選ぶだけで済む。
基本的な論理としては文字で書くより進んでいるとも言える。
micro:bit などだと、リアルタイムでLED やボタン操作などが見える。
多分小学校あたりのプログラム手法は、ブロックプログラミングで決まりになりそうだな。
Microsoft もGoogle もやってる。 どちらもフリーソフト。
日本の進む方向が見えないが、どうもMicrosoft に踊らされてるみたいだな。 micro:bit のサイトを見てたらサードパーティのエディタが紹介されてた。
edublocks と言うのが、ブロックプログラムから直接Pythonに落としてくれる。 どんなpython が出来たかすぐ見れるから良い。
ただし英語だけどね。
https://microbit.edublocks.org/
Windows から見ると、save はxml 、hex はhex 、Python はpy でダウンロードすることが出来るが、
iPhoneから見ると、hex 以外はblob:http://xxxxx としてブラウザに表示されるだけ。
形式としては全てblobとして渡してるだけだから、拡張子によって受け取るソフトがあるか無いかで動きが違ってるのかな? >>43 edublocks をちょっと使ってみたが、一度ダウンロードすると全て消える。出来が悪い。
なんだかんだ言ってやはり、makecode が、歴史がある分こなれてる。
ブロックプログラムを少し触ってみると、あまり言語は意識しなくても良いのかも。 下手に言語を知ってる人間から見るとまだるっこしいけど。
まずはこれを使いこなせるようになってから、本格的な言語の練習に入れば良いんだから、小学校の間はこの位で十分なのかも。 microbit.org は、python のエディタをmu-editor から、自前の python editor に変えたな。
https://python.microbit.org/v/1.1
これだとiphoneからでも使える。 ただ、ダウンロードの時に拡張子が外れるし、ストアする場所の指定が面倒。
micro:bit アプリが自動的に立ち上がらない。
ロゴからダウンロードすると、hex ファイル。ただの下矢印からダウンロードすると、py ファイル
まだまだ普通の人が使える状態じゃない。 >>45 フランス語バージョンを作った人のでは、シミュレータもうごいてるから、本家にもすぐに入るだろう。
物凄く回線が細そうだから時間がかかる。
here : https://educ.selmen.tn/python/
誰か日本語バージョンを早く。 本家に翻訳プロジェクトがある。
https://crowdin.com/project/microbitorg
韓国とかは結構翻訳が進んでるけど、日本は余り進んでいない。 みんなヘルプしてやって。
アラビア語 69%, 12%
フランス 36%, 2%
日本 23%.2%
韓国 19%,18%
中国 30%, 1%
色んなプログラム例なども翻訳してるから全体量としては多そう。 早くしないと来年に間に合わないぞ。 プレゼント用に、ラジコンカーを改造してBluetooth で動かすようなことを考えて部品集めしているが、色々やっていくと孫の小学校低学年にはやはり荷が重そう。
Bluetooth が切れた後の再接続は組み込んだ後にスイッチを押したりするのは面倒。 電池の持ちを考えると電池をオンオフしたりとか。 Li 電池はそれなりに高いし。
ラジコンカーはただ遊ぶだけのためにそのままプレゼントしよう。
homekit みたいな、家の中の電気を点けたり消したりするのをおもちゃの家の中にLEDを置いて、遊ぶ程度が手頃かなと思い、そっちの方の方に切り替えようかと思って調査中。
おもちゃの家とか、レゴブロックで自動車を作るとかは大好きな遊びだから。
2階の電気だけをつけるとか、自動車のヘッドランプの右だけつけるとか、色々面白がるんじゃないかな。
最初ラジコンカーに目をつけたのは、動きがないと飽きるだろうと思ったんだけど、ピカピカ光るのも刺激的な動きだから興味を持つだろう。
第一段階は、直接線を結んで光らせる。 第2段階はBluetooth でリモートから光らせる(遊びとしては声で指令を出すなんてのも親/先生が手伝っても良いかも) micro:bit から、iPhone に気温を取り込むようにして見た。
USB ポートに Li バッテリーをつないで使ってたら、直ぐに micro:bit が自分で電源を落としてしまうから、やはり電源ポートから供給しないとダメだな。
iPhone側はPythonista で作った。
micro:bit は、これだけ
https://i.imgur.com/c2EH5Fi.jpg
iPhone 側はプログラムを作らなくても、micro:bit アプリの Monitor で見ることが出来る。このモニターはどうやって使うかわからなかったが、要はmicro:bit 側で使うサービスを登録しておけばよいと言うだけだった。
温度計サービスと同じ所に全て羅列しておけばよい。
https://i.imgur.com/Y47BfKq.jpg >>48 Li バッテリーで電源が切れる原因は、micro:bit の所為では無かった。
AC充電器のUSB接続だと切れなかったから、Li バッテリーが流れる電流が少なかったら自動的に自分を殺してるみたい。 0.5秒毎にLED をつける程度の電流では効果がなかった。
スマホ用の充電用バッテリーで無く、電源用のLiバッテリーなら良いのかも。 いっそのことボタン電池にするかな。 >>45 github からダウンロードするとローカルマシンでエディタが動く。
https://github.com/bbcmicrobit/PythonEditor
現在のバージョンは 1.1.3
editor.html をたたけばローカルで動く。 >>45 iPhone にはtabキーないんだけどな、 ソフトキーを出してくれよ。 >>45
コードをダウンロードしてhex拡張子付けてもipadからmicrobitへの書き込み失敗するんだよね
Error in DFU operation Start DFUとか表示される
成功してる人いる? >>52 DFU Device Firmware Update
HEX ファイルは、microPython のコード全てをダウンロードするから、micro:bit は、完全なリセット手順からやらないと上手くいかないよ。
リセットボタンは押しづらいから、自分は電源のオフオンの方が楽。
USB 接続かBluetooth 接続かでも手順は違うけど。
MakeCode のHex は上手くいくの?
自分もpythonエディタからダウンロードさせたことはないけど。
話は変わるが、高校の情報1 のコンピュータのメイン言語がPython になり、センサーの話の例では micro:bit が出てきてるらしいね。 今は改定中で教師用研修教材はダウンロードできなくなってるけど。 ブロックでプログラムするの面倒だからどうしてもJavaScriptで書いてまうわ micro:bitもArduinoIDEで開発する方が簡単かな。
センサー付きArduinoマイコンボード。 micro:bit v2 試しに発注。しかし、旧版よりも安いところが。 ステイホームでヒマだからなんとなく面白そうで買ってみた
makecodeでブロック積み上げて喜んでるクソザコだけど作りたい物の妄想が止まんねえ 妄想の中身に興味津々。子どももそうなんでしょうね。 ブラウザのCookie消したらmakecodeで管理してたソースが消えちゃった
プログラムは頭の中にあるから戻せるけど、結構複雑なコード書いていたからちょっと面倒なんです
ubittoolと言うものでhex取り出して見たんですが、makecodeで読み込みできませんでした
何か復元する方法ご存じの方いらっしゃいませんか? micro:bit v2 I2Cが外部と内部に分かれて使いにくくなった。
アドレスの競合を回避したかったのかもしれないけど。 micro:bitのMakeCodeでコンパスプログラムを作るとなんでファイルサイズがあんなに大きくなるかな?
hexファイルが1MBを超えるんだけど、自分だけ? LEDの濃淡を利用してアンチエイリアシングして
ヌルヌル動くコンパスを作ってみた