電子工作」カテゴリーアーカイブ

7sPlusビルドログ(組み立て編)

先日作成した7splusという自作キーボードのビルドログです。この7sPlusというキットは自作キットながら組み立てがしやすい構成になっています。

自作キーボードというとスイッチごとにダイオードやスイッチソケットの半田付け作業があり、途中に「これを90ヶ所行います」というような大変な工程が出てくるイメージがありました。

このキットは基盤にスイッチ関係の部品が既に実装されており、スイッチについては差し込むだけでOKという設計になっています。一方でTRRSジャックやPromicroについては半田付けが必要になっています。

この「ほどほどに半田付けも要るが、基本的に組み立てやすい」というのが非常にバランス良く感じます。

公式ビルドガイド

設計者の方がていねいなビルドガイドを公開してくださっているので、基本的にはこれに従って組み立てていけばOKです。

自作キーボードキット『7sPlus』ビルドガイド

[自作キーボード温泉街の歩き方]

製作でつまづく部分はありませんでしたが、ちょっと気になった部分について触れてみます。

スタビライザーの潤滑

ビルドガイドでおすすめのオプション工程としてスタビライザーの潤滑が紹介されています。私も今回実施してみましたが、慣れていないとスタビライザーバーの取り外しが難しく感じました。

スタビライザーのルブの話

[自作キーボード温泉街の歩き方]

スタビライザーバーは図のようにスタビライザー本体にはめ込んであり、そのままでは取り外せません。力をこめれば引き抜ける可能性もありますが、その際にスタビライザー本体が割れてしまう恐れがあります。

図の通りにスタビライザーの端を下方向に押し、スタビライザーバーの入っている隙間を広げてあげることで、強い力を入れなくてもスタビライザーバーを引き抜くことができます。

工程全体を振り返ってみると、このスタビライザーバーを引き抜くところが一番緊張したかもしれません。

スイッチのはめ込み

基盤とスイッチプレートを重ねてスイッチをはめていく作業でも注意したいポイントがあります。それはスイッチの足がはめ込みの際に曲がってしまうことがあることです。

これを防ぐためにはスイッチをはめ込む前にスイッチの足が曲がっていないかを事前に確認することと、はめ込む際に極力垂直に力を入れて押し込むことに注意するとよいように思いました。

はめ込み時に上辺→下辺のように片方の辺から先にはめ込んでしまうと足が折れる確率が高くなるように感じました。

こんな感じでスイッチの足が折れてしまうことがあります。

はめ込んだ後に基盤の裏面から足が見えているかを確認するのも重要だと思います。正しく設置できていればソケットの穴からスイッチの足を目視で確認することができます。足が折れてしまうとソケットに足が見えないので、スイッチは設置しているのに足が見えていない場所があった場合はスイッチを外して別のものに交換します。

画像の青丸部分はOKですが、赤丸部分のように足が見えていない場所は足が折れている可能性が高いです。

スペーサーとボトムプレートの取り付け

Promicroの取り付けもできたら最後にスペーサーを取り付けてボトムプレートを取り付けます。ここは基本的にビルドガイド通りで問題ない工程ですが、長い6mmのスペーサーが1個余ります。これは予備用ではなくて右手側キーボードの中段に使用するものです。

私はうっかり取り付け忘れをするところだったので、部品が余らないかご注意下さい。

長さ6mmのスペーサーはボトムプレート取り付け前に差し込んでおきます。
ボトムプレートを設置すると矢印の位置にネジ穴ができます。

組み立ててみて

初の文字が打てるキーボードの製作でしたが、作る工程に苦しい部分はなく、楽しんで組み立てることができました。特にスイッチを取り付けた後に各スイッチの導通確認をするところを無事にクリアすると結構な達成感があります。

選んで楽しい、組み立てて楽しい、使って楽しい、と自作キーボードの楽しさを十分に感じられる体験になりました。

7sPlusビルドログ(部品選定編)

