mokjpn

32 posts
M5Atom+PIR UnitをSinric ProでAlexaのモーションセンサーにする

M5Atom+PIR UnitをSinric ProでAlexaのモーションセンサーにする

M5Atom Lite とPIRセンサユニット を使って、SwitchBot を動かして照明を人感センサー付きにする、という記事 を最近掲載したばかりですが、実は人感センサーを付けたかったリビングには他にも1つ、赤外線リモコンで操作する照明があって、そちらも同時に人感センサーで制御したいなと思いました。そちらの照明はすでに、SwitchBotハブプラス でAlexa対応しており、SwitchBotもAlexaから制御できるので、このさいM5AtomをAlexaに対応したモーションセンサーにしてしまえば、Alexaの定型アクション 機能を使って、複数の照明を同時に制御できそうです。検索していたら、Sinric Pro という、Raspberry PiやESP32などをAlexaのスマートホームスキルに対応したセンサーやスイッチとして動作させるためのサービスがあったので、そちらを使ってM5Atom + PIRセンサーユニットをAlexaのスマートホームスキルで使えるモーションセンサーにしてみました。 作り方Sinric Proでは、

  • mokjpn
ピンク極小7セグLEDシールドにスマートメーターからの電力使用量データを表示する

ピンク極小7セグLEDシールドにスマートメーターからの電力使用量データを表示する

最近では、多くの家庭の電力メーターがスマートメーターに交換されており、Wi-SUNという長距離通信方式によって電力使用料が遠隔報告されているそうです。この使用料は、対応する通信装置さえあれば、自分でデータとして受信することができます。 きっと何かに役立つでしょ!? さんが BOOTHで販売されている、M5StickC 用Wi-SUN Hatに、ROHM 無線通信モジュール BP35A1 をつけることで、この電力使用料をM5StickCで受信することができます。受信したデータはAmbientなどにインターネット経由で送信してグラフにしたりできますが、M5StickCではESPNowという、Espressif社のチップ同士で可能な簡単な通信が使えますから、これを使えば、家庭内だけで複数の機械に電力使用量のデータを配信することができます。 そこで、最近Shigezoneさんで購入した、小型でピンク色の珍しいLED7セグメント表示器をのせたシールドに、ESP-WROOM-32をArduino互換の基板にのせたボードをつけて、ESPNowを使って使用電力量を受信して表示してみました。 スケッチESP-WROOM-32のスケッチは、GitHub Gistにおきました。

  • mokjpn
M5Atom, PIR Unit, SwitchBotで照明に人感センサーをつける

M5Atom, PIR Unit, SwitchBotで照明に人感センサーをつける

最近SwitchBot が安く買えることが多いので、いつのまにか3つに増えていました。照明のスイッチにつけているので、人感センサーをつけて、5分動きがなかったら消灯、のような使い方が代表的かと思います。3つのうち1つはHueモーションセンサーからAlexa経由で、もう1つはモーションセンサー をつけたEcho FlexからAlexa経由で操作させ、人感センサーと連動させています。3つ目もモーションセンサーをつけたかったのですが、ちょうどM5Atom が届いたので、これとPIRセンサユニット を接続して、BLE経由でSwitchBotを操作することで、モーションセンサーと照明スイッチを連動させてみました。 接続 M5AtomとPIRユニットを接続するだけです。写真ではATOM Matrixを使っていますが、ATOM Lite を使っても、そのままのソースコードで動作しています。 仮止め状態なのできたないですが、

  • mokjpn
カムプログラムロボットキット

カムプログラムロボットキット

こどもの夏休み自由工作、今年は何かプログラミングをやらせようと思い、カムプログラムロボット工作キットを考えていましたが、最近になってこれをベースとしたと思われる新製品マイコンロボット工作セットが出たので、そっちでやらせてみました。 左側が子供が作ったマイコンロボット工作キット、右側が一緒になって自分で作った、カムプログラム工作キットをベースにちょっと改造したものです。よく見るとギアボックスから上が前後逆についているという違いがありますが、基本的には多くの部分が共通です。カムプログラムロボット工作キットも、そのままでも物理的なカムを読むことでその指示に従った動作をするというプログラミングができますが、マイコンボードを装着することを想定したと思われる広いスペースが中央部にあいていて、マイコン制御に改造することが簡単にできます。micro:bit を用いた例がこちら で紹介されていますね。今回はGR-CITRUS+SAMBOU-KANを使ってみました。距離センサー GP2Y0A21YKもつけています。ルアリダワークスさんで取り付けパーツと一緒に購入しました。 マイコンロボット工作キットのほうは、micro:bitが付属していて、ギアボックスをつくるところが少し大変ですが、小学生でも十分に組み立てることができます。付属しているもの以外にmicro:bitを持っていれば、

  • mokjpn

