ボード型コンピュータでIoT、というトレンドはプログラミング教育を変える!

IoT(Internet of Things)とは?
IoTとは、internet of thingsの略語。モノのインターネットと直訳されることも。実際は、ものとモノがインターネットを介してつながる世界、そういったムーブメントの事をこう呼んでいるようです。
ここで言うモノって何でしょう??
もう、何十年も前から、コンピュータはインターネットにつながっています。では、その頃からIoTという言葉があったかと言うとそんな事はありません。
昨今のIoTは人が介在しないと言うと意味で、モノとモノがつながっている状態の事を言います。
また、その昔はインターネットにつながるモノと言うと、マウスとかキーワードが付いた、いわゆるコンピュータ。そして、カメラセンサーや、電球?がつながったとしても、コンピュータのRS232のシリアル(古い!)などのインターフェイスを介してコンピュータにつながったものを操作していました。コンピュータ経由でインターネットにつながる。この場合、モノは言ってみれば、脇役でした。
現代は一昔前のコンピュータの機能がとても小さなチップに収まるほど小さくなりました。消費電力も信じられないくらい低く、電池で十分動きます。結果、色々な身近な家電や機器にインターネットにつながる機能が入ってしまいました。
例えば、私のブログで何度か登場する、スマート電球のhue。
これなども、ある意味、ちょっとしたサーバー機能が内蔵されたコンピュータです。(実際はブリッジと言うと小さな箱がそれに当たります)
これがインターネットにつながることで生活に新たな体験を加える存在になっています。
今や、そんな機器が日々増えていて、生活に入り込んできているのです。
小さなコンピュータはプログラミングも変わる
コンピュータがそんなに小さくなると、エンジニアとコンピュータとの関わり方も変わってきています。
昔は、プログラミングと言えば、目の前のキーボード、マウスが付いたコンピュータのソフトウェアを作ることでした。(もっと昔はパンチカードに穴を開けるのがプログラムを書くこと。。。なんて時代もありましたが、その話は置いときます)
しかし、IoT時代の現代は、電球に入るくらい小さなコンピュータ相手にプログラムを書く必要があります。
ハードの進化と同様にソフトウェア開発の仕方も変化しています。
より簡単に、誰でもプログラミングできるプログラミング言語や、開発環境が開発されてきていて、生粋のエンジニアで無くても使えるものに変わってきています。
もともとwebページの表示要素を動的に見せるための言語だったJavaScriptは小さなコンピュータのプログラミングをする為に使われています。
また、昔は小さなコンピュータの開発現場では少ないリソースをうまく使うためにコンパイラを必要とするプログラミング言語、C言語などが使われていました。今はPythonのようなインタープリタ形式の言語が小さなコンピュータでも使われたりします。(C言語のような言語はコンパイラ言語と呼ばれ、コーディングした後に「コンパイル」して別の形式のプログラムに変換する作業が必要です。PythonやPHP、JavaScriptなど、インタープリタ言語は書いた直後にそのまま実行可能。その分動作が「遅い」と言われていましたが、今はそんなことより、開発の効率のほうが重視されます)
IoTはボード型コンピュータの時代でもある
小さなコンピュータはまさに、それ自体はキーボードやマウスのコンピュータの体をなさないので、まさにIoT向けなのです。
前置きが長くなりましたが、本日はそんなボードコンピュータをネタにしたかったのです。
ハードのオープンソース化。画期的なArduino
2000年前半に画期的な、ボードコンピュータArduinoが現れました。小さなボードコンピュータにセンサーやサーボなど外部機器を簡単に制御でき、ハードの仕様がオープンソース化(?)されているものです。ソフトウェアもArduino言語でコーディング。でも、小さくて易くて誰でも使えるハードとしてはかなり普及しています。
実は私は、独自言語を学ぶつもりがなかったので、すぐに飛びつかなかった方です。今でも横目で見ているくらいです。
Linuxが動き、Pythonでハードの制御ができるRaspberry Pi
Raspberry Pi、通称、ラズパイが私には響きました。
LinuxがOSとして動作して、Pythonでハードの制御も出来てしまうのです。Pythonというプログラミング言語は今やAIの機械学習の王道中の王道のプログラミング言語。AIだけではなく、Webサイトの開発などにも使われるものです。
WiFiなども内蔵されていて、この数センチ四方の小さなコンピュータがあれば、クラウドを利用してなんでもできる世界が広がりました。
IT・プログラミング教育にIchigoJam
IoT時代は、マウス、キーボードがつかないコンピュータの世界だと言いました。その為に、ボード型のコンピュータのソフト開発をするには、一旦別のパソコンでプログラミングをしたものをボードコンピュータに持っていく必要があります。
IchigoJamは小さな教育用ボードコンピュータですが、ボードコンピュータにマウスとディスプレイがつながり、それだけで完結してプログラミングが可能です。
教育目的はその方がわかりやすいのかも知れません。
IoT時代は、プログラミングやIT教育もこれまでとは違ったものになりつつあります。小さな小さなボードコンピュータをIO制御(センサーからデータ撮ったり、何かを光らせたり、回したり)も含めた学習に使っていこうという動きです。
私も、子どもが小学生の時に、IchigoJamのBASIC言語でプログラミング自由研究をさせました。
BBCは中学生の教育にmicro:bitを配っている
教育向けにBBCが配っていると言われる、micro:bit。ここまで来ると、ボードコンピュータもIoT向けと言うよりは、教育色が強くなってきます。
プログラミング言語は、JavaScriptなど一般的なものも使えるのですが、それよりも概念を教育すべく、ビジュアルプログラミングの環境が充実してきています。
教育・IoT・人工知能に使える?!obniz
実は、本日、ブログのネタでこれを書こうと思ったのは、今朝たまたま、obniz(オブナイズ)の存在を知ったからなのです。
WiFi経由で、そとからプログラミングする小さなボード型コンピュータ。
目指しているのは、教育、IoT、人工知能。
やっぱり、この辺りのキーワードが最近のボード型コンピュータのトレンドなのでしょうか。
朝から早速Amazonでポチッとしてしまいました。使ってみた感想はまた別途報告します!
Auto Amazon Links: Auto Amazon Links アソシエイトタグ (ID) が設定されていません。ユニット設定を確認して下さい。
Auto Amazon Links: プロダクトが見つかりません。