先日組み立てた自作キーボード、7sPlusの部品選定についてのエントリです。自作キーボードは多くの場合、本体キットにキースイッチとキーキャップが含まれていません。このキースイッチ選びとキーキャップ選びもまた自作キーボードの醍醐味と言えるポイントです。

なので一般的に自作キーボードを作る場合は本体、キースイッチ、キーキャップの3つを選択する必要があります。

本体(7sPlus)

本体は今回85キーを使う7sPlusというキットを選択しました。別のエントリでも触れましたが、せっかく自作キーボードを作るのでちょっと変わったものを作ってみたいと思っていました。

しかしながらあまりに変わった配置のものは結局使わなくなってしまう可能性もあります。間を取ってではないですが、おおよそUS配置でなおかつ分離式・一体式のどちらの特徴も有する7sPlusを選択しました。

スイッチごとに半田付けを必要としないキットなので、自作キーボードの製作経験のない私にはちょうど良いくらいの工作難易度でした。

また、次の項で触れますがスイッチがソケット式なので、交換が必要な場合はすぐにスイッチを取り替えられるのが便利です。今回はこの機能に救われました。

本体キットは基盤類とPromicroくらいなので、意外にコンパクトです。

キースイッチ(Kailh Box V2 Switch(brown)→Input Club Hako(violet))

今回キースイッチについてはタクタイルタッチのものを選ぼうと思っていました。タクタイルというのは押し込む時に必要な力が一定ではなく、途中に抵抗のあるタイプのスイッチです。

メインで使っていたFILCOのMajestouchがCherry社製の茶軸と呼ばれるタクタイルスイッチを採用しており、タッチが気に入っているので同じタイプのスイッチにしてみました。

Kalihのスイッチは非常に明瞭な打鍵感があって動作テストをする限りではとても良かったのですが、いざ実際に文章のタイピングをしてみると5分くらいで指の股が疲れてくるという現象が発生しました。

後からよく調べてみるとKalihのスイッチは抵抗の”山”に相当する部分に75gの力が必要ということでした。対する元々使っていたCherry茶軸はおおよそ55gで動作するということでした。要するに今回購入したKalihのスイッチの方が動作が重たいスイッチだったということになります。

そのままでは常用が難しそうな感じがしたのでさっそくスイッチを取り替えることにしました。取り替えたのは同じくKalih製らしいのですがInput clubというブランドのスイッチです。Kalih Box茶軸と同様にタクタイルタッチですが、動作に必要な力は約40gとかなり軽く設定されています。スイッチを変えてみたところ、おおよそイメージした通りのキータッチになりました。

Kalih Box茶軸はほぼ使われずに在庫になってしまいましたが、動作も滑らかで決して悪い製品ではないように感じました。今回は私の下調べとデータシートを読む力が不足していたというところだと思います。

スイッチのみで押し比べてみるとそんなに差は感じなかったのですが、実際の利用ではかなり差を感じました。

キーキャップ(Akko Herb Garden Keycap Set)

結構悩んだのがキーキャップです。キーキャップはキーボードの見た目を決めるほか、打ちやすさにも大きく影響します。また、キーボードキットによっては特殊なサイズのキャップが必要な場合があり、それをキットでまかなえるかどうかというのも重要なポイントになります。

今回購入した7sPlusは一般的なUS配置に近いレイアウトになっていますが、1.75Uという特殊なキーキャップが必要ということでした。そのためキット内に1.75Uのキーキャップがあることが必須要件となりました。

また、キーのプロファイル(形状)も重要な要素です。プロファイルにはいくつか種類があるそうですが、私は手が小さいのでできれば高さが低いキーキャップを使いたいと思っていました。調べてみたところCherryプロファイル、OEMプロファイル、そしてOSAプロファイルというプロファイルについてはキーの高さがそれほど高くないらしいことが分かりました。

キット内に1.75Uを含んでおり、なおかつ背が低く、見た目が好みで入手も可能なもの、という条件で探してみたところ、Akkoのキーキャップセットがちょうど良さそうでした。