wLinux & x410 & Rstudio setup

だいぶ前に書いたメモですが、一応公開しておきます。 Windows subsystem for Linux(WSL) は、Windows10でLinuxアプリケーションを動かす機能で、一般的にはそれほど必要とされる機会は多くはないかもしれませんが、R言語を日本語のWindowsで使うときは通常のWindows版Rを使うよりもトラブルなく利用できるため重宝します。というのも、Windowsにはいわゆるja_JP.UTF-8に相当するロケールがなく、日本語を使う場合はシフトJIS(CP932)を文字エンコーディングとするしかないので、日本語を意識していないパッケージの場合は、図表中の文字やR markdownの処理結果における文字化けなどがWindowsでだけ発生することがありました。WSL上でRやRstudioを使うことで、ja_JP.UTF-8ロケールが利用できますから、日本語を含む図表を作る場合でもトラブルは少なくなる印象です。 ここで取り上げているwLinuxは、最近ではPengwin という名前に変わっているようですが、RとRstudioをインストールして日本語環境を整える上ではそれほど変わりはないようです。wlinux-setupなどのコマンドは、pengwin-setup のように名前が変わっているようですが、基本的には以下の手順で、64ビット版のWindows 10でWSL上でR, Rstudioを動かし、日本語の入力も行えるようになります。 1. wLinuxと x410をストアからインストール http://aka.ms/

  • mokjpn

M5StackでownTracksの場所表示

久しぶりのブログですが、昨年の今頃国内でも売り出されてヒットしたWi-Fi/BLE搭載ESP32マイコンボードに、ちょうどいい大きさのカラーディスプレイとボタン、バッテリー、SDカードスロットなどをつけてきれいにパッケージにしたM5Stack が国内でも発売されたので、何か作ってみようということで、ownTracksで記録した位置情報を拾ってディスプレイ上に表示する、というものを作ってみました。 ownTracksは基本的にはMQTT で位置情報を送信するスマホアプリで、送信先のMQTTサーバを自由に選べますから、スマホの場所を送信/検索するようなサービスを自前で構築することができます。 M5StackにはMicroPythonが移植されており、LCD表示やMQTT、HTTP通信なども容易に取り扱うことができます。そして、Wi-Fiに常時接続している状態にするなら、M5Cloudというオンラインエディタ上でMicroPythonのコードを書いていき、クリック1回でそれをMStackの実機に同期して実行する、ということもできてしまいます。また、M5Cloudに接続した状態でも、M5Stack本体をUSB-CケーブルでPCに接続するとシリアルポートとして認識されるので、ここにMicroPythonのREPLが出ます。このシリアルポートに実行時エラーメッセージ等も表示されるので、そこそこ効率的にデバッグもすることができます。 今回は、地図表示にはOpenStreetMapを使いましたが、それなりに常用しようと思っているので、地図画像データを配信するタイルサーバもあらかじめ用意しました。タイルサーバの構築方法は今回の記事では割愛しますが、基本的にはこちらの記事 が親切に書かれており、こちらに従ってトラブルなく完了できました。 タイルサーバを作っただけでは、ownTracksが出す緯度経度から画像を得ることはまだできず、緯度経度から必要となるタイルの座標情報に変換する必要があります。この計算はサーバ側で実施することとして、staticMapLite というPHPスクリプトを使わせてもらいました。このスクリプトの中で、

  • mokjpn

DS18B20 水温計

