キャラクター

キャラクター

Makai White Mage

Turing Hopper

Ramuh (Elemental)

このキャラクターとの関係はありません。

フォロー申請

このキャラクターをフォローするには本人の承認が必要です。
フォロー申請をしますか?

  • 8

左手デバイス(アナログスティック)作ってしまえ!【自作】その4 あなたも作ってみよう、作り方編

公開
■はじめに
この記事は、ご自分でも左手デバイスを作りたい人のための記事です。
あなたも、1つ自分用に作ってみませんか!

(より簡単に作りたい人のための記事も書きました、そこまで飛びたい人はここを参照↓)
【自作】その11 簡単に作れる作り方編
■G13の後継に使えるかも(アナログジョィステック)
■Windows標準ドライバで動く、追加ソフトいらず



■今回の作成の大きな流れ、方針
 左手デバイス化の実績のあるキーボードキットで、
 できるだけ難しいことは避けて、決め打ち構成で説明します。
 基本編と思っていったんはこれで作ってみてください。

 ●キーボードキット(ergo42)を組み立てる  要はんだづけ
 ●ソフトウェア環境(QMK-MSYS)のダウンロードとインストール
 ●ソフトウェアの書き換え(ジョィステック対応)
 ●ソフトウェアをergo42に書き込む
 ●電線でキーボードとジョィステックを繋げる
 ●台にキーボードとジョィステックを載せて固定
 ○キー割り当てを変えるときはソースを書き換える


■入手しておく材料・工具など
BitTradeOne製の「ergo42」のキーボードキット
 ergo42のキットはいろんなバリエーションのキットが販売されています。
 どのキットを入手しても素材として使えます。
 本来は左右分割キーボードなのですが、今回は左手側だけ使います。
 最初から左手用だけのキット「ergo42 Single Edition」がお安いので良いかも。
 

 なお両手用キットの右手部分の基板などは裏返して左手用としてもつかえるので、
 2個作れる!と考えることも出来ますねw
アナログジョイステック部品
 Amazonで「Arduino対応 Raspberry Pi対応 ジョィステックモジュール」
 などとうたっているものが配線しやすいので、今回はこれを推奨。
 

 ただし外れ部品のときがあるので、複数買っておくのが良い。
電線
 今回は電流はわずかしか流れない(数mA)ので、
 外径1mm未満の電子工作用の撚り線電線推奨。
 配線するときに分かりやすいように数色を袋詰めしたものが便利。
 

ハンダ
 狭い場所にはんだ付けするので、径0.3mm推奨。せめて径0.6mm以下。
 

MDF板
 木くずを固めて板状にしたもの。なければ合板や、適当な丈夫な板でもOK。
 全体を支える土台として使います。
 手を乗せるので、140mm×140mm以上のサイズのものを。
両面テープ
 しっかりとくっつく強度のあるものを。文具の紙用はお勧めしない。
 強力すぎると張り直すときに張り付いた素材を傷めるので、
 強く着くが貼り直しはできる程度のものを探すのを推奨。
 ネジの頭が飛び出ていたりするので、クッション性があるものが便利。
USBケーブル A←→microB のもの。PCとの接続用。
 キットに入っていればそれを使えばよい。

はんだごて
 精密電子工作用の15W~30W程度のセラミックヒータータイプ。
 

精密ドライバ
 キットのねじ止め用。細いプラスネジ用セットがよい。
精密ニッパー や ワイヤーストリッパー(精密用)があるとなおよい
 電線の皮むきはあらかじめ少し練習しておこう。
テスタ
 電子工作用の一般的なものでOK。見るのは主に抵抗値。
 導通ブザー機能があると便利。
 はんだ付けしたら毎回確認する、これがだいじ。

PC
 キーボードの内蔵ソフトウェアを作るための物。
 Windows/MacOS/Linux いずれでも可能だが、今回はWindows10を前提で説明する。


材料費は私の場合でキット+キー+キートップ+ジョイスティックで約12,000円程度。
 工具類は手持ちがあったので、工具から揃えるとなるとちょっと掛かります。

■まずはキーボードキット部分を組み立てる
・入手したキットに合わせてまずはいったん ergo42の左手側だけ作ってしまおう。
 キットを販売したお店のサイトなどににビルドガイドの置き場所が紹介されているはず。
 もしも ergo42 Single Edition のばあいはここ
 →ERGO42(SE)組み立て手順書
 組み立て済みキットならラッキー、すぐ次の作業にはいれるw

 組み立ての参考情報
 ・zk_phiさん「自作キーボード (Ergo42) を組み立てた」
 ・るびこさん「自作キーボードErgo42 towel、知識ゼロ初心者の作製記録【遊舎工房にて】」
 ・monoさん動画「【自作キーボード】Ergo42 Towelを組み立てる!【初心者】」