商品として体積があって迫力を感じるのはキーキャップセットです。

プロファイルはOSAというものだそうで、高さは低いながらもキーの上面は指先に沿うような形で浅い球状にえぐれており、キーボードを横から見るとキー同士が緩い弧を描くような形になっているのが特徴です。他のプロファイルの特徴を複数備えているのが特徴というちょっと変わったプロファイルになっています。

キーが並んでいる様は壮観です。

キーの印字はダブルショット(2色成形)になっており、文字部分と本体部分が違う素材で成形されています。そのため、使っていく過程で表面がこすれても文字が決して消えないという特徴があります。

このキーの場合生地の色は緑で、白色で刻印を表現しています。裏から見ると2色になっていることが分かります。

自作キーボード用のキーキャップセットは多くの場合こういった2色成形や、樹脂そのものに染料を染みこませて文字を消えにくくしたものがほとんどのようです。キーキャップだけでも結構高コストではあるのですが、一般的なキーボードとはひと味違う工夫が施されているものが多いようです。

自作キーボードを作る(7sPlus)

自作キーボードに興味があり、以前練習用としてマクロパッドである”Quick7”を作成しました。いよいよ本格的な文字が打てるキーボードを作ってみたくなったので、遊舎工房さんで取り扱いのある7sPlusというキットを購入しました。

写真には写っていませんが左右をTRRSケーブルで接続して使用します。

この7sPlusは一般的なUS配列のキーボードに似ていますが、キー数は85キーとなっています。分割型というのもあってスペースキーが4分割されています。また、通常のUS配列では文字キーの右側に配置されるカーソルキーやHomeキー・Endキーなどが右端に寄せられ、きれいな長方形に配置されています。

分割式としても一体式としてもどちらでも組み立てることができます。分割式として組み立てても左右がぴったり合うように設計されており、置き方次第で分割式でありながら実質一体式の配置で使うこともできます。

せっかくの自作キーボードなので分割型に挑戦したかった一方で、いきなり特殊な配列のキーボードはちょっと自信がなかった私にとってはちょうどいいキットでした。

とりあえず無事に組み立てることはできたので、ビルドログ的なものをそのうち書いてみたいと思っています。

Raspberry Piで部屋の温度を長期間記録する(グラフ描画編)

前回まででデータベースに時刻と室温が蓄積されるようになったので、たまったデータをグラフで可視化していきます。

最初データベースの中身からグラフ描画する方法を考えた時にCSVあたりに出力してExcelなりGoogleスプレッドシートなりでグラフにすることを考えました。

ところがその後調べてみたところPythonのライブラリで操作可能なグラフを描画できるライブラリがあることが分かったので、勉強がてら試してみることにしました。

グラフ描画ライブラリ Bokeh

今回使用したのはBokehというグラフ描画を目的としたライブラリです。

Bokeh documentation

[docs.bokeh.org]

このライブラリは非常に高機能で、今回のようなデータベースからグラフを描画するといった要件には適しているということでした。例によって公式のドキュメントが良くできていて、サンプルを動かしつつ今回の環境に合わせていくことで、期待通りに動作するプログラムができました。

<Python>
import sqlite3
import datetime
from bokeh.plotting import figure, output_file, show, save

#◆データベースからデータを取り出す◆

#データベースのパス
dbpath = '/home/pi/Documents/roomtemp_db.sqlite'
#コネクション生成
connection = sqlite3.connect(dbpath)

#カーソル生成
cursor = connection.cursor()

#室温テーブルのレコードを日時で降順ソートし、新しい日時データ96レコード分を取り出す
cursor.execute('SELECT datetime FROM roomtemptable order by datetime desc limit 96')
#変数xを宣言
global x
#変数xを配列とし先ほど取り出した日時データ96レコード分を格納
x = [(x[0]) for x in cursor.fetchall()]

