メモ帳DPA

ぐぐってあまり引っかからないような何かがあったら書いたりする

防音室の扉に連動してPCの音声を自動制御する

PC部屋として防音室を買った。いつでも好きに音を出せて快適になった。
(防音室についての記事は別途そのうちいつか書くかと思う)

防音室の出入りの際は空いた扉から当然音が漏れるので、夜中の利用時はその都度PCをミュートしたりしていた。
開いてるタイミングと音出したくないタイミングは一致しているので、これはセンサーつければ簡単に自動化出来るのではということに気づいた。

作った

できた。磁力でドアの開閉を検出できるセンサーがあったので、Arduino(pro micro)に単純に半田付けしたらそれだけで超簡単に完成した。
f:id:de0:20210101134948j:plain

ドアの端と枠にそれぞれコマンドタブで貼り付けて、USBケーブルつないだら設置完了。
f:id:de0:20210101135638j:plain

ドアを開けたらPCの音声がミュートされ、ドアを閉じたらミュートが解除されるようになった。やったね。

ソース

digitalreadで開閉状態が取れるので、それに応じて処理を入れるだけで簡単に出来た。
USBキーボードとして認識させ、状態遷移時にホットキーを送るようにした。
本当はミュートのメディアキーを直接送るつもりでいたんだけど、用意されているサンプルで対応していたのは基本的なキーコードのみだったので、PC側でAutohotkeyを併用して妥協した。

Arduino
#include "Keyboard.h"

//ピン定義
const int buttonPin = 5;
const int ledPin =  17;

//センサ状態用変数
int buttonState = 0;
int prevState;

void setup() {
  pinMode(ledPin, OUTPUT);
  pinMode(buttonPin, INPUT_PULLUP);
}

void loop() {
  buttonState = digitalRead(buttonPin);

  if (buttonState == HIGH) {
    //CloseならHIGH
    digitalWrite(ledPin, HIGH);
  } else {
    //OpenはLOW
    digitalWrite(ledPin, LOW);
  }

  if ( (buttonState == HIGH) && (prevState == LOW) ) {
     //閉じられた時の処理 - SHIFT+Alt+Ctrl+c
     Keyboard.press(KEY_LEFT_ALT);
     Keyboard.press(KEY_LEFT_CTRL);
     Keyboard.press(KEY_LEFT_SHIFT);
     Keyboard.press('c');
     Keyboard.releaseAll();

  } else if ( (buttonState == LOW) && (prevState == HIGH) ) {
     //開けられた時の処理 - SHIFT+Alt+Ctrl+o
     Keyboard.press(KEY_LEFT_ALT);
     Keyboard.press(KEY_LEFT_CTRL);
     Keyboard.press(KEY_LEFT_SHIFT);
     Keyboard.write('o');
     Keyboard.releaseAll();
  }

  prevState = buttonState;
  delay(10); //delayなしだと開放時に一回余分に閉じ明けが認識されるので回避
}
PC側(Autohotkeyスクリプト)
+^!c::Soundset,0,master,mute	;ドア閉まったらミュート解除
+^!o::Soundset,1,master,mute	;ドア空いたらミュート

おわり

かなりシンプルに実現できてしまった。
現状特にアイディアはないんだけど、同じ要領でArduinoで使えるあらゆるセンサーとPCが連携できそうなので、他にもいい感じの何かを思いついたら試そうと思う。

枠が空いてたので、この記事は Arduino Advent Calendar 2020 に遅刻で登録しました。
qiita.com

Atmoph Window的なスマート窓もどきを雑につくる (余ったAndroidタブレット+WindowSwap)

動機

Atmoph Windowという世界の風景を表示する製品がある。良さそう。
atmoph.com
コンセプトはなかなか魅力的なんだけど、本体が4.5万する上に毎月980円の課金が必要になる。強気の本体価格なのに加え、無けりゃ無くても困らない置物を成立させるために永続的に毎月千円吸われ続けるのは個人的には結構抵抗がある。

高品質な風景の撮影コストの回収にはある程度仕方ないんだろうなとは思うけど、ハードウェア的には要は画面に動画流せりゃ何でも成立しそうに見える。
いい感じの動画ソースさえあれば、適当に有りもの組み合わせて代替はどうとでもなりそう。

window-swap.com

探してみたらうってつけのWebサービスが見つかった。

window-swap.com
窓からの風景を集めて流してくれるWebサービスで、ユーザ投稿の動画を追加していっているとのこと。

単にブラウザでページ開くだけで済んでしまう。動画のスクレイピング等も視野に入れて探していたんだけどそれさえも必要無くなった。

Fully Kiosk Browser

play.google.com

フルスクリーンでオートリロードできるブラウザなら何でもよい。以下の2箇所設定して飾ればもう完成。

  • Web Content Settings > Start URL
  • Web Auto Reload > Auto Reload on Idle
    • 3600 sec (リロードで別の風景に切替) ※追記:今の仕様だと不要

MacroDroid

必要な内容はもう上記だけで9割方終わってるんだけど、夜中光られると邪魔なので、照度センサーの値を参照させて照明に連動してもらうことにする。

