おかゆ++

IT業界の片隅で生き残るブログ

自作キーボードを作ります2-1  1号機の不満点

1号機を1ヶ月程度使い込みました

自作キーボードに入門して最初に作成した5x6分割キーボードを、1ヶ月ほど使い込みました。

okayu-moka.hatenablog.com

f:id:okayu-moka:20180331173017j:plain

動作的には特に問題なく、とりあえず意図通りに動いたのでOK。

動作以外では、最初は格子配列に多少苦労しました。 でも使っているうちに慣れました。 今ではもう、なぜ普通のキーボードがあんなふうにズレてるのか理解できないですね。

ということで、概ね満足のいくものに仕上がってはいたのですが、 使い込んでいるうちに気になってきた不満点がいくつかあります。

不満点1:筐体の高さ(キーボードの厚さ)

当初から空中配線予定で、配線がグチャッとなると想像できていたので、 ケーブル用のスペースに余裕をもたせた筐体にしていました。 おかげで配線時には困らなかったのですが、 キーボード自体が分厚くなり、リストレストがないと手首が痛いという状態になってしまいました。

できればもっと薄型にして、手首への負担を減らしたいです。

不満点2:親指が活用できていない

ErgoDoxなどの他の自作キーボードでは、親指を活用するための配列が多いですが、 あれは理にかなってるなぁと感じました。

やはり力も強く、スペース以外に仕事のない親指にはもう少し仕事をさせるべきだと思いました。 ただ、今回のキーボードではレイヤーキー(Raise/Lower)も担当しているので、 あまり増やしすぎると誤打が多発しそうです。 増やすとしてもキー1つくらいかなぁと思います。

不満点3:筐体とキートップの色

「とりあえず筐体は白にしておけば、どんなキーキャップつけてもそれなりに見えるだろう」と思って白で作ったのですが、 いざ黒のキーキャップをつけると、コレジャナイ感が……

こればっかりは完成するまで判断が難しいところではありますが、次回は色使いにも気を使いたいですね。

不満点4:キーレイアウトを変更しづらい

キーレイアウトはソースコードを直接いじって変更していましたが、非常に面倒くさい……

なにか簡単なツールを作って、GUIでレイアウトできるようにしたいですね。

2号機を作っていきます

次回以降、以上の不満点を改善した2号機を作っていこうと思います!

自作キーボードを作ります④ 配線と動作確認、1号機完成

ここまでの作業でやっと部品がすべてそろったので、組み立てます!

スイッチはめ込み

Cherry MX互換のスイッチは、縦横14mmの穴にはまるようになっています。

今回も一応14mmの正方形の穴をあけましたが、3Dプリンターの品質上、そこまでの精度が出てません。 基本的には14mmよりも狭い状態になっていたので、スイッチが入る程度までヤスリで削りました。

とりあえず片手分のキースイッチをすべてはめ込んだ状態になりました。

配線

前に考えた回路図通りに配線します。

okayu-moka.hatenablog.com

ひたすらはんだ付けします。結構大変です。 今回の場合キーが60個あり、ひとつのキーにつき2か所のはんだ付けが必要で、ProMicroへのはんだ付けなども必要なので、 140か所以上のはんだ付けが必要でした。電子工作初心者にはキツかったです。

そんなこんなで、とても汚いですが許してほしいです。

あまりにもはんだ付けが適当だと、チャタリングの原因になったりするらしいので、もうちょっと頑張ったほうがよさそうです。

キーキャップ付ける

買っておいたDSAプロファイルのキーキャップを付ければ、完成です!

使っているときに、やっぱりホームポジションがわかりにくかったので、100均でネイルアート用のシールを買ってきて貼ってみました。 剥がれやすいですが、100円なのでその時は貼り直せばいいかなぁと思っています。

使用感など

ちょっと使ってみた使用感。

  • 一番上の列はなくてもいいかもしれない。
  • 親指にもう一つキーがあってもいい。
  • ちょっと背が高い。もう少し薄型にしたい。
  • 色がちょっとダサい……?
  • 茶軸はそれなりに音がする。気にはならないレベルではある。

ひとまずは使えるものができたので、1号機については完成とします。 次は、上記の使用感を改善した2号機を作っていくつもりです!

自作キーボードを作ります③ 筐体のモデリングと印刷

キーボード本体の筐体を3Dモデリングして、最終的には3Dプリンターで印刷しようと思います。

使用ソフト

3Dモデルを作るソフトとしては、大別して

の2種類のソフトがあるみたいです。

3Dモデリングソフトのほうが、人間や風景などの3Dモデルを作成するためのソフトウェア。 3D CADソフトのほうが、3Dによる設計等を行うソフトウェア。らしい。