#室温テーブルのレコードを日時で降順ソートし、新しい室温データ96レコード分を取り出す
cursor.execute('SELECT temp FROM roomtemptable order by datetime desc limit 96')
#変数yを宣言
global y
#変数yを配列とし先ほど取り出した室温データ96レコード分を格納
y = [(y[0]) for y in cursor.fetchall()]

connection.close()

#◆グラフ描画◆

#配列の中身は新しい順になっているので、古い順に並べ替え
x.reverse()
y.reverse()

#結果を書き出すファイルを指定
output_file("/home/pi/Documents/graph.html")

# グラフのサイズ設定・ラベル設定
p = figure(title="temperature", plot_width=1200, plot_height=500, x_axis_label='datetime(yyyymmdd-hh:mm:ss)', y_axis_label='temperature(celsius)', x_range=x, y_range=(10,25))
p.y_range.start = 10
p.xaxis.major_label_orientation = 1
#グラフの種類設定・書式設定
p.line(x, y, line_width=5,legend_label="temperature:value", color="limegreen")

#ファイル出力・保存
save(p)

できあがったグラフはこんな感じの見た目になります。

HTMLファイルになっていて、ユーザの操作で拡大や縮小などが自由にできるのが優れていると思います。それほど難しい設定も必要とせずに凝ったグラフが作れるのでとても便利です。

まとめ

比較的安価な機材と簡単なプログラミングで室温のモニタリングと可視化ができることが分かりました。

秋月電子通商などの電子部品屋さんでは他にも様々なセンサー類が販売されています。センサーとプログラムの組み合わせ次第では他にも色々なものを作れそうです。また何かアイデアを思いついたら試してみたいと思います。

Raspberry Piで部屋の温度を長期間記録する(自動実行編)

部屋の温度を測定してデータベースに記録するところまではできたので、今度はこのプログラムを定期的に実行してデータをためていきます。

Linux系OSの場合”cron”というデーモンでプログラムの自動実行が可能です。Windowsでいうところのタスクスケジューラ的な使い方ができるものです。

cronの設定ファイルを開く

cronは設定ファイルに各プログラムをどういうスケジュールで実行するかを書き込むことで設定を行います。

設定ファイルはcrontabという名前で、ターミナルから以下の通りにコマンドを入力すると中身を編集することができます。

<ターミナル>
crontab -u [ユーザ名] -e

Raspberry Piの場合デフォルトのユーザ名はpiに設定することが多いと思うので、その場合は crontab -u pi -e と入力すればOKです。

cronのスケジュールの書き方

crontabを開くとエディタが起動するので、スケジュールを書いていきます。

基本的な記法は以下の通りです。

<crontab>
* * * * * [実行する内容]

最初のアスタリスクは前方から”分・時・日・月・曜日”を意味しています。

<crontab>
#毎日8時59分に実行
59 8 * * * [実行する内容]

#毎時29分に実行
29 * * * * [実行する内容]

実行する内容はプログラムの名前をフルパスで記述します。プログラムの名前だけで動作しない場合、そのプログラムを実行するファイルの環境変数が設定されていない可能性があります。この場合、プログラムの名前の手前部分に実行するファイルの名前を明示的に指定すると動きます。

今回の場合はPythonなので以下の通りになります。私が今回作った環境ではPythonの実行パスがあわせて必要で、最初これにしばらく気づかず解決にずいぶん時間がかかりました。

<crontab>
#ファイル名のみ設定
#毎時29分に実行
29 * * * * /home/Document/roomtemp.py

#Pythonの実行パスも含めて設定
#毎時29分に実行
29 * * * * /usr/bin/python3 /home/Document/roomtemp.py

crontabを保存して終了して設定は完了です。

cronの実行と設定確認

crontabで設定ができたら、念のためcronを再起動しておくと確実です。

<ターミナル>
sudo systemctl restart cron

これでうまく動いてくれれば大丈夫です。動作を確認したい場合は以下のコマンドで実行ログが出るので、cronでプログラムが実行されたかどうかをチェックできます。

<ターミナル>
sudo /etc/init.d/cron status -l