play.google.com
各種トリガーをもとに自動制御するアプリ。照度以外の制御もいろいろ可能。

以下のマクロを追加

  • 光センサー ~まで減少 5.0lx → 画面をOFFにする
  • 光センサー ~まで増加 20.0lx → 画面をONにする

以下の設定を変更

  • 設定>トリガーオプション>光センサートリガー>光センサーのバックグラウンド更新間隔
    • 2分 (無効以外なら何でもよい)

装飾

黒縁のままでも行けるが若干味気ないので、物理的に何か外装を盛ることにした。
ダイソーにかなり丁度いい木製ケースがあった。これに適当にケーブル穴削って入れたら終わった。完成。
タブレットauのQua Tabを使った。それなりのサイズの画面のAndroidなら何でもよい。
f:id:de0:20201228201507j:plain
f:id:de0:20201228205247j:plain
(黒いケーブルが目立つので後でカバーで隠した)

試してないけど出来そうなバリエーション案

おわり

HW品質はさておき、WindowSwapが良いおかげでほぼタダみたいなコストで簡単にそれっぽいものが出来るので、妥協の選択肢としては有りかもしれない。

追記:外装を変えた
de0.hatenablog.com

ディスプレイ下に棚をつける(MOUNT-KB03)

背景

アームでディスプレイを移動できるようにし、ベッドと机でPCを使いまわしている。
画面の移動をする際一緒に入力装置等の小物の移動も必要になるので、画面と一緒に移動できたら便利ではと考えた。

買った製品

画面の上に棚を作る製品はいくつか見かけるが、移動を前提とはしていなさそうだし、使い勝手もあまり良くなかった。

独立アームでなく画面と同一のポジションかつ下に付けられるやつ無いかなと探してみた結果、1つだけ見つかった。

MOUNT-KB03 <br><br>VESA Keyboard Tray - Blackvivo-us.com


国内だとやたら高いので、amazon.comから買った。送料差っ引いてもこっちのほうが大分安い。
www.amazon.com

駄目だった

便利そうなのに各社から売られてないのには理由があったことが分かった。いざ着けてみたらアームが重さに勝てないのだ。
それなりに強力なはずのエルゴトロンのLXアームを使用していたんだけど、それでも画面がお辞儀してしまった。

単純な重量合計的にはアームの耐荷重を一応下回ってそうだが、トレイの重さがそこそこあるのと、それによって重心がかなり前方に移動するのが悪いっぽい。

パワー解決

キーボードとトラックボール2つ買ったほうが絶対に安いんだけども、何だか無駄が多い感じがするので避けたかった。
使わずにしまっておいて置くのも邪魔なサイズなので、どうにか使えるようにすることにした。

ある程度の可動域があるアームの中で普通に手に入るアームとして耐荷重最高なのは、エルゴトロンのHXアームらしい。
結構いい値段したが、半分意地みたいなもので結局ポチった。完璧に損切りに失敗している。

www.ergotron.com

結果

成功した。色々載せてもちゃんと角度を保持してくれた。
f:id:de0:20201120081648j:plain

移動がまとめてできるのはもちろん、乗せたままでも普通に使える。(ただ体勢的には左右にあったほうが絶対楽なので軽く使う時に限る)
f:id:de0:20201120081129j:plain

ベッドの周り全方位に物が置けるようになった。
f:id:de0:20201120081054j:plain

特に計算してなかったけど、やたらかさばるPHOENIXWANの上がいい感じのスペースとして収まった。
f:id:de0:20201120081352j:plain

プレイ時のキーボード置き場としても使える。専コンだけで完結しないちょっとしたテンキー操作等もそのまま出来て便利。
f:id:de0:20201120081535j:plain

ちなみに壁にパンチングボードを付けた。大掛かりな工事とか要らずピン留めで割と簡単に設置できる
各種コントローラ、ヘッドセット、Switch本体、Viveなんかがいい感じに収まってよろしい。

余談:ゲーミングモニタ良い

以前はPhilipsの大型の60Hz4kモニタを使っていたが、 高リフレッシュレートを一回体感したら二度と60Hzには戻れない体にされてしまった。
専コン整えてそれなりにプレイ回数増えたこともあるけど、画面変えてからというものスコアもクリアもいろいろ伸びてくれた。段位で言うとDP発狂九段やInfinitasDP皆伝を抜けられたりした。

大画面高リフレッシュレートの製品の選択肢はかなり狭い。大きすぎるLG製のやつ以外ほぼ国内未発売で、海外向けで出ている丁度いいサイズの製品もピクセル配置がRGBでなくBGRだったりして完璧なものがなかった。
アーケード準拠の画面サイズへのこだわりは捨てて小さい画面になったが、結局のところ特に違和感なく遊べた。
いろいろ試した結果最終的に27GN950-Bに乗り換えた。機能全部盛りかつ高解像度で強い。まだ未発売だけどPG32UQXなんかも良さそう。

おわり

単に板一枚浮かせるだけのためにしてはどう考えても必要な条件がきつすぎる。
稼働範囲の狭い半固定寄りのVESAマウントであれば普通に使えそうだけど、それならトレイ専用のアームを別に付けたほうが良い気がする。