暑いです. 自分が暑いのはエアコンでなんとかなりますが,5匹しかいないとはいえ家の水槽の熱帯魚は温度が上がりすぎると死んでしまうので,水温を管理しないといけない季節になってきました. 今の熱帯魚たちは去年の秋頃からいるので,夏を越せるかどうか心配です. 水槽にはRaspberry Pi Zero を使った定期撮影カメラをそばに置いてあるので,せっかくなのでこれを使って水温の監視をはじめてみました. 防水の温度センサとしては,DS18B20 をステンレスの容器に入れて簡単に防水にしたものがよく売られているようなので,これを1つ買って,Raspberry Pi ZeroのpHAT にしてみました. 1-Wire接続なので,調整も必要なくすぐに使えます. 基板としては,aitendoのRaspberry Pi向けユニバーサル基板 を,Pi Zeroのサイズに切って使いました.カッターで両面に溝を何度も切って折ると,わりと綺麗に折れました. GPIOを1つしか使わないので,上にさらにpHATを載せられるよう,スタック可能な2x20のピンソケットをつけています. センサーから出ている銅線は,赤色がVCC, 緑色がGND, 黄色が信号線のようなので,赤色を3V3, 黄色をGPIO4, 緑色をGNDにつなぎ,GPIO4は3V3に4.7kΩでプルアップをするだけの配線です. あとは,raspi-configで,

  • mokjpn

John Snow Pub

ゴールデンウィークの直前にイギリス、ロンドンに出張したので、飛行機の時間までに疫学の聖地、John Snow Pubでお昼を食べてきました。 John Snowは1854年のロンドンでのコレラ流行時に、まだコレラの病原体が何であるかは不明であったにもかかわらず、井戸の場所と患者の発生頻度の関係から、飲料水が何らかの原因であるという結論を得たそうです。これが現在まで続く疫学の始まりとされています。 もっとも患者が多かった場所であるBroadwick streetには、John Snowの名前がついたJohn Snow Pubがあります。2011年に訪れた時は、近くに井戸の形の記念碑もあったのですが、現在は付近の工事のため撤去されてしまっているようです。 2011年に撮影した写真はこちら。この時は朝だったのでパブは開いておらず、外観のみ撮影して帰りました。 パブの中に入ると、John Snowの肖像はもちろん、コレラ流行関係の資料も掲示されていました。 そして、Epidemiologyをやっているんだよ、と店員さんに言うと、それなら記帳していくといいよ、と、John Snow Societyというところが設置しているサインブックを出してくれたので、記帳してきました。 ハンバーガーもビールも美味しかったですよ。ついつい長居してしまいました。 せっかく訪問をしたので、当時Snowが作成した患者の分布の地図と、現在のロンドンのOpenStreetMapをLeafletで重ねて表示してみました。 John Snow

  • mokjpn

メリークリスマス

今年のクリスマスは、イルミネーションをいくつか作ってみました。 まずはこちら。フルカラーLEDを118個つなげたテープです。職場の入り口ドアに飾り付けをしてみました。 これはフルカラーLEDでおなじみのNeoPixelのテープです。Adafruitのドライバ で、Arduinoからは簡単に制御できます。今回はArduino UNOで、このドライバのサンプルが派手で気に入ったので、そのまま使っています。シリアル制御なので、信号線は1本だけだから配線は難しくはないです。ESPr Developer でも制御できそうなので、そのうち無線で色を制御するようなこともやってみようかなと思います。 LEDとはいえ、100灯以上ですからそれなりに電流を使います。そのため、電源は注意して選ぶ必要があります。60灯でも3A以上使うようですから、今回は余裕をもって、以前別の目的で購入した 5V 10A switching power supplyとFemale DC Power adapter - 2.1mm jack to screw terminal blockから電源をとり、AWG20ぐらいの太めのケーブルで配線しました。あとパスコンとか、

  • mokjpn

サイズ

6S Plus, mini, Air2, MacBook 12inch, Pro iPad Proはたしかに,これぞタブレット,というサイズで良いです.iPad Proがあると,iPad Airを使う機会はやはり減ります. でも,MacBook 12インチより大きいというのはちょっとやりすぎかもしれない.MacBook 12インチは,デスクトップの代わりにはなりませんが,出先で小さいと思ったことはあまりなく,実に良いサイズです. iPad Proのサイズがあると,普通のiOSアプリだとちょっと画面の使い方がもったいなく感じます.iPad Pro専用アプリでこそ活かされるタブレット,なのかもしれません. Smart Keyboardがあるとはいえ,iOSがそれほどキーボードを活かせる機能を持っていないので,あくまでも今の所,ですが,安心して仕事をしたいときにはiPad ProよりもMacBook 12inchを持って出ます.Officeがあるとはいえ,メールの添付ファイル作成の自由度などの点で,やはりMacOSがあった方が安心です. ただ,電子書籍リーダーとしての使い勝手は,特に専門書が多い場合,iPad

  • mokjpn

