Files
mozc-devices/mozc-dial/board/README_ja.md
Shun Ikejima 6783bfea76 Add mozc dial version.
Co-authored-by: Takashi Toyoshima <toyoshim@google.com>
Co-authored-by: Shun Ikejima <ikejima@google.com>
2025-10-01 09:47:01 +09:00

12 KiB
Raw Blame History

基板組立ガイド

キーボードの組み立て全体についてはビルドガイドを参照してください。

各ダイヤル版共通

センサー基板(1枚あたり)

部品表

参照名 内容 備考
R1,R3,R5 抵抗 330Ω 3 スルーホール用でも表面実装用でも可
R2,R4,R6 未実装 -
U1-3 反射型フォトセンサー RPR-220 3 (例:反射型フォトセンサー(フォトリフレクター) RPR-220
J1 2.54mmピッチ 1x5 ピンヘッダー 1 L字のものが望ましいピンヘッダー (オスL型) 1×40 (40P)

実装

この説明では3ビット分全て実装する場合について説明していますが、9ダイヤル版ではセンサーによっては1ビットまたは2ビット分の実装で良い場合があります。その場合は、上(U1)から順に必要な数だけ実装してください。詳しくは9ダイヤル版の説明に従ってください。

また、すべて制作する前に、実際にグレイコード板の値が適切に読み取れるか確認し、問題がない事を確認してから作ると万が一の際の手間が軽減できます。うまくいかない場合にはR2,R4,R6に抵抗を実装します。詳しくは読み取りセンサー調整を確認してください。

Sensor RPR-220

まずはU1、U2、U3の印刷が見える方から、フォトセンサーを取りつけます。向きに十分気をつけて下さい。右上の角が面取りされているので、印刷面とセンサーの形状を見て、同じ向きになるよう設置してください。正しく設置したら、裏側から不要な足を切り取りハンダ付けします。

Sensor Registors

裏面はこの図のように(SENSOR)側に3つ、(LED)側に3つの抵抗を取り付けられるようになっています。抵抗はスルーホール用のものと、チップ抵抗と、いずれのタイプでも取り付けられるようになっているので、お好みいのパーツを使って取り付けてください。ただし、スルーホール用の物でも、穴には通さずに取り付けた方がダイヤル取り付け時に安定します。

抵抗については前述の通り調整に依存しますが、標準では(SENSOR)側は未実装、(LED)側に330Ωの抵抗を取り付ける事を推奨します。

また、1x5のピンヘッダーについては、L字の物を使うとケースにうまく収まります。

組立時には⇧Centerマークに注意してください。ダイヤル内周側が矢印の方向になります。

1ダイヤル版

センサー基板以外は市販の汎用部品を使う入門版です。

部品

組み立て

センサー基板

各ダイヤル版共通で説明したセンサー基板を、3bit実装で2つ組み立てます。 1つをSENSOR L、もう1つをSENSOR Hと呼ぶことにします。

実験時に使用したもので見本としては綺麗なものではありませんが、スルーホール型の抵抗とチップ抵抗それぞれの実装例がこちらになります。

Sensor PCB Pair

それぞれに基板のピンヘッダーにはV123Gの5つの端子があります。 このうちVは3.3V電源へ繋ぐのですが、今回利用するRaspberry Pi Picoには3.3V出力端子は1つしかありませんので、写真の赤い配線のように基板上でVが通っている端子ペアを接続します。 センサー基板の説明で上げた図においてVと書かれた長方形の内側にある端子、つまり抵抗用パターンのうち外側の6箇所がVになっています。

上側のセンサー基板がSENSOR Lで内周側、下側のセンサー基板がSENSOR Hで外周側になります。 Vを相互接続したので、一番上の最も内側にあたる端子のVは今回接続不要となります。

ステッピングモータドライブモジュール

Motor Driver

Raspberry Pi PicoのGPIOでは直接モーターをドライブできないため、1ダイヤル版では市販のドライブモジュールを流用します。シンクタイプのドライバなら今回指定したもの以外でも構いませんし、9ダイヤル版の回路を参考に自作する事も可能です。

今回参考に上げた物を例にすると、緑で囲んだIN1IN4がRaspberry Pi Picoからの出力の14を受ける端子になります。黒で囲んだGNDと赤で囲んだVCCがそれぞれGVです。 モーターの方はUSBバスから5Vの電源をRaspberry Pi Pico経由で引き込みます。0.3Aくらい必要となるため、1ダイヤル版のファームウェアではUSB microでの上限である0.5Aを要求しています。

白い端子はステッピングモータとの接続に使います。

Raspberry Pi Pico

Raspberry Pi Pico - Pin Headers

市販のRaspberry Pi Picoに対して、写真のようにL字のピンヘッダーを取り付けます。 写真で下の方にあるDEBUG用のピン3つについては、ファームウェアの開発とデバッグが必要な場合のみで構いませんので、お好みで取り付けてください。

Raspberry Pi Pico - Pin Out

1ダイヤル版で使うピンについては、図のような割り当てになっています。この図に従って、SENSOR L、SENSOR H、MOTORと接続します。デバッグ時の標準出力をUARTから出力する場合はTXから出力されます。

ファームウェア書き込み

Raspberry Pi Picoの一般的な方法に従います。Raspberry Pi Pico基板上のBOOTボタンを押しながらPCに接続するとRPI-RP2という名前のドライブが出現するので、firmware/prebuilt/one_dial.uf2をこのドライブの中にコピーします。正しく書き込みができた場合ドライブが消えます。OSによって警告が表示されますが問題ありません。これ以降、このデバイスをBOOTボタンを押さずにPCに接続した場合は、USBキーボードとして認識されるようになります。

9ダイヤル版

部品

メイン基板

部品表

参照名 内容
C101 コンデンサ 10uF 1
C102-121,C202-208,C212,C302-308,C312 コンデンサ 100nF 36
C201,C209,C301,C309 コンデンサ 1uF 4
C210,C211,C310,C311 コンデンサ 20pF 4
J102-103 2.54mmピッチ 1x3 ピンヘッダ 2
J106-J125 2.54mmピッチ 1x5 ピンヘッダ 20
J201,J301 USB TYPE C Receptacle 2
R201-202,R301-302 抵抗 27.4Ω 4
R203-204,R303-304 抵抗 5.1KΩ 4
R205,R207,R305,R307 抵抗 1KΩ 4
R206,R306 抵抗 10KΩ 2
SW101,SW201,SW301 スイッチ 3
U101 AMS1117 3.3V レギュレーター 1
U102-103,U105,U107,U109 TBD62083AFNG 5
U104,U106,U108,U110 74HC238 4
U201,U301 RP2040 2
U202,U302 W25Q128JVS 2
Y201,Y301 12MHz Crystal Oscilator 2
N/A ジャンパーピン 2

実装

現在、回路図まで公開しています。近日中にガーバーデータを公開しますのでお楽しみに!

Coming Soon!!

組み立て

SENSOR A-LSENSOR A-HSENSOR BSENSOR CSENSOR DSENSOR ESENSOR FSENSOR GSENSOR HSENSOR I-LSENSOR I-Hそれぞれに、センサー基板との接続に用いる1x5のL字型ピンヘッダを取り付けます。

MOTOR AMOTOR BMOTOR CMOTOR DMOTOR EMOTOR FMOTOR GMOTOR HMOTOR Iについてはモーターとの接続に用いる1x5のL字型ピンヘッダを取り付けます。

U1 PWR U2と書かれた箇所に1x3のピンヘッダを取り付け、ジャンパーピンでU1PWRの位置をショートします。

USB V_MTR ALTと書かれた箇所に1x3のピンヘッダと取り付け、ジャンパーピンでUSBV_MTRの位置をショートします。

センサー基板

各ダイヤル版共通の説明を参照して、合計11個のセンサー基板をそれぞれ以下の実装ビット幅で用意します。多めに実装する分には待機時消費電力の増加以外は問題ないので、全てを3ビット幅で用意してしまっても問題はありません。

参照名 実装ビット幅
SENSOR A-L 3
SENSOR A-H 3
SENSOR B 2
SENSOR C 3
SENSOR D 2
SENSOR E 3
SENSOR F 3
SENSOR G 2
SENSOR H 2
SENSOR I-L 3
SENSOR I-H 1

フォトセンサーの調整について

フォトセンサーの読み取り値は、ケース内での読み取りになるため大きな差は出にくいはずですが、3Dプリント素材の明るさの違いや、グレイコードを印刷した紙の質などによって違いが出てくる可能性があります。ダイヤルの読み取りが安定しない、回転が止まらないなどの症状が出ている場合にはセンサー値の変化範囲が想定内に収まっていない可能性がありますので、以下の点に注意してセンサーの調整をしてください。

RP2040での読み取り

センサーの値はGPIOでデジタル値として処理しています。そのため、3.3V稼働時にHIGHは2.0 - 3.3[V]、LOWは0.0 - 0.3[V]の範囲に収まるよう調整されている必要があります。

LEDセンサー調整

LEDに流れる電流が少ないと発光も弱くなり、センサーで読み取る光量も不足します。そのため、読み取り値が高くなり、白と黒で電圧差がはっきりとでなくなってきます。その場合、(LED)と書かれた側にある3つの抵抗を弱いものに変えてみてください。標準では330Ωで調整していますが、今回用いているフォトセンサーRPR-220では40Ωくらいまで下げても定格内に収まります。ただし、待機時の消費電力に大きく影響しますので、可能なら読み取りセンサー側の抵抗で調整してください。

読み取りセンサー調整

読み取りセンサーのpull-up抵抗値を変える事で、読み取る電圧値をシフトさせる事ができます。ただし、大きく変えすぎるとやはり白と黒の電圧差が出にくくなります。(SENSOR)と書かれた側にある3つの抵抗を実装する事で調整できます。標準のファームウェアではRP2040のpull-upにより、およそ50-80KΩでpull-upされる事を期待しています。黒で十分に電圧が上がらない場合は、追加の抵抗でより強くpull-upすると良いでしょう。ファームウェア開発ガイドに従いRP2040のpull-upを無効化すると、ここに実装した抵抗がそのままpull-up抵抗になります。無効化しない場合は並列接続での合成抵抗でpull-upする事になります。計算が少し煩雑ですが、より強くpull-upする分にはファームウェアを変えずに追加の抵抗で並列でpull-upする方が簡単かもしれません。