得られたものに満足はしているしそれなりに便利にもなったが、コスパは最低だった。
既に強いアーム持ってる人には良いんじゃないでしょうか。

IIDX ULTIMATE MOBILE用PS2専コン変換器(PHOENIXWAN対応)の作り方

PHOENIXWANを買った。

アルティメットモバイルは、以前メルカリで買った変換基板+初代純正専コンでそれまでプレイしていた。PHOENIXWANも同様に使えるだろうと予想していたら、実際には入力を受け付けてくれなかった。困った。

理屈上は認識できるはずに思えるんだけど、変換器のソースが公開されてない以上動かないまま対処のしようがない。
どういう仕組みでアプリに認識させているのか不明ではあったものの、純正コンではちゃんと認識する現物があるので、これをヒントに自分で作り直してみることにした。

結果

できた。

作り方

全体的にかなり素直な方法で作ることができた。特殊な要素はデバイス情報指定くらいしかなかった。

流れ
  1. PS2コントローラの端子とPro Microをはんだ付けする
  2. バイス情報を書き換える
  3. スケッチを書き込む
  4. 適当に外装を整える
作成のポイント
  • プロダクト名、ベンダ名、ベンダIDを揃えればUltimate Mobile側で認識される
  • PHOENIXWANは、PSXNewLibを使えば認識できる

以下に詳細を書きます。

材料

  • Pro Micro または何かしらのArduino
  • PS2コントローラのメス端子(を部品取りするためのUSB変換器)
  • リード線
  • はんだ
  • 保護ケースなど(任意)

今回5V版のPro Microを使って作ってしまったんだけどこれは選択ミスだった。
一応動いてはいるけど、PS2コントローラの電圧仕様的には本当は3.3V版の方を使ったほうがよさそう。作り終わってから気づいた。

なお、PS2端子の代わりに皿とスイッチ7個を直接繋ぎ、ソースを多少調整すれば専コン自体が作れる。(と思う)

PS2コントローラの端子とPro Microをはんだ付けする

PS2の変換器を分解してコネクタ部分だけ入手し、コネクタのピンとArduinoのピンを接続する。

PS2のピン配置については以下のページが分かりやすい。基板側はGNDとVCCの位置だけ気をつければ残りの繋ぎ先はどこでも可。
darekasan.net
f:id:de0:20200903222456j:plain

バイス情報を書き換える

boards.txtを編集して、エントリーモデル相当のハードウェア扱いとして書き込むように各パラメータを書き換える。

Pro Microの場合はboards.txtは以下にある。

C:\Users\username\AppData\Local\Arduino15\packages\SparkFun\hardware\avr\1.1.13\

以下の値を指定したらUltimate Mobile側でUSBコントローラとして認識された。

promicro.build.usb_product="beatmania IIDX controller Entry Model"
promicro.build.usb_manufacturer="Konami Amusement"
promicro.build.vid=0x1ccf

スケッチを書き込む

以下のスケッチをPro Microに書き込む。

皿の挙動が独特(回すたびX軸を移動し端でループする)なのでそこだけは追加が必要だったが、それ以外はライブラリ2つのサンプルスケッチのパッチワークでほぼ済んでしまった。

PHOENIXWANのPS2が何か特殊なのか、PSXLibraryでは入力を拾えなかったので、代わりにPSXNewLibを使ったらうまくいった。

//https://github.com/NicoHood/HID
#include <HID-Project.h>

//https://github.com/SukkoPera/PsxNewLib
#include <DigitalIO.h>
#include <PsxControllerBitBang.h>

//皿の移動幅(値は適当)
const int scr_sensitivity = 1000;

//ピン配線に合わせる
const byte PIN_PS2_ATT = 20;
const byte PIN_PS2_CMD = 5;
const byte PIN_PS2_DAT = 3;
const byte PIN_PS2_CLK = 18;

PsxControllerBitBang<PIN_PS2_ATT, PIN_PS2_CMD, PIN_PS2_DAT, PIN_PS2_CLK> psx;

int scr_pos = 0;                //皿位置
unsigned int data;              //入力情報

void setup() {
  Gamepad.begin();
//  Serial.begin(9600);
}

void loop(){
  psx.begin (); //たまに認識が外れてるっぽいので毎回beginさせとく
  psx.read ();

  data = psx.getButtonWord();
//  Serial.println (data);

  //皿
  if(data&PSB_PAD_DOWN){
    scr_pos -= scr_sensitivity;
    if(scr_pos < -32768) scr_pos = 32768;
    Gamepad.xAxis(scr_pos);
  }
  if(data&PSB_PAD_UP){
    scr_pos += scr_sensitivity;
    if(scr_pos > 32768) scr_pos = -32768;
    Gamepad.xAxis(scr_pos);
  }

  //七健
  if(data&PSB_SQUARE)   Gamepad.press(1); else Gamepad.release(1);
  if(data&PSB_L1)       Gamepad.press(2); else Gamepad.release(2);
  if(data&PSB_CROSS)    Gamepad.press(3); else Gamepad.release(3);
  if(data&PSB_R1)       Gamepad.press(4); else Gamepad.release(4);
  if(data&PSB_CIRCLE)   Gamepad.press(5); else Gamepad.release(5);
  if(data&PSB_L2)       Gamepad.press(6); else Gamepad.release(6);
  if(data&PSB_PAD_LEFT) Gamepad.press(7); else Gamepad.release(7);

  //E1-E4(アプリでは使えない)
  if(data&PSB_START)    Gamepad.press(9); else Gamepad.release(9);
  if(data&PSB_SELECT)   Gamepad.press(10);else Gamepad.release(10);
  if(data&PSB_TRIANGLE) Gamepad.press(11);else Gamepad.release(11);
  if(data&PSB_PAD_RIGHT)Gamepad.press(12);else Gamepad.release(12);

  Gamepad.write();
  
  //認識頻度の調整
  delay (1);
}