どちらでも3Dプリンターで取り扱われるSTLファイルを出力できるし、慣れたものがあればそれを使えばいいみたいです。

私は3D自体が始めてだったので、目的にあっていそうな3D CAD系のソフトを探して、最終的には fusion 360 を使うことにしました。

基本的な使い方は、以下のPDFと本でさらっと勉強しました。 チュートリアルの方はどうも公式資料っぽいのでまず最初に目を通すのがおすすめです。

Fusion 360 チュートリアル(https://www.myautodesk.jp/JEFF/Fusion360_ATC_201603.pdf)

最初こそ苦労しましたが、なんとなく使っているうちに、結構自由に使えるようになりました。 他の 3D CAD と比較はできませんが、とても使いやすいのではないかと思います。おすすめです。

出来上がったモデル

こんな感じになりました。Thingiverseにもアップしてみました。

f:id:okayu-moka:20180408143808p:plain https://www.thingiverse.com/thing:2853850

印刷!

3Dプリンターを持っている人は自分で印刷することもできますが、 そうでない人は DMM.make などのサービスに発注すれば、大体2周間くらいでモノが届きます。すごい時代ですね。

3Dプリンターサービス - DMM.make 3Dプリント

私は先日買った HICTOP 3dp-08bk RepRap Prusa i3 で印刷しました。

okayu-moka.hatenablog.com

印刷した結果がこれです。DMM.makeなどに頼むより精度はガクッと落ちますが、 なんとか使えるレベルで印刷できています。

あとはこれにスイッチを付けて配線していくだけです!

3Dプリンターの防音・保温ボックスを作りました(RepRap Prusa i3)

3Dプリンターを買いましたが、 今回勝ったものはRepRap Prusa i3というもので、 機械部分がすべてむき出しで丸見えの状態となっています。

okayu-moka.hatenablog.com

むき出しということで、ちょっと気になる点・問題となる点があります。

  • 印刷時、ちょっと音がうるさい
  • ABSを印刷するとき、外気が冷たいと大きく収縮して反る

これらを改善するために、とりあえず何かのハコに入れればいいと思ったので、 木材で防音ボックスを作りました。

ホームセンターで合板を購入・カットまでしてもらいました。 その後、自宅でサンドペーパーをかけます。

f:id:okayu-moka:20180217145252j:plain

本当はニス塗ったりしたほうがいいんでしょうが、面倒くさいのでこのまま使いました。

木工用ボンドと木ねじで箱の形に組み立てて、完成。

f:id:okayu-moka:20180217211844j:plain

前面は開け閉めできるように、↓のようなドアキャッチで止めるようにしています。

中を開けるとこんな感じ。どうしても暗くて作業しづらいので、100均でLEDライトを買ってきて吊るしています。このライト、100均ライトの中ではダントツに明るくておすすめです。

f:id:okayu-moka:20180223000059j:plain

材料は全部合わせて4000円くらい、時間は2時間くらいかかったと思いますが、なかなかいい感じじゃないでしょうか。

使ってみた感じ、全面を閉めると音はだいぶ抑えられます。また、ある程度の保温効果もあり、たぶんABSの印刷もやりやすくなったと思います。 ただちょっと大きくしすぎた感がありますね……かなりスペースを取っていますが、まぁしょうがない……

Firefox(Quantum)のカスタマイズメモ(ツリー型タブなど)

Quantumから従来のアドオンの多くが使えなくなった他、いろいろ変わったらしいFirefox

使ってみた感じ、速度は確かに早くなったように感じます。 Firefoxじゃないとだめなの? という気はしなくもないですが、 ツリー型タブが生きているというだけで乗り換える価値があるかと思います。

現状、Vivaldiを捨ててFirefoxに完全移行しました。 Vivaldiに不満があったわけではないので、そのうちまたVivaldiに戻るかもしれません。

ただ、以前使っていたアドオンの代替を探したり、 ツリー型タブを快適に使うにはいろいろと設定が必要でしたので、残しておきます。

タブを縦置き&元々のタブを非表示にする

絶対必要なツリー型タブを導入。これがあるからFirefoxを使っています。

ツリー型タブ (Tree Style Tab) – Firefox 向けアドオン

ただ、APIの制限でもともとのタブを消すことができません。

手動で設定ファイルを配置してCSSを書けば消せますので、そこまで問題ではないです。

Win系:
C:\Users\[ユーザー名]\AppData\Roaming\Mozilla\Firefox\Profiles\[ランダムな文字列?].default\chrome\userChrome.css

Mac:
/Users/[ユーザー名]/Library/Application Support/Firefox/Profiles/[ランダムな文字列?].default/chrome

どんなCSSを書けばいいんだ! というときは Firefoxからchrome://browser/content/browser.xulを開けばなんとなくわかります。

Windows 10とかMacの場合:

/* タブ非表示 */
.tabbrowser-tab[fadein]:not([pinned]) {
    display: none !important;
}
/* 新しいタブを開くボタンの非表示 */
.tabs-newtab-button {
    display: none !important;
}
.titlebar-placeholder {
    display: none !important;
}
/* サイドバーのヘッダの文字サイズ */
#sidebar-header {
    font-size: 12px !important;
    padding: 5px !important;;
}

