Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

つよつよIoTボードobnizがヤバい その4:レバーボタンをつかう

obnizには左右レバー式ボタンがついてます。
今回はこいつをつかう方法です。

実際のところ

以下の様な構文で受け取ります。
ACTIONは"push" "left" "right"の3種類と、何もない"none"が割り当てられています。

obniz.switch.stateWait(##ACTION##); 

おためしスクリプト

ボタンを検知してUIとボード画面に表示するスクリプト例は以下の通り。

<html>
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <script src="https://obniz.io/js/jquery-3.2.1.min.js"></script>
    <script src="https://unpkg.com/obniz@2.1.0/obniz.js" crossorigin="anonymous"></script>
  </head>
  <body>

    <div id="obniz-debug"></div>
    <h1>obniz instant HTML</h1>
    <div id="print">none</div>

    <script>
      var obniz = new Obniz("YOURID");
      obniz.onconnect = async function () {

        obniz.display.clear();
        obniz.display.print("Hello World");

        obniz.switch.onchange = function(state) {
          $('#print').text(state);
          obniz.display.clear();
          obniz.display.print(state);
        }
        
        // ボタン
        await obniz.switch.stateWait("push"); 
        console.log("switch pushed");

        await obniz.switch.stateWait("left"); 
        console.log("switch left");

        await obniz.switch.stateWait("right"); 
        console.log("switch right");

        await obniz.switch.stateWait("none"); 
        console.log("switch none");
      }
    </script>
  </body>
</html>

画面はこう
f:id:shuzo_kino:20190619234424p:plain
ディスプレイの方にはこんな感じで表示

参考もと

obniz.io

つよつよIoTボードobnizがヤバい その3:UARTで通信

軽いボード間の通信なら、UART。
今回はそのUARTをobnizで扱う方法について。

実際のところ

初期設定

デフォの通信レートは公式から情報を拝借すると……

電気的には

  • 5v push-pull drive
  • 内部プルアップなし

初期化、送信、終了

obniz.uart0.start({tx: 1, rx: 2, baud:9600, bits:7 });

obniz.uart0.send("Hi"); //文字列も
obniz.uart0.send([0x11, 0x45, 0x44]); //バイナリの配列も

obniz.uart0.end(); //お片づけ

受信

受信をテキストとして読むには、こんな風に

while(1){
    if(obniz.uart0.isDataExists()){
        console.log(obniz.uart0.readText());
    }
    await obniz.wait(10);   //10msまつ
}

バイナリとしてとるには

while(1){
    if(obniz.uart0.isDataExists()){
        console.log(obniz.uart0.readBytes());
    }
    await obniz.wait(10);  //10msまつ
}

参考もと

obniz.io

つよつよIoTボードobnizがヤバい その2:IOをつかってLチカ

マイコンボードなら、Lチカが王道ですね。
obnizはその辺りもHTMLベースでやれます。
本当にすごいやつです。

実際のところ

一個だけ、ポート0とポート1にLEDをつけるサンプルは以下の通り。

<!-- HTML Example -->
<html>
<head>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <script src="https://obniz.io/js/jquery-3.2.1.min.js"></script>
  <script src="https://unpkg.com/obniz@2.1.0/obniz.js"></script>
</head>
<body>

<div id="obniz-debug"></div>
<h1>LED</h1>

<script>
  var obniz = new Obniz("OBNIZ_ID_HERE");
  obniz.onconnect = async function () {
    var led = obniz.wired("LED", {anode:0, cathode:1});

    led.on();
  }
</script>
</body>
</html>

試しにLEDを増やしてみましょう。
つぎは2と3をつかいます。

<!-- HTML Example -->
<html>
<head>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <script src="https://obniz.io/js/jquery-3.2.1.min.js"></script>
  <script src="https://unpkg.com/obniz@2.1.0/obniz.js"></script>
</head>
<body>

<div id="obniz-debug"></div>
<h1>LED</h1>

<script>
  var obniz = new Obniz("OBNIZ_ID_HERE");
  obniz.onconnect = async function () {
    var led = obniz.wired("LED", {anode:0, cathode:1});
    var led2 = obniz.wired("LED", {anode:2, cathode:3});

    led.on();
    led2.on();

  }
</script>
</body>
</html>

この"obniz.wired"というのが、あらかじめ設定された部品設定を楽を使うことができるようです。
少し凝った実装をするのであれば、obniz.ioXみたいな感じで一個一個設定する様子。
たとえば、LEDで0と1に繋いでいるなら

var obniz = new Obniz("OBNIZ_ID_HERE");
obniz.onconnect = async function(){
  obniz.io0.output(true);
  obniz.io1.output(false);
}

UIのボタンと連動したい場合、

<script>
$("#on").on("click",function(){
  led.on();
})
</script>

//...

<button id="on">ON</button>

【読書メモ】集中力のひみつ

集中力のひみつ

集中力のひみつ


shuzo-kino.hateblo.jp
の続編。

前作は緊張をとる演技メソッドでしたが、今回は集中力について。
舞台脚本風の書き方、癖のある登場人物……と、風味も引き続き。

集中力というと、周りの音が聞こえなくなるような過集中のことをイメージしがちですが
実際に上手くいき、かつ継続性のあるものは作業興奮ベースの方法論だ楽な方法に逃げるなボケという論調。

切り出すとキリがないほどには、気付きや学びの連続でした。
とはいえ、今の精神状態だから響いたのだろうなというのも、また事実。
プロジェクトが事実上炎上に終わって、再発防止策を探している今だから内容が沁みてきたのだろうなと。

【読書メモ】感情とはそもそも何なのか:現代科学で読み解く感情のしくみと障害

感情というものについて、脳科学の視点からみていく学術書です。

かるい気持ちで開いてみたのですが、制御工学でお馴染みのフィードバック図が出て来て仰天。
さらに、ページをめくると数式がゾロゾロでてきて二度仰天。

曰く、感情というのは「認識」と「実際」とのブレから生じる補正信号みたいなもので
心は平衡を保とうとこのブレが小さくなるよう動く仕組みがあると。
さらに、このブレの大きさを物理のエネルギー保存則にみたてて解釈する学問として
「自由エネルギー原理」というものがあるそうです。

www.slideshare.net

このズレが大きすぎるのが不安障害、小さすぎるのが鬱*1となる……と。

書いててオカルティックな感じがしますが、
VR業界でも割と活用されているような割と新しく、
注目されている理論のようです。

*1:というか無力感?

【イベントログ】東京おもちゃショー2019にいってきました

www.toys.or.jp

今回は場所が西になっていたためか、どうも小規模になった印象が。
土日に子供も入場する事を念頭においているため、道が広いのも余計にイメージを加速させたのかも……。
加えて、実に展示会なフードコーナーが一フロアに一個ありましたね……素のカレーが800円……!!!

あと、大手中小問わずプログラミング学習系の玩具が増えた印象があります。
やっぱり、そういう流れ来てるのかも……。


組み立てミニチュアハウス
store.robotime.com
同シリーズの動く版マーブルコースター
store.robotime.com
www.youtube.com

去年も出てたTOIOが強化されました
toio.io

あと……ジオニック社さんがザクをSTEM教育キットをだしてました。
……ほしい。
www.youtube.com