「R言語徹底解説」

Rの解説書の中で、おそらく最もディープな内容の名著の翻訳「R言語徹底解説」 をご恵贈いただきましたので、ご紹介します。 原著者は ggplot2, dplyr を始め、本当に色々な、革新的なパッケージを作られている Hadley Wickham 氏です。Hadley先生の作るパッケージは、本書でも説明されているような演算子オーバーロードや非標準評価の仕組みを駆使しているので、一見するとRとは違う言語のように見えてしまう文法を使うことができ、非常に効率的な書き方ができるのが特徴かなと思います。 ただ、実は個人的にはggplot2もdplyrも今まではあまり積極的には使ってきませんでした。古典的なRの文法に慣れてしまっているので、これらのパッケージの関数群と、これらのパッケージの外の関数やデータを組み合わせるのが面倒だったのが理由の一つでした。では、本書を読むのは敷居が高いかというと.... それは全く違います。この本は、パッケージの使い方や、パッケージを使ったプログラミングのやり方を説明する本ではなく、Rの標準の機能を使っていかにして良いRプログラムを書くか、ということを詳細に突き詰めた本だからです。 Rプログラミングについては、本書から入門するのはちょっと勧められませんが、逆に本書さえあれば、他の本を参照する必要は全くありません。というのも、一つ一つのトピックについて、常に深くその挙動を掘り下げて解説してくれているからです。 例えば、データフレームについて、普通の本では各列には数値か文字列のベクトル(本書的には、「アトミックベクトル」)を入れるところまでしか説明しないと思うんですが、

  • mokjpn

DCCデコーダ

デジタルコマンドコントロール, DCCというものがあります.鉄道模型では,列車の制御は基本的には2本のレールの間に電圧をかけて,動力車に搭載されたモーターがそこから電流をとって動くという,とても単純な動かし方をするんですが,それだと当然,1つのレールの上に2編成の車両を置くと,2つの編成は全く同じ動きしかできません. DCCはこれを解決するため,レールの間にかける電圧にデジタルな制御信号を混ぜ,同時に動力車側にもその信号を解釈するマイコンを載せ,モーターの制御をマイコン経由で行うようにしたものです.単純な従来のコントロール方法に比べて非常に決め細かい制御ができて,メリットが大きいと思うんですが,残念ながら現在普通に売られている完成品の鉄道模型で,このDCCに対応しているものはほぼありません.まぁだからこそ,20年以上前に買った車両がまだ普通に使える,という,昨今珍しい寿命が長い趣味になっているわけでしょうけど. いざ,普通の鉄道模型にDCCを導入しようとすると,コントローラを買いなおさないといけない上に,動力車も改造しないといけない,ということで,労力的にも費用的にもかなりハードルは高かったと思います. しかし,ミント缶DCCコントローラやワンコインデコーダ3 といった,電子工作で使われるマイコンを使用したオープンハードウェアが発表されて,半田付けがある程度できれば,費用はかなり抑えることができそうになりましたから,これならはじめてみようかな?と思えるようになりました. というわけで本日は上記ミント缶DCCコントローラとワンコインデコーダ3 を組み合わせて,作りかけのまま放置状態だったレイアウトをDCC化してみました. 車両が短いサイズだったので,デコーダを入れるために車両側にそれなりの工作が必要だったりもしましたが,まぁ一応動く,というところまでは実験しました.

  • mokjpn

IGZO液晶