キーボード内蔵用ソフトウェアを作れるようにする
・オープンソースの QMK Firmware というものを使う(無償で公開されている、ありがたや)
 PC環境に合わせて環境構築するのですが、今回 Windows決め打ちで説明。
 かつ、構築失敗しにくい QMK-MSYS で説明します。

[参考]Diwamotoさん記事「QMK-MSYSを使ってWindows上に最速でqmk環境を構築する」

 (1) https://msys.qmk.fm/ サイトで「Latest Version」→GitHubのQMK-MSYSページに飛ぶ
   

 (2) QMK_MSYS.exe をダウンロード
   

 (3) ダウンロードできたら開くとインストール開始。対話でインストールしてしまいます。
   何か質問されたら yes を選択w
 (4) 上手くインストールしてQMK-MSYSが起動できたら、背景が黒いウィンドウが開き、
   文字コマンドで QMK Firmware を作る作業ができるようになります。
   

 (5) 最初の環境構築のために「qmk setup」コマンドを実行
   何か質問されたら y を入力w
   QMK is ready to goと出たら環境構築完了
 (6) 作業場所はサブディレクトリの「qmk_firmware」なので、
   ディレクトリ移動コマンド「cd qmk_firmware」を入力して移動。
   

 (7) 何も手を加えない素の ergo42のソフトウェアを作ってみるには
   コマンド「make ergo42:default」を実行。
   意味は(make=ソフト作る、ergo42=オープンソースでのergo42の名前、
   default=オープンソースに入っているergo42の素の設定の名前)
   しばらくすると、うまくいけば「The firmware size is fine ・・・・・」
   などと表示されてソフトウェア完成。
   



■キーボードとして動作試験
 ソフトウェアをキーボードに組み込むには
 (8) ergo42とPCをUSBケーブルで接続します。

 (9) コマンド「make ergo42:default:flash」を実行。
   しばらくすると、うまくいけば「Detecting USB port, reset your controller now ・・・・」
   と点々が増えながらソフト転送待ちになりますので、ergo42のリセットスイッチを押します。
   
ProMicroの傍にあるのがリセットスイッチ

 (10)「avrdude.exe done. Thank you.」と表示されると書き込み完了

 (11)うまくいったなら、もうキーボードとして認識されているはず。
   文字入力してためしてみよう!


ここまでいけばキーボードとしては完成なので、
いよいよ左手デバイス化していきます!


ここで、USBケーブルをPCから抜いておきましょう。


■ジョイスティックをergo42と結合する
 ergo42の写真にある箇所に電線をはんだ付けしてください。
 このとき、マイクトコロンローラーの端子を挿す穴に付けないように注意!
 ※写真は基板裏面 配線の色を参考にしてね!
 ジョィステックの端子に電線のもう一方の端をはんだ付けします。
 ※写真は一度切ってみた時の物 配線の色を参考にしてね!
 具体的には以下の4本の電線で結合します。
 ・ProMicro「VCC」―――――ジョィステック「+5V」 赤の電線
 ・ProMicro「GND」―――――ジョィステック「GND」 黒の電線
 ・ProMicro「4」 ―――――ジョィステック「VRY」 紫の電線
 ・ProMicro「A3」 ―――――ジョィステック「VRX」 緑の電線
 写真にある基板の穴が基板内でProMicroの上記端子とつながっています。
 テスタで穴のつながりを確認しながら作業しよう。

 ProMicroの裏面
 



■キーボード内蔵用ソフトウェアに手を加えてアナログジョイステックを使えるように変更する
 テキストエディタアプリをなにか準備(わたしはここでは「秀丸」を使っています)。
 以下の変更を加えます。


 [0] ファイルは、あなたのユーザーディレクトリの直下に
   「qmk_fairmware」というフォルダがあると思うので、
   その中のファイル前提で話します。
 [1] 「keybords\ergo42\rules.mk」ファイルを開いて、末尾に以下を追記。

―――――
JOYSTICK_ENABLE = yes
SRC += analog.c
―――――

 [2] 「keybords\ergo42\rev1\config.h」ファイルを開いて、末尾に以下を追記。