認識周りとdelayやscr_sensitivityの値は調整の余地がありそう。ノーツ多めの譜面だと若干ラグってるようなそうでもないような気がする。

純正初代専コンも含め、PHOENIXWAN以外のPS2コントローラももちろん使えるし、PCに繋いでUSBコントローラとしても使える。(使うことはないけど)

適当に外装を整える

基板も配線も剥き出しなので、適当にホットボンドで固めたりケースに入れたりしたら完成。
f:id:de0:20200904100506j:plain

おわり

アプリ側がUSBデバイスの制限をかけずかつキーコンフィグ可能になればわざわざこんな回りくどくて面倒くさいことしなくて済むので、もうちょっとどうにかしてほしい感じはある。
そもそもINFINITASが同じくらい選曲できればパーフェクトなんだけど、そんな日はたぶん来ないし、Ultimate MobileがDPに対応することもキー音出すことも多分無いので、それぞれ抱えている重大な欠点はこれからもずっと改善が見込めなそうなままのが困ったところだなあと思う。

PHOENIXWANがUltimate Mobileモードを追加してくれると助かるんだけども、他社のベンダIDを勝手に振った機器を量産して売る形になってしまうのであまり期待できないかもしれない...と書いている途中でPHOENIXWANのVIDが気になり調べてみたら普通に1ccfだった。その辺あまり気にしてないっぽい。いいのか?

メルカリのbeatmania IIDX ULTIMATE MOBILE用PS2専コン変換器がすごい話

背景

モバイル版のIIDXとして、ULTIMATE MOBLEというアプリがリリースされている。スタミナ制の基本無料で、課金すれば無制限で遊べる。
p.eagate.573.jp

タッチパネルでも遊べはするが当然高難度をプレイするのは厳しい。そうするとやっぱり専用コントローラが欲しくなるところだけど、公式のエントリーモデルしか使えない。(ということになっている)

既存の専コンをUSB変換して接続し、Octopusを使って画面上のタップに変換するという方法もあるにはあるが、隣のレーンを巻き込んだり反応が悪かったり連皿が入らなかったりする。

専用の変換器が有ればいいのにと思いつつ調べてみたところ、なんとそれっぽいのが実際にメルカリに売っていた。
出品ページ以外の情報がインターネット上に一切見つからず、本当に使えるのか半信半疑だったが、これで上手くいくなら儲けものと駄目元で買ってみた。

結果

完璧だった。おすすめです。

※追記:PHOENIXWANのPS2端子接続では入力が認識されなかったので注意。同じPS2入力なので使えることを期待していたがどうやら駄目らしい。どういう理屈なのかはよくわからない

品物

f:id:de0:20200524120050j:plain

PS2コントローラのメス端子に、自作キーボードとかでよく見る普通のPro Microが繋がれている。かなりシンプル。
出品者の手作りなので、時期によって端子一体型だったり剥き出しだったりクリアケース入だったりと外観は変わってくる。

INFINITAS用の変換器の作り方なんかは探すと公開情報がいくつか見つかるが、Ultimate Mobile用の対応方法については全くの謎なので、そのためのArduinoスケッチは作者の独自開発と思われる。すばらしい。
(デバイスID揃えるとかで動いてくれるんだろうか。方法が気になるが謎)

※追記:認識のさせ方わかった

使い方

適当なUSB micro-TypeCケーブルでAndroid端末に繋ぐだけで、驚くほど本当に普通に使える。
どういう仕組で認識させてるのか不明だが、ちゃんとUSBコンとして認識するし、鍵盤も皿もしっかりと反応する。

f:id:de0:20200524132226p:plain
端末に繋がっていると、選曲画面で"今日のイチオシ"の左にUSB接続のマークが表示される。
Ultimate Mobile公式の説明には、専コンはBluetoothを使うとしか書いておらず、有線については何の説明もないが、実際は使える作りになっているっぽい。なにそれ。

反応の抜けも感じられなかった。皿曲や☆12のエクハも普通に出来ているので、多分入力は全部通ってると思う。

PC

PCでもINFINITAS用の変換機として使えるようになっている。(皿の感度は違う)
f:id:de0:20200524134839p:plain

Start/Selectの同時押しで別キーとして使える。(出品画像より)
f:id:de0:20200524132209j:plain

