from electron 2 web

インターネットのリソースを無駄遣いして検索におけるUXを下げてごめんなさい

圧倒的文章力のNASAでゴミみたいなチラ裏のようなメモを量産してしまい全ての"Web開発者"にごめんなさい

mbed、Arduino、milkcocoaなど

前々からこの辺のボードは持っていたのだが積読ならぬ積んボードしていた。

ツイッターでこのように呟いたらわみさんや中の人から無言の圧力がかけられた気がするのでいい機会だし触ってみる。

f:id:lv7777:20151221211606j:plain

mbed

解説などはそこら辺に腐るほど転がっているのでそんなものはしない。

一言で言えば最高だった。

  • IDE要らない

mbedシリーズの機種を判定するIDがあるので ID入力して登録してブラウザ側でコードを書いてmbedサーバー側に送ってmbed鯖がコンパイルしてくれる。
んで接続してそのままrootにDnDでおk

ArduinoピンがあるためArduino用のシールドを挿せば認識してくれる。

  • usb TypeC

LPC810とかはそもそも接続するとこからはじめなきゃ行けないし接続しても認識しない、ソフトウェアダウンロードが必要、ボーレート、I2Cなどいろんな障害がある。(まあマイコン1個だからしょうがないっちゃしょうがないけど)

しかしコイツはusb接続してDnDのみ。30秒で終わる。 LPC810のときはつまづきまくってLチカするだけで2周間位かかった。

  • mbed.orgが気が効いてる。

分かりやすかった。サンプルもあるし。

Arduino

昔VSでArduino拡張プラグインを入れていたのでVSだけでArduinoに書き込んだり色々出来るのかなと思ってたけど違った。 ArduinoIDEとかいうのいれないといけないっぽい。 ArduinoIDEしか使えないってことは非公開のコンパイラでも使ってるのかな?

まあとりあえずダウンロードしてインスコした。 以外に軽かった。  

とりあえずLチカした。なんかエラー出た。 エラーコードでArduinoを認識してないってことが分かったのでggってシリアルポートの設定したらいけた。

10分で出来た。さすが有名なだけあってめんどうな設定とかいらなくて良い。
LPC810や16F84Aはゴニョゴニョ

milkcocoa

milkcocoaのwebサイト、不具合多い。。。
サンプルが出来なかったり、新しいアプリを作る→enter押した後に一度更新しないと表示されない、など。
あとタブのタイトルがずっとeditなのも気になった。データを見るときもeditっていうのはなあ。。。

今回はこれをやってみる。 qiita.com

jhony-five

nodeライブラリ。

  • ラズパイ
  • IntelGalileo
  • Arduino などで動く。

記事をぱっと見た感じだと センサーやらの制御対象-(ジャンパー線)-Arduino-(usb)-node.js-(インターネット)-milkcocoa鯖
って感じだと予想 node.jsがメインになってArduinoと通信(jhony-fiveライブラリ)したりmilkcocoa鯖に送ったり(milkcocoaライブラリ)。 ミルクココアの方はwebsocket使ってるっぽい。

が、ここで肝心なことが一つ。センサーがない。

f:id:lv7777:20151221230338j:plain しかし電子回路の部品を集めるのが趣味な俺に死角はなかった。 めんどくさいので撮ってないけど左の袋があと3つある。実家にも2袋位ある。いろんな電子回路部品が入ってる。

電子回路では入力と出力があっていればとりあえず動く(まあ抵抗とかインピーダンスとかいろいろあるけどさ) データシート見てみてけどとりあえず0度で0v、んで10mvずつでいい感じかな? とりあえず合成抵抗で約165mvを作ってみた。

計算: 3.3v入力/1kΩ=3.3mA とりあえず20度くらいにしたいので200mvを出力したい。 200/3.3=60Ω

33=約10mv=1度 3100=約300mv=30度

3~100Ωの可変抵抗

もし100~1000Ωの可変抵抗を使うなら、 0.1mA~0.4mAの可変電流(?)を使わなければいけない つまりもう1個のRも可変抵抗にする必要がある

P.S. 5vだった。。。。
まあいいや50度になるだけだし。

しかもなんだかんだで大須行ってLM35買ってきたし。

結果

一度目は失敗したが2度目はほぼ予想道理の結果が得られた。
なんか文字化けしてるけど多分ライブラリ側がl10nに対応してないんだろうと予想。

一回目  

分圧するときの抵抗の900ΩとVRを間違えた。
松岡修造が近くにいる時もこうなる。

450.1953125??C 842.3515625??F
479.00390625??C 894.20703125??F
497.0703125??C 926.7265625??F
476.07421875??C 888.93359375??F
449.70703125??C 841.47265625??F

2回目

Microsoft Windows [Version 10.0.10586] (c) 2015 Microsoft Corporation. All rights reserved.

C:\XXX>node arduino_demo.js
1450844344080 Device(s) COM3,COM5
1450844344094 Connected COM3
1450844347874 Repl Initialized
24.90234375��C 76.82421875��F
25.390625��C 77.703125��F
47.36328125��C 117.25390625��F
47.36328125��C 117.25390625��F
46.875��C 116.375��F
48.33984375��C 119.01171875��F
48.33984375��C 119.01171875��F
47.36328125��C 117.25390625��F
47.8515625��C 118.1328125��F
2.9296875��C 37.2734375��F
1.953125��C 35.515625��F
47.36328125��C 117.25390625��F
1.953125��C 35.515625��F
50.29296875��C 122.52734375��F
1.46484375��C 34.63671875��F

サーバー側で結果を見る

node.js(この場合はjonny-fiveライブラリ)がデータをmilkcocoaサーバーに送ってくれる。
サーバーに送られたデータはtempという場所に一時保存されるっぽい。

感想

たのじいいいいぃぃぃ!!! 久しぶりに電子工作したし、arduinoやらmbedにも触ることが出来た。
milkcocoaもIOTする時に重宝しそうだ。ちなみにこれはIOTじゃないけど。

最後に

実はこれだけならWebMidiAPIを使えばブラウザから直接制御出来る。 まあデコーダ書かなきゃいかんけど。

そして俺は高3の卒業研究の時に(つまりIOTブームの一年前に)もうIOTはやっている。


twitterで一番最初に呟いたtweet (結局作ってないけどな)
あのころはかなり電子回路系のtweetばっかだったけどその頃からweb系目指してた気がする。