―――――
#define JOYSTICK_BUTTON_COUNT 0
#define JOYSTICK_AXES_COUNT 2
―――――

 [3] 「keybords\ergo42\keymaps」フォルダをエクスプローラーで開いて
   「keybords\ergo42\keymaps\default」サブフォルダをコピー&貼り付けして複製
 [4] 複製したサブフォルダを例えば「leftdevice」に名前を変える
 [5] 「keybords\ergo42keymaps\leftdevice\keymap.c」ファイルを開いて、末尾に以下を追記。

―――――
#include "joystick.h"
#include "analog.h"

void joystick_task(){
joystick_status.axes[0] = analogReadPin(F4)/4 - 128;
joystick_status.axes[1] = analogReadPin(D4)/4 - 128;
joystick_status.status |= JS_UPDATED;
send_joystick_packet(&joystick_status);
}
―――――

 [6] 以上のファイルをすべて保存して閉じておく。

 以上がすべてできたなら、再び手順(7)をちょっと変更したものからやります。
 コマンド「make ergo42:leftdevice」を実行。
 うまく「The firmware size is fine ・・・・・」まで行くのを確認。

 次に手順(8)~手順(11)を実行して、あらたなソフトウェアを
 キーボードに送り込みます。キーボードとしての動作確認もやってくださいね。
 このとき手順(9)のコマンドは「make ergo42:leftdevice:flash」を実行。


■アナログジョイスティックの動作試験
 Windows10の「設定」パネルを開く。
 「デバイス」→「デバイスとプリンター」
  →「HID準拠ゲームコントローラー」を右クリックして「ゲームコントローラーの設定」

 (もしも、「デバイスとプリンター」を開いても「HID準拠ゲームコントローラー」が存在せず、
  スティックが使えても調整できない場合
  ⇒いったん何らかのゲームコントローラーをPCに接続して認識させると
   「HID準拠ゲームコントローラー」が登録されるので、そこから操作できるようになる)


 認識されていればコントローラーとして「ergo42」が表示されているはず。

 「ergo42」を選んで→「プロパティ」→「テスト」タブでコントローラーの動作確認ができます。

 ・動きがぎこちないときは または 歩けるけれど走れないときは
  「ergo42」を選んで→「プロパティ」→「設定」→「調整...」でウィザードに従って調整
 ・動きがスティックを倒した方向と90度異なる動きのときは
  X方向tとY方向の配線が入れ替わっています。配線チェックを!
 ・動きがスティックを倒した方向と180度異なる動きの時は
  あなたの思っているスティックの向きと、今回の想定が異なっているかも。
  [5]で追加したプログラムを修正してみましょう。
  例えば下記のように±を反転してみてください。

―――――
joystick_status.axes[0] = -(analogReadPin(F4)/4 - 128);
―――――
  ↑このプログラム修正の穴がわかるひとは自分でいじってみてね
 ・動きがめちゃくちゃなときは
  根本的に配線が間違っている場合や、部品が不良の場合もあります。まずは点検!
 ・全然動かないときは
  ソフトウェアはちゃんと作成成功していましたか?
  ソフトウェアの送り込みはちゃんと完了していましたか?
  配線を点検してみましょう。


■全体を左手デバイスの形にする
・MDF板(または代替の板)の上に、キーボード本体と、
 アナログジョィステックを両面テープで貼る。
 接着強度に不安がある場合は、
 ある程度試行して使い込んだら板にネジ留追加してしまおう。
 使ってみて、キーとジョィステックの位置関係を微調整。
 これは手の大きさなどで個人差が大きいところ。
 
 こんなイメージw


■キーの割り当てを変えてみる
・このページを参考にしてキー割り当てを変えてみてください!
 leicoさん「QMK : キーマップのカスタマイズ」 
 マコトブログ「【自作キーボード】qmk をカスタマイズしてキー配置を変更する方法」 


見た目は置いておいて、十分実用になる左手デバイスになっているはず。
完成おめでとう! 楽しんで使ってください。

これを出発点にして、オリジナルの左手デバイスをぜひ工夫して作ってみてください!



 << 次回につづく 試作3号機 >>

■謝辞
今回掲載のプログラムソースや、前提となるポート情報などは、
以下の Nanoさんの日記記事に掲載されたものを使わせていただいております。
Neoさん日記「G13代替機を作った」
掲載ご快諾ありがとうございます!


■記事インデックス
 ―手デバイス(アナログスティック) なければ作ってしまえ!【自作】―