最近話題の秋月IGZOです. 確かに綺麗な液晶なんですが,液晶パネルと制御基板の状態のものなので,実用するにはケースを作る必要があります. とりあえず,フォトフレームに挟んでみました. そのままだと,フォトフレームをネジで締める時に液晶パネルを挟んで壊してしまうので,高さというか長さ2.5mmのスペーサーを入れています.たまたまあったものを使っているだけなので,消音テープのようなものでも良いかもしれません.液晶パネルに力がかからないようにすると同時に,パネル自体は固定しておらず挟んでいるだけなので,パネルがおさまるべき位置の周囲にスペーサーを貼り付けて,パネルがずれないようにしています.ちなみに,スペーサーはセロテープでとめているだけなので見栄えは悪いです. 液晶パネルの裏側に両面テープをつけてしまうと,剥がす時におそらくパネルが割れると思いますから,パネルは固定しないままの方が良いんじゃないかと思います. 基盤の方はフォトフレームの裏面に,強力両面テープで貼り付けました.これが結構強力で,HDMIやUSBケーブルの抜き差しも安定してできています. さてこの液晶パネル,タブレット用途らしく解像度が縦長なので,つなぐ機器によっては全く映りません.HDCPにも対応していないので,ChromecastやdStickも映りません.しかし,マウスコンピューターのm-StickをWindows10にしたもので問題なく使うことができました.電源はさすがにm-StickのUSBポートからとったのではこの液晶を駆動できないので,別々にとっていますが,あとはBluetooth接続のキーボード/マウスがあればWindowsマシンとして使えて,またRaspberry Piをはじめ,(動くかどうかわかりませんが)CHIP,Raspberry Pi Zero, PINE

  • mokjpn

早押しクイズ装置

仕事納めはまだですが,年末の仕事もだいぶ落ち着いてきたところでブログ更新です. 今回も自作ネタですが,某所のクリスマスパーティにてだいぶ好評をいただいた早押しクイズ装置の詳細のご紹介.まずは完成品の画像と,動いているところの動画から. 上の写真の他に,USBモバイルバッテリーと,適当なアンプ内蔵スピーカーが必要です.動画で使っているのは,オーディオテクニカのBoogieBox ですね. 4つついているスイッチは千石電商で買ってきたゲームスイッチですね.発泡スチロールを切って作った台に接着してあります.右上にある丸いLEDは,NeoPixel 16連フルカラーLEDです.これらをArduino バニラシールドにつないで,Arduinoシールドとしてまとめてあります.プルアップ抵抗をつけるのが面倒だったので,スイッチのプルアップ抵抗は全てArduinoの内部プルアップ抵抗を使っています. Arduinoとしては,タッチセンサーを12個もオンボードで搭載し,かつMicroSDカードスロットとMP3プレイヤー機能も持っている,Bare ConductiveのTouch Boardを使用しました.本来はタッチセンサーを導電性ペンなどで拡張して,手書きのスイッチなどを作れるところが特徴なんですが,今回は早押しの演出はやっぱりゲームスイッチだろう!ということで,あえて物理的なスイッチを使っています. Touch Board用のスケッチはこちら. コンパイルするためには,Touch Board上のタッチセンサーのライブラリ,NeoPixel LEDのライブラリ,MP3プレイヤーとSDカードのライブラリが必要です. Touch Boardに入れるSDカードには,6曲の適当な音声データをMP3にして入れておきます.

  • mokjpn

「新米探偵、データ分析に挑む」

石田基広先生から、期待の新刊「新米探偵、データ分析に挑む」 をご恵贈いただきましたので、ご紹介します。 今回は探偵モノなので、読み始めてまずNHK教育 を思い出しました。登場人物が皆特徴があってイメージが浮かんできますね。映像化を期待してしまうなぁ。後述する通り内容はかなり充実しているんですが、難しくはなく、ストーリーにひかれてどんどん読み進められます。 操作面ではRstudio の四則演算から始まり、はじめてデータ処理をする読者にもやさしいと思います。その一方で、FILE 02からtidy dataの考え方も説明していて、Rstudioの操作だけではなく、実践的なデータ操作の作法まで学べます。Rのパッケージもggplot2によるグラフィックス、dplyr を使ったパイプ処理を全面的に取り入れているので、いわゆるコンピュータープログラミングに接したことがない人でも、直感的にデータ処理を記述できる方法で学んでいくことができると思います。 理論面でも、教科書的な統計学を非常に丁寧に、Rを使ったシミュレーションを実際にやってみることを通じて説明しているので、検定の概念でつまずく、ということがなくなるでしょう。母集団と標本との関係も直感的に説明されているのはさすがです。 そして、ライトな内容かと思うと後半ではテキストマイニング(他の本では読めない、特に充実した内容です)、時系列分析、ロジスティック回帰までできるようになるので、極めて実践的です。この本を読めば、例えば医学研究のデータマネージャーとしては即戦力になれるんじゃないかなぁと思います。

  • mokjpn

ストリートビューがCardBoard対応