多分この機能のために、HIDだけでなくキーボードとしても認識している。
f:id:de0:20200524134841p:plain

端末依存のハマりポイント

Oppo Reno Aを使っている。以下の点でうまく行かなくてちょっと焦った。

OTG接続の有効化

節電のためかUSBポートの機能をデフォで絞っているらしく、"OTG接続"をオプションからONにしないとデバイスが認識されない仕様だった。
10分使わないとまたOFFに戻るので、専コン使う度に有効化が必要。

外部出力

モニタに出力してプレイしようと思ったが、どうやっても映像が出力されなかった。よく調べてみると、そもそもこの端末は有線出力非対応だったらしい。
大画面でやる環境組みたい場合はこの辺りの対応も注意したほうがよさそう。

購入先

この出品者から4000円弱で買える。
https://www.mercari.com/jp/u/376379913/

ArduinoPS2変換のHW代だけで2000円くらいはするだろうし、UltimateMobile対応部分がオンリーワンなのでかなり良心的価格な気がする。

おわり

究極携帯は専コンの準備がハードル高かったんだけど、これで課題が一つ解消されてしまった。
INFINITASと比べて、キー音が無いこととDPに非対応なことくらいしかもう目立った欠点がない気がする。渋すぎる解禁作業の必要もなく最初から物凄い曲数があるのもうれしい。

個人制作なので常時買えるものでもないけど、Ultimate Mobileやる人はもし売ってたら手に入れて損はしないかと思う。


※追記:その後PHOENIXWANのために改めて自分で作った
de0.hatenablog.com

財布の圧縮を考える

現金を使う場面がかなり少なくなっていることに気付いた。
クレジットカードとSuicaとPayPay(とPASELI)で大抵どうにかなるので、現金の出番はほぼ外食くらいしかない。最近は外食も小さめの個人商店でもPayPayは使えたりする。

財布一切持たないって所までは流石に不便なので踏み切れないけど、とりあえず持ってさえいりゃいいやという感じにはなった。
代わりの財布についていくつか試してみたので、そのあたりの試行錯誤の記録を書きます。

要件

  • お札が10枚弱入る
  • 小銭が15枚以上入る
    • 1円10円100円が各4枚、5円50円500円が1枚
  • カードが4枚以上入る
    • kyash、P-one Wiz、住信SBIキャッシュカード、免許証
  • 株主優待券がそれなりに入る
  • 家の鍵が1本入る
    • 常時持つ分はキーケースを省略したい
    • 車や自転車の鍵は使うときだけ別持ちでよい
  • 接触IC決済対応は不要
    • 全部携帯でやる
  • 見た目やブランド等はどうでもいい
  • ズボンのポケットに入る
  • なるべく小型軽量である
  • 極端に使い辛くない

これまでの財布

f:id:de0:20200115181353j:plain

大量のカード収納と大口の小銭入れを持ちつつも小さめにまとまっている財布。お札の収納が独特でちょっと癖があるがすぐ慣れる。
1箇所の蓋を開くだけで中身に全部触れるのでかなり使いやすい。けっこうお勧め。

いつ買ったかもう覚えてないけど、同モデルのP25から乗り換えつつ多分計7年くらいは使ってた気がする。
使うカードがだんだん減ってきたので、せっかくのカードポケットが年々スカスカになってきていた。

M+ Piastra

ここから、移行先として試したもの。
f:id:de0:20200112211905j:plain

ポケットに突っ込む用の薄型財布。この手の財布を調べるとまず出てくる abrAsus 薄い財布 に似ているが、若干大型化しコインケースの位置を逆転させた感じになっている。

お札は革一枚の上に突っ込んでるだけで、蓋(ただの革)を閉じるのはポケットの力でやれという割り切り設計で、サイズも若干大きめなので、ちゃんと優待と札の両方を収納しつつ薄くまとまった。
小銭入れが内側なのは薄さの面で不利なのではと思ったけど、厚みは札の折り目と同じ側に集中し外側の端は薄いままなので、ポケットへの突っ込みやすさではこっちのほうが良さそう。

普通の財布系の中ではこれは悪くない選択肢だった。しばらく使った。

他の候補


似た配置でタイベック製の財布があり、こちらは厚み3mmらしい。薄さを追求するならこっちのほうが良いかもしれない。

輪ゴム

f:id:de0:20200112214239j:plain
二つ折りパターン
f:id:de0:20200112214404j:plain
四つ折りパターンと優待束
Piastra財布もこれはこれでなかなか良かったんだけど、

  • 使用頻度が違いすぎる株主優待まで1つにしておく必要があるのか
  • 小銭どうにかしたらもっと薄くなるのではないか
  • そもそも別に財布要らんのではないか

という考えが出てきた。

とりあえず極端なところから調整するかと思い、次の財布候補(もう財布でも何でもないが)は輪ゴムになった。
薄さ軽さの面ではどう考えても間違いなく最強である。使い勝手も意外と悪くはなく、阻むものが何も無いので探しやすい。
普通の輪ゴムだと劣化するので、モビロンバンドを使うとよい。

小銭の扱いがどうしようもないのが最大の欠点。札の端も曲がる。

