タイトルは某有名Youtuberのパクリです。
はじめに
Ontennaというデバイスが弊社から出てるっぽいです。
https://ontenna.jp/
私はこの製品とは何の関係もない部署で働いているので、そういうデバイスがあるだけなら「ふーん、なるほど」で終わるところだったのですが、Scratchにも対応してるとの知らせを聞いて少し興味が湧いたので、ついこの間収穫した (※)のひとかけらを使って購入しました!
https://programming-ontenna.jp/
始めかたもPDFマニュアルに記載されているので、簡単に扱えそうですね。
せっかく触ってみたので、こうして記事という形でアウトプットさせていただこうかと思います。
普通にAmazonで買ったので、一人の消費者として書いていこうと思います。
さっそくプログラミング
PDFマニュアルのセットアップを終え、Scratchを起動し、拡張機能を入れた図が以下の通りです。
左側にたくさんブロックがあります。
if文やfor文に対応するブロックや、LEDを光らせたりモーターを回すブロックがあります。
このデバイスのセンサはマイクだけのようで、**入力として受け取れるのは音量(音の大きさ)と音程(音の高さ)**だけです。
出力としてはLEDとモーターがあり、LEDの光は細かい調節が可能です。モータについては強・中・弱の3段階が選べます。もちろん、オフの状態に設定することもできます。
とりあえずこんな感じで、声の大きさでLEDの色が変わるようなプログラムを作ってみました。
if ~ else if ~ elseの構文に対応するブロックはないので、if ~ elseを積み上げていく構成になります。(このif ~ else if ~ elseの構文はScratchの基本機能にもないです)
PDFマニュアルにも書いてあるのですが、Ontenna用の拡張機能で用意されたブロックしか使えません。すなわち、Scratchに元々入っているブロックは使えません。
ブラウザ上でプログラムを実行するのではなく、Ontennaデバイスにプログラムを書き込んで動かすから、そのような仕様になっているのでしょうか。ブラウザ上でも動かせるようにBluetoothとかで遠隔で操作できるようになるとScratchの他の機能と組み合わせて動かせるようになって夢が広がる気がします。
プログラムを書き込んだら、あとは実行するのみです。(実行の仕方もマニュアル、またはプログラム書き込み時に出てくるウィンドウに記載されているのでそれに従えばOKです)
部屋の中でも加湿器やテレビのスピーカーに近づけたりするとLEDの色が変わっておもしろいです。
細かいTips
条件式を0.5秒後にまた実行しているこの部分についてです。
この0.5秒後にもう一度判定する処理を入れずに実行すると、ずっと音声を出し続けていてもLEDのランプが時々青になってしまいました。
ノイズとかで瞬間的にセンサの値が低くなることもありうるので普通はローパスフィルタとか、もっと単純に移動平均とるなりすればよいのですが、そういった演算機能に対応するOntenna用のブロックはありませんでした。
ということで、0.5秒待った後にもう一回判定する、というロジックを採用しました。ひとまずこれで、ランプが時々青になる問題は起きなくなりました。
さいごに
公式サイトを見る限り、このデバイスはろう者をメインターゲットにしているので、健聴者の大人や子どもたちがプログラミングのツールとしてOntennaを扱おうとすると一体どこまでのことができそうかは未知数ですが、何かおもしろいアイデアが出てきたらそれを具現化させてみたいと思います。
この記事を読んでいるサンタの皆さん、子どもへのプレゼントにどうでしょう?
※ ... 一般的に毎年6月と12月に収穫される