Windows 7の場合:

/* タブ非表示 */
#tabbrowser-tabs {
    visibility: collapse !important;
}
.titlebar-placeholder {
    visibility: collapse !important;
}
#tab-view-deck {
    margin-top: 15px;
}
/* サイドバーのヘッダの文字サイズ */
#sidebar-header {
    font-size: 12px !important;
    padding: 5px !important;;
}

マウスジェスチャ

FireGesturesを愛用していましたが、使えなくなったので、Gesturefyを入れました。

Gesturefy – Firefox 向けアドオン

APIの制限なのか、新しいタブページや設定ページ等、ブラウザの機能に関する画面ではマウスジェスチャできませんが、 まぁそこはしょうがない。

セッションマネージャ

Tab Session Managerを導入。 間違ってウィンドウを閉じちゃったり、いきなりブラウザが落ちたりしたときにの保険。

Tab Session Manager – Firefox 向けアドオン

Google翻訳

Simple Translateを導入。 英語のページを読むときに、さくっと翻訳したいので、翻訳系は必須。

Simple Translate – Firefox 向けアドオン

がっつり翻訳したいときは普通にGoogle翻訳のページを開くので、これくらいのお手軽感がちょうどいいです。

3Dプリンターを買って組み立てるまで(HICTOP RepRap Prusa i3 3dp-08bk)

きっかけ

自作キーボードを作るにあたって、3Dプリンターで筐体を作ることにしました。

3D CADを勉強して、fusion 360で筐体をデザインしました。 いけるかな? と思えるものができたタイミングで、 とりあえず一部分だけをDMM.make に発注しました。

出来上がったのが下の写真で、価格はおおよそ¥2,700。材質はナイロンです。

精度も高く、モノはよかったのですが、ちょっと不満点もありました。

  • 手元に届くまでそれなりに時間がかかる。今回だと2週間くらいかかりました。
  • 思ったよりは高い。今回作りたいものをすべて発注すると、¥9,000くらいになる見積り。

そんなこんなで、「とりあえず作ってみて、間違ってたら修正しよう!」みたいな使い方はしづらい印象です。

3D CADも初心者なので、ちゃんとしたものが設計できてるかわかりません。 使えるかどうかわからないモノを発注するのはなかなか勇気が必要でした。

お金が潤沢にある企業や現場で使うならまだしも、 個人でトライアンドエラーするのであれば、安価な3Dプリンターを買うほうがよさそうだと思い、 えいやっ! と買うことにしました。

機種選び

3Dプリンター、安い機種だと¥30,000以下で買えちゃいます。ただし完成品ではなく、組み立てキットです。

世の中には RepRap プロジェクトというものがあり、 そこでオープンソースで開発された3Dプリンターがあります。 ハードの仕様からプログラムまですべて公開されているので、 安い中華キットがAliExpressやAmazonにあふれています。

今回はRepRap Prusa i3という機種のキットを狙うことにしました。 RepRapのキットを選ぶメリットとしては、

  • 安い
  • 3Dプリンターの仕組みがわかる
  • 改造が容易
  • 汎用のフィラメントが使える

といった点が挙げられます。逆にメーカーの完成品を買うメリットは、

  • サポートが受けられる
  • 最初から印刷精度が高い
  • 動かない! ということが少ない?

といった点かなーと思います。

実際に買ったもの

HICTOP RepRap Prusa i3 3dp-08bk を買いました。

RepRapオープンソースなので、色々なメーカーから似たり寄ったりの商品が発売されています。

今回は以下のような理由で、HICTOPを選びました。

  • Amazon.co.jpで買える。
  • それなりにネットに情報がある。
  • 改造用のパーツや修理用のパーツもAmazonで買える。
  • 印刷可能サイズが大きい。
  • ホットベッドあり
  • 安い。