コインホーム

f:id:de0:20200112220050j:plain

小銭をポケットに突っ込むのは流石に使い辛すぎるのでコインホルダーを使ってみることにした。

これはストッパーの付いたプラスチックの塊で、金額ごとに各5枚ずつはめ込んで携帯することが出来る。金額分けされており枚数もすぐわかり取り出しもしやすいので、会計時の使い勝手は最高だった。

ただ、支払いまでは良いんだけど、お釣りをもらう都度一枚一枚はめていく作業が必要になる。また、当然だけど硬貨5枚分以上のそこそこの厚みがあり思ったほどコンパクトではなかった。
上限は5枚じゃなく4枚でいいし5円/50円/500円は1枚ずつ入ればいいので、限界まで削ったバージョンがほしい。

ほかの候補


カードサイズで薄くまとめるならよさそう。もう売ってないけど。


500円が若干取りづらそうだけどこういうのもあった。

ジップロック

f:id:de0:20200114192901j:plain
中身は最高に見やすいが小銭が取り出しにくかった。もっと大きいサイズのを使えば解決はしそうだけど。
見た目は気にしないつもりだったが、会計時にここからジャラジャラもたもたやってるのは流石に微妙な気がした。

これを使うなら小銭に限らずお札も一緒に入れてよさそう。サイズ的には小銭と一緒に収納できるタイプのほぼ下限のはず。

名刺入れ

f:id:de0:20200115184055j:plain
ある程度の薄さ小ささがあり開口部が広いので、小銭入れとして使えるのではないかと思い試した品。
使い勝手は悪くはなかったけど、小銭が擦れる音と壁に当たる音が発生するのでやたらうるさい。じゃあ革製にしたら良いのではと思ったが、革製の名刺入れはこういう開き方はしない。

abrAsus 小さい小銭入れ

f:id:de0:20200114191222j:plain

コイン15枚と鍵の入るキーホルダー。かなりの小ささとそこそこ妥協できる使い勝手がある。妥協できる範囲というだけで別に特別使いやすいわけではない。
小銭を放り込む感じにはならず、隙間に押し込んでいく必要はある。

他の候補

細長でなく正方形タイプのこういうのもよさそう。

カードケース

雰囲気で株をやっている。少しずつ買い足し続けていて100銘柄くらい所持している。雰囲気でやっているので、近場で使え還元率が悪くない飲食店の優待が付いてくる株なんかには特に釣られがちである。
汎用性のあるギフトカードでくれると助かるんだけど、大抵はその店でしか使えない優待券なので結構枚数がかさみ財布を圧迫していた。

f:id:de0:20200112210921j:plain

たまに特定の店に入った時にしか使わないので現金やカードとは利用頻度が全然違い、別に全て財布内に収めておく必要もないことに今更ながら気付いたので、優待だけ分割することにした。
一覧で探せるので、使う時ペラペラめくって対象の店の券を検索する必要がなくなって便利。面積がだいぶ増えるが、尻ポケットや上着のポケットに入るレベルなので許容範囲だった。

メインカードや紙幣もここに入れて、カードケース+小銭入れだけってのもありかもしれない。

Ichione Cow

f:id:de0:20200112220254j:plain

輪ゴムの代替として、小銭入れが一体化していると便利なのではと考えて買ってみた品。
お札もカードも小銭も確かに入りはするんだけど、札とカードの向きが逆のため無駄にかさばり、小銭は隙間から溢れ、サイズも別に薄いわけでもなしと全部中途半端だった。

マネークリップ

f:id:de0:20200112220144j:plain
マネークリップ単品ならもう少しましなのではと考えて一応試してみた。
クリップ分の厚みが増すし、札の厚みが出てくると挟みづらい。おまけにカード何枚か入れたら元の位置に戻らなくなった。取り出しやすさでは勝ってるのかもしれないが、輪ゴムに対する利点が少ないように思う。
枚数少ないなら普通の文房具クリップのほうがマシな気がする。

Mary Lamb マネークリップ

f:id:de0:20200112215725j:plain

カードを板で挟み、紙幣を板裏のゴムで止める財布。別々の収納になった分若干取り出しやすくはなった。
the Ridgeという財布のコピー品っぽい。

ただ、カードを挟む2枚の板に結構厚みがある。それぞれカード2枚か3枚分はあるので、収納する中身よりかさばっており本末転倒感がすごい。
金属製だと他の物を一緒にポケットに入れたときに傷をつけるのも良くない。

Kinzd 輪ゴムカードケース

f:id:de0:20200112210835j:plain

ポケットが付加されたカードサイズ幅のゴムバンド。

輪の中とポケット2つを使いカードと紙幣と小銭を3箇所に収納できる。さらに横向きの小ポケットとキーリング付き。
必要な収納をシンプルながらいい感じに抑えており、輪ゴムよりかなり使い勝手が良くなった。見た目も多少はマシにはなる。
小ささを求めるならこれが答えな気がする。

欠点は、小銭の使い勝手が最悪なこと。ゴムの隙間に挟んでいるだけなので、中身は見辛く、取り出しにくく、入れにくい。また、枚数が少ないとたまに中身が落ちる。

