From 29deec4dbe7d9a385e28885179a244e5b90d06cd Mon Sep 17 00:00:00 2001
From: sat0ken <15720506+sat0ken@users.noreply.github.com>
Date: Fri, 30 Aug 2024 07:55:17 +0900
Subject: [PATCH 1/2] update doc
---
README.md | 22 +++++
buildguide.md | 268 ++++++++++++++++++++++++++------------------------
2 files changed, 160 insertions(+), 130 deletions(-)
diff --git a/README.md b/README.md
index 1cc6e23..2d7801b 100644
--- a/README.md
+++ b/README.md
@@ -441,6 +441,8 @@ $ tinygo flash --target waveshare-rp2040-zero --size short ./13_rotary_button/
$ tinygo monitor
```
+ロータリーエンコーダーを押すと、`tinygo monitor` を実行中の terminal に `pressed` が出力されます。
+
## アナログジョイスティック
アナログジョイスティックは押し込みでデジタル値として、 XY の二軸に対してはアナログ値として認識されます。
@@ -687,3 +689,23 @@ Vial は以下にあり、 WebHID API に対応した Edge / Chrome などから
以下にあります。
* https://github.com/sago35/keyboards
+
+
+## トラブルシュート
+
+- プログラムの書き込みが出来ない
+
+`tinygo ports` コマンドでマイコンが認識されているか確認してください。正常に認識されていれば、`waveshare-rp2040-zero` が出力されます。
+
+```
+$ tinygo ports
+Port ID Boards
+COM7 2E8A:0003 waveshare-rp2040-zero
+```
+
+認識されていない場合は、マイコンをPCから外して挿し直してください。
+
+## 作例
+
+https://x.com/ysaito8015/status/1827626098450166185
+https://x.com/ysaito8015/status/1827630059580231788
diff --git a/buildguide.md b/buildguide.md
index e87190d..14b5819 100644
--- a/buildguide.md
+++ b/buildguide.md
@@ -31,42 +31,42 @@
### 基板
-写真左側が表面 (最終的に上側となる) で、右側が裏面 (下側) です。
+写真左側が表面 (最終的に上側となる) で、右側が裏面 (下側) です。

### Grove コネクタ
-2mm ピッチ 4 ピンのコネクタです。
-ピン配置は 1 ピンから SCL / SDA / 3.3V / GND です。
-I2C 信号である SCL / SDA は OLED と共有になっていることに注意が必要です。
+2mm ピッチ 4 ピンのコネクタです。
+ピン配置は 1 ピンから SCL / SDA / 3.3V / GND です。
+I2C 信号である SCL / SDA は OLED と共有になっていることに注意が必要です。

-Grove 接続可能な拡張ボードは多数販売されています。
-zero-kb02 で使えるのは 3.3V I2C で使えるものに限定されます。
+Grove 接続可能な拡張ボードは多数販売されています。
+zero-kb02 で使えるのは 3.3V I2C で使えるものに限定されます。
* https://www.switch-science.com/search?type=article%2Cpage%2Cproduct&q=Grove*
* https://www.switch-science.com/search?type=article%2Cpage%2Cproduct&q=Grove*+I2C* ← I2C で絞り込み
### ダイオード
-向きがあるので注意です。
-逆につなぐと動作しないので注意してください。
+向きがあるので注意です。
+逆につなぐと動作しないので注意してください。

-以下のようなリードベンダーを用いて曲げるときれいに曲げることができます。
+以下のようなリードベンダーを用いて曲げるときれいに曲げることができます。

### ジョイスティック
-アナログ操作を可能にするためのジョイスティックです。
-傾き及び押し込みを検知できます。
-アルプスアルパイン製でシリーズ全体で世界の据え置きゲーム端末機の 8 割以上のシェア、だそうです。
+アナログ操作を可能にするためのジョイスティックです。
+傾き及び押し込みを検知できます。
+アルプスアルパイン製でシリーズ全体で世界の据え置きゲーム端末機の 8 割以上のシェア、だそうです。

@@ -84,107 +84,107 @@ zero-kb02 で使えるのは 3.3V I2C で使えるものに限定されます。
### OLED 液晶
-I2C 接続の OLED (単色) です。
-いわゆるディスプレイです。
-128x64 ピクセルでコントローラーは SSD1306 です。
+I2C 接続の OLED (単色) です。
+いわゆるディスプレイです。
+128x64 ピクセルでコントローラーは SSD1306 です。

### プルアップ抵抗
-I2C 用の 2.2kΩ抵抗です。
+I2C 用の 2.2kΩ抵抗です。

### L型ピンソケット 2x6
-OLED の下側に配置する L型のピンソケットです。
-上下 2 列の構成です。
+OLED の下側に配置する L型のピンソケットです。
+上下 2 列の構成です。

### キースイッチ
-押下すると裏面の端子 2 つが接続状態となります。
-多くの製品があります。
+押下すると裏面の端子 2 つが接続状態となります。
+多くの製品があります。

### キーキャップ
-キースイッチにかぶせて使います。
-素材や形状、色など、多くの製品があります。
+キースイッチにかぶせて使います。
+素材や形状、色など、多くの製品があります。

### ソケット
-キースイッチをはんだ付けせずに抜き差しできるようにするためのソケットです。
+キースイッチをはんだ付けせずに抜き差しできるようにするためのソケットです。

### RP2040 Zero
-RP2040 というマイコンが搭載されたマイコンボードです。
+RP2040 というマイコンが搭載されたマイコンボードです。

### ロータリーエンコーダー
-回転および押し込みを検知することができます。
-ボリュームやマウスのホイール等に使用されています。
+回転および押し込みを検知することができます。
+ボリュームやマウスのホイール等に使用されています。

### SK6812MINI-E
-フルカラーの LED です。
-基板にはんだ付け済みです。
+フルカラーの LED です。
+基板にはんだ付け済みです。

### コム足
-ケース底面に貼り付けて滑り止めとして使います。
+ケース底面に貼り付けて滑り止めとして使います。
### USB ケーブル (A to C)
-パソコンとの通信用です。
-環境によっては C to C の場合もあります。
+パソコンとの通信用です。
+環境によっては C to C の場合もあります。
### さらねじ 2.1x10
-ケースおよび作業台で兼用です。
+ケースおよび作業台で兼用です。
### ケース
-ケースです。
+ケースです。
### ロータリーエンコーダーノブ
-ロータリーエンコーダー用のつまみです。
+ロータリーエンコーダー用のつまみです。

### ロータリーエンコーダーノブ (大)
-ロータリーエンコーダー用のつまみです。
-指で回し続けるような用途はこちらを使うとよい。
+ロータリーエンコーダー用のつまみです。
+指で回し続けるような用途はこちらを使うとよい。

### ジョイスティックノブ
-ジョイスティック用のノブです。
+ジョイスティック用のノブです。

# はんだ付け/組み立て
-以降、はんだ付けおよび組み立てについて記載します。
-各項目はそれぞれ表面から作業するものと、裏面から作業するものがあります。
-作業開始時点の向きを以下のバッジで記載しているので参考にしてください。
+以降、はんだ付けおよび組み立てについて記載します。
+各項目はそれぞれ表面から作業するものと、裏面から作業するものがあります。
+作業開始時点の向きを以下のバッジで記載しているので参考にしてください。
* 
* 
@@ -192,212 +192,213 @@ RP2040 というマイコンが搭載されたマイコンボードです。
## 作業台の組み立て
-はんだ付けをスムーズに行うために作業台を組み立てます。
+はんだ付けをスムーズに行うために作業台を組み立てます。
+となりの人に底板を持ってもらうとスムーズに組み立てられます。

-ケースのボトム側に `はんだサポート` をねじ止めして下さい。
-以降の作業はできるだけ作業台の上で実施してください。
+ケースのボトム側に `はんだサポート` をねじ止めして下さい。
+以降の作業はできるだけ作業台の上で実施してください。
##  ダイオード x 12
-`ダイオード折り曲げ` に沿わせてピンを曲げる。
+`ダイオード折り曲げ` に沿わせてピンを曲げる。

-ダイオード x 12 を向きに注意しつつ差し込む。
-右の写真のようにシルク印字された三角形のマークの向きとダイオードの黒い側 (矢印部) の向きを合わせてください。
+ダイオード x 12 を向きに注意しつつ差し込む。
+右の写真のようにシルク印字された三角形のマークの向きとダイオードの黒い側 (矢印部) の向きを合わせてください。


-片側をはんだ付けする。
-位置が大きくずれたら再度熱してはんだを溶かし、位置を整える。
+片側をはんだ付けする。
+位置が大きくずれたら再度熱してはんだを溶かし、位置を整える。

-両側はんだ付け出来たら完成。
+両側はんだ付け出来たら完成。

-すべてのはんだ付けが終わったら裏返してニッパー等で足をカットしてください。
+すべてのはんだ付けが終わったら裏返してニッパー等で足をカットしてください。

##  抵抗 x 2
-片側をはんだ付けする。
-抵抗に向きはありません。
-位置が大きくずれたら再度熱してはんだを溶かし、位置を整える。
+片側をはんだ付けする。
+抵抗に向きはありません。
+位置が大きくずれたら再度熱してはんだを溶かし、位置を整える。

-両側はんだ付けできたら完成。
-すべてのはんだ付けが終わったら裏返してニッパー等で足をカットしてください。
+両側はんだ付けできたら完成。
+すべてのはんだ付けが終わったら裏返してニッパー等で足をカットしてください。
##  マイコンのピン
-ボードにピンソケット (1x8 x 2 + 1x7 x 1) を置く。
+ボードにピンソケット (1x8 x 2 + 1x7 x 1) を置く。

-RP2040 Zero 付属のピンヘッダーを刺してください。
-写真のようにピンが長いほうが下側となり、長いほうをソケットに差し込みます。
-これにより、垂直を出すことができます。
+RP2040 Zero 付属のピンヘッダーを刺してください。
+写真のようにピンが長いほうが下側となり、長いほうをソケットに差し込みます。
+これにより、垂直を出すことができます。

-RP2040 Zero を置いてどれか 1 ピンだけはんだ付けする。
-はんだ付けできたら位置/向きを確認し、必要があればはんだを溶かして整える。
-しっかり深く刺さっていることを確認すること。
+RP2040 Zero を置いてどれか 1 ピンだけはんだ付けする。
+はんだ付けできたら位置/向きを確認し、必要があればはんだを溶かして整える。
+しっかり深く刺さっていることを確認すること。

-すべてのピンのはんだ付けが終わったら、ソケットから外しておいてください。
+すべてのピンのはんだ付けが終わったら、ソケットから外しておいてください。

##  RGB LED (SK6812MINI-E)
-(実装済みのため省略)
+(実装済みのため省略)
##  スイッチソケット
-シルクに合わせてソケットを置く。
+シルクに合わせてソケットを置く。

-最初に片側はんだ付けする。
-しっかりとランド (基板側) を温めてからはんだを溶かす。
-はんだが溶けたら、籠手を着けたまま指でソケットを下に押し込む。
-ソケットが基板にしっかりとた位置ではんだ付けを完了させる必要あり。
-はんだ付けできたら位置/向きを確認し、必要があればはんだを溶かして整える。
+最初に片側はんだ付けする。
+しっかりとランド (基板側) を温めてからはんだを溶かす。
+はんだが溶けたら、籠手を着けたまま指でソケットを下に押し込む。
+ソケットが基板にしっかりとた位置ではんだ付けを完了させる必要あり。
+はんだ付けできたら位置/向きを確認し、必要があればはんだを溶かして整える。


-続いて反対側をはんだ付けする。
+続いて反対側をはんだ付けする。

##  ジョイスティック
-ここから表面での作業になります。
+ここから表面での作業になります。
-ジョイスティックを置いたら矢印の箇所をはんだ付けする。
-はんだ付け出来たらしっかり刺さっているのか確認し、刺さってない場合ははんだを溶かして位置を整える。
+ジョイスティックを置いたら矢印の箇所をはんだ付けする。
+はんだ付け出来たらしっかり刺さっているのか確認し、刺さってない場合ははんだを溶かして位置を整える。

-もう一か所はんだ付けする。
+もう一か所はんだ付けする。

-裏返してすべての箇所をはんだ付けする。
-矢印の 4 箇所ははんだ付けを省略しても良い (はんだ付けしても良い。
+裏返してすべての箇所をはんだ付けする。
+矢印の 4 箇所ははんだ付けを省略しても良い (はんだ付けしても良い。

##  Grove コネクター
-矢印のピンだけはんだ付けする。
-はんだ付けできたら位置/向きを確認し、必要があればはんだを溶かして整える。
+矢印のピンだけはんだ付けする。
+はんだ付けできたら位置/向きを確認し、必要があればはんだを溶かして整える。

-次に矢印のピンを止めて 2 ピン止まっている状態にする。
-はんだ付けできたら位置/向きを確認し、必要があればはんだを溶かして整える。
+次に矢印のピンを止めて 2 ピン止まっている状態にする。
+はんだ付けできたら位置/向きを確認し、必要があればはんだを溶かして整える。

-残りのピンをはんだ付けする。
+残りのピンをはんだ付けする。
##  L型ピンソケット 2x6
-Grove コネクターと同じで 1 ピンだけはんだ付けする。
-はんだ付けできたら位置/向きを確認し、必要があればはんだを溶かして整える。
+Grove コネクターと同じで 1 ピンだけはんだ付けする。
+はんだ付けできたら位置/向きを確認し、必要があればはんだを溶かして整える。

-次に矢印のピンを止めて 2 ピン止まっている状態にする。
-はんだ付けできたら位置/向きを確認し、必要があればはんだを溶かして整える。
+次に矢印のピンを止めて 2 ピン止まっている状態にする。
+はんだ付けできたら位置/向きを確認し、必要があればはんだを溶かして整える。

-残りのピンを裏側からはんだ付けする。
+残りのピンを裏側からはんだ付けする。
##  ロータリーエンコーダー
-裏表どちらからでも刺さるため、向きに注意してください。
-表面から基板に差し込んでください。
-その際、作業台から外して差し込んだ方が簡単です。
-差し込む向きに注意 (ジョイスティックと同じ側に回転部がくる) してください。
-裏から見て、ちゃんと刺さっていることを確認すること。
+裏表どちらからでも刺さるため、向きに注意してください。
+表面から基板に差し込んでください。
+その際、作業台から外して差し込んだ方が簡単です。
+差し込む向きに注意 (ジョイスティックと同じ側に回転部がくる) してください。
+裏から見て、ちゃんと刺さっていることを確認すること。

-Grove コネクターと同じで 1 ピンだけはんだ付けする。
-はんだ付けできたら位置/向きを確認し、必要があればはんだを溶かして整える。
+Grove コネクターと同じで 1 ピンだけはんだ付けする。
+はんだ付けできたら位置/向きを確認し、必要があればはんだを溶かして整える。

-2 ピン目をはんだ付けする。
-はんだ付けできたら位置/向きを確認し、必要があればはんだを溶かして整える。
+2 ピン目をはんだ付けする。
+はんだ付けできたら位置/向きを確認し、必要があればはんだを溶かして整える。

-残りのピンをはんだ付けする。
+残りのピンをはんだ付けする。
##  マイコンのソケット
-ソケット (1x8 x 2 + 1x7 x 1) を刺して、マイコンも置く (これにより垂直を出す)。
-必要に応じてマスキングテープ等で止める。
-誰かに手伝ってもらうのも手。
+ソケット (1x8 x 2 + 1x7 x 1) を刺して、マイコンも置く (これにより垂直を出す)。
+必要に応じてマスキングテープ等で止める。
+誰かに手伝ってもらうのも手。

-裏面から ① → ② → ③ の順ではんだ付けする。
-1 ピン毎にちゃんと刺さっているかを確認し、必要に応じてはんだを溶かして位置を整える。
+裏面から ① → ② → ③ の順ではんだ付けする。
+1 ピン毎にちゃんと刺さっているかを確認し、必要に応じてはんだを溶かして位置を整える。

-残りのピンをはんだ付けする。
+残りのピンをはんだ付けする。
##  液晶
-基板に液晶を軽く差し込む (奥まで刺さず、ほんの少しだけ差し込む)。
+基板に液晶を軽く差し込む (奥まで刺さず、ほんの少しだけ差し込む)。

-作業台からおろして、保護フィルムを剥がす。
-写真では保護フィルムをはがしていないですが、この時点ではがしてください。
-ケースを付ける。
-明らかに液晶の位置が悪ければ調整する。
-ケースはしっかり基板にはまるまで押し込む事 (作業台のままではこの作業が出来ない)。
+作業台からおろして、保護フィルムを剥がす。
+写真では保護フィルムをはがしていないですが、この時点ではがしてください。
+ケースを付ける。
+明らかに液晶の位置が悪ければ調整する。
+ケースはしっかり基板にはまるまで押し込む事 (作業台のままではこの作業が出来ない)。

-裏返してはんだ付けする。
-ここでも 1 ピンだけ付けてひっくり返して確認、というのを繰り返す。
-1 ピン毎にちゃんと刺さっているかを確認し、必要に応じてはんだを溶かして位置を整える。
+裏返してはんだ付けする。
+ここでも 1 ピンだけ付けてひっくり返して確認、というのを繰り返す。
+1 ピン毎にちゃんと刺さっているかを確認し、必要に応じてはんだを溶かして位置を整える。

-4 ピンすべてはんだ付け出来たら完成。
+4 ピンすべてはんだ付け出来たら完成。
# 以降の組み立て
@@ -405,48 +406,55 @@ Grove コネクターと同じで 1 ピンだけはんだ付けする。
## キースイッチ
刺さるように刺す。
-ホットスワップ可能となっているので、 Vial の matrix tester 等を立ち上げたまま差し込むと確認が簡単です。
-よくある失敗例としては足がうまく刺さらない、というものです。
-一度抜いて、足をまっすぐに伸ばしてから、再度トライしてください。
+ホットスワップ可能となっているので、 Vial の matrix tester 等を立ち上げたまま差し込むと確認が簡単です。
+よくある失敗例としては足がうまく刺さらない、というものです。
+一度抜いて、足をまっすぐに伸ばしてから、再度トライしてください。
## キーキャップ
刺さるように刺す。
-本当は向き (縦横) があるけど、気にしなくてもよい。
+本当は向き (縦横) があるけど、気にしなくてもよい。
## ジョイスティックノブ、ロータリーエンコーダーノブ
-まっすぐ上から差し込むとよい。
-抜くときに液晶を触らないように注意。
+まっすぐ上から差し込むとよい。
+抜くときに液晶を触らないように注意。
## マイコン
-刺さるように刺す。
-抜くときは、ピンセットなどで少しずつ緩める形で外していく。
+刺さるように刺す。
+抜くときは、ピンセットなどで少しずつ緩める形で外していく。
## ねじ
-締めすぎないように注意。
-ねじを回すのにほとんど力が必要ない、というぐらいがちょうどよい。
-基板とケースの間に隙間が空く場合、ねじの締めこみで解決するのではなく、手で調整してください。
+締めすぎないように注意。
+ねじを回すのにほとんど力が必要ない、というぐらいがちょうどよい。
+基板とケースの間に隙間が空く場合、ねじの締めこみで解決するのではなく、手で調整してください。
# 動作確認
-以下のファームウェア (`*.uf2`) を書き込んで確認する。
-ロータリーエンコーダーを回してみて RGB LED が光ること、音量が変わることが確認できれば良い。
-それ以外のキーも適宜押してみて確認する。
+以下のファームウェア (`*.uf2`) を書き込んで確認する。
+
+## 書き込み方法
+
+1. マイコンとPCをUSB Type-cケーブルで接続する
+2. エクスプローラを開き、USBマスストレージとして認識されていることを確認する
+3. ダウンロードしたファームウェアをドラックアンドドロップでUSBマスストレージに置く
+
+ロータリーエンコーダーを回してみて RGB LED が光ること、音量が変わることが確認できれば良い。
+それ以外のキーも適宜押してみて確認する。
* https://github.com/sago35/keyboards/releases
* zero-kb02.uf2
-Vial の matrix tester で確認してもよい。
-キーバインドも Vial から確認することができる。
+Vial の matrix tester で確認してもよい。
+キーバインドも Vial から確認することができる。
* https://vial.rocks/
# その他
-バッジ作成には以下を使用しました。
+バッジ作成には以下を使用しました。
https://michaelcurrin.github.io/badge-generator/
From 07122464cbad749cbdf1f166d713eeb9f0d3c09d Mon Sep 17 00:00:00 2001
From: sat0ken <15720506+sat0ken@users.noreply.github.com>
Date: Sat, 31 Aug 2024 10:38:54 +0900
Subject: [PATCH 2/2] update doc
---
README.md | 7 +++++++
buildguide.md | 10 +++++-----
2 files changed, 12 insertions(+), 5 deletions(-)
diff --git a/README.md b/README.md
index 2d7801b..4388b1a 100644
--- a/README.md
+++ b/README.md
@@ -601,6 +601,9 @@ $ tinygo flash --target waveshare-rp2040-zero --size short --monitor ./12_matrix
ループを整理したり、キー数を可変にしたりすることで、キーボードファームウェアに近づいていきます。
+※ matrix 配線を詳しく知りたい方は以下をご覧ください
+https://blog.ikejima.org/make/keyboard/2019/12/14/keyboard-circuit.html
+
## Pin 入力を使った USB HID Keyboard
ロータリーエンコーダーの押下状態を使って USB HID Keyboard を作ってみましょう。
@@ -624,6 +627,8 @@ for {
$ tinygo flash --target waveshare-rp2040-zero --size short ./14_hid_keyboard/
```
+ロータリーエンコーダーを押して動作を確認しましょう。
+
## Pin 入力を使った USB HID Mouse
ロータリーエンコーダーの押下状態を使って今度は USB HID Mouse を作ってみましょう。
@@ -645,6 +650,8 @@ for {
$ tinygo flash --target waveshare-rp2040-zero --size short ./15_hid_mouse/
```
+ロータリーエンコーダーを押して動作を確認しましょう。
+
# sago35/tinygo-keyboard を使う
自作キーボードに必要な要素、というのは人によって違うと思います。
diff --git a/buildguide.md b/buildguide.md
index 14b5819..dd4d634 100644
--- a/buildguide.md
+++ b/buildguide.md
@@ -192,8 +192,8 @@ RP2040 というマイコンが搭載されたマイコンボードです。
## 作業台の組み立て
-はんだ付けをスムーズに行うために作業台を組み立てます。
-となりの人に底板を持ってもらうとスムーズに組み立てられます。
+はんだ付けをスムーズに行うために作業台を組み立てます。
+隣の人に底板を持ってもらうとスムーズに組み立てられますので、協力して作業してください。

@@ -364,8 +364,8 @@ Grove コネクターと同じで 1 ピンだけはんだ付けする。
ソケット (1x8 x 2 + 1x7 x 1) を刺して、マイコンも置く (これにより垂直を出す)。
-必要に応じてマスキングテープ等で止める。
-誰かに手伝ってもらうのも手。
+必要に応じてマスキングテープ等で止める。
+隣の人に裏から押さえつけてもらってはんだ付けしてもよいです。適時協力して進めてください。

@@ -442,7 +442,7 @@ Grove コネクターと同じで 1 ピンだけはんだ付けする。
3. ダウンロードしたファームウェアをドラックアンドドロップでUSBマスストレージに置く
ロータリーエンコーダーを回してみて RGB LED が光ること、音量が変わることが確認できれば良い。
-それ以外のキーも適宜押してみて確認する。
+それ以外のキーも適宜押してみてLEDが光ることを確認する。
* https://github.com/sago35/keyboards/releases
* zero-kb02.uf2