いつの間にやら22日間も投稿していなかったようです. まぁ,新しいのの環境を整えたりとか,仕事が忙しかったり とかもありますが,ネタとしてはmCookie とか,TWE-Lite-2525A とか,MicroView とか,Espruino Pico とか,ai.Jam とか,WeDoとか,いろいろ仕込んではあるんですが,記事にまでまとめられていません.徐々に紹介していきたいと思います. そんな中で,今日は小ネタですが,Googleマップの機能の一つ,ストリートビューが独立したアプリになって,それが以前紹介したXG VR Headset をはじめとするGoogle CardBoard に対応したというニュース がありました.以前からGoogleマップの機能の一部としては,ストリートビューのCardBoardでの表示には対応していたようなのですが,まだやっていなかったので試してみました. XGVRは以前にも紹介しましたが,段ボールでもできるCardBoardを高級にしてしまったというもので,安定感はあってバンドで頭に固定できますがちょっと重いバーチャルリアリティヘッドセットです.スマホを入れて使うのでスマホの重さによっては手で支えないとつらいです. そして,iOS/Androidのストリートビューアプリで,適当なストリートビューを選択し,右上に出てくるCardBoard型のボタンをタップすると,

  • mokjpn

オープンソース電子カルテ OpenDolphinのインストール

仕事で必要になりまして、OpenDolphinというオープンソース電子カルテをMacOS X上のParallels Desktopで作成したUbuntu 14.0.4 上にインストールしてみました。あまり情報が出ていないので、せっかくだから方法をブログに書いておきましょう。 Parallels に Ubuntu 14.0.4をインストールする Parallels Desktopには、Ubuntuなどのダウンロードで入手できるOSについては、そのダウンロードからインストールまでを自動的にやってくれる機能があるので、それを使ってUbuntu 14.0.4の仮想マシンを作成します。 メモリの増量 ここで自動的に作成される仮想マシンのメモリは2GBなんですが、OpenDolphinだけではなく、ORCA も同じ仮想マシンにインストールしていたところ、OpenDolphinがメモリ不足で正常動作しなくなってしまいました。そこで、メモリを4GBに増量します。仮想マシンがシャットダウンしている状態で、Parallelsから設定します。 UbuntuにDockerをインストールする OpenDolphinはソースコードでも配布されていますが、より簡単に試すためにDockerイメージも配布されています。今回はそれを利用するので、まずはUbuntuにDockerをインストールします。インストール方法はDocker公式サイトの説明 にある通りです。 curl -sSL https:

  • mokjpn

Espruino+ESP-WROOM-02で、BME280から取得したデータをMQTTに送る

まだまだ続くEspruinoシリーズです。 Espruino自体には通信機能はないんですが、最近ESP-WROOM-02というWi-Fiモジュールが話題です。 マイコン向けにWi-Fi機能を提供するモジュールとしては、CC3000などがありましたが、ESP-WROOM-02というか、これに入っているESP8266というチップのいいところは、なつかしいATコマンドを使って、シリアル接続でデータの送受信ができるところです。シリアルだとせいぜい115200bpsなので、速度的にはWi-Fiの性能をほとんど活かせませんが、マイコンからそんなに高速な通信は必要ないので、簡単に制御できる特徴が活きてきます。そしてモジュール自体にアンテナも、技適マークもついていて、大きさも小さくまとめられています。端子もちょっと小さめですが手で半田付けができるレベルで、価格もとても安いので、電子工作ではとても使いやすいモジュールということで最近流行っています。 さて、このWi-Fiモジュールを使って、以前作成したEspruino+BME280センサーモジュールからとったデータをWi-Fi経由でMQTTブローカーに送ってみましょう。先日作った回路に、シリアル接続でESP-WROOM-02を追加しています。BME280側も、前回の回路は設定用のピンをオープンにしたままで不安定だったので,しっかり全ピン接続しています.具体的にはEspruinoモジュールにつけたドキュメントの通りです. 接続としてはこれでいいんですが,このままだと3.3Vの電源がEspruinoからの出力だけで,Wi-Fiを駆動するには足りなかったようです.BME280とESP-WROOM-02を両方つないだ状態で正常動作させるには,別途TWE-Liteのときにも使ったUSB接続電源ユニット(写真右端)をつけて,そこから電源供給してあげる必要がありました. そしてEspruinoで動かすJavaScriptコードはこちらです. Espruinoは,モジュールとしてすでにESP8266,およびMQTTプロトコルがあるので,それを読み込むだけで非常に簡単にBME280から読み込んだ値をMQTTで送信することができました. まぁ,

  • mokjpn