その1 ロストG13に備えて
その2 試作1号機 とにかく作ってみた
その3 試作2号機 小型版を
その4 あなたも作ってみよう、作り方編
その5 試作3号機 スティック傾けてみた
その6 操作方法を改善するときの選択肢、左手デバイスのすすめ
その7 左手デバイスの使い方、光の戦士に向けて(使いこなしの基本ノウハウ)
その8 試作4号機 薄くしてみた
その9 試作5号機 もう1つのリメイク版
その10 試作4号機の地道な改善
その11 簡単に作れる作り方編
その12 作成記事でできた6号機
その13 普段用の7号機
その14 直行配列の8号機

コメント(8)

Neo Trinity

Garuda (Elemental)

いよいよ製作編ですね!
0.3mmの細いハンダを推奨されている所がさすがだと思います。これ使うとハンダ付け楽ですよね!
あと、導線の被覆を剥いだ後、熔けたハンダにくぐらせて予備ハンダしておくと更にハンダ付けが簡単になりますのでハンダ付けされたことない方はお試しください~😁

Turing Hopper

Ramuh (Elemental)

ネオさん、コメントありがとうございまーす!
ネオさんの記事があったからこそ、この記事が存在できるのです、ありがとうございます。

そして、予備ハンダ! 電子工作経験者だと当たり前すぎて忘れておりました。

あとは、はんだ付け失敗してやり直すときの、ハンダ吸収線が地味にお役立ちw

ハンダ付けは、はんだを溶かすのではなく、着ける対象物をあたためて、
対象物に触れたハンダが溶けて濡れて広がる、感じですよね(^o^)

ただし、LEDなど熱に弱い部品は加熱時間短く&温度低くでこれをやらないと・・・・
ですので、最初はLED抜きで作ることをお勧めします >作ろうと思った方

Haru Yuuki

Anima (Mana)

わかりやすーい(^^)

ネオさんとホッパーさんの布教活動で
自作左手デバイスの自作信者が増えることを願います!

RAZERの左手デバイスも良いですが、アレも色々不具合があったり
なんちゃってアナログ風スティックなので
この日記を見ておられる方は、この自作デバイスを作成されることを
私も推奨します!

移動操作時の動かない、止まらないがなくなりますよ~


私みたいな電子工作超初心者でも作れる位、
ほんとわかりやすく説明されています。
もちろん、きっかけはネオさんの日記なので
ネオさんにも大感謝!!

この日記を見ている、そこのあなた!
キーボード自作の沼に一緒にハマりませんか?

Turing Hopper

Ramuh (Elemental)

ハルさん、お褒めいただきありがとうございまーす!

何度か書いた内容でやってみて、あっこれ抜けていた、を繰り返しましたw

逆に迷い道を作りそうな補足は削ってみたり。

とはいえ、細かい抜けを絶賛修正予定です(^^;;


Razerは、専用ソフトがどなたも褒めてませんね。
私はアナログスティックが欲しかったので購入対象からは外していました。


G13が欲しかった。F14は買えないのか、という書き込みはまま見かけますので、そういう方の選択肢になれば嬉しいですねー


Joe Tou

Masamune (Mana)

これはゴイスー😆😆😆
私もヒヅメじゃなければ頑張るのですが・・・。すいませんウソです。ヒヅメじゃなくてもムリです🐽✨

Turing Hopper

Ramuh (Elemental)

Joeさん、コメントありがとうございます。

やってみると意外と易しいですようw

Sann Sana

Ramuh (Elemental)

うーん スゴイ!としか言葉が出ません!PCに詳しいのだなぁとわかっていたものの
こんな細かいことまでやれる方だとはw

で、電子工学?! 言葉を聞いただけでスルーしたくなるのに
Hopperさんが作っている!と思うだけで一緒に楽しめる記事ですね!

物を作る楽しさってわかります!
あ!クラフターやらないと! ><
次の記事読んでからにしようw

Turing Hopper

Ramuh (Elemental)

Sannさん、いえいえ詳しいというほどでは。
このように作れるということは、コメントいただいている Neoさんから教わったのです。

とはいえ、同じように困っている人のために、情報を形にしておきたくて。
コメント投稿
フォーラムモグステーション公式ブログ

コミュニティウォール

最新アクティビティ

表示する内容を絞り込むことができます。
※ランキング更新通知は全ワールド共通です。
※PvPチーム結成通知は全言語共通です。
※フリーカンパニー結成通知は全言語共通です。

表示種別
データセンター / ホームワールド
使用言語
表示件数