- Home
- 一覧
- 雑記
-
[自キ]磁気キーボードを作りたい。4週目
進捗ダイジェスト4週目
磁気キーボード話
雑談です。
磁気キーボードを作ろうとちょこちょこ遊んでいるわけですが、作り手目線で素晴らしいキースイッチとはなんでしょうね。いくつか挙げてみます。- 磁力が強い→逆2乗則より強いほうがsnがよさそうです。とはいえホールセンサの感度次第なので、強いほうが良いというより一定以上強いほうがいいという感じですかね。私はその一定を知りません。
- 磁石が近い→逆二乗則より離れるとどんどん減衰していきます。離れるごとに、隣のキーとのアイソレーションが相対的に悪くなる(実害はほぼほぼないレベルだが)。
- ショートストローク→逆二乗則より保証精度は底打ちに近いほど高くなります。ストロークが長いほど距離が離れますから、最高精度は同じでもストロークが短いほど最低精度が良くなります。
- 軸ブレが少ない→作り手はスイッチの軸ブレを考慮せず精度を謳うものですが、それでも軸ブレが少ないほど実際の精度が良くなります。
そんな製品が確かありましたね。ZENAIMさん、シンプルに正しいものを作っておられる。ただユーザー目線だと入手性(高価、スイッチ単品で買えない)やキーキャップの面で不利ではあります。スイッチとキーキャップの販売待ってます。
その他でも、ユーザー目線で考えると真逆のことも多く、難しいものです。
市販の磁気スイッチを見ると底が塞がる(→磁石が遠い)方向に進んでいます。打鍵音や底打ち精度のためだそうですが、いい面だけではないということです。またワッシャーのようなものをキー底に挿入するショートストロークMODも流行り、使用できる部品情報や、専用部品として販売されたりもしていますね。いろいろユーザーが開拓することは素晴らしいことですが、これはスイッチからの距離が離れる方向に行きますからリリースポイントの精度は悪化します。磁石との距離が遠くならないように天面側に加工を施す方向にするとプレスポイントの精度が向上しよりよくなります。構造的に難しそうですが、そういうmodもなんかできないかなあと考えたりなどします。
zenaimやmod等ありますが、ショートストロークはそもそも強いのでしょうかと私は疑問に思うところも。ラピトリってストロークを無視して入力する機能なわけで、ストロークという要素とは完全に独立です。
言い換えれば連打が早くても抜けないための機能なので音ゲーとかだと強そうです。
インターフェースとしてショートストロークが使用感が良いというのは個人の好みですからどうぞであります。その点でいうと私はショートストロークは好みではありません。私の打鍵の仕方として、非入力時にもキートップに指がついていたいのです。なので、打鍵の瞬間のみ指が触れるノパソ等のようなキーボードは苦手です。なのでキーストローク=指の可動範囲となります。ショートストロークでは指の可動範囲が例えば2mm程度となり指が窮屈になります、予備動作が取れないのですよね。
そもそもショートストロークとロープロファイルをごっちゃにしている人は恥なので滅びてください。ショートストロークのzenaimはそこまで低背でないし、低背スイッチは全然ストローク長いです。温度特性
相変わらず実験などはできるはずもないのですけど、ホールセンサのデータシートなど確認してみました。
drv5053も温度補償あると思っていたのですけどなかったみたいです。「優れた温度安定性
– 温度範囲の全体で感度 ±10%」としか書かれていませんでした。そもそも本番で5053を使う予定はないですが、出力電圧固定で電源の揺れをもろ受けたり、あくまで規格ですが感度幅が100%あったり←???、緩い用途でしか使えないもので良く調べもせずに購入したこと自体が間違いでした。なんだこれ
5053は省き、5056は5055とほぼほぼ同じなので5055を例に表や特性図を抜き出してみます。5055は磁気検知範囲が決まっていて、出力電圧と感度は電源電圧に比例します。ADCのrefと同電位であれば電源の揺れは考慮しなくてよく、これをレシオメトリックと言うそうです。以前温度特性を軽く見てみようとしたときの意味不明さは電源の揺れの可能性は高いです。経験上そういう変化の仕方でしたしね。
磁石ない時の電圧の温度特性です。温度変化はほぼほぼ考慮せず良いみたい
Aモデルは温度が上がると感度が上がります。これは温度が上がると120ppm/Kで磁石の磁力が下がるのを補償しているそうです。
Zモデルは温度補償機能がないようです。低温では若干変化していますね。
規格表も見てみます。あくまで規格なので、実際の仕様の範囲ではどの程度のレンジを取るのかは実験してみないとわかりません。
Vqdtというのが磁石なしでの出力電圧です。+/-1%と、特性図で見た通り温度による変化はなさそうです。
Vqを見ると温度関係なく7%程度幅を取って揺れるみたいです。また、sensitivityを見てみると、感度は10%程度の幅を持っています。
スペック上の最大最小ですが、出力が7%, 感度が10%幅をもってばらつきがあります。この規格には個体差や使用時の揺れやら全部含んでいますから実力値はわからないですね。0.001mmとかの製品がある以上は出力の揺れというのはほぼほぼ無いんだろうなと思ってしまいますがどうなんでしょうね。
とりあえず磁気キーボードはスイッチだけでなくホールセンサにも出荷時キャリブレーションが必要とか、手動キャリブレーションはホールセンサも含めてキャリブレーションしているということです。Stcが温度補償で、Aは磁石のTC0.12%を補償している。Zは補償しない。なので温度補正機能をウリにしているzenaimやらhm66やらはdrv5055でいうところのZのようなホールセンサを使用しているのでしょうね。
面倒であればAのような勝手に補正してくれるものを使うのがよさそうですが、基板の裏側のスイッチの中の磁石の温度って、ホールセンサの温度とどれくらい一致するんでしょうか。一致せずともオフセットで済むならAで相殺すればいいですが、そこにずれがあるのならばZの方がよさそうな感じがありますね。どうなのでしょう、、ついでに消費電力を見てみると、5055は電流が2-4mA, 5056は6-10mAとなっています。5056の方が精度よく見れてよさそうと思っていたのですが、消費電力倍以上となると微妙ですね。60キーとして、ホールセンサだけで5055は120-240mA, 5056は360-600mAとなってしまいます。狂ってますね。
スリープ機能付きのホールセンサを使用しているメーカーもありますが、順当だと思います。市販品をusbテスターで接続すると当然のように1W消費していますから、磁気キーボードって何なんだと思ってしまいますね。正気ではないと思います。データシートちゃんと読んだ方がいいなとなるわけですが、すると中華の安い部品を検討するとき詳細な情報が公開されていなくてどうしたものかとなるのですね。oh49とか半額以下です。
マルチプレクサ
16chMUX、CD74HC4067SM96の動作確認は行いましたが、実力がどんな感じなのかオシロで観察してみようと思います。
マルチプレクサはセレクトピンのhigh/lowでチャンネルを選択します。enableピンはピッチ変換基板作ったときにいらんやろと思っていたらしく使えませんpicoのgpioからセレクトピンを切り替え、分圧した様子を観察しています。
arduino標準のだと高速で行えないらしく、#include “hardware/adc.h”#include “hardware/gpio.h”#include “pico/stdlib.h”してgpio_putして制御します。1usごとに切り替えています。切り替わり部分を拡大すると250ns程度何やら溜めがあり、次のchに切り替わり始めています。この部分でセレクトピンがカチカチしていると思うので、selectピンと合わせてみてみます。
セレクトピンの切り替えの様子も見てみます。今回セレクトピンは(0000)→(1111)の切り替えを繰り返させています。
多少バラバラしていますがセレクトピンは80nsぐらいで次のビットを切り替えているでしょうか。もし同時に出来たらだいぶ時間を短縮できそうです。
s0 vs s1→80ns程度
s0 vs s1→150ns程度
s0 vs s3→230ns程度
muxの出力とセレクトピンとも並べてみます。最初に切り替えるs0 vs dataでは250ns程度差があります。最後に切り替えるs3 vs dataでは50ns程度の差があります。
s0 vs data
s3 vs data
s3が切り替わってからdataが切り替わるまで50ns程度ですが、先ほどは長くてセレクトピンの切り替え間隔が80ns程度ありました。ふと思いますがこの時、50ns時点で切り替わり始めたりはしないものなのでしょうかね。
0000→1111と4つすべて切り替えていましたが、0000→0001とs0だけの切り替えでも見てみました。この時は先ほどのs3 vs dataと同じように50ns程度で切り替わり始めています。うーん
s0 vs data
datasheetを見てみるとセレクトピン→出力の遅延はtypで20数nsなのですが、maxの値は電源電圧が高いほど良くなるようで、3.3Vだとあまりいいところで使えていないんじゃないかなと思ったりします。実際今回は50ns程度な感じでした。(どちらにせよセレクトピンの切り替えに80nsかかっているので足を引っ張ってはいないのですが)CD74HC4067SM96はch数が多いのは素晴らしいのですが、あまり性能的には向いていないかもしれない。
次はホールセンサをマルチプレクサに接続してみたいと思います。2つのホールセンサを接続し、10us間隔で切り替えています。
割とノイジーに見えますね。また大分立ち上がりがなまっており最低でも500nsは待たないとならなさそうです。
マルチプレクサのオン抵抗が大きいようです。テスターで測定してみると150ohm程度ありました。ホールセンサ出力とmuxの間に100nFのコンデンサをバッファーに挟んでみました。だいぶ改善しています。しかしこれだとホールセンサの隣にデカップリングとバッファーとで2こコンデンサ入れないとならないですね、、、
この状態で、切り替え間隔を2usにしてみました。次の切り替え直前を取得すれば、これぐらいの周波数でスキャンできそうです。
おわり
なんかgptに部品案聞いて買ってきて試してみると駄目じゃんを各部品で繰り返している気がする、、、
デモ用の基板起こしたのだけど部品評価しなおしからの作り直しだなあ。マルチプレクサがより速いものに変えたいなと思うのでTMUX1308とかを試してみたいと思います。16chのものはCD74HCT4067しかなく、8chでやる方が良いかなと思い始めました
ホールセンサは消費電力考えなければ5056使いたいんですが5055が安定な感じです。デュアルセンサーとかやりたかったのですが遊びだけな気がします。左手デバイスだえあれば60%とかと比べて制約は少ないですがどうしたものか。こうなるとやはりメカニカルとのハイブリッドがよさそうな気はしてきます。これはこれで人に寄ったり色々面倒がありますがいろいろ考えさせられますね、、、磁気スイッチ採用する理由が非接触と流通性だけなのでまだいいですが、ふつうに60%とかの磁気キーボード開発しようとするとできる出来ない以前に諸々が馬鹿馬鹿しくて萎えそうです。
-
はんだリール台スタンド作った
はんだって何使ってますか?
私はhakkoの0.6mmを使用しています。150gといっぱい量があるから購入頻度少なく済むというどうでもいい理由です。自作キーボードキットのはんだづけとかだと0.8の方が使いやすいと思うのですけどsmd部品の実装どか考えると太すぎるので0.6という感じです。
メーカーによって溶かした時の臭いとか違いますよね。最近使い切って新しいのを買ったのですが、重くて引き出しづらい、、、のではんだスタンドを作りました。
そもそも私はあってもなくても変わらないからはんだリール台要らないだろ派だったのですけど、残量が減っていて引き出しやすいからだったというわけです。
なるほど重いから台が必要、市販の台ってごつくて500gとかの載せる用ですもんね。逆にこの150gのに使うと場所取るだけで無駄であります。ただ台が欲しくなっただけなのでfusionでテキトウに作ります。
場所は取りたくないのでコンパクトに。
そんな重い量ではないので、浮かせる必要はありません。むしろ浮かせない方がスムーズかな?箱の中でただ回る感じです。
引き出し穴は下からの方が使いやすいと思っています。これだけでもいいのですが、はんだの巻取り動作がだるく思っています。棒をぶっ刺してぐりぐり回せるようにしました。縮めて突っ込んで蓋をして広げればいいかなと思います。
A1miniで印刷
滑り止め張って完成
スムーズに引き出せ、スムーズに巻き取れていい感じです。完成度とか全く考えてない拙速ですがファイル投げておきます。
-
[自キ]磁気キーボードを作りたい。3週目
進捗ダイジェスト3週目
温度特性
zenaimさんとかはサーミスタ積んで温度補償していますとウリにしていますよね。他のキーボードでは都度キャリブレーションを行うからokのような感じもあります。
とにかく温度特性の取得と補償するかどうかは考えなくてはなりません。雑に想像するに常温~高くても40度はいかないだろうと想像しますがどうなんでしょ。冷凍庫に放り込んだりヒーターを当てたりしながら、ホールセンサ及びスイッチのADC読み取り値時間変化を見てみたりしたのですが、、変わったり変わらなかったりなんもわからんとなったのでそのうちリベンジしたいと思います。
とはいえ恒温槽なんてないし、そもそもどこの温度を見るのか?ホールセンサならまだしもスイッチの中にある磁石に熱電対を当てることはできません。熱電対持ってないし。
何ともめんどくさそうな気がしているうえに最悪無視してもいいんじゃねという気がしています。
たとえばcal時のtop値と温度を保存しておいて、毎度top値に対してオフセットなりするだけでも良かったりしないかとか。宿題です
ホールセンサ出力-押下量特性の取得
マイクロメータヘッドを買いました。使用用途が数式立てるためだけで、これしか使わないのでもったいないのですが必要だったので仕方なし。ところで磁力を測るのに使用するのはマイクロメータヘッドでよいんでしょうか。
買ったはいいもののマイクロメータ以外が何もないので急ごしらえな感じでいったん雑測定します。手元の範囲でもうちょい道具揃ったら再測定します。最押し込みから0.05mm step, 7000点程度ADC値を取得し、平均とばらつきを見ています。ちまちま手動でマイクロメータを回し測っていきます。
底と天井のところは測定系とか色々適当なので裾引いていると思っていて、基本的には正規分布に沿っているとみてよいかなと思います。そうでなければ困る
平均を読み取り値として採用し、rangeがばらつき幅、6*stdが上下端切り落としたばらつき幅としました。外れ値らしい外れ値はないですがL45測定値の平均値らを取り出し、底からの変位量でプロットしてみました。
averageを見ると距離に対して反比例のようなグラフをしています。底付近の方が磁力の減衰が少ないので高感度に傾きをとれています。
rangeとstdはおよそ一定で変化しています。距離、磁力に寄らずばらつきは一定とみてよさそうです。またこの測定環境においては、ADC読み取り値のばらつき幅は平均で36程度あり、電圧にして36/4095*3.3=0.03V程度幅を持っています。この幅分以下の値はふらふらばらつくので設定できないということですね。ぱっと思いつくのはホールセンサ出力にフィルタ入れたり、安定度の高いマイコンボードを使い対策とかでしょうか?左軸青はADC読み取り値、右軸燈は0.05mmの変位量でADC読み取り値がどれだけ変化するか(感度)を表しています。ADC値/stepに変換しています
底からの変位0付近では0.05mmを変位させるとADC読み取り値は35程度変化します。閾値0.05mmを実現しようとしたとき、ばらつきが前後35以内に収まっていれば誤動作が起きなさそうでしょうか。
底からの変位2mm付近の中央では10程度の感度です。
天井付近では感度が3程度です。0.05mmを実現するためにはばらつきを3に抑えたいです。この時ばらつき36ですから無理ですね。平均ばらつき度36であることから、ADC感度→どれだけ変位距離がぶれるのかをプロットしました。これから、底付近と天付近ではばらつきのインパクトが異なり底の方がばらつきによる必要なマージンは小さいです。
例えば底から2mmの位置で固定しているにもかかわらず、読み取り値が上下に0.1mm分ふらふらとばらつくことを示しています。そのためラピトリ値はこれより大きくしないと動かしていないのにon, offが勝手に入力されてしまいます。このpicoでただ読み取るだけの環境では最悪値である上下0.35のマージンを入れた精度であればラピトリを実装できそうです。それくらいでも実用には問題ない気もします。現在ホールセンサにdrv5053を使用していますが、これをdrv5056にするだけで分解能分で倍はよくなりますから、加えてばらつきを抑えてやれば0.1の精度は特別なことをしなくても実現できそうな気がしてきました。
モデル式検討
モデル化というと仰々しいですが、2次の関数と連立方程式だけなので大したことなさそう。磁力⇔変位変換は非常に簡単な話であります。
先ほどのL45と同様に0.05mmずつボトムアウトから刻みホールセンサ出力を測定、をKOM, ZEN, JadeGamingの4種のスイッチについて行いまいした。この結果からスイッチのオンオフ判定やキャリブレーションに使用するためのモデル式を検討します。
余談ですが、ZENAIMのスイッチは極性がKS-20と同じN極下なので、プレートにちょっと細工すれば同様に使用できます。ただ磁力がKS20互換らより強いので、モノによってはホールセンサの検知範囲から外れてしまうかもしれません。私はZENスイッチにも対応できるように作りたいと思っています。まずはどのような式にするのか決定する必要があります。ホールセンサはデータシートを見るとわかるように、磁束密度Bの変化に対してリニアに電圧値に変換され出力されます。
またこの比例定数は各ホールセンサの感度がデータシートに乗っていますからそれを参照します。drv5053caであれば[+23mV/mT]と記載があります。スイッチのスペックには基本的にガウス[Gs]で表記されていますが1mT=10Gsなので[+230mV/Gs]です。$$ B\mbox(磁力) \propto Vout\mbox(ホールセンサ出力) $$
磁気スイッチのスペックなど見るとわかりますが磁束密度がそのままある位置における磁力の強さとして扱われているので、磁力と呼んでしまいます。
この磁力をホールセンサで電圧に変換し、それをマイコンのADCによって読み取った値を処理します。現在picoを使用してますが、ADCでは読み取った電圧を0~3.3Vの範囲を0~4095の12bitに変換し読み取りを行います。例えばADCで2000という値を読み取った場合ホールセンサの出力電圧は以下になります。$$ Vout[V] = \frac{2000}{4095} * 3.3[V] = 1.6[V] $$
ですから当然ADC読み取り値も磁力に比例しています。
$$ B\mbox(磁力) \propto ADC $$
マイコンで読み取る値と磁力の関係がわかりましたので、スイッチの変位との関係も見てみます。
磁力と距離の関係を調べてみると、どうやら磁力は距離の二乗に反比例するようです。ホールセンサは磁力に対してリニアですが、肝心の距離特性はそうでないようです。めんどくさい、、
磁極のローレンツ力の式というのがあり下記のように表されるようです。磁極からの距離rの二乗に反比例しています。またベクトル量ですから傾くと磁力が変化するようです。スイッチを傾かせずに押し下げ、その直線状にホールセンサが水平に置かれることが理想というわけですね。$$ B=\frac{\mu q_m}{4 \pi r^3}\overrightarrow{r} $$
スイッチの距離を磁力として取り出したいだけなので電磁気学なんて知ったこっちゃないです。とにかく下記のように表せるようです。
$$ B\mbox(磁力) \propto \frac{1}{r(磁極からの距離)^2} $$
ここで私がキャリブレーション時に使用できる距離という値は、スイッチのストロークだけとなります。磁極からの距離を想定したときに、基板の厚み、基板からスイッチ底までの距離、スイッチ底から磁石までの距離とよくわかりません。
とりあえず今回測定したように、スイッチ底打ちからの変位量を d [mm] としましょう。ストローク4mmのスイッチとすると、dは0~4の値を取ることになります。0の時ボトムアウトで、4の時トップアウトの状態になります。
また、モデル式に必要な磁極からの距離rというものを仮定して、そのための補正値を d0 [mm] と置きましょう。磁極からの距離を以下とします。$$ \mbox{(磁極距離)} r = \mbox{(変位量)} d + \mbox{(補正値)}d_0 $$
実際に計算に使用したいのはADC読み取り値と変位量dですから、上の式にそれぞれ代入してみます。
$$ (B \propto ) ADC \propto \frac{1}{( d + d_0 )^2} ( =\frac{1}{r^2}) $$
多項式となると面倒ですが、この式を使えればとても簡単です。きっとそうに違いない。
比例定数a, 切片bとして、以下の式をモデルとして想定してみます。シンプルな一次式です。$$ y=ax+b, (y=ADC, x=\frac{1}{( d + d_0 )^2} ) $$
また定数a, bについて考えると、傾きが大きいほど磁力が強くなるということですからaは磁石の磁力の強さを表していそうです。
bはx=0つまり磁極距離が無限大、スイッチが装着されていない何も検知していない状態ですから磁力0をホールセンサで読み取った値となりそうです。実測から近似式
実際に実測値から近似式を作成し、モデル化を試みます。d0という便利な謎の補正値が吸収してくれるので、この時の変位量(0.005, 0.01, …)刻み幅がちゃんとしてればなんでもよいです。
今回初めて知りましたがエクセルは線形近似式をセルに打ち出せるのですね。[SLOPE()][INTERCEPT()]という関数を使用しa, bが求まります。
最小二乗法で線形近似式に実測をフィッティングしd0の値を得ます。グラフを見ると、いい感じにモデルに合っていそうです。$$ y=a\frac{1}{( d + d_0 )^2}+b=\frac{10847}{( d + 2.88 )^2}+1221 $$
L45同様にKOM, ZEN, JGにも実施し近似式を求めました。近似式を求め使用することで、それぞれ異なるストロークと謎の磁極距離という問題が解消されます。任意のr=d+d0を代入すればよいですからね。
KS-20互換と呼ばれるスイッチは互換とはいうもののストロークも磁極距離も磁力もそれぞれ違うんだよなあと思いますが、こう見ると比較的似たような位置にいますね。ZENAIMスイッチは2倍ほど磁石自体の磁力強いことがわかります。これは実測だけでは磁極距離が含まれていないため正確にはわからないところです。ざっくりはわかりますけども。
余談ですがそれがユーザーにとり最適化はわかりませんが、ZENスイッチは非常に都合が良く素晴らしいと思います。磁力が強くSNが高い、ショートストロークで感度の高い場所のみを使える、種類がないため単純なキャリブレーションでよい。実のところZENスイッチであれば二乗に反比例などといわず、細かい変位におけるズレを妥協し線形近似してしまっても使う分には困らないし気づかないと思うのですよ。
以下はZENスイッチのADC / d特性ですが、距離二乗反比例だとしても、ほぼほぼ真っすぐじゃないですか?リニアですと言っても困らないと思う。予定ですが、ロングストロークによる感度の悪化をデュアルセンサー化して解決しようかなと空想の中では思っていたりします。市販されている中ではまだないので他人から見て少し面白いかなと思ったり。
近似式からモデル式
得られた近似式では各スイッチについてのプロファイルにしかなりませんのでどのスイッチでもキャリブレーションできるように仮定したモデル式に一般化しましょう。
近似式の結果を踏まえてモデル式を少し整えます。切片bは4つのスイッチで似たような数値を取り、これはおよそ磁力0の時のADC値1V/3.3V*4095=1240に近い値を取っています。ほぼほぼそうだろうということでこれをbとします。また切片のあるグラフでは見づらいので左辺に移項しておきます。またb→y0と呼び名を変更します。
$$ Y=y-y_0=\frac{a}{( d + d_0 )^2}=aX $$
変数定数について整理しておきます。
d 底からのスイッチストローク量[mm] d0 磁極距離rの補正値[mm] r d+d0 磁極距離(理論式の磁石-ホールセンサ距離)[mm] X (1/r)^2 モデル式の横軸[mm^-2] y ADC 0~4095のADC読み取り値 y0 磁力0の時のADC読み取り値 Y y-y0 モデル式の縦軸ADC a モデル式の傾き、磁力の強さ キャリブレーションを実施することでモデル式から定数を決定し、y⇔dの相互変換を可能にする必要があります。
- スイッチを押したり離したりすることでボトムアウトおよびトップアウトでのADC値、y1, y2を得ることができます。
$$ y1=ADC_{bottom} $$
$$ y2=ADC_{top} $$
- スイッチのストロークを入力することでボトムアウトおよびトップアウトでの変位量、d1, d2を得ることができます。d1は底ですから0mm, d2はトップなのでストローク値になります。
$$ d1=0 $$
$$ d2=Stroke $$
これを代入し連立方程式を立てます。
\[ \begin{cases} y_1-y_0=\frac{a}{( d1 + d_0 )^2}=\frac{a}{( d_0 )^2}・・・① \\ y_2-y_0=\frac{a}{( d2 + d_0 )^2}・・・② \end{cases} \]
②/①よりd0が求まります
$$ \frac{y_2-y_0}{y_1-y_0}= (\frac{d_0}{d_2+d_0})^2= (\frac{1}{d_2/d_0+1})^2 $$
$$ d_0=\frac{d_2}{\sqrt{(y_1-y_0)/(y_2-y_0)}-1} $$
①-②よりaが求まります。
$$ y_1-y_2=a((\frac{1}{d_0})^2-(\frac{1}{d_2-d_0})^2) $$
$$ a=\frac{y_1-y_2}{((\frac{1}{d_0})^2-(\frac{1}{d_2-d_0})^2)} $$
よってキャリブレーションを実施し、y1, y2, d2を入力することでモデル式を使用できるようになります。
実際にラピトリ制御する際は、単純に考えるとまずADC値を読み取り初期位置を算出、そこからラピトリ設定値をoff状態なら-、on状態なら+し、そこからトリガーとなるADC値を算出する感じでしょうか。
初期値をD, Y、ラピトリ設定距離をRとします。$$ d(初期値)=D $$
$$ y(初期値)=Y $$
$$ R(ラピトリ設定値) $$
ADC初期値を入力し初期位置を取り出します
$$ Y-y_0=\frac{a}{(D-d_0)^2} $$
$$ D=\sqrt{\frac{a}{Y-y_0}}-d_0 $$
次のトリガーとなる判定位置をD’とすると
$$ D’=D±R $$
d=D’が次のトリガーとなるADC読み取り値となる。
$$ Y=\frac{a}{(D’-d_0)^2}+y_0=\frac{a}{(D±R-d_0)^2}+y_0 $$
宿題
とりあえず磁力⇔ストローク量変換ができるようになったと思う。あとは部材とどいたら実測詰めていい感じにしていきたい。
温特をどうにかする。
ADC値のばらつき問題。フィルター入れたりマイコン変えたりしてみる。
したっけ実装に入っていく。
-
[自キ]磁気キーボードを作りたい。2週目
進捗ダイジェスト2週目
磁力と距離
picoにつないだだけの同じもので距離特性をざっくり測ってみます。
前回は感度45V/Tのdrv5053eaを使用しましたが、今回は感度が半分の23V/Tのcaホールセンサを使用します。なおこれも範囲をカバーできていないのでもっと感度低いものが必要です。
通常基板からプレートトップの距離が5mmなので、1.6mm基板+3.5mmスペーサのところですが、磁力範囲をカバーするため4mmスペーサを使用しています。距離を測る機器がないため、スイッチを押していないニュートラルな状態と押し込んだ、ニュートラルな状態から-4mmの状態での平均ADC読み取り値を記録します。
またスイッチ下に1.6mm基板をスペーサとして敷いていき、4回繰り返しました。4mmスペーサで押し込んだ状態を0としています。この0mmの状態で、およそホールセンサから距離が2mm開いているのでオフセット値を加えグラフにしてみます。雑計測なのであまりなめらかでないですね。
ググってみると磁力は距離の二乗に反比例するそうです。ぱっと見反比例のグラフなのでそんな感じがします。ホールセンサは磁力に対してリニアに電圧が変化し出力されますが、肝心の磁力が距離に対してリニアではないのですね。
押していない付近と押し込んだ付近とで感度が違います。同じ1.6mmの移動でも、2 – 3.6mmの移動量でADCは350変動していますが、3.2 – 4.8mmでは95しか変動しません。
SOCD機能がある以上、fpsでの挙動においてニュートラルから押し込む動作の精度が重要に思いますが、磁力の強い押し込んだ付近の方が高精度にとれるのですね。磁力は距離の二乗に反比例するということなのでどうなのか見てみます。
それっぽさがあります。そもそもここで採用している距離というのがデタラメ(センサと磁石の距離こんな感じだよね)なので、補正値を二乗平均平方根誤差最小になるやつで求めてみます。
それっぽい感じがします。この近似式にホールセンサ読み取り値を入れれば押し込み量が求めて、press releaseの判定を処理できそうです。
何も考えていないので、もう少し正確に計測出来るようになったらモデルを検討したいですが、なんとなく押下量min, maxでの磁力を測定し、スイッチのストロークを入力すれば各スイッチに対応したキャリブレーションができそうな感じがしています。どうなんでしょう。その場合精度は筐体やスイッチの工作精度や軸ブレ量次第にはなりそうです。またこの近似式から各距離での検出磁力もホールセンサの感度を入れることで推定できますね。L45はスペックが良くわからないので何も答え合わせできませんですけど
picoのスキャン速度
とりあえずpicoで1000回ADC読んでその時間と平均値を出してみました。picoのクロックを設定できるようなのでいくつか試してみました。
const int numSamples = 1000; long sumA0 = 0; int sampleCount = 0; void setup() { Serial.begin(2000000); // 高速シリアル通信 analogReadResolution(12); // 12ビットADC } void loop() { // 1回A0を読む int value = analogRead(A0); sumA0 += value; sampleCount++; // 1000回読み取ったら出力 if (sampleCount >= numSamples) { int averageA0 = sumA0 / numSamples; Serial.print("time,"); Serial.print(micros()); Serial.print(",A0,"); Serial.println(averageA0); // リセットして次の1000サンプルへ sumA0 = 0; sampleCount = 0; } }
クロック250MHzに設定した1ms間に250回ほど読み取れるようです。単純に50キーのキーがついてるとして1msに50回です。物足りなさは感じます。
A0ピンだけでなくA1ピンも加えて、2つのピンから読み取るようにして同じように計算してみました。
A0とA1の分があるので読み取っているキー数はこれの2倍となります。A0のみから読み取るのよりも遅くなってしまっていますね。
picoのデータシートp.557にADCのサンプルレートは500kHzで1基搭載し4つのADC入力とマルチプレクサで接続されていることが書かれています。
ADCは1基しか搭載していないので2ピン読み取らせるとむしろMUXの切り替え時間とかで遅くなってしまっている感じでしょうか。もし仮に1ピンあたり500kHz出たとしても50キーあると10kHzですからpicoではADCの搭載数、サンプルレートともに磁気キーボードを作るうえでは足らないのかなと思ったり。プロトタイプなら全然よさそうですが
マルチプレクサ
16チャネルのマルチプレクサ CD74HC4067SM96 の動作を確認します。
市販の磁気キーボードには大抵MUXが乗っておりADCピン数を拡張しています。マイコンにADCピンが60個とかついてないですものね。CD74HC4067SM96は一つで16個のADCピンを拡張できます。S0~S3でP0~P15のどのピンから読み取るか指定し、dataピンからマイコンに指定したピンのADC出力が読み取れる感じの部品です。今回は抵抗で分圧して電圧値読み取れるか試してみました。
// セレクトピンの定義 const int S0 = 0; const int S1 = 1; const int S2 = 2; const int S3 = 3; // ADCピン const int adcPin = A0; // GP26 = ADC0 // 読み取るチャンネル(P0〜P3) const int channels[] = {0, 1, 2, 3}; const int numChannels = sizeof(channels) / sizeof(channels[0]); //int型は4バイトchannnel配列は4要素計16バイト、channnell0は1要素4バイト、16/4=4要素らしい void setup() { Serial.begin(200000); // セレクトピンを出力として設定 pinMode(S0, OUTPUT); pinMode(S1, OUTPUT); pinMode(S2, OUTPUT); pinMode(S3, OUTPUT); // ADCピンの初期化(Arduino環境では特に不要なこともあります) analogReadResolution(12); // Picoでは12bit ADC(0〜4095) } void loop() { for (int i = 0; i < numChannels; i++) { setMuxChannel(channels[i]); // MUXのチャンネルを設定 delay(10); // セットアップ時間待ち int adcValue = analogRead(adcPin); // ADCから読み取る Serial.print("P"); Serial.print(channels[i]); Serial.print(", "); Serial.println(adcValue); delay(500); // 待機 } } // マルチプレクサのチャンネルを選択する関数 void setMuxChannel(int channel) { digitalWrite(S0, bitRead(channel, 0)); digitalWrite(S1, bitRead(channel, 1)); digitalWrite(S2, bitRead(channel, 2)); digitalWrite(S3, bitRead(channel, 3)); } //bitreadでchannnelという引数に渡された値の、何ビット目の値を出すらしい
問題無く読みとれていそうです。使う分には sピンで指定→読み取り だけで難しいことはなさそうです。またenableピンもついているので、mux個数分のioピンを用意すればこんかいのpicoのようにADCが1基のみの搭載でも同じADCピンに複数のMUXを接続することができるようです。
速度とか切り替えとかノイズとかも次にpicoやオシロで確認したいです。
部品調達
何も知らない何も考えてないで始めているので、どれも性能が足りていないことがわかりました。
使える部品を買い足したいところです。まずスイッチがL45が数個あるだけ状態なので、定番品を入手しておきたいところです。磁気キーボード関連何も知らないので何買えばいいのかもわからない、、
少し調べてみると、ストロークだけでなく磁力も公開されているものが多いのですね。例komとjadeprogateronなどはデータシート自体公開しているようでしたが、あまり欲しい情報は得られませんでした。基本的にはストロークと1.2mm pcbでのtop, bottomでの磁力だけのようです。
本当に何も知らないのでks-20互換というのは本当に互換なのだと思っていましたが、磁力、磁石との距離、ストローク、どれもまちまちなのですね。まあ互換といっているのも名目上はユーザーなのでしょうけど。ks20互換が意味するのは極性とMXタイプであることぐらいなのですね。磁気スイッチの種類というのもめちゃくちゃ多いそうで、わけわからん状態なのですが1年後も使用され続けていそうなものを何種類か見繕いたいところです。
drv5053caの23mV/mTより感度の低いホールセンサを調達したい。また5053は出力が0-2v固定なのでもっと広く見れるものが良いかなと思いました。その分細かく見れますものね。↑のように磁気スイッチは1.2mmpcbとして700Gs=70mTは最低でも見れなくてはならないですね。適当に調べてみた感じ候補はこんな感じでしょうか。基本的にはよく見る3端子のもので、スリープ機能付きのものは6端子です。
drv5053caは350Gsまでしか見れないのですが、今回L45を0.4mm程度浮かせると振り切ることなく計測できていました。L45のスペックがどんなものかはわからないですが、距離^-2というのは感度が極端に変わりすぎてめんどくさいなあと思います、
5053他は与えた電源と同じレンジで出力が見れるものと思います。また5056は片方の極性しか見ないため、倍細かく見れそうです。
スリープ機能付きのものは、ioピンこそたくさん必要ですが、MUXなしでオンオフ制御できそうです。どちらがいいのかは何んともわかりませんが、売っているので検討はしたいなと思います。計測範囲ちょっと狭いのですけどね。その話で行くともっといろいろホールセンサもラインナップはあるはずで、個人だとまず部品の選択肢から狭いのはきついなと感じます。マイコンボードももっと高性能なものを使用したいところです。実際に使うにあたりどの程度のADC基数、sps、クロックが必要なのかは見ておく必要があります。ai君に調べてもらうとstm32がよさそうです。
市販品は8k当然な感じですがnucleoボードはUSB2.0対応のものはないそうです。でもteensy4とか高いのでnucleoボードでいったん試してみようかという感じ。そもそも8kHz必要なのかという話でもあります。
正確に押下量も取りたいのでマイクロメータもあったほうがよさそうです。mitutoyoのmhn2-25mxとかこういう感じでしょうか。どこまで正確にできるのやらとは思いますがたかがスイッチを押すだけに仰々しい設備導入とかとも思うのでこれくらいがちょうどよいとは思うけれどどうしたもんか
なんもわからなくても何もしないでもai君がarduinoコード出してくれるので楽なものですね。
もうちょいい環境整えて、具体的な話をしていきたい。
-
天下一キーボードわいわい会 Vol.8 行ってきた
2025年5月4日天キーvol8に行ってきました。気になったものなどぱっと振り返ります。
以前参加した際は駅から歩く上に入り口もよくわからないということがありましたが、南北線で行きましょうね!今回は駅から直通で楽ちんでした。
どなたの展示かわからっていないのであとから調べてわからなかったものもありますがご了承ください。敬称略ごめんなさい。
awekeys
金属製キーキャップを販売しているawekeysさんの展示
cerakeyとかは結構重たいなとか思った記憶がありますが、案外軽量でした。白銅で成形され、各種金属コーティングを施しレーザー印字しているそうです。ベースキットは3色ほどありました。価格はなかなかするので富豪向けですね。absもPBTも使っているとテカってくることは防げないので表面が変わらないのはいいかもですね。
ワンポイントの元素別キーキャップもありました。金属ごとに合った表面加工をしているそうで、ぴかぴかだったりマットだったりしています。きれいでした。
Libertouch
Libertouchさんの展示。高級メンブレンキーボードです。
メンブレンとはいうものの打鍵感は優れており、底打ち感が異なりますが静電容量系の感じでした。こちらes限定版とのことで削り出しケースにフォーム、プレートとこだわり生産されたものでかなり良かったです。予約が開始されていましたが8万円とのことで、貯金0の私は予約すること敵いませんでしたが、余裕のある方是非お勧めです。
キーマップカスタマイズはソフトウェアが開発されていたりキーキャップも十字で好きなものを取り付けられるそうです。スイッチサンプル。メンブレンは接点スイッチなので装着しM互換として使用できるアダプタがあったり。
荷重の異なるラバーや、ラバーの代わりにばねを使用したリニア軸と4種類ありました。zenaim
zenaimさんの展示。60%はもうそろそろ発売でしょうか。テープアウトはしていそうです。usbは左側になったんですね。かなり見た目はよさげ
zenaimはかなりガチャガチャいいますからフィードバックも多かったのでしょうか。ハーフガスケットマウントを検討されているそう。ガスケットの位置や硬さなど自在に調整できると説明を受けましたが社内向けなのか、もしリリースされるとしてユーザーが分解し、カスタムできるようにするのか気になりますね。感触としては適度にアコースティックに吸収してくれる感じで、強く打鍵しても手が痛くなりにくそうです。
正直打鍵感音がよいと言われる中華系も値段帯問わず大抵ガチャガチャしてますからzenaimばかりそういわれるのも不憫だなとは思いますが。アケコン。筐体は結構ごつく、分厚いです。こちらはまだ先でしょうか?スイッチモジュールはたしか4ピンコネクタでした。詳しくは聞きませんでしたがどういう感じなんでしょうね。
磁気キーボード開発に関していろいろ質問してきました。まっとうなものづくりの視点から多くの意見をうかがうことができました。これからのzenaimの展開などもお聞き出来てよかったです。
まっとうな磁気キーボードですから買いたい気持ちは大いにあるのですがいかんせん高級でお金がないので買えないのが申し訳ない限りです。moimate
moimateさんのマイクロスイッチアケコン。
こちらはソケット非対応でホットスワップはできないそうです。クリック感はよくブレもないので、スイッチ周りしっかり設計されているなという印象でした。ワーカホリック
ワーカホリックさんの展示。いろんな椅子を試すことができる有料サービスのお店だそうです。予約が埋まり切っているとか。
会場にはオカムラバロンとエルゴヒューマンがありました。これらは座ったことがなかったのでコンシェルジュしてもらいました。
バロンは結構ガシッと体を固定してくる感じですね。薄めの座面とメッシュの背もたれとで全体的に強い張りがあります。仕事用だとアーロンが有名ですが、こちらもかなりいい姿勢で固定でき長時間働けそうです。逆に崩した使用はちょっと向かないかも?
エルゴヒューマンはでかい人向けという印象があったのですが、座ってみるとそういった印象は感じませんでした。勘違いしていたよう。全面メッシュで包み込んでくれます。オットもあり、また全体的に広く余裕があるので、ゲーミングチェア的な柔軟な使い方をするには向いているなと感じました。
どちらもリクライニングにアームレストがついてくるタイプだったり、リクライニング時の座面の連動の仕方が異なり(バロンはほぼ動かず、エルゴヒューマンは一緒に傾く)普段と異なり面白かったです。
買う買わないでなく椅子をコンシェルジュするサービスなので、買う気がなくてもワーカホリック行って各社の椅子を体験するのは有意義そうです。2時間3300円だそうで安いしこれは言って損することはないですね。予約いっぱいだそうですけど機会があったら行きたいさびねこ
さびねこさんの展示。Nooir Nolandというキーボード、キーボードが浮いていてなんかとてもすごかった。お高いようです。
ℝ𝕆𝕄コッポラ
ℝ𝕆𝕄コッポラさんの展示 SeaOtter Keyboard
めちゃくちゃきれいな造形でした。キーボードとしても動作するというのでなおすごいです。せきごん
せきごんさんの展示。キーボード自動生成できてしまうauto kdk、すごかった
usbが3つついているのなんでなんだろうと漠然と思っていたのでお聞きしましたが、左右共用にしながら左右間通信を、どちらからでも出せるようにするためだそうでした。言われてみればそうである。usbコネクタと左右間コネクタの位置関係など自由に選択できないと困りますね。
まだリリースされていないそうですがトラックボールがとてもよかったです。トラックボールついているキーボードでしっくりくるものが少ないのですが、こちらかなり良かったです。リリースされたらトラックボールキーボードデビューしてみようかしら。
制御ボードとセンサーモジュールを購入し、あとは基板とケースをデータ発注するだけですからほんとすごいですよね。設計試作コストを考えるとautokdk安すぎます。yohe
yoheさんの展示。corne用の円形のケース。こういうの回せば自在にチルトテントできるのでいいですよね。hutaもfdm製ながらスムーズに開閉出来て感動しました。
mass
massさんの展示。omnonというトラボとジョイスティックを搭載したデバイス。触った感触がとてもよく、とても完成度高かったです。他にない構成ですが、どのような割り当てをして使用しているのか気になります。
jezail funder
jezail funderさんの展示。cornixというcorne系譜の配列をしたキーボード。背面にデフォルトでテントスタンドがついており、非常にスマートです。テント角度は段階で調整可能でした。chocv2のキーキャップは自社製のようです。
takashicompany
takashicompanyさんの展示。キースイッチが出てくるガチャガチャが!こういう趣向も面白いですね。
ai03
ai03さんの展示 photon
以前天キー参加したときがお披露目で触った記憶ですが、無駄な響きがなくほんとに素晴らしいです。送料高く予約しなかったのですが、いつか手に入れたいと思ってはいます。ぴろりどん
ぴろりどんさんの展示
とても美しい外見をしていました。追加のタクトスイッチ?マイクロスイッチ?の押し心地が良かったです。
奥のeditor50というキーボードはコンパクトながら多機能でイケメンでした。ちぃな
ちぃなさんの展示 Childhood’s End
ロウスタッガード+アリスの配列のようです。とても手の馴染みよく、いいなと感じました。デスクにとり奥行き方向は制約がないことが多いですからスペース的デメリットも少ないです。参考にさせていただきたく思います。
https://zenn.dev/cheena_gb/articles/5804348b47bc4aラッタッタ
ラッタッタさんの展示 tome2
無線分割でケースはアルミ削り出しです。このコンパクトさめちゃくちゃいい。アルミケースも無線もやったことないですが、このコンパクトさには惹かれ、自分も無線やりたくなってきます。On Any Banana Day
狭ピッチです。40%ですが配列は大西配列を想定しているよう。こちらもコンパクトMogma Products
Mogma Productsさんの展示。Dottie FlipFlowという折りたためるキーボードです。左右間どうつながっているんだろうと思いましたが、中をケーブルが通っているんですね。ぱっと見わからなくて疑問に思いました。とても丁寧に作られています。3dpパーツですごい滑らかなヒンジを作製されています
Pentronic Lab.
Pentronic Lab.産の展示。Taclick-TKLというタクトスイッチでできたキーボード。基板の密度がすごいです。はんだ付けがとても大変だ!アルミと木の削り出しケースがありました。木製は軽くてよいですね。
かよいじ
かよいじさんの展示。手配線の立体配列キーボードです。
こちらはコントローラーやハンドルのように握りこみ使用する形状。デスクの上にとらわれず膝の上などで使用できるそう。
こちらは手前に握りこむように入力できる行があります。どのようなキーを割り振っているのか聞いてみたところ記号等割り振っているそうで、横に伸ばさずにかつコンパクトな運指でデフォルトキーをカバーできるようにしており、その思想には共感できます。
トラックボールつき左手デバイス
すみませんどなたの作品かわかりませんでしたがcad等で使用できる左手デバイスです。これ使いこなしたらアプリケーション入力これ一つで完結できそうなポテンシャルがありそうです。
dotting dots
dotting dotsさんの展示。非常に美しいデザインの作品で意匠が凝っています。様々なエンコーダを置いてあり、それぞれの特徴などお聞きし勉強になりました。
いと
いと産の展示。VRHMDのコントローラーのようなタイプのキーボードです。例えばディスプレイ搭載ゴーグル等用いて机に向かわずにPC作業が完結できるような夢のあるデバイスです。試作段階とのことでしたが指周りの馴染みはよかったです。左右の手での複合操作で文字入力を行う想定で、慣れが必要そうです。
パレットシステム よっぴ
パレットシステム よっぴさんの展示。赤外線通信のキーボード。奥側にレシーバーがあります。露出している小さなicと赤外線のこの小さな基盤だけで制御できるそうで、キーボード側の点数がすごいコンパクトです。赤外線通信のお話も聞けて面白かったです。
kailhの超薄型スイッチのキーボードをさらに薄く仕上げるというめちゃくちゃ薄いキーボード。実際に見るととても驚きます。打鍵感も悪くなく、結構いい感じなのですが、国内取り扱いがなく入手性が厳しいようで、どうにかはやってほしいですね。
おわり
久しぶりにキーボードイベントに参加しましたが、とても面白く勉強になりました。トラックボール分割無線の流行がすごいですね。その次にローすたっガードのスタンダードなタイプのキーボード展示が多く、ここら辺が大勢なのかなという感じがしました。
ユニークな作品も見ることができて、とても刺激になりました。
企業はリベルタッチとzenaimが印象的でした。zenaimさんは直接お話うかがえることそうないと思うのでいい機会でした。
天キー全体でいうと、めちゃくちゃ人多かったです。会場内を順繰りに見ようということができず、練り歩きながら隙間を覗くような感じでしたので、全部見たつもりではいますが見逃している展示もあったかもしれません。
半分抽選目当てで参加しているのですが今回は当たりませんでした残念!天キーは最終的にこぼれるとはいえチケット競争は起きないしキーボード好きだぜって人は積極的に参加するといいと思います。抽選でなんか当たるかもだし。作家さんや企業の方とゆっくりお話しする機会って他にないですしね。
-
オーディオ周り整えたい
最近数日3DP使ってイヤホンの収納形にしてみたりなど。それを実用しようというのでもなくオーディオ周りのアイデアだしという感じです。机の上イヤホンとかとか散らかっちゃっているので、、
イヤホン収納の要件というのは考え始めると頭が痛いのです。収納というからには少なくとも所有している一般的なモデルには対応できなければならないわけで大きいものに合わせねばなりません。斜めに置かないことを考えると厚み3cmは最低必要なのですよね。中華IEMイヤホンってでかい。そのほか個人的な要望を言うと、ケーブルの巻癖は好ましくないのであまり小さく巻きたくなかったり。これは長期保管用には関係ないですが→そういうので本当はゆったりとしながらも効率の良い収納をしたくはありますが、まあなかなかないですよね。
ケーブルの耳掛けガイドの部分もあるので、筐体+そのガイド部分の面積は最低でも取りますしね。イヤホンのディスプレイは考えてもありかもしれませんが飾る趣味はないので何とも。
こういうフィギュアスタンドかって、上にアンプを置いて下に複数メインイヤホンおいておこうかなと今考えていますamazonでぽちりました。そのイヤホン入れておくトレイはとりあえず山崎実業のやつが目に入ったので買ってみました。どうかな
環境整えるにあたって、割と3,5mmの延長ケーブル噛ますのはありだと思っている人間なのですが、延長ケーブルっていい感じのがなかなか打っていないのですよね。長すぎたり終売していたり。以前はオーテクのat645lの50cmを使っていたのですが気づいたら終売していました。複数個確保しておけばよかった。そのほか、50cmのものはなかなかありません。基本的に1mから。
後はプラグジャックがでかかったり、ナイロン巻きで取り回し最悪だったり、、、まあ需要がないのでしょうね。オーディオ的にも接点が増えるうんぬんかんぬんであまりこだわる人には売れないでしょうし、こだわらない人もこだわらないので延長ケーブルなど買わないわけです。知らんけど。何やらグレードが下がりそうですがオーテクのat3a45at 50cmと、どんなもんかエレコムのEHP-35ELS10 1mを買ってみました。まずジャックがこのサイズのものでないと取り回し悪いですよね。
オーディオ環境いい加減エンドゲームしたいなあ。
-
分割キーボード発注、松屋のすすめ
土日は分割キーボードデザインして発注したぐらい。そもそも活動していた時間が少なかった、体が弱っている。土日何もできず平日仕事なのだから人生絶望しかない。
二十代後半に入ってから衰えるとはこういうことかと実感し続けている。運動でもすればいいのだろうが私のようなよくできていない人間には難しい。
最近の松屋は牛丼小のつゆだくに生卵と納豆が個人的おすすめです。納豆食って卵かけご飯牛乗せにたっぷり七見かけて召し上がります。小なのは、二十代後半入ってから、食べるだけで体重増えるからです。
おそろしい。老化すると、一日これ+朝昼用菓子パン一袋でも体重が増えていく。運動する体力も気力もない。まだ二十代半ばになっていない人は今のうちに好きなだけ食べておこうという話である。分割キーボードも発注まで済ませました。結局スペースなくてトップとボトムプレートをスペーサはさんでねじ止めする感じに。間違いはないはずだけど動くといいですね。jlcがpcba正月で止まっているのでpoker互換より先にこっち出てくるかもしれん。
これでとりあえずエンドゲームではないですが、可もなく不可もなく使える環境ができるはず。3-4年自キ続けた結果、非常に特徴にかけるものを作るという。このKHシリーズというやつのコンセプトはコスト、妥協、汎用性ですね。色々な意味でのコストを削減するために妥協に妥協を重ねて汎用性を手に入れたデザインです。面白さや僕の考える最強のキーボード要素は皆無です。マイナスな部分もなければプラスの部分もない0点を目指したキーボード。
とりあえずこれらを使えば耐えられるので、これでこんなもんかと終わりにしてもいいしきもいものをゆっくり使ってもいいわけですね。キモイ物は特化型で、どうしても人によってはマイナス要素の方が大きくなったりその逆で激嵌まりしたりですからね。実際そのせいでansiもjisも他作キーボードもスポっと嵌まらなかったわけですし。まあこのKHシリーズも嵌まるものではなくフツウなものなわけですが。いったんこれでしばらくキーボードは作らないはず。ゲーミングは作りたいけど正味ゲームをほぼほぼできていないのであんまモチベがない、ですがゲームするときはちゃんとnitingale使っているので、新作とりかかる意義はちゃんとある。
ここも多少仕様変更しようと思っていて、キー数もりもりでなんでも対応できるにしようとしていたし造形していたのですけど、横幅コンパクトの方が重要かなとか最近は思っとります。 -
分割キボ、zowie新作気になる
今日に限った話ではないけど最近風が強くてああ2月型の気候だななどと感じます。どうせ家と会社行き来するだけの生活でしかないのですけどね。
zowieの新作マウスパッドが発表されました。
BenQ ZOWIE ゲーミングマウスパッド新製品 「G-SR-SE ROUGE II」「H-SR-SE ROUGE II」「G-SR III」「H-SR III」 2月6日(木)にBenQダイレクトオンラインショップにて発売 | ZOWIE Japansqサイズのサイズ展開と裏面に滑り止めを張り付けた変更点のgsr3とgsrse2のようで。一応聞いてみようと思いますが、布とスポンジに変更がないなら性能的には据え置きというわけですがどうでしょうか。
使ってみないことにはわかりませんが滑り止めが改善点であるならば、ですが、gsrsse2は値段据え置きの6000円なのでお得感があります。gsr3は1000円値上げしての6000円なので滑りが変わらないのなら旧版のgsr2を買う方が安くてよさそうですよね。この値上げは為替とか要因でしょうか。gsrseはbiを所有していますが、gsrは数年前に買ったっきりで2は持っていないので買おうかな、、
個人的には好みとか強さとかとは別として、マウスパッドとして比較的まともなのはzowieだけだと思っているので、滑り止めの変更はよいほうに働くのか気になりますね。柔らかいTRモデルは悪いほうにしか働かない気がしていますが、分割キーボード、構成は特に何もないので雑検討はじめました。
xiao rp2040とicジャックとキースイッチだけなので何もない。でもまあ、この程度だと手配線する方がはるかに速いんだよな。それはそれでちょっと考えているのがあるのでそのうちやる気が出たら、、
回路図片手分しかないように、左右共通基板にしてみようかなと思っています。ネットリスト取り込んで適当に置いてみるまでですが穴だらけですな。左右共通にするからもっと穴増えます。置く場所がなくて、xiaoとジャックはここら辺に置かざるをえなさそうです。
mx&chocv2の左右共通ようフットプリントが見つからなかったので作らないといけない。ひっくり返し他のコピペするだけですけど。何気にこの手の基板を起こすのは初めてかもしれない。週末で終わらせて試作入れたい。choc v2も使えるようにしたいわけですけど、choc v2事情を全然知らないんですよね。なんか色々出ているらしいというのは小耳にはさんでいましたが、使う予定がなかったので、、
調べてみるとアケコン用とかで色々出ているのですかね。choc v2とか一生不遇だと思っていましたが、思わぬところで爆発的に?需要が色々あるんですね。アケコン界隈も全く知らないので何とも。snsやgoogleで調べてもあまりまとめ情報がなかったのですが、daihukuさんが動画で解説なされていました。なるほど。アリのchocfoxストアでdeepsea白スイッチを購入してみました。固定ピン、形骸化しているんですね
これ以外にもスイッチ種類あるのかな?わからぬ
ロープロは昔はk3を好んでいましたが結局キーキャップがなくて生き残れなかったという感じです。今のようにスイッチが色々あってロープロ自体が盛り上がっていたら話は違うかもしれませんが
それでもハウジングの形状的に薄くトップ面積が小さいキーキャップ難しいですものね。トップ面が広いキーキャップ誤打が増えて苦手です。。。
手配線で極限まで薄くすると市販のロープロとmxキーボードの高さ同じぐらいなんですよね。そういう点で、手配線はやはり強みがあると思います。打鍵感とか音とか言い出すと話は難しいですがロープロとmxとで2台分割組んで使い比べたいなと思います。親指キーだけchocにできますが直付けでリカバリーが難しいので悩みます。チルトテントすることを考えると親指キーは低いほうが得とは思うのですが。
-
分割キーボード検討
数年前も同ドメインで日記付けていたけど広い期間での最近、twitterがほんとにくそなので検討した結果カスタム投稿でいいかというあれ。
さてとりあえず文字打ち用のキーボードは、とりあえず何の面白みもない、比較的誰でも使えて迷わないくそつまらん無味キーボードを作ろうというので最近動いているわけです。でpoker互換のdz60配列とは違った矢印込み配列を作って改善版はもう製造してもらっているところです。それを自宅サブと会社用にする予定。
(会社でも使えるというのはとても難しい意味を持ちます。自キとしての使いやすさを持ちながら、会社の人が触って迷わず使用できなければなりませぬぬ。)
で次は自宅用メインのものを作りたいわけですが、最近は格子配列ベースのキーボードをいくつか作って(精神的時間的余裕なくてブログにはまとめていない)(どうせいつものrp2040直付けなのだからまとめても意味はない)使って色々フィードバックしていました。で結局分割40%がよくて画像のようなのをつくろうかと。配列的にはまあ3年前に作ったのリバイバルで、昔からこのノリがすきなのであるよ。
簡単に解説すると、ベースは4×6格子分割。ずれているのでカラムスタガなのですが思想的には格子が近いです。小指は格子使っているとどうしても位置が高いので0.25下げました。カラムスタガは素晴らしいですが今回採用しないのは2点あって、
・内側列を下げると、運指効率が下がる。例えばeを打った後にbを打つことを考えると、カラムスタガだと前後の距離がカラムスタガ度合いが高いほど離れていって微妙なのですよね。逆にc→tの順だと高速化するわけですが、すべてのキーを満遍なく使うと仮定すると(そんなことはないが)格子が最も運指効率というか次の動作に対するコストが安定すると思っている。偏ってキーは打鍵されるのでそんなことはないしであれば論理配列を変更代ではある。
・ラフに使う、例えば片手の人差し指でポチポチ触ることがあると考えると、格子やロウスタガが扱いやすい。これはansiが標準という慣れはあるにせよ、カラムスタガは非常にキーを探しづらく押しにくい。そういった点で汎用性がないのだ。
安定してホームポジションを維持できるときカラムスタガが最強であることは疑う余地もない、がというのが汎用性重視である。ほか、汎用性xエルゴノミクス()的な観点からチルトテントは無段階調整ができた方がよく、様々な構造案があるものの、(無限語り割愛)まあいいやという感じで今回はfr4プレートでテントしてゴム足でチルトするような角度固定の単純なのでいいかという感じ。
こうやってどんどん実用性度外視で面白いことをやる精神が薄れていくんだね。アイデアだけはあるし、しょうもなくてもそれでいいはずなんだけど、行ってしまえば精神的にも物理的にも参っていて限界だから余裕がないbotになる、、、poker互換ははんだ付け不要(オプションあり)の買ってすぐ使える仕様にしたけど、これはpwbのみchocv2とmx両対応のサンドイッチでいいかな。マイコンもrp2040 zeroとかxiaoとかで。両対応のプレートをアクリル3mm+2mmでロープロ組の時は3mmを不使用にすればいいかなと思っていたが、例えば親指だけchocにするかもしれないなとちょっと思ったのですよ。するとプレートは切り離せないといけないので、fr4かなあ。スカスカサンドイッチです。
シリコンフォームとか型作って簡単に製造できるのだけどめんどくさいよね。という感じでやる気出たときに作りたいね
作るのはこの説明投げれば誰でも設計できる簡単さなので難しいことはないのですけど、本当に元気と時間がないわね、、、金もないわね、、、試作してブラッシュアップしてしたら一瞬で数万消えてしまう。