Netatmo 気象ステーション

さて,今週の関東は台風にともなって起こった大雨で大変でした.台風自体からは遠くても,2つ目の台風との間で線状降水帯 ができてそこから降っていたとか.たしかにアメッシュを見ていたら,大雨の時は綺麗に線状になってましたね. そういうときには,職場ではとても強い雨が降っていても,自宅はほとんど降ってなかったりすることがあります.でも,自宅付近でどうだったのか,知りたいですね. そこで便利なのが,自宅に設置できる気象ステーション,netatmo weather station です. これ,実体はこのような小さな円筒形の筒です.トイレットペーパーの芯よりもちょっと大きいぐらいです. これで,気温,気圧,湿度,音量, CO2濃度を定期的に測定し,Wi-Fi経由でクラウドにアップロードしてくれます. これは9月10日の大雨のときのグラフですが,うちの付近は最大20mm程度の雨が観測できていたようです. ところどころグラフが平たくなったりしている部分は,電波が弱くてデータがとどかなかった時かもしれません.ここのところがちょっと弱点です. 標準で1つ,屋外に置く(防水ではないので軒下等)ユニットが1つついてきます.これは増設も可能. さらに,別売りオプションで雨量計があります.これがなかなか本格的な転倒ます方式で,

  • mokjpn

PubMedの検索結果をRで取り出して加工する

今日は仕事で必要になった小ネタです。 医学系学術論文の検索といえば、PubMedですね。自分が学生だった頃の、有料のMEDLINEを使えるところを探し回ったのとは隔世の感です。米国でも日本でも、図書館はいい仕事をしますね。 さて、今日のテーマは、「ある大学に所属している著者がFirst Authorになっている論文だけを検索する」です。 これ、PubMedの通常の機能だけで出来そうな気もしてしまうのですが、PubMedの検索式で「著者所属」に該当する[Affiliation]フィールドが、実は著者ごとに分かれておらず、「First Authorが特定の所属である」という検索式が書けないんですね。 ここを解決するためには、例えばPubMedの情報がSPARQL Endpoint になっていたりしたら、そこからSPARQLで検索すればいいじゃん、とかになるのですが、いくつかそういうサービスはあるようなのですが、結局PubMedのWebフォームに変換しているだけみたいな感じで、Webフォームで検索できない式を検索できるようにしたものはないようです。 じゃあ無理か、というと、最近のPubMedはXMLで検索結果をダウンロードすることができるので、その中身を見てみるときっちりと文献ごとに著者所属が分かれて入っています。そこで、このXMLを直接調べてあげれば目的は達成できそうです。 XMLからのデータの検索はXPath用のライブラリがある言語であればどこからでもいいので、CoffeeScript+jqueryでも出来そうですが、そういう風に迷ったらやっぱりRですね。 幸い、PubMedからデータをXMLで読み出すところまでは、

  • mokjpn

Espruino

本日ご紹介するのはEspruino. 名前からして, Arduinoを思い起こさせますが,Arduinoではなく,STMマイコンで,ピン配置もArduino互換ではありません. 特徴は,JavaScriptでプログラミングができることと, Web IDEという開発環境が Google Chromeブラウザの拡張機能として使えること. メモリーなんて48KBしかなくて, かなりマイクロなコンピューターですが,それでJavaScriptをある程度動かせるのだから大したものです. Web IDEは Chromebook でも動くので, MacもWindowsもなくても,Chromebookさえあれば組み込み開発ができてしまうというのもいいところです. 開発はしやすいけれど, ボード自体はそれほど多機能ではなく, Wi-Fiやイーサネットも付いていません.Wi-Fiなどは外付けできますが, メモリ48KBだとさすがに, Wi-Fiにつなぐだけはできても, そのほかにできることが制限されてしまいます. 今回はそれに, BME280 という気圧/温度/湿度センサーチップを接続して, 気象センサーボードを作ってみました. BME280 は写真右側にある青い基盤の中央に乗っている、銀色の小さな部分がそれです。そのままだと手作業では配線できないぐらい小さいので、手作業での工作には、端子を少し大きめの基盤に引き出す"breakout board"

  • mokjpn