所持品が増えるが、コインホーム(または小さい小銭入れ)を併用するのはまあまあ悪くはなかった。しばらくこの構成を使っていたがサイズと使い勝手が結構良いバランスだった。

SAKU-SAKU コインケース

形状が違う以外は小銭も紙幣も同機能なのに、小銭入れが分離して収納先が別になっているのは使い勝手的にはあんまり良くない。それに、小銭入れも決して大きいわけではないんだけど、ゴム束に比べると相対的には大きく見え無駄を感じる。
じゃあ一体型なら良いのではということでいろいろ探した結果、小銭入れ付きのゴムというかゴム付きの小銭入れがあったので買った。

f:id:de0:20200115184524j:plain

単品で出来る小銭の収納がまともになったのでかなり使い勝手が良くなった。ゴムの部分は2箇所入れられるのでカードと現金で分けて収納可能。カードの幅より小さいので端ははみ出す。

他の候補

厚みが増えそうだが、小銭入れがボックス型の分使い勝手はこっちの方が良さそう。

Nano Boy Pocketwww.jaimiejacobswallets.com
こちらは、カード取り出しベルトが付いてるのが若干便利そう。

現状の構成

優待はカードケースに、現金とカードはゴムバンド付きコインケースに入れて使っている。
f:id:de0:20200115185542j:plain

手持ちの優待が減ってきたら輪ゴムカードケースにしてもいいかなと思っている。
f:id:de0:20200115185027j:plain

おわり

お札を使う時の処理は、1000円を何枚出すかが実質ほぼ全てなので、雑に入れていてもそんなに使い勝手は悪くならなかった。
現金で高額決済する場面は稀なので、5000円/10000円が必要かどうかを考えるのは1000円が足りなかった時くらいしかない。

一方小銭を使う場合は、支払額ZYX円に対し以下の考慮が必要になる。お札と違い3桁分の計算と5の端数処理が要るので、ある程度の見やすさと取り出しやすさが確保されていないと一気にかなり使いづらくなる。
・1円と5円の合計でX円ちょうどあるか
・ない場合、1円が(X-5)枚あるか
・ない場合、X<5かつ5円が1枚あるか

・1の位の支払額<X の場合、Y=Y+1
・10円と50円の合計でY円ちょうどあるか
・ない場合、10円が(Y-5)枚あるか
・ない場合、Y<5かつ50円が1枚あるか

・10の位の支払額<Y の場合、Z=Z+1
・100円と500円の合計でZ円ちょうどあるか
・ない場合、100円が(Z-5)枚あるか
・ない場合、Z<5かつ500円が1枚あるか

もっと適当に支払って小銭溜まったらたまにセルフレジとかに全額突っ込むという手もあるにはあるけど、財布を小さくしたせいで小銭が増えるというのは目的を見失っている。
小さくするのは結局使い勝手をどこで妥協できるかだと思う。ここまで極端な小型化をせず普通の財布を選ぶにしても、お札やカードは適当に入れときゃ使えるけど小銭入れはある程度マシな感じのを選んだほうがよさそうな気がする。

自作キーボード無線化した話(Helix+Ble Micro Pro)

ついにBle Micro Proが到着しHelixを無線化出来たので、その辺について書きます。
f:id:de0:20190210201341j:plain

導入の流れ

Pro Microを外し、Ble Micro Proに入れ替えて、何らかの電源を追加し、以下の手順に従いファームを焼くだけ。無線化のハードルが滅茶苦茶低くなって本当にありがたい。
github.com

※追記:今はwebからファーム焼きが出来るのでさらに簡単

作ったパーツ

単4搭載用プレート


f:id:de0:20190216194906j:plain
[asin:B07K21F579:detail]
最終的に使うことにした部品。
単4搭載用の金具を隙間に差し込んで、電池-電池間、電池-BAT間、電池-VCC間を導線で雑にハンダ付けして使う。
金具裏面-コンスル―の間と、表面の電池周りの金具同士は、接触すると短絡するのでテープを貼って回避した。

スペーサはデフォの8mmから6mmに換装している。こういうパーツどこで買えばいいのかよく分からなかったんだけど、遊舎工房のリアル店舗が出来たおかげで小物の入手性が良くなって助かる。

配置可能な位置の中で一番マシっぽい場所ではあるものの、かなり上に飛び出る(横も2mmはみ出す)ので、元の直線的で無駄のないデザインを台無しにしている点はよくない。
ロープロファイル構成だったら大体同じ高さなのでもう少しすっきりするかもしれない。

コイン電池搭載用プレート


f:id:de0:20190216194344j:plain

作ったけど使わなかったパーツ。市販の電池ボックスをそのままくっつけられる(内側はみ出すけど)。
このケースは直列用なので、内部の配線をいじって並列もしくは1個にする必要がある。
見栄えは電池基盤に劣り、使い勝手は単4に劣るので、難易度くらいしかメリットがなくやめた。

エルゴノミクス風チルト足