-lのオプションをつけておかないと結果が省略されて見づらくなってしまうので、-lを付けておいた方が良いと思います。

まとめ

これでプログラムを定期的に実行し、データを蓄積することができるようになりました。次回ではためたデータをグラフ化して見る方法をまとめてみたいと思います。

Raspberry Piで部屋の温度を長期間記録する(データベース編)

今回Raspberry Piで部屋の温度を記録するに当たって、おおよそ以下のような設計を考えました。

  1. Raspberry Piで部屋の温度を測定する
  2. データベースに測定時刻と共に温度データを蓄積する
  3. データベースの情報を元にグラフを描画する

1の手順については準備編で紹介した書籍、”Raspberry Piで学ぶ電子工作”で紹介されているので、それを流用します。今回のエントリは2の部分です。

SQLiteによるデータの蓄積

簡易なデータベースとして今回はSQLiteを使うことにしました。SQLiteはローカルでの利用に向いた手軽なデータベースとしてよく使われているものだそうです。

コードは以下のような感じになりました。

<Python>
#UTF8
import smbus
from time import sleep
import sqlite3
import datetime

#温度測定プログラム"Raspberry Piで学ぶ電子工作 プログラム7-1を流用"
#変数"InputValue"に温度が格納される

#データベースファイルが存在しない場合は作成
dbpath = '/home/pi/Documents/roomtemp_db.sqlite'

#コネクション生成
connection = sqlite3.connect(dbpath)

#カーソル生成
cursor = connection.cursor()

#テーブルが存在しない場合は作成
#ID、日付時刻、温度の3列で構成
cursor.execute("CREATE TABLE IF NOT EXISTS roomtemptable (id INTEGER PRIMARY KEY AUTOINCREMENT, datetime TEXT, temp REAL)")

#現在時刻を取得
nowdt = datetime.datetime.now()
nowdt = nowdt.strftime('%Y%m%d-%H:%M:%S')

#SQLコマンド実行
sql = 'insert into roomtemptable (datetime, temp) values (?, ?)'
data = (nowdt, inputValue,)
cursor.execute(sql, data)
connection.commit()

connection.close()

SQLiteの面白いと思ったところはコード内でファイル作成から行えるところです。既に同名のファイルが存在した場合は上書きせずにスキップしてくれるので、作る方としては楽です。これはテーブルについても同様です。

SQLコマンドの実行はcursorインスタンスのexecuteメソッドで行います。SQL文のパラメータはタプル(データの組)としてexecuteメソッドの第2引数に設定することができます。他にもパラメータの使い方はあるようなのですが、何となく私はこの記法が理解しやすかったのでそうしました。

日付時刻の処理

少々詰まったのは日付時刻の処理で、取得したdatetime型の情報を文字列型に変換する方法が分からずに苦労しました。結局datetimeオブジェクトのstrftimeメソッドで変換可能なことが分かったのでそれを使いました。

まとめ

このプログラムを実行することでデータベースを作成し、その中のテーブルに日付時刻と共に温度情報を書き込むことができます。

後はこのプログラムを定期的に実行すればOKです。次回のエントリではcronを使ってこのプログラムを自動実行する方法を整理してみたいと思います。

参考リンク

sqlite3—SQLite データベースに対する DB-API 2.0 インターフェース

datetime—基本的な日付型および時間型

[Python.org]

Pythonのドキュメント群は非常に分かりやすい日本語情報があるので、何と言ってもオフィシャルの情報が頼りになりました。

Raspberry Piで部屋の温度を長期間記録する(準備編)

部屋の環境測定のために、温度を一定時間ごとに長期間モニタリングする方法はないかと考えていました。多少のプログラミングの心得があればRaspberry Piで実現可能らしいことが分かったので材料を準備して試してみることにしました。

