hyousi

  • Home
  • 一覧
  • 雑記
  • [自キ]FloppyKBD:00 左手でカーソル操作を意識したマクロパッドを作る

    初めて基板を設計し、PCBを用いた自作キーボードを作ってみました。

    自作キーボード設計の練習として、ふつうカーソルキーは右側にありますが、マウスやテンキー操作と合わせて左手で行いたいと思いましたのでそのようなマクロパッドを制作しました。

    参照

    概要

    いままでいまいちやる気が出なかったため基板を起こしてこなかったのですが、ホイール実装するときに基板だと固定が楽ちんなのでこの機に基板を起こしてみることにしました。

    先人方のおかげで環境整備が整っており、素人でも難しいことを考えずに基板を設計から発注まで行うことができました。

    foostanさんの自作キーボード設計入門を参考にというかまんま進めて自作キーボードにおけるkidadの操作を学習しました。

    最初なので10cm x 10cmの基板サイズで制作を行うことにしました。どうせなら実用的なものが作りたいため、今回は一般的なキーボードでは右側についているカーソルキーを左手で操作することを想定したマクロパッドを作ってみました。

    ケースはアクリルやFR4サンドイッチ等がありますが3DPが手元にあることや雑にねじ止めすることがあまり好ましくないこと、基板設計の練習が主題であることなどから簡単に3Dモデリングを行いFDMでシンプルなワンピースケースを印刷することにしました。

    基板設計をスムーズに行うことができ、シンプルな構造のカーソルキーマクロパッドを制作することができました。

    キー配列

    便利なツールが充実しているので普通なキーボードを制作する分には自分で図面を引くことは必要ないようです。便利ですね。

    まずはキー配列を決定します。

    Keyboard Layout Editor (keyboard-layout-editor.com)を用いてポチポチしながらいい感じの配置を探り以下のような配列に決定しました。

    上側にカーソルキーを配置し、その他多用するキーなどを割り振ろうと考えました。

    やや斜めに配置し指を自然に起きやすくするよう工夫をしました。

    キーレイアウトが決定したらjsonデータを取得し、ai03 Plate Generatorを使用することでプレートデータをダウンロードすることができます。

    キーピッチ、プレート寸法を指定できます。今回は19mピッチ、プレートは14.2mm幅を指定しダウンロードしました。

    このデータを用いてkicadでのフットプリントの配置とプレートデータの作成を行います。

    KLEとai03plategeneratorを用いることで簡単にdxfデータを作成することができました。

    KLEを操作しながら配列を決定する場合はこの流れが一番楽そうです。

    基板

    基板の設計はKicadでfoostanさんの自作キーボード設計入門を参照しながら行いました。

    従いながら行うことで詰まることなく設計を行うことができました。

    一度完成した後には、kicadの大まかな理解をすることができていて二度目三度目からは自分の力で基本的な作業を行うことができるようになりました。とてもよい本だと思いました。

    回路図です

    pcbエディターです

    キー数が少なく面積的にも余裕ある配置なためサクサクと行うことができました。生成したdxfファイルをインポートしピッチをキーピッチ/4とかにすることで最初の配置も簡単に行えます。

    チェックを通してパスしたらガーバーとドリルファイルを吐き出し発注を行います。

    今回はPCB Prototype & PCB Fabrication Manufacturer – JLCPCBにて発注を行いました。安く届くのも早かったのでまあ良いのではないでしょうか。

    ケース

    ケースはFDMで出力するという点からも、サポート材を取り出しやすい形状である必要があり、シンプルなものを作ろうと考えました。

    トッププレートとボトムプレートが一体型のワンピースケースで基板を挿入するだけというのがシンプルだし組み立ても楽でよいと思い方針を立てました。

    挿入面は基板がむき出しとなりますが、細かいところをこだわることは目的ではないのでまあいいかなという感じ。

    作りたくなったら基板共通で作り直せばいいといえばそうですし。

    先ほど出力したdxfをインポートしFusion360でスイッチの位置と基板外形をスケッチし、それらを押し出して切り抜いてで3dモデルを作りました。

    3dモデルとはいうものの平面の押出のみで楽でした。

    基板挿入面が突き抜けているため、見栄え等悪くなりますがサポート材をスイッチプレート部分のみで印刷できます。

    基板外周にporonシートを張り付け、キースイッチを差し込んだ時にちょうど良い高さになってくれるようにしました。

    基板をねじ止めしていませんが、キースイッチの足がねじ代わりにケースに固定してくれます。

    ファームウェア

    config.h

    使用ピンです

    #pragma once
    
    #include "config_common.h"
    
    /* USB Device descriptor parameter */
    #define VENDOR_ID 0x0121
    #define PRODUCT_ID 0x0008
    #define DEVICE_VER 0x0001
    #define MANUFACTURER Tsuiha
    #define PRODUCT fd00
    
    /* key matrix size */
    #define MATRIX_ROWS 4
    #define MATRIX_COLS 4
    #define MATRIX_ROW_PINS { B5, B4, E6, D7 }
    #define MATRIX_COL_PINS { B6, B2, B3, B1 }
    #define UNUSED_PINS
    #define DIODE_DIRECTION ROW2COL
    
    /* Set 0 if debouncing isn't needed */
    #define DEBOUNCE 5

    info.json

    最近qmk入れなおしたんですがinfo.jsonがないとhexを吐けなくなったようです。初めて書きました。

    {
        "keyboard_name": "FD00",
        "url": "https://github.com/Tsuiha",
        "maintainer": "Tsuiha",
        "layouts": {
            "LAYOUT": {
                "layout": [
                    {"label":"K01", "x":1, "y":0},
                    {"label":"K02", "x":2, "y":0},
                    {"label":"K03", "x":3, "y":0},
    				
                    {"label":"K11", "x":1, "y":1},
                    {"label":"K12", "x":2, "y":1},
                    {"label":"K13", "x":3, "y":1},
    				
                    {"label":"K20", "x":0, "y":2},
                    {"label":"K21", "x":1, "y":2},
                    {"label":"K22", "x":2, "y":2},
                    {"label":"K23", "x":3, "y":2},
    				
    		{"label":"K30", "x":0, "y":3},
                    {"label":"K31", "x":1, "y":3},
                    {"label":"K32", "x":2, "y":3},
                    {"label":"K33", "x":3, "y":3},
                ]
            }
        }
    }

    keymaps\via\rule.mk

    via対応するにはこの一文が必要らしい

    VIA_ENABLE = yes

    info_via.json

    via対応用のjsonが必要なようです。初めて書きました。

    hex吐くのには使わないぽい

      {
        "name": "fd00",
        "vendorId": "0x0121",
        "productId": "0x0008",
        "lighting": "qmk_rgblight",
        "matrix": { "rows": 4, "cols": 4 },
        "layouts": {
          "keymap": [
      [    {      "y": 0.25,      "x": 1.5    },    "0,1"  ],
      [    {      "y": -0.75,      "x": 2.5    },    "0,2"  ],
      [    {      "y": -0.75,      "x": 3.5    },    "0,3"  ],
      [    {      "y": -0.5,      "x": 1.5    },    "1,1"  ],
      [    {      "y": -0.75,      "x": 2.5    },    "1,2"  ],
      [    {      "y": -0.75,      "x": 3.5    },    "1,3"  ],
      [    {      "y": -0.5,      "x": 0.5    },    "2,0"  ],
      [    {      "y": -0.75,      "x": 1.5    },    "2,1"  ],
      [    {      "y": -0.75,      "x": 2.5    },    "2,2",    "2,3"  ],
      [    {      "y": -0.25,      "x": 0.5    },    "3,0"  ],
      [    {      "y": -0.75,      "x": 1.5    },    "3,1"  ],
      [    {      "y": -0.75,      "x": 2.5    },    "3,2",    "3,3"  ]
            ]
          
        }
        }

    via用jsonの書き方が調べても大して出てこずremapってどうやてっ対応するんだって感じでしたが公式ドキュメントがちゃんとありました。なぜかなかなかたどり着けなかった。

    Required Properties | VIA (caniusevia.com)

    remap対応したので簡単にキーマップの変更ができるようになりました

    fd00 – Remap (remap-keys.app)

    組み立て

    組み立てに必要なものは

    • 基板
    • smd ダイオード1N4148W x14
    • MX用PCBソケット x14
    • promicro
    • リセットスイッチ(ピンセットでもいい)
    • ポロンシート 1cm x 10cm程度 x2
    • ケース
    • ゴム足等滑り止め要素
    • MXキースイッチ x14
    • MXキーキャップ x14

    ただキースイッチが14個ついているだけの簡単な構成なので一度でも何かしらの自作キーボードキットを組み立てた方がある方ならビルドガイド不要で組み立てられる内容です。

    スルーホール部品は表面からはんだ付けし表面実装部品は裏面ではんだ付けします。


    組み立てる前に最初にファームウェアを焼いて動作確認したらベストなのかもしれない。

    Keyboard/FloppyKBD/FD00/firmware at main · Tsuiha/Keyboard (github.com)

    remap対応しました

    fd00 – Remap (remap-keys.app)


    基板が届きました。おー

    ダイオードの実装は片方のパッドに予備はんだをして行います。

    予備はんだを溶かしながらピンセットでダイオードをパッドに置きはんだをなじませます。

    もう片方が浮かないように気を付けます。

    もう片方のパッドもはんだ付けします。

    同じ要領でpcbソケットもはんだづけします

    これで表面実装部品のはんだ付けは終わりです。

    スルーホール部品をはんだ付けしていきます。

    promicroにピンヘッダをはんだ付けします。

    この向きでピンヘッダを差し込みます。傾かないようにやります。

    promicroを裏面から差し込みマスキングテープ等で固定します。

    ニッパで飛び出る分のピン先をカットします。

    はんだ付けします。

    必要があればリセットスイッチをはんだ付けします。

    タクタイルスイッチ – 2pin 3.5x6x4.3mm – 遊舎工房ショップ (yushakobo.jp)

    これを使用します。

    はんだづけおわりです。フラックスクリーナーで汚れを落とします。

    ポロンシートをカットして裏面両端に貼り付けます。

    ケースに基板を差し込みます

    スイッチをはめていきます。ねじ止めしていないため基板とスイッチ穴の位置とを合わせる必要があります。

    なんとなく位置を合わせてから差し込んでいきます。

    スイッチをはめました。

    ゴム足を貼って完成です。いい感じですね。薄くグリップ力もあり自由度が高いことから今回スーパーXを滑り止めとして採用しました

    いいね!

    JLCPCBでレジンケースを注文してみました。FDMよりも見た目がぐっといいですね。

    1mm厚の10x10cm金属板を挿入しウェイトとする計画でしたがはみ出してしまいました。

    はみ出してますがとりあえず重さが出ていい感じ

    おわり

    キーボードの基板設計を学ぶことができました。

    おっくうで基板設計を後回しにしていましたがこれからは基板での自作キーボードを作っていけますな。

    Keyboard/FloppyKBD/FD00 at main · Tsuiha/Keyboard (github.com)


  • [自キ] えむごっち & panda_micro でキーボードを無線化し椅子キー環境を試作してみた

    この記事ではえむごっちを使用して既存のpromicro対応キーボードを無線化した例を紹介します。

    またその無線化したキーボードを用いて椅子キー環境を作ってみました。

    はじめ

    えむごっちによるキーボードの無線化、3dpによるアームアームレストの設計によって、椅子キーでデスク天板の状況や椅子の位置によらず快適にキーボード入力を行うことができるようになりました。

    デスク上が片付く、キーボードを動かさずとも常にいい位置で打鍵することができる、と椅子キーは椅子がごつくなることと引き換えに便利さを手に入れることができると感じました。

    またえむごっちによってファームウェアを自分で作ることなく簡単にキーボードの設定を行うことができました。

    新しくキーボードを設計する際、その制御方法の新しい選択肢にすることもできると思います。その雛形のようなキーボードも公開されています。

    palette-system/ortho36_panda: ortho36_panda (github.com)

    自作キーボードの難点として増殖していきいくつもキーボードがpcに接続されてしまうということがあるのでその点を解消できてとてもスマートに思います(なんなら無線だし)

    要素

    えむごっち・panda_micro

    「えむごっち」とはパレットシステム よっぴ(@4py1)さんがパレットシステムにて頒布しているM5StackCore2を用いたBluetoothな自作キーボードです。

    az-m5ortho/docs/azemugotch at main · palette-system/az-m5ortho (github.com)

    boothにてキットを購入することができます。

    えむごっちV2 – パレットシステム – BOOTH

    TRRSジャックを用いてI2C通信が可能で対応デバイスを接続し合体させることができます。

    他にもいろいろ機能があるので公式を覗いてください。


    「panda_micro」とは上記I2C通信を行えるI/Oエキスパンダを搭載したpromicro互換のピン配置をしたボードです。

    簡単に言うと自作キーボードのpromicroをpanda_microに置き換え、えむごっちに繋ぐだけで無線化できるというものです。

    TRRSケーブルで接続を行いますが、導通していればI2C通信を行うことができるため1:1通信でなく1:多通信が可能でパンダマイクロ化したキーボードを複数数珠つなぎにして使用することができます。(今回もえむごっちー左手ー右手と連続してつなげている)

    複数繋いだ際パンダマイクロの個体はアドレスによって識別されるため異なるアドレスにジャンパする必要があります。

    こちらもboothにて購入することができますので詳しいことは参照してください。

    panda_micro – パレットシステム – BOOTH

    なぜえむごっちを試したのか

    複数の自作キーボードを複数のUSBケーブルで接続することに不快感を覚えていましたUSB足りない。だったら一体型のでかいキーボードにまとめればいいじゃんそれはそうではありますが。

    最初に自作キーボードについてI2C通信について知ったときに、じゃあそれでステーションに対してぶすぶす刺してキーボード左右分割みたいに3つ4つのキーボードにつなげばいいじゃんと安直に思いましたが、いろいろと厄介そうで断念しました。

    というかmoduloというそういうモノが昔にあったようです。

    じゃあ同じことするならステーションにUSBハブ仕込めば簡単じゃんとも思いましたが、当時小型化を方向性としていたり一体型でなく分割型が良かったのでそのまま放置されています。

    えむごっちはそういうことを用意されている設定編集ツールAZTOOLを用いて簡単に行うことができるのが魅力に感じました。(私の掛けるコストがない)

    あと簡単に無線化できるというのが椅子キーとあっていました。

    椅子キーをどうするかを考えていたため、ここが決め手になりました。

    今回えむごっちを使用しましたが、AZ-COREという同様にI2C接続可能な小型のものもあります。

    椅子キー

    自作キーボード界隈を見ていて「椅子キー」というものを知りました。

    椅子キー 等で検索してみるといろいろ作例を見ることができます。

    キーボードをデスク天板上に置くのではなく椅子に固定してしまうというもので、デスク天板の位置にかかわらず椅子に座っていればいつでもどこでも快適にキーボード入力が可能になります。


    椅子キー環境にしようとするのには人それぞれに理由があると思います。

    私の場合理想のデスクを求めた際に、どうしてもゲーム用のデバイス群とpc作業用の入力用キーボードをそれぞれ動かさずに同時に実現することが不可能に思えたからです。

    ゲームプレイ時とPC作業時とでキーボードの位置を置きなおすという人は少なくないと思います。またマウスはデスク上を大きく動かすため中央にキーボードを置くと邪魔になります。というか作業時マウスは分割型キボの間に置きたいです。

    実現できそうな案としては手前側にキーボードが埋め込めるだけの溝を用意し、天板とキートップが同じ高さになるようにすることで、マウスを振っても腕がキーボード上を通り干渉しないというような案がありましたが奥行きの問題で没になりました。

    なので安直に考えるとゲーム用デスクと作業用デスクを分けて2デスク環境にするしかないというような状況でした。

    そこで条件を満たす案として椅子キーが選択肢として挙がり、椅子キーにすることを前提として現在のデスクを自作しました。

    なので椅子キ環境あるいはそれに近い環境を、ゲーム時と作業時とで一切デバイスを移動せずに済む環境を実現する必要があります。

    というわけで今回はえむごっちを用いて椅子キー環境を試作してみました。

    椅子キ環境を試作する

    えむごっちを作る

    えむごっちベースセットとM5StackCore2とキースイッチ、キーキャップを用意します。

    えむごっち作成マニュアルの手順に従って組み立てていきます

    アクリルプレートの紙を剥がし水で洗います。

    M5StackCore2の背面をばらしピンヘッダを刺します。基板へのピンヘッダのはんだ付けはM5StackCore2に刺して固定して行いました。

    部品をはんだ付けします。スイッチをはんだ付けするときにプレートを間に挟むのを忘れないようにします。

    部品は向きがあるので気を付けます。

    LEDは低温よりも320度でさっさとやるほうが個人的には簡単に感じます。毎度小手先をきれいにするのが大事な気がします。

    実装ができたらアクリルをねじ止めしていきます。

    組み立て手順書にも書いてありますが樹脂ねじはすぐもげるので指先で軽く締めるぐらいでちょうどいいと思います。

    組み立て終わったら付属のUSBケーブルでPCにつなぎえむごっちのインストールと設定を行います。

    初期設定手順書に従い行います。

    ドライバを入れファームウェアインストールページにてインストールを行います。

    書いてあるようにドライバが数種類あるためインストールがうまくいかないときは別のドライバを入れます。

    最初にCHとCPの3つとも入れといてもいい気がします。私は3回入れて3回目が正解でした。

    おー

    wifi接続により設定を行うことができます。スマホから設定できるという機能で便利でした。

    PCから行う場合LANケーブルを抜くかデバイスマネージャで一時的に無効化します。wifiできないので

    パンダマイクロでI2C通信化

    パンダマイクロを用いて今回は椅子キとしてかわいい🐰ちゃん【公式】(@illness072)さんproject-mammoth(手配線)を用いて行います。

    参考:[自キ]project-mammothを手配線で作ってみた

    project-mammothパームレスト内のパンダマイクロからTRRSケーブルを引き出さなくてはならないためgithubから3Dデータをダウンロードしてきてケースデータを加工します。

    穴開けるだけなのであとでドリルで穴開けるのでもよいと思います。

    できました。

    TRRSケーブルを作る

    やすり掛けないとはんだのらない

    気を付けてたのにプラグカバー入れるの忘れました。

    テスターで同じ部分がそれぞれ導通しているかしっかりと確認します。

    続いてパンダマイクロを手配線仕様に、12pin・4pin 2.54xhコネクタをはんだ付けします。

    アドレスを指定するためにジャンパします。

    続いてxhオスーTRRSメスアダプタを作ります。追加できるように2口で作ります

    TRRSソケットの同じ番号ピンをはんだ付けしxh圧着端子を付けます。

    高品質のゴールドメッキイヤホン3.5mm,4個,ヘッドホン,ソケット4極,オス,ステレオジャック,ネジナット付きコネクタPJ 3992|コネクタ| – AliExpress

    この形状のTRRSソケットはねじ止めが不要なので3dpケースには最適だと感じます。(ねじ止めしているようなものではありますが)

    パンダマイクロのTRRSのピンがどうなっているのかboothかgithubのデータを確認しながら同じピン配列になるようにコネクタにコンタクトを刺していきます。

    しっかり同じピン同士で導通しているか確認します。

    初めからついているTRRSソケットと追加したソケットとにケーブルを刺しテスタでしっかり確認します。

    mammothとの接続

    パームレストを交換するのでばらします。

    ケースとパームレスト間をワイヤでなくフラットケーブル等で接続するのがスマートだと思いますが今回はそこは重要でないのでそのままやります。

    コネクタを接続しTRRSソケットをケースに差し込みねじ止めします。

    これでパンダに繋がれたマンモスが用意できました。

    パンダにつながれたマンモスをえむごっちにそれぞれTRRSケーブルでつないだのち、AZTOOLで設定を行います。

    まずKeyboard Layout Editor (keyboard-layout-editor.com)でレイアウトを作成しRaw dataをコピーします

    えむごっちに接続しI2CからIOエキスパンダの設定に移ります。

    今回両手分、二つのパンダマイクロ分登録を行いますが、その作業は片方ずつ行います。両手同時に行える感じですが入力動作が安定しませんでした。(環境依存かわからんけど)

    まあそれとは関係なく片手ずつのほうが設定自体サクサク進むのでそのほうが良いように思います。

    Raw dataを張り付けるとレイアウトが表示されます。おー

    IOエキスパンダを追加しポチポチしていくと設定が完了します。

    キー設定もGUIで簡単に行うことができます。おー

    これでマンモスのパンダを使ったえむごっち化が完了しました。

    椅子キ用アームレストを作る

    椅子にキーボードを装着できるようにしなくてはなりません。

    leap chairはアームレストの可動が売りなこともあって取り外すことができます。

    トップのクッションの部分を3Dパーツに置き換えることで実現することにします。

    今回は椅子キ環境の確認ということであまりこだわらずにシンプルなアーム構造にします。

    他の人に使いようがないですがデータは投げてあります。3DP/isuki_armarmrest at main · Tsuiha/3DP (github.com)

    でかいので試作するのも時間がかかって大変です。

    アームレストは前方が低くなるように傾斜を付けましたgood

    なんかアヒルみたい

    アームにキーボードを固定するためにボトムプレートに穴をあけてねじを刺します。

    アームレストにアームをはめ込み椅子、キーボード、アームそれぞれねじ止めしてひとまず形になりました。

    いい長さのねじなかったのでえむごっちのアクリルははがされています。

    おー

    アームなので使わないときは脇に寄せられるのがよいです。

    見てわかるようにナットはむき出しだし固定箇所少なくてあまり重さはかけられませんがそこは試作という感じ

    根元の部分もねじ止めする構造にするだけでかなり改善されそうです。

    キーボードが回転するのでアーム自体が1ピースでもいいかもしれません。

    ひとまずこの形で様子を見ながらよりよい形を探っていきたいと思います。

    おわり

    以上えむごっちとえむごっちを用いたパンダマンモス無線環境の構築、椅子キーへの適用でした。

    おわり


  • [自キ]project-mammothを手配線で作ってみた

    かわいい🐰ちゃん【公式】(@illness072)さん / Twitterさんの設計しているカラムスタッガードで分割な自作キーボード「project-mammoth」というキーボードのケースを3Dプリンタで出力し手配線で作りました。

    project-mammothの紹介と作った記録です。

    はじめ

    最近3Dプリンタを買いました。またelephant42というキーボードが特徴的な配列で試してみたいなと感じていました。

    そして同作者によって開発中のproject-mammothという同系統で新しいキーボードが発表されており、新しい方があるのだしせっかくだから新しいほうを作りたいじゃん。

    その時点ではproject-mammothは基板が公開されておらずまた部品の入手性が時勢柄悪いなどなどあり難しい点が。

    ケースの3Dデータは既に暫定版が公開されていたこと、ちょうど3Dプリンタを購入したことなどからhandwireで作りました

    mammothは筐体がシンプルで最低限のパーツ数、組み立てもパーツをはめるだけととても作りやすいキーボードだと感じました。

    これぞカラムスタッガードという配列で手に合わせられたキーボード。また専用のパームレストがあり手とキートップがノートパソコンのような高さ関係で打鍵しやすいです。

    キースイッチ以外の部分をパームレストに搭載していることでケース部分がとてもスマートで美しい。

    腕を内側にやや回転させるパームレストは今まで使ったことのないものでおもしろく、このテント機能willow配列が相まって、運指をとてもスムーズにサポートされ指の動きを邪魔されることなく打鍵することができます。この2つの要素による恩恵がとても面白く、ぜひ体験していただきたいと思うキーボードです。

    project-mammothについて

    存じていない人向けにキー配列・筐体について簡単に説明します。

    elephant42(GitHub – illness072/elephant42: hardware of elephant42 keyboard)という、かわいい🐰ちゃん【公式】(@illness072)さん / Twitterが設計したカラムスタッガードで分割なキーボードがあります。

    mammoth42(GitHub – illness072/project-mammoth)は🐰さんが新しく設計した同様にカラムスタッガードで分割な要素を持ったキーボードでelefpant42の進化版といえるかもしれません。

    project-mammothはキーレイアウトが公開されています

    かわいい🐰ちゃん【公式】さんはTwitterを使っています: 「レイアウトデータは!!! 自分で作って!!! 自分にあわせてカスタマイズするんだぜ!!!!!! https://t.co/1I2MsbzKfu」 / Twitter

    elephant42にHanachi(@haswellep)さん / Twitterさんの考案したwillow配列を合わせた様な配列となっています。

    willow配列については自作キーボード Willow 64を作った話 – よくある、備忘録的なにか (hatenablog.com)で解説されています。

    またproject-mammothは既に形となっておりデータも公開されていますがまだ未完成でありアップデートされていくキーボードであると述べられています。

    無線化が行われたりと進行形でアップデートされ続けています。すげ。

    project-mammothの特徴としては3Dプリントケースを用いたねじレス筐体でありパームレスト一体型であることが挙げられます。

    右手内側から
    右手後ろ側から

    このようにパームレストが前後チルト(後ろが低く奥が高い)に加え、パームレストが逆テントされています。

    これは通常キースイッチ側をテントするキーボードが多いのに対してパームレスト側を逆テントさせることによってキーボード側が手を基底としてみたとき実質テントとなっています。

    このことは2Dな分割キーボード(親指キーとその他のキーが同一面上にあるタイプ)に足を生やしテントキーボード化した際に問題となる指の力が内側に向いてしまい力んでしまう点を解消しています。

    よってキー配置が平面的でありながらテントスタイルでの快適なタイピングを可能としています。

    作り方

    ※勝手に手配線で作ったものであり本家とは中身がすべて異なります

    project-mammothページから3Dモデルのデータをダウンロードしてきます。

    印刷します。

    ケースとパームレスト間をつなぐ部分はアルミパイプが使用されていますが今回はこの筒も適当な長さでモデリングし印刷しました。

    使用したプリンタはanycubic kobraです。そこそこ良い感じのクオリティでこなしてくれました

    キースイッチをはめます

    配線します。PLAは熱に弱いですがはんだごてで直接触らなきゃ大丈夫な感じでした。厚さは既に決められていたので手配線には余裕がありやりやすかったです。

    キースイッチ間はスズメッキ線とカプトンテープ、ETFE線を使用しました。

    ケースーパームレスト間はPVC線を使用しました。

    ケースに筒、パームレストを接続します

    配線をパームレスト側に送ります。

    2.54xhコンタクトを圧着します。

    [自キ]手配線で配列調整できるカラムスタッガードのキーボードFCS42Sを作ると同様にpromicroを設置します。

    fcs42sで使用していたものを流用してきましたSDGsですね。ファームウェアもほぼ流用したので制作に必要な作業はほぼ配線nのみでスムーズに作れました。

    ケースの裏面にカパッとはまります。

    パームレストの蓋もカパッとつけて完成です。

    ねじ止め等不要、組み立て作業は数か所はめるだけであっという間に完成しました。

    おわり

    今回手配線にて作りましたが、本家はスケスケだったり無線だったり完成度が高く強いこだわりがみられるのでぜひ本家を追ってください。

    3Dプリントでキーボードを作ることの幅の広さとかできることの多さに触れた気がします。

    あと今回の製作を通じてmanmothのスペルを覚えました。


  • [計算機]VALORANTの感度と視野角の仕様を調べてみた

    VALORANTの感度と視野角の仕様を調べてみました

    よく知られているものが正しいのでしょうが実際にどうなのか自分の目で確かめないと納得できません

    計算機

    電卓たたくのもめんどくさいので簡単に作ってみました。ぜひ使ってやってください

    ADS感度を調整する

    感度と振り向きを変換する

    各倍率の振り向きを出す

    検証

    一般に言われているfov103でスコープ倍率は1.15,1.25,1.5,2.5,3.5,5でads感度はmd100%であるというのが正しいのかを手を動かして検証します

    マウスカーソルを指定した量だけ動かすデバイスを作成しました。

    倍率ごとの360度に必要なマウス移動量と視野角分のマウス移動量を数えることで、各倍率での感度と視野角を求めることができます。

    やったことは単純でqmkでマウスカーソル動かす簡単なマクロ組みました

    keymap.cをこんな感じで。これ自体が目的ではないので適当です

    #include QMK_KEYBOARD_H
    
    #define BASE  0
    
    enum custom_keycodes {m1 = SAFE_RANGE, m2, m3,m4 };
    bool process_record_user(uint16_t keycode, keyrecord_t *record) {
    switch (keycode) {
    case m1:
    if (record->event.pressed) {
    register_code(KC_MS_RIGHT);
    unregister_code(KC_MS_RIGHT);
    } else {
    } break;
    
    static int i = 1;
    case m2:
    if (record->event.pressed) {
    	for (i=1; i<=10; i++){
    register_code(KC_MS_RIGHT);
    unregister_code(KC_MS_RIGHT);
    	}
    } else {
    } break;
    
    case m3:
    if (record->event.pressed) {
    	for (i=1; i<=100; i++){
    register_code(KC_MS_RIGHT);
    unregister_code(KC_MS_RIGHT);
    	}
    } else {
    } break;
    
    case m4:
    if (record->event.pressed) {
    	for (i=1; i<=1000; i++){
    register_code(KC_MS_RIGHT);
    unregister_code(KC_MS_RIGHT);
    	}
    } else {
    } break;
    
    } return true; };
    
    
    const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
      [0] = LAYOUT(
    	m1  , m2   , \
    	m3	, m4     \
      ),
    };

    な感じ

    結果

    結論としては知られている仕様と同じでした閉廷。

    スクショから腰だめ視野角は16:9fov103degで、スコープ倍率で割るとスコープ時の16:9視野角が出てきました。

    倍率16:9fov
    hipfire1倍103deg
    SMG,LMG1.15倍89.6deg
    AR1.25倍82.4deg
    ガーディアン1.5倍68.7deg
    オペレーター12.5倍41.2deg
    マーシャル3.5倍29.4deg
    オペレーター25倍20.6deg

    またどのスコープでも画面端までに必要なマウス移動量が一定であったためADS感度は採用MD100%でした

    単純に16:9スケールのfovの比によってADS感度が計算されています

    モニターディスタンスで感度を変換する FPSとFOV④

    例えば振り向きが10cmとしたら

    振り向き
    hipfire10cm
    SMG,LMG11.5cm
    AR11.25cm
    ガーディアン15cm
    オペレーター125cm
    マーシャル35cm
    オペレーター250cm

    となります。単純だ。

    よくみる感度計算サイトなんかを見てみると振り向きは6531.43/edpiで求まるらしいので簡単です

    あとはADS感度倍率の決定ですが先ほど言ったようにMD100%が基準でADS感度1です。

    スコープごとの感度はないためほかのMD%に合わせようとするとどれか一つのスコープ倍率のみにしか適用できません。

    まあよく使うスナイパーに合わせとけばいいんじゃね知らんけど

    以下の記事にあるモニターディスタンスで感度変換の二個目の計算機で計算できます。

    [計算機]モニターディスタンスで感度を変換-Sensitivity Converter by Monitordistance

    丸の部分は同じように記入します。

    ADSFOVは上の表にあるように103をスコープ倍率で割ったものを記入します。

    apexに合わせたいのならapexはmd0%ですから、モニターディスタンスに0.0001を入れて出てきた感度に、apexでのADS感度倍率をかけてやればよいです。

    この図であればapexでのads感度0.8にオペレーター2の感度を合わせたいときはこの0.723×0.8してやればよいということになります。

    また、振り向きを別のゲームからもしくは別のゲームへ移植するのは以下の計算機から行うことができます。

    [計算機]モニターディスタンスで感度を変換-Sensitivity Converter by Monitordistance (tsuiha.com)

    おわり

    おわり

    前の記事:FPSに適したマウスのDPI・自分好みなDPIの探し方

    次の記事:曲線をなぞるブラウザAimゲーム「Curves game」 の再配布


  • [マウス]取り回しのよいパラコードケーブルを作る

    ゲーミングマウスの純正ケーブルはFPSにおいて取り回しが悪いものも多いです

    我慢して使ったり高いマウスバンジー買ってみたりマウスを買い替えたり、不快さに対応する方向ではなくまずは不快さそのもの取り除くことを考えます

    不快だと感じるのならケーブル自体を取り換えてしまえという話でマウスのリケーブルって何?パラコードケーブルって何?という方向けの話題です

    市販品を購入するもよし自作するもよしです

    はじめ

    完成品を買いマウスを分解し交換するのはマウスメーカー自身が交換用ケーブルを販売していますし、ポピュラーなのではないでしょうか

    ケーブルの自作は自作というかワイヤーでコネクタとUSBをつなげるだけなので簡単に行うことができます

    柔らかさや軽さ、あるいはかっこよさを求めてマウスのケーブルを交換するのだ

    個人的に思うマウスのケーブル関連についてまとめておきます

    作り方

    パラコードを欲しい長さにカットし、中身を抜きます。

    ナイロン製の4mm径のものが安牌だと思います。

    シリコンケーブルを4本ほしい長さにカットします。

    パラコードの中を通しやすいように先端をまとめておきます。

    黒・緑・白・赤のカラーが一般的ですがテスターがあれば全部同じ色でもいいと思います。

    パラコードにワイヤーを通します。

    USB側を作っていきます。

    はんだ付けする前にチューブを通しておきます。

    ワイヤーの長さをそろえてカットします。

    ワイヤーストリッパーで切れ込みを入れ皮膜を剥きます

    切れ込みを入れるだけなので安いやつでも普通に使えます。

    ワイヤー先端とコネクタのパッドを予備はんだします。

    はんだごては温調機能付きのものとワイヤークリーナーがお勧めです。

    はんだ付けします。配列はググれば出てきますがこんな感じです。配列を間違えると動作しないだけでなく場合によっては故障につながることもあるので気を付けます。

    テスターで導通確認します。

    パラコードを手繰り寄せてきて接着剤で固めます。

    コネクタの外装をつけチューブを根元にはめ接着剤で接着します。

    収縮チューブを収縮させ接着しUSB側の完成です。

    マウス側を作っていきます

    ブッシュ用のチューブを通します。

    ZowieCのようなブッシュが好きな人はチューブをヒートガン等で熱を加えカーブさせケーブルが上に反るとよいと思います。

    ヒートガンはあると便利ですが電気もいらずに一瞬で高温になるライターは偉大だなとも感じます。たまに焦がしますが。

    ヒートガンは温調できるものが良いと思います。

    ブッシュ、Oリング、スミチューブを通しておきます、

    長さをそろえて皮膜を剥きます

    phコンタクトを圧着します。テスターで導通を確認します。

    安い圧着工具でもやれています。おそらく高いちゃんとした工具のほうがきれいに圧着できると思います。

    スミチューブを収縮させワイヤーをまとめます。

    Oリングにブッシュをはめ接着剤でパラコードに固定します。固まったら余分なパラコードをカットします。

    パラコードを手繰り寄せたりワイヤーを引っ張り出したりすれば長さ調節ができます。

    マウスのピン配列合わせてコンタクトをハウジングにつっこめば完成です。

    マウスケーブルの材料

    付属しているケーブル

    追加して材料を買わずとも元からついていたケーブルを流用することではんだ付けや圧着をすることなく作ることもできます。

    純正ケーブルのパラコードを剥き、シールド線等を手作業で除去することでその分柔らかいケーブルとすることができます。その後はパラコードに再度通すもよし編むもよしです。

    ワイヤー・ケーブル

    基本的に撚り線が用いられている。導線の太さ(awg、ID)、皮膜を含めた太さ(OD)、導線一本の本数と太さ(〇本/〇mm)の要素があり細く本数の多いものの方が柔らかそう。線材を選ぶ際は注目する。

    • オーディオリケーブル用ケーブル:様々な皮膜のものがある。中には合うものもあるのかもしれないが、柔軟さはあるものの重くもたつく印象のものが多い。あと高い。
    • シリコンワイヤー:安価で手に入りやすくそこそこ柔らかくよく使用されている印象
    • リッツ線:皮膜がないようなモノなため非常に軽くしなやかだが取り扱いがややめんどくさい。とても軽く細い。
    0.04 × 60 0.04 × 180 0.04 × 220 0.04 × 400 0.04 × 500 リッツ線ストランドエナメル銅ワイヤーストランドクリスタルマイクロ鉱山アンテナ 0.04 ミリメートル 0.04|Wires & Cables| – AliExpress
    • ポリエチレン皮膜線:芯があるタイプのワイヤー。載せたものはポリエチレン皮膜線のビニールケーブルでLogicoolGみたいなイメージのやつ。4つ編みにすると芯があり軽い螺旋状に浮かせるケーブルを作れます。

    パラコード

    パラコードと検索するとポリエステル、ポリプロピレン、ポリエチレン製が見つかりました

    それぞれ同じ長さで4本シリコンワイヤを通して比較してみました。商品は適当に選んだので正しい結果かどうかはまあ。

    ポリエステル
    ポリプロピレン
    ナイロン

    ポリエステル>ポリプロピレン>ナイロン ナイロンが軽いです

    表面の肌触りもナイロンが一番よさそう

    触れば一発ナイロンが柔らかいですが画像でうまく伝えるやり方がわからない。ピンと立てて離してみました

    • ポリエステル:立ったまま
    • ポリプロピレン:根元から倒れてます
    • ナイロン:先の方からぐにゃっと倒れてます

    ライターで炙るときもナイロンが一番やりやすい

    ナイロン一択です。後はナイロンの中でより柔らかい製品を探せばよいのではないでしょうか。

    コネクタ

    Aliexpressでとても安く売っていますが10個程度であれば送料含むと秋月電子の方が安上がり

    • USBコネクタ:PCとの接続
    ケーブル取付用USBコネクタ(Aタイプ オス): パーツ一般 秋月電子通商-電子部品・ネット通販 (akizukidenshi.com)
    • PHコネクタ:一般的に使われているマウスのコネクタ
    PHコネクタ コンタクト SPH-002T-P0.5L (10個入): パーツ一般 秋月電子通商-電子部品・ネット通販 (akizukidenshi.com)
    2mmピッチコネクタ ハウジング 5P SPH-5 (20個入): パーツ一般 秋月電子通商-電子部品・ネット通販 (akizukidenshi.com)
    • ZHコネクタ:PHコネクタより小さいタイプでkpuやviper等々一部マウスで使用されている

    ZHコネクタ ハウジング用コンタクト SZH-002T-P0.5 (10個入): パーツ一般 秋月電子通商-電子部品・ネット通販 (akizukidenshi.com)

    ZHコネクタ ハウジング 5P ZHR-5: パーツ一般 秋月電子通商-電子部品・ネット通販 (akizukidenshi.com)

    • USB type-C:ワイヤレスマウスの有線モデルのマウスなど
    USB2.0タイプcプラグ溶接タイプ両面diy

    ブッシュ

    ケーブルへの負荷軽減というよりはマウス本体にT字部分を固定するひっかけるという意味合いが強いように思う。その役目さえ果たせばなんでもいいようにも思える。


    収縮チューブ:硬いためガイドにはなるがしならないのでケーブルによくない

    樹脂チューブ:様々な素材のものがある。純正のブッシュのようにスリットを入れることでしなり具合を調整できる。

    Oリング:ケーブルにかかるテンションを和らげることはできないが簡単にマウスへの固定をすることができる。

    元マウスのブッシュ:裏面に切れ込みを入れ取り外し使いまわす。シェルにぴったり合っているため確実に流用できる。

    Zowie-bのもの

    市販のケーブルブッシュ:

    シリコングロメット-Aliexpress
    Tコネクタ4.6/5.2/6mm,10個,輪ゴム| | – AliExpress
    HID-Labs パラコード用ブッシング

    パラコードケーブル

    マウスに付属しているケーブルから硬さや重さの原因となっているものを取り除いたもので、パラコードの中を通信用のワイヤーだけが通っています。またその素材により柔らかいものを使用しているものが多いです。

    見た目はマウスに付属している疑似パラコードと一緒ですがシールド線が省かれている分柔らかさ軽さが改善しています。

    有名な製品としてhid-labsさんのsilkycableがあります。やや高く入手性が良くはないですが軽くとても柔らかいです。

    Silky Cable PHコネクタ仕様 | HID-Labs OnlineShop

    細くて柔らかくて軽くて耐久性もある程度もたせているようです

    値段は張りますが柔らかさを求めている人はsilkycableを使う他ないのではないでしょうか。市販のシリコンワイヤ―で自作したものの比ではないと感じました。

    画像ではパラケーブルの柔らかさは表現することができない難しいと感じますが一応載せておきます。触ったら一発でわかるすごさなので気になったら買ってみるか触らせてもらうのがいいと思います。

    四つ編みケーブル

    製品としてはphotoncableというものが販売されていたようです。

    イヤホンのケーブルなど4つ編みされたケーブルはマウス以外でもよく見かけます。

    純正ケーブルを流用して作成することもできます。

    こんな感じで編む。毎度編み方を忘れる。左右2本ずつに分け外を内に持ってきます。

    リッツケーブル

    皮膜がないので軽く柔らかくなるだろうという目論見の元リッツ線でケーブルを作ってみました。

    導線一本一本に皮膜があるために熱で皮膜を溶かす必要があります。強度に不安があったためコンタクト部分は今回pvc皮膜線に継ぎました。

    もっと賢いやり方ありそうですがそれは置いといて。とてつもなく軽く、細く、ふにゃふにゃとは違ったしなやかさを持つものが作れます。

    おわり

    作る人は勝手に作るし作らないで買う人は最初から作る気ないからあれですが。それでも読んで作るかという気になった人が一人でもいたとしたら冥利に尽きるわけです。

    ふにゃふにゃのケーブルはマウスで踏んでしまったり大きく振ったときにケーブルに振り回されたりであまり好きではありません。

    柔らかさよりも細さ、軽さに優れたものが使いやすいと感じています。根本的に他の快適なケーブルの形式がないかとも思います。

    よくあるマウスバンジーはハイセンシでのみ効果があると考えています。ただ錘にばねが生えたものではなくてケーブルは15~20cm程度浮かせたり上から垂らしたりするだけの方が快適なセットアップになると考えています。