Bluetooth対応のHue(スマートライト)をRubyとBLEで制御してみた 去年くらいに、PhilipsからBluetooth LEに対応したHue (スマート電球) が発売されました。 HueはもともとZigbeeを使用しており、色や明るさの制御にはHueブリッジという装置をLANに接続する必…
ふと気がついたら自宅の電波時計がかなり進んでいました。そこで、ESP32 (M5Stick-C)を使って擬似的に微弱なJJYの標準電波を発信するデバイスを作りました。 M5StickC 基本的には下記のコードをベースにしたものですが、ESP32のArduinoライブラリはNTP同期機…
Wio Terminalが届いたので、例の影絵を再生してみました。Wio TerminalでBad Appleひとまず描画データはPCからUSB UARTで送信しており、音声は別再生です。 白黒2値限定ですが、差分だけを描画するという方法で、一部の前フレームとの差分が極端に大きいシー…
Arduino ESP32は、Bluetoothシリアル(SPP)のスレーブデバイスになるサンプルは付属しており、PCからはBluetoothシリアルで容易に接続することができました。 (例えば arduino-esp32/SerialToSerialBT.ino at master · espressif/arduino-esp32 · GitHub など…
NAS(Linux機)からファイルを読み出していたら、突然ハングアップしてしまい‥…dmesgを調べてみるとHDDに不良セクターと思しきI/O Errorが発生していました。 sda: Current: sense key=0x3 ASC=0x0 ASCQ=0x0 Info fld=0x43c024d6 end_request: I/O error, dev …
Arduino Leonardo等は、USBキーボードやマウスとして振舞わせ、PC等を操作するのに使うことができます。 同じくArduino IDEをプログラミング環境として使えるESP32ではUSBキーボード機能は付いていません。しかし、代わりにBluetooth LEを利用してキーボード…
前回の記事のドアセンサーで使ったTWELITEを使って、太陽電池で動くワイヤレス環境センサーを作りました。 BME280で温度・湿度・気圧を計測し、定期的に無線で送信することができます。電気二重層コンデンサを搭載しており、夜間もデータ送信が可能です。 主…
ボタン電池で数年ほど動作し続ける、ワイヤレスなドアセンサーを作りました。よくあるIoTネタですが、オフィスのトイレ個室が混雑しがちなので、自席で空きがわかると良いなというやつです。外観と、ドアの上部に載せたところ。 仕様 センサーは、1分間ごと…
前回の記事でソリティアの解法を求めるコードを紹介しましたが、これに画像認識と自動マウス操作機能を加えて、全自動で解くようにしました。youtu.beコードはGitHubにあります。 GitHub - NeoCat/exapunks_solitaire_solver: Automate EXAPUNKS ПАСЬЯНС (So…
プログラミングっぽい独特なパズルゲームを開発しているZachtronicsが出したEXAPUNKSというゲームで遊んでいます。 簡単なアセンブリのような言語でEXAというウイルスのようなエージェントをプログラミングし、ストーリーを追いながらハッキングでデータを改…
macOS (Mojaveで確認) のテキストエディットやメモ、メールといった、標準テキスト入力を使ったアプリケーションでは、option や ctrl キーの組み合わせによって特殊な制御文字コードが入力される場合があります。これらは目に見えなかったり単なる改行に見…
以前の記事で64x32のLEDマトリクスパネルにESP32 (ESP-WROOM-32) を使って描画するライブラリを公開していました。これを改造してパネル2枚を連結した128x32に描画してみました。www.youtube.com 使っているのは以前の記事とおなじパネル2枚とESP32です。 P3…
最近のIoTブームでクラウドから制御できるコンセント(スマートプラグとかスマートコンセント)が安価に入手できるようになりました。どれもおおむね、専用のスマートフォンAppや、Amazon AlexaとかGoogle Home、IFTTTに対応しており、音声制御や自動化が可…
ESP32を使って、Amazonで安価に売られている64x32ピクセルのLEDマトリクスに色々表示できるようにしてみました。 ESP32 + 64x32 RGB LED Matrix 使ったもの ・ESP32-DevKitC ・P3 RGBピクセルパネルHDビデオディスプレイ64×32ドットマトリックスSMD LEDディ…
Bluetooth接続ができるUSB電圧・電流テスター「UM24C」を買ってみました。 公式のAndroid端末やWindows用のソフトを使って値を読み出すことができます。が、自作のプログラムからこれを読み出してみました。 カラーLCDがついていてなかなか派手ですが見やす…
赤外線アレイセンサ AMG8833、いわゆるGrid-EYEを使ってみました。 www.switch-science.com 上記の説明の通り、60度の四角錐の測定エリア(2次元)を8x8に分割した64個のピクセルについて、0〜80℃の温度が得られます。時間分解能は10fpsです。 これを、ESP8266…
何かコードを書いて、ブランチをGitHubにpushしたあと、そのブランチのプルリクエストをさくっと作りたかったので、1コマンドで現在のブランチからのPull Request作成ページを開くコマンドを作りました。(共有レポジトリを想定)以下のコードを実行可能権限を…
iPhoneにも 8 / X でQiが搭載されました。 Qiでは受電機器から充電器に対して通信を行うことで、充電の開始/停止や電力の調整を行いながら動作しています。これにより異常があれば即時充電を止めるようになっているわけですね。 通信速度は2kbpsで、受電側…
Macのターミナル上でRubyのpryを使っている際、Ctrl-Kなどでカットした文字列を貼り付けようとCtrl-Yをタイプすると、サスペンドしてしまうことがあります。ちなみにirbだと発動しません。 $ pry [1] pry(main)> [^Yをタイプ] [1]+ Stopped pry $ これはDSUS…
巨大なテキストデータを標準入力(pipe等)から受け取り、1行ずつ何か処理をして、結果を標準出力(これもpipe等)に書くプログラムを書こうとしてハマるパターン。 (なお文字コードのことはここでは忘れたことにするので、別途対応が必要かもしれない。) 例え…
Gitのブランチ名をzshのプロンプトに表示させているのですが、別端末でブランチを切り替えたりすると、普通は現状が反映されません。心配だったらenterキーを押せば良いのですが、端末がたくさん開いてるときに限って間違ったブランチで作業してしまいそうに…
rubyを書く際にコーディングスタイルをrubocopでチェックしたい時、手動でチェックしていると忘れることがあるので違反があったらその場でエディタに警告して欲しいわけですが、これをemacsのflymakeでやる方法のメモ。.emacsなどをいろんな環境で共有してい…
時間のかかるコマンドを起動した後、「あ、tmux(とかscreen)の中で実行すればよかった…」と気づくことがたまにあるわけですが、そんな時に強制的に端末を移動させる方法として、gdbをアタッチし、そのコマンドのファイルディスクリプタ(fd)の示す先を変更し…
iPhoneのバッテリーがかなりヘタってちょっと使うとすぐに電源が落ちてしまうようになってしまったので、自分で交換してみました。やり方を紹介したページを見つつ、バッテリー\2000 + 工具セット \1000 で無事交換成功し、日中そこそこ使っても丸一日持つよ…
遅ればせながら、Dash Buttonを受け取ったので、さくっと照明のリモコンにしました、という話。 すでにAmazon Dash Buttonのハックはやり尽くされている感がありますね。。 参考リンク: Amazon Dash ButtonをただのIoTボタンとして使う - Qiita うちの場合、…
( Amazon Dash Buttonは20分で照明のリモコンになった - Okiraku Programming の続き ) Dash buttonで照明をつけられるようにしたものの、うちの照明はすでにSiriでも操作できるため物理ボタンは今さら必要ないと気づいたので、Dash buttonを「にゃーん」とT…
新しいMacBook Proのtouch barで走るSLコマンドを作りました。 (touch barシュミレータでしか動作確認してませんが。) オリジナルのようにオプション(-a, -l, -F)には対応していません。 ソース(Swift)は以下。ビルド済みのバイナリも入ってます。 https://g…
ESP8266(ESP-WROOM-02)を最近よく使っています。ESP8266を使ったセンサを、Wi-Fiアクセスポイントから遠い、直接電波の届きにくい場所に置きたかったため、ESP8266をもう一つ使ってWi-Fiの到達範囲を拡張する中継機にした(といってもブリッジではなくNAPTル…
macOS Sierraにアップデートしたところ、キー配列をカスタマイズするKarabinerが利用できなくなってしまいました。 Karabinerは非常に様々なカスタマイズに対応していたため、不便な思いをしている人も多そう。 私はNICOLA配列(いわゆる親指シフト入力)で…
USB直結スクリーンセーバーブロッカーを作ったツイートのまとめです。USBポート直結できるスクリーンセーバーブロッカー - Curated tweets by NeoCat なおArduino互換のため、Arduino IDEでボードの種類としてArduino Leopardを選択すればプログラムの書き込…