用意したもの

  • 講談社 Raspberry Piで学ぶ電子工作(書籍)
  • 講談社 Raspberry Piで学ぶ電子工作用パーツセット
  • Raspberry Pi4 ModelB(8GB)
  • Raspberry Pi4用ケース
  • HDMIケーブル TypeDオス-TypeAオス
  • スイッチングACアダプタ(USB TypeC)5.1V-3.8A
  • MicroSDHCカード
  • Raspberry Pi Zero WH
  • Raspberry Pi Zero WH用ケース
  • スイッチングACアダプタ(USB MicroB)5V-3A

Raspberry Pi本体が2種類あるのはPi4が開発機でZero WHが本番機という構成のためです。開発機が本番機を兼ねる場合は上記リスト中下側の3行は不要になります。

今回は本体を2台用意しているので正味の調達価格は2.6万円くらいになってしまいましたが、とりあえず1台で始めるなら2万円くらいで書籍やパーツも含めて一通り揃うと思います。

書籍について

今回入門書として使った”Raspberry Piで学ぶ電子工作”はとても分かりやすく、かなりの良書だと思いました。

Linux系のOSやプログラミングが一切未経験という方が読んでも分かるように説明がされており、分かりやすい説明の見本としても秀逸なのではないかと思います。

そしてこの書籍に関しては書籍の内容と連動したパーツセットが秋月電子通商で販売されていて、これも便利です。電子工作部品は規格が分かりにくく、慣れていないと必要な部品を揃えるのが難しいと思います。

私は過去に作ろうと思った物の部品に発注忘れや発注間違いがあって何度も注文したり、必要な部品の最低発注数量が数百個となっていたりで困った記憶があります。

この点、この書籍連動パーツセットを買えば過不足なく部品が入っていて書籍の内容を全てこなせますし、書籍の内容を終えたら部品を別の用途にそのまま転用できるので無駄がなく便利です。いきなりアラカルトで部品を揃えるより確実にオススメできます。

プログラミングの入門にも

書籍の内容はRaspberry Pi上で動くPythonのプログラムを使ってLEDを光らせたり画像を取得したりするといった内容です。

現実世界にプログラムで指示したことが反映されるので、学習初期にありがちな”プログラムで何をしたらいいか分からない”や”プログラムで文字が表示されても別に面白くない”といった問題を解決できます。学習者のモチベーション維持に非常に良いのではないかと思います。

Quick7のファームウェアカスタマイズ

自作キーボードはファームウェアのカスタマイズで自分好みの機能にできるのも魅力です。先日組み立てたQuick7を一部カスタマイズしてみました。

LEDの明るさをおとなしめに調節してみました。

Quick7にはLEDが搭載されていますが、デフォルトで最大輝度に設定されているので少々まぶしく感じます。LEDの輝度はファームウェアで調節可能です。

設定ファイルの場所

LEDの明るさはファームウェアに含まれているconfig.hファイルの中身を書き換えて行います。config.hファイルはQMK MSYSでデフォルトのファームウェアをコンパイルしていた場合、

C:\Users\[ユーザ名]\qmk_firmware\keyboards\[ベンダ名]\[キーボード名]

のフォルダに格納されています。

設定ファイルの編集

config.hファイルはサクラエディタなどのテキストエディタで開いて編集できます。

Quick7の場合はファイル内の # define RGBLIGHT_LIMIT_VAL xxのxx部分を0-256の数字で指定することで明るさを調節できます。ファイル書き換え後にファームウェアを再コンパイルし、編集したconfig.hファイルをファームウェアに組み込んでおきます。

ちなみに上の写真のLED輝度は64に設定しています。

ファームウェアを上書きする場合の注意

最後に完成したファームウェアを書き込む際、QMK Toolboxで1回ファームウェアを書き込んだキーボードに対して上書きを行いたい場合は、Auto Flashを有効にしておきます。

ここが有効になっていないと1回リセットモードに入った後にドライバが読み込まれ、デバイスが自動的にリセットモードを抜けてしまいます。
Auto Flashにしておけばリセットモードに入った瞬間書き込みが開始されるので、ファームウェア上書きの場合でも確実に書き込みが可能です。

逆作用ピンセット