TransferJet SDカード

デジタルカメラ、使っていますか? 写真はたくさん撮るようになりましたが、デジカメで撮るか、というと、それよりはスマホで、という人が多いんじゃないかと思います。 自分の場合は、デジタル一眼レフか、スマホか、それとも防水デジカメか、という感じで使い分けます。画質を求める時は、多少重くてもデジタル一眼。それ以外の時は基本的にスマホ。水辺・水中の時は防水デジカメ、という感じでしたが、防水デジカメもアクションカムに取って代わられて、いわゆるコンパクトデジカメはどんどん居場所がなくなっています。 コンパクトデジカメにも、一眼レフほどではないけどたくさんのレンズを使ったズームやマクロ、連写などの特徴はあるんですけど、ズームやマクロを追求するとどうしてもレンズ枚数が増えてしまって、重くなる。でも、そこを省略して軽くしようとすると、どんどんスマホのカメラに近づいてしまう、という感じで、なかなか難しいなぁ、と思うわけです。レンズスタイルカメラなんかはそこに対する一つの答えかな、と思うんですが、あれはあれで単体でも使えるので、結局普通のコンパクトデジカメに比べてメリットを出せていない感じがします。光学ズームが欲しいわけじゃなくて、強力なフラッシュと速い起動時間とAFが欲しいだけなんだけどなぁ...iPhone6SはダブルLEDフラッシュになるとかいう噂もありますね。 さて、そのコンパクトデジカメは、最近「いかにスマホに画像を素早く手軽に転送するか」という方向の改良が繰り返されているような気がするんですが、その方向性の進化を一気にかすめてしまうようなものがでてしまいました。

  • mokjpn

C88

実は実際に行くのは初めてなんですが、カタログ表紙絵に惹かれて、C88に2日目午後だけ行ってきました。 暑かった、です。 企業ブースの物販ものはちょっとお高かったりもするので結局買わなかったし、2日目だけだったし、はじめてなのであんまりお目当てのサークル、というのもなかったんですが、カタログを眺めていたら、あの声優統計学会が2日目だったということがわかり、もう15時過ぎぐらいでしたが、いそいで行ってきました。 そして、もう新刊は売り切れていたのですが、ちょうど撤収作業中で立ち読み用のコピーをいただくことができました!ありがとうございます>声優統計の皆様 内容を拝見して、やはり噂通りレベルが高く驚きました。個人的にはあまり声優さんには詳しくないんですが、まぁそういうゲームとかはけっこうやっていたりするので、そのうち寄稿させていただけるかもしれないなぁ、と思っております。

  • mokjpn

インターネット在室表示灯

さて、前回作成した在室表示灯ですが、これをインターネットに接続して、在室状況をWebから見えるようにしてみましょう。 いわゆるIoT(Internet of Thing)というわけですが、IoTをする方法にもいろいろあり、センサに直接ハードとしてWi-Fiチップと比較的高性能なマイコンをつないで、自前でインターネットに接続方法もありますが、これは結構消費電力を食いますし、Wi-Fiがない場所では使えません。今回はこの方法は使わず、一度近くのPCにデータを取り込んで、PCからインターネット上のサーバに情報を送信するという手を使います。 センサからLEDにデータを飛ばすときに使ったTWE-Liteですが、このバリエーションとして、USB-シリアル変換チップを使って、USBに直接させるスティック上にした、ToCoStickがあります。これはPCに挿すとシリアルポート(昔はモデムをつないでいたアレ)のように認識され、そこにアクセスすることにより動作を指示したりデータを得ることができます。そして、すでに1台親機を用意しているので、先に作った在室表示灯に何も手を加えることなく、このToCoStickを子機に設定して近くに置くだけでデータを受診することができます。 ToCoStickの実物はこんな感じです。 まずはこれをPCにさして、ドライバーをインストールします。 これで、PCにシリアルポートが追加され、そこにアクセスをするとToCoStickとの入出力ができるようになります。Macの場合、/dev/tty.usbserial-XXXXXXにような名前で見えるようになるはずです。 通信するには、Macだとターミナルからscreenコマンドを使うのが便利でしょう。ToCoStickのデフォルトの通信速度は115200bpsなので、

  • mokjpn