f:id:de0:20190216194413j:plain
中央を高くしてそれっぽい配置にするための足。現在は戻したけど180度回転させる配置でも使える。
作ってはみたものの、この手の配置はパームレストがないと余計に疲れるだけということが分かった。
パームレスト無しで済ませたいからロープロファイルにしているのでやめた。
持ち上げる構成にすると裏面のスペースにかなり余裕ができるので、電源配置の自由度はかなり上がりそうではある。

3Dデータ

一応以下に置いときます。(3種セット、STL+F3D)
ただし、ダヴィンチJr (使っている3Dプリンタ)の精度が結構低く、印刷してから適当に穴広げたり削ったりしてるので微調整が要るかも。
www.dropbox.com

ハマったポイント

※全てWin10+MinGW環境、2/10時点 (追記:現状全部解決している)

ペアリング後に元のレイヤーに戻ってくれなかった

LT()で切り替えた先のレイヤーからMO()で移動するAdjustレイヤーにペアリング用のキーを配置していたのだけど、ペアリング後にキー入力を受け付けてくれない状態になり、数時間悩んだ。
根本原因まではちゃんと調べてないけど、ペアリングキー(AD_WO_L)押下後にどういうわけか元のレイヤーに戻らず、Adjustレイヤーのままになっていたせいだった。(使わないキーはAdjustレイヤーでは無効化していた)
滅多に使うものでもないので、元のレイヤーに戻る用に TO(_QWERTY) をAdjustレイヤーに追加してとりあえず回避した。
※追記:現行バージョンでは直っている

USB接続していないと初回ビルド終わらない

ビルドがなかなか終わらないなあと思ったら、途中でUSB接続してないと進まないポイントがあったらしい。
特に表示が切り替わらないので気付かずに数時間余計に待ってしまった。

USBで認識してくれなかった

これはBle Micro Pro自体は何も関係なく多分接続先が悪いんだけど、何も繋がず裸でUSBだけ繋いだら動くが、基盤をキーボード上に搭載している時は何故かUSBデバイスとして認識されないという状態になった。
コンスルー取り替えたら直ったけど、どういう仕組みでそんな現象になったのか結局よくわからない。

ちなみに、構築の経過をTwitterに書き殴ってたら、特にBle Micro Proって書いてないツイートにも関わらず分で補足され、交換品を速攻で送って頂けたりした。
結果的に切り分け不足でただ余分な手間を掛けさせてしまっただけなんだけど、滅茶苦茶親切でちょっと感動した。本当にありがとうございます。

若干もっさりする

デフォの設定だと少し反応が遅めで、左右の打鍵タイミングが悪いと入力順序が反転したりする。(頻度はそこまで高くないけど)
電池持ちは悪くなるけど、通信インターバルは多少下げたほうが良いように感じた。

配置を考える

せっかく分割ワイヤレスになったので、普通のキーボードじゃできない配置を試してみた。

椅子に直接付ける

f:id:de0:20190216195913j:plain
椅子のアームレストに机用のマウストレイを付けてそこに置く配置。(お試しなので片方だけ)
位置的にかなり楽な場所に来る点は良かった。ただ、固定しないと落ちそうで怖い、机の昇降についていけない、机の高さ低いとぶつかる、という点が微妙だった。やっぱ机に置けば良いや。
オフィスチェアではなくソファなんかだったら良いかもしれない。

ベッドで足の左右の座面にダイレクトで配置

位置が結構低いので思ったより疲れる配置だった。だったら普通に膝の上に置けばいいんだけど、別にそれは分割じゃなくても出来る。

ベッドでクッションテーブル二つ配置して配置

f:id:de0:20190217064449j:plain
ならば位置を上げれば良いのではということでクッションテーブルを間に配置して嵩上げしてみる。クッションテーブルは膝の上において使うものらしいけど、そのまま配置してキーボード置き場にした。
非分割キーボードを使う時はベッドサイドテーブルを正面に持ってきて配置していたのだけど、この場合足に当たらない程度の高さまでしか下げられないので、低めに設置できるこっちの方がちょいど良い高さになる。
トラックボール置くと若干窮屈なのと、足回りが狭いのと、寝るとき邪魔なのは欠点。

クッションテーブル+サイドテーブル

f:id:de0:20190217064532j:plain
これが一番しっくりきた配置。右手側だけサイドテーブルに変更。
天板が膝をまたがないので、足回りが広くなり高さも低めに調整できて両方ともいい塩梅のポジションになる。
落下の心配がなくなるのと、長いので肘掛けにもなるのもよい。

おわり

立ったり座ったりベッドで使ったりと普段あんまりキーボード位置が定まっていないので、いつでも左右バラバラ好きな場所で使えるのは思ったより快適になった。

自作キーボード導入の最後の踏ん切りがついたのは無線化の手段があるという点だったということもあり、当初から理想形として考えていたものがやっと形になってうれしい。

ぼくのかんがえたさいきょうのキーボードが出来てこれで完璧...になるかと思ったけど、理想はいくらでも上がっていくようで、一体化したポインティングデバイスも欲しいな、とか、右側だけもう一列欲しいな、とかいろいろと欲が出てきた。しばらくはこのまま使うつもりだけど果てしない沼を感じる。