電子工作を中心に工作用に逆作用ピンセットという道具を買いました。

通常のピンセットは力のかかっていない状態では開いていて、指で挟むことで先端が閉じて物をつかみます。逆作用ピンセットはその逆で、力のかかっていない状態ではバネがかかっていて閉じており、指で挟むと開くという性質があります。

要するに洗濯ばさみと同じ機能ですが、逆作用ピンセットは遠くの物を挟めるので基板の中央付近にある部品を一時的に押さえておきたい時などに便利です。

Qucik7のファームウェア書き込み

先日組み立てた自作キーボードキット”Quick7″のファームウェア書き込み手順について整理しておこうと思います。

Quick7には自作キーボードキットで広く使われている”QMK”というファームウェアが採用されています。ファームウェアの構造や記法がキーボード間で共通なので、1回覚えてしまえば様々な自作キーボードキットのカスタマイズを楽しめます。

基本的にはQMKの公式ドキュメントが非常に詳しいのでこれを見ていただくのが一番良いとは思いますが、情報量が非常に多いのでこのエントリではQuick7を例にWindows環境において「これだけでOK」な手順をかいつまんでまとめておきたいと思います。

ファームウェアのカスタマイズ環境構築

デフォルトのファームウェアを使う場合でもカスタマイズ環境を構築しておく必要があるので、まず環境構築を行います。

ファームウェアのカスタマイズ環境はWindowsの場合”QMK_MSYS“をインストールします。これとサクラエディタ等のプレーンテキストを編集できるテキストエディタをインストールすればカスタマイズ環境は完成です。

ファームウェアのカスタマイズ環境設定

QMK_MSYSをインストールした後にQMKを起動し、表示されるコンソールに

[QMK]
qmk setup

と入力します。公式のドキュメントにある通り、表示されるプロンプトにyと答えていくと設定は完了です。このコマンド入力はWindowsのコマンドプロンプトで行うものではなく、QMK起動時に表示されるコンソールで行う点に注意が必要です。

続いてQuick7のデフォルトキーマップ(デフォルト設定のファームウェア)を生成します。同様にQMKのコンソールで

[QMK]
qmk compile -kb yushakobo/quick7 -km default

と入力すると生成ができます。

ファームウェアのフラッシュ(書き込み)

生成したファームウェアはQMKのインストールフォルダを変更していなければ、

[システムドライブ]:\Users\[ユーザ名]\qmk_firmware

の直下に*.hexという拡張子で保存されます。命名規則は決まっており、

[製造元]_[製品名]_[キーマップ名].hex

です。今回例に挙げているQuick7の場合は、”yushakobo_quick7_default.hex”というファイルがQuick7のデフォルトファームウェアになります。

ファームウェアの書き込みにはQMK Toolboxを使います。これを使うとGUI操作で簡単にファームウェアを書き込めます。書き込み作業の前にインストールしておきます。

書き込む際はまずキーボードをPCに接続し、キーボードをブートローダモード(ファームウェアを書き込めるモード)に移行します。ブートローダモードへの入り方はキーボードごとに違うそうですが、Quick7の場合は背面のスイッチを押すことで移行が可能です。

水色で囲ったところがスイッチです。ペン先など細い物で押します。

QMK Toolboxのウィンドウの上にファームウェアのhexファイルをドラッグ&ドロップするとファームウェアが書き込み待ちになります。その後にQMK Toolboxの”Flash”ボタンを押してしばらく待つとファームウェアが書き込まれ、キーボードがPC側にキーボードとして認識されます。

まとめ

ファームウェア自体を直接操作することになるので、いわゆる”文鎮化”の可能性がチラつき緊張しますが、公式ドキュメントを読んでその通りに進めれば引っかかる部分はないと思います。

ファームウェアが書き込まれてWindowsが新しいUSBキーボードを認識した瞬間は結構新鮮な驚きがあります。緊張する作業ではありますがある意味作業全体のハイライトとも言える部分なので、あわてず楽しんで作業をして見るのが良いと思います。