買ってから気づいた良かった点もあります。

  • 電源電圧が24V。エクストルーダやホットベッドが温まるのが早い。
  • 本体上にフィラメントを置ける。意外とこの位置がベストっぽい。
  • 割れやすそうな部品があんまりない。(アクリルパネルは割れますが)
  • Amazonでサポートにメールしたら普通に1日以内に返ってくる。

総じて良い選択だったと思っています。

改造という点だけで見ると、HICTOPのものよりもAnetのA6やA8という機種のほうが情報が多いですが、 基本的には応用が利くので、いい選択だったと思います。 ただ電源電圧が24Vなので、電子部品に手を入れる場合はちょっと気を使わないといけないですね……

キットにプラスして買ったもの

キットには最低限のものしか含まれていないので、追加で買ったもの・買ったほうがいいものもあります。 これから買おうという方は同時に買っておくと手間が省けて吉です。

フィラメント

とりあえずPLAのフィラメントを1kg買いました。 キットに入っていたお試し用のフィラメントでもそれなりに遊べましたが、 いずれは無くなるので、買っておいたほうがいいと思います。

M3のワッシャ(100枚くらい)

キットにはビスは入ってるんですが、ワッシャが入ってません。 無くても組み立てられますが、アクリル部品が割れたりしそうなので、 自分は買いました。

結構量が必要でした。たぶん80~100枚くらいはあったほうがいいです。

シリコンスプレーかKURE5-56などの潤滑油

KURE5-56ならどの家庭にもあると思うので、それでいいと思います。

ドライバー、ニッパー、六角レンチ

必要な工具はキットに入っていましたが、できれば六角レンチとラジペンは用意したほうがいいと思います。

はんだ付けの道具

自分のキットでは、マイクロスイッチとコードのはんだ付けが甘く、 組み立て中にポロっと取れてしまいました。 安いはんだ付けセットがあれば、直せるレベルでした。

購入から組み立てまで

Amazonの倉庫に在庫があるため、買った翌々日に到着。Amazonプライム最高。

開封したところ。

いきなり壊れてるパーツを発見。中華感があっていいですね。瞬間接着剤で直しました。

途中、ワッシャが足りなくて買い足したり、組み方を間違えてばらしたりしましたが、 大体8時間くらいで組みあがりました。

お試し印刷

キットに入っていた3Dに、印刷用のプログラム(スライサーソフト。CURA)とか、 テストプリント用データなどが入っていました。

キットに入っていたフィラメントで、エクストルーダ210℃、ホットベッド50℃、 積層0.3mm、印刷速度30mm/sで印刷してみたところ、きれいに印刷できました。

下の写真は実用もかねて作った、はんだ付けするときにケーブルを摘まんでおくやつです。

結構いい感じに印刷できてます!

組み立て後の改造

ネットで検索すると、3Dプリンターを改良するためのパーツのデータがいっぱい出てきます。 自分で自分を改良できるなんて、夢が広がりますね。

改良については別記事にて書きますが、とりあえずX軸/Y軸のテンショナーは作ったほうがよさそうです。

感想

3Dプリンター、とても面白いです。 本来の目的である自作キーボードをほったらかしでいろいろ印刷してしまうくらいには、ハマっています。

もう少しお金をだせばメーカー品も買えますが、キットにして正解だったなーと思います。 苦労はありましたが、3Dプリンタの仕組みが勉強できたのと、やっぱり改造できるのが楽しいです。

もっと3D CADも勉強して、色々な工作に使っていきます!

Debian9でVim8をコンパイルする手順

なぜvimをソースからコンパイルするのか?

  • 2018/3/25現在、aptでインストールしたvimだと:terminalが使えない。
  • 最新版を使ってドヤりたい。

前提条件、参考記事など

  • Debian 9.4.0
  • git、build-essensialなどは導入済み
  • Lua、Python2、Python3、RubyPerlは有効にしますが、バージョンには特にこだわりません。

作業手順は、基本的には vim-jp の記事を参考に進めました。

vim-jp.org

必要なパッケージ類をインストールする

以下のコマンドでまとめて入れてくれるみたいです。便利。

sudo apt build-dep vim
sudo apt install python-dev

ソースを落としてくる

GitHubから最新ソース取得

cd ~/
mkdir src
cd src
git clone https://github.com/vim/vim.git

Configure

Lua、Python3、RubyPerlを有効にしつつconfigureします。

cd ~/src/vim/src
./configure --with-features=huge --enable-fail-if-missing --enable-pythoninterp=dynamic --enable-python3interp=dynamic --enable-rubyinterp=dynamic --enable-luainterp=dynamic --enable-perlinterp=dynamic

ビルドしてインストール

make すればOKです!

make
sudo make install