編集履歴一覧に戻る
sako_DIYのアイコン画像

sako_DIY が 2022年01月18日02時37分05秒 に編集

初版

タイトルの変更

+

Gboard 湯呑みバージョン作ってみた

タグの変更

+

Arduino

+

3Dプリンター

+

キーボード

メイン画像の変更

メイン画像が設定されました

記事種類の変更

+

製作品

ライセンスの変更

+

(Apache-2.0) Apache License 2.0

本文の変更

+

# 概要 Google日本語入力が毎年エイプリルフールにユニークなキーボードを公開しているのはご存知でしょうか? 今までには、スプーン曲げキーボード、物理フリックキーボード等があり、すべて実際に制作が可能なオープンソースな設計図を公開していることで話題となっていましたが、2020年以降このご時世の関係かエイプリルフールネタを公開していませんでした。 2021年もエイプリルフールには、公開されませんでしたが、10月1日の「北野大茶湯」が開かれた日として湯呑み型キーボードが公開され、それと同時に設計図が公開されました。 https://landing.google.co.jp/yunomi/ @[youtube](https://www.youtube.com/watch?v=20pC05yisRM) 最近PCBの発注をちょうど覚えたので、制作に挑戦しました。 # 準備 公開された設計図はこちらです。 [https://github.com/google/mozc-devices/tree/master/mozc-yunomi/](https://github.com/google/mozc-devices/tree/master/mozc-yunomi/) ![キャプションを入力できます](https://camo.elchika.com/5aa8a75a55900bdffb91b8c559ef60b1ec9d0c42/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f39326264396664302d363263312d343039332d383234382d6532633630396638623839392f30376463613762362d653462652d343230332d383061362d313836346361633938393936/) 表面実装部品を使用したものとArduino Pro Microを使用したものの2種類があり、今回は、はんだ付け難易度低いProMicro版を使用しました。 ## 基板発注 公開された設計図のboardフォルダにKiCAD基板のデータが入っています。 ![キャプションを入力できます](https://camo.elchika.com/618fedcb8ef92e1d6fb18561e637963d12abcc8d/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f39326264396664302d363263312d343039332d383234382d6532633630396638623839392f38333730376335632d356330632d343662392d393566332d656165306632336464373330/) この内2つをPCB業者に発注する必要があり、 promicro版を作成するためにはbase基板がpro microの方になります。 | ファイル名 | 必要数 | |:---:|:---| | base-promicro | 1枚 | | key | 12枚 | KiCADのデータからガーバーデータを出力し、PCB業者に発注しました。 今回はALLPCBさんにお願いしました。 [https://www.allpcb.com/](https://www.allpcb.com/) base基板が1ドル/枚、key基板が0.3ドル/枚ぐらいの単価で作っていただきました。(送料別) 発注して2日で製造完了、1週間ほどで手元に届きました。 ![キャプションを入力できます](https://camo.elchika.com/9e575f2d60b9a4a2e09d0867db827b71cb742a3c/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f39326264396664302d363263312d343039332d383234382d6532633630396638623839392f33373862636337322d303563612d343064642d613962612d386466623339303339313135/) ## 部品発注 部品で必要なものは以下のとおりです。 | 部品名 | 個数 | 購入先 URL | |:---:|:---:|:---| | Kailh choc V1 | 60 | [Kailhロープロファイルスイッチ(遊舎工房)](https://shop.yushakobo.jp/products/pg1350?_pos=12&_sid=dfd21a719&_ss=r)| | ダイオード(1N4148) | 60 | [ダイオード(遊舎工房)](https://shop.yushakobo.jp/products/a0800di-01-100?_pos=1&_sid=a87d5a7d3&_ss=r)| | Arduino Pro Micro | 1 | [Pro Micro(遊舎工房)](https://shop.yushakobo.jp/products/pro-micro?_pos=1&_sid=d6478d6c5&_ss=r&variant=42225070801127)| 注意する点としては、Kailh chocにはV1とV2がありますが、互換性はないので間違えてV2を買わないようにすることです。 それとは別に、Kailh choc V1用のキーキャップを60個用意する必要があります。刻印サービス等を利用して、好きな文字を印刷したものを用意しましょう。私はとりあえず無地のものを60個用意しました。 [キーキャップレーザー刻印サービス(遊舎工房)](https://yushakobo.jp/keycap-laser-marking/) [Kailhロープロ無刻印キーキャップ1U(遊舎工房)](https://shop.yushakobo.jp/products/pg1350cap-blank?_pos=18&_sid=c1151f395&_ss=r) ![キャプションを入力できます](https://camo.elchika.com/d683f6d5520b64d6571fa52a021953fc19816639/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f39326264396664302d363263312d343039332d383234382d6532633630396638623839392f37393633363665322d386466382d343162612d626164342d396534626233396565303433/) ## その他(治具等) その他作成に必要な治具のSTLデータが配布されていますので3Dプリンタで印刷しました。 ![キャプションを入力できます](https://camo.elchika.com/b6bb862780ff898b89ee2fe2917f6381e2b101f7/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f39326264396664302d363263312d343039332d383234382d6532633630396638623839392f32366335666338352d303633302d343833322d386564392d633937656263643839326662/) ![キャプションを入力できます](https://camo.elchika.com/5bc414bb00cb27b9cb14bc55af5782343cc215fc/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f39326264396664302d363263312d343039332d383234382d6532633630396638623839392f36323430646663612d373233342d343235332d626666652d383731373461346332633461/) # 制作 組み立ては、[組立説明](https://github.com/google/mozc-devices/blob/master/mozc-yunomi/README_promicro.md)を参考にして組み立てました。わかりにくかった点、躓いた点等を書き残しておこうと思います。 ## はんだ付け ### ダイオード key基板12枚に1枚あたり5個のダイオードをはんだ付けしました。 ![](https://camo.elchika.com/936733a410f1a537a688cdf85d5640cda13a119f/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f39326264396664302d363263312d343039332d383234382d6532633630396638623839392f36616534393435352d643633632d343034322d393338642d383530656631616137626533/) ダイオードには向きがあるので、注意してはんだ付けしますが、 ==半分の6枚は基板に書いてあるシルクとは逆向きにはんだ付けを行います。(同じ面に左右逆)== ![←シルク通り|逆向き→](https://camo.elchika.com/0bc5c54189281835c57ca237ae822d11e6e8f5b4/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f39326264396664302d363263312d343039332d383234382d6532633630396638623839392f37333637393963332d343466332d346139612d616334612d326562613439313532373535/) シルク通りが6枚、逆向きが6枚出来上がりました。 ![キャプションを入力できます](https://camo.elchika.com/2176b50dae5a4a30189d0b395205fbd2532e3ade/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f39326264396664302d363263312d343039332d383234382d6532633630396638623839392f65393736346163642d656663642d346333302d396565622d396439326162616537653663/) ++この時カットしたダイオードの足を捨てずに残しておくと、後の基板同士の接続に使用できました。++ ### キースイッチ 続いて12枚のkey基板に対してダイオードとは反対の面にキースイッチをはんだ付けしました。 これは、決まった向きにしか刺さらないので間違えないかと思います。 ![キャプションを入力できます](https://camo.elchika.com/901f4af0f3bf53c1f7d4a381c62e304ca646c842/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f39326264396664302d363263312d343039332d383234382d6532633630396638623839392f62303230313764632d626163392d346661312d383835642d356138356565363963343761/) ![キャプションを入力できます](https://camo.elchika.com/a89107ec0585f118b5c161ddd306039dd1a3e373/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f39326264396664302d363263312d343039332d383234382d6532633630396638623839392f39333637643736652d666539612d346562312d393864332d383337323735643539643165/) ### Arduino Pro Micro base基板に対して、Pro Microをはんだ付けしました。 ==向きはシルクのPro Microの字の方へUSBコネクタがきます。== ![キャプションを入力できます](https://camo.elchika.com/f2eff7d020c1e6246643b6edabe04aca5b1f8e6e/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f39326264396664302d363263312d343039332d383234382d6532633630396638623839392f32313731643237322d336331352d343339322d393039392d343737373432646164363636/) ### key基板同士の接続 3Dプリンターで印刷した治具を使用して基板同士をはんだで繋げていきます。 ![キャプションを入力できます](https://camo.elchika.com/dd48032bb693a489ab2d193f10ac2d3c077e174d/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f39326264396664302d363263312d343039332d383234382d6532633630396638623839392f34303933353238392d396465652d346636382d613463392d663532376666383339316632/) 2つの基板の間に6箇所はんだ付けする場所があるので、さっき捨てずに残しておいたダイオードの足を使用して基板同士接続していきます。 ![ダイオードの足](https://camo.elchika.com/e01524fd4a9ceb184c178e19740b5768561ef8ae/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f39326264396664302d363263312d343039332d383234382d6532633630396638623839392f36623762626261312d636462302d343230622d386433302d643864643138316634623532/) ![はんだ付け箇所](https://camo.elchika.com/1c3e211e372fa23771c2be67df1b0b30aea85598/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f39326264396664302d363263312d343039332d383234382d6532633630396638623839392f33653232333138652d303566622d346364332d623231332d383633623833666638643164/) ![差し込む様子](https://camo.elchika.com/e88a0aa3fbdeabc038854c57d676b9ca176f1eb4/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f39326264396664302d363263312d343039332d383234382d6532633630396638623839392f65643030623763342d306338342d343262612d626530302d643131643537386364393933/) ダイオードの向きごとに分けて6枚づつハンダ付けします。 半円状のものが2つ出来上がります。 ==ダイオードの向きが混在しないように注意しましょう== ![←シルク通り|逆向き→](https://camo.elchika.com/4984e3095c2cdac62bf58ac55e6e17f250e6e53d/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f39326264396664302d363263312d343039332d383234382d6532633630396638623839392f64383438323766372d313364322d343032362d613265662d663363363932613632626636/) ※青矢印はダイオードの向きです ※この画像は上下の端がはんだ付けされていませんが忘れているだけです。 次に半円状のものを合体させますが、ダイオードが向かいあう方向につなぎ合わせ、その部分は6箇所全てはんだ付けを行います。 少し手で広げてやるとはんだ付けしやすかったです。(画像参照) ![クリックして拡大](https://camo.elchika.com/62246ce87dae2abff22ce1882801b752896d5a6b/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f39326264396664302d363263312d343039332d383234382d6532633630396638623839392f32343362623435332d373932312d346366612d386535312d336364376637393837353933/) ※青矢印はダイオードの向きです 6箇所はんだ付けが終わったら裏返して、反対もはんだ付けを行いますが、**ここは上下2箇所のみで大丈夫です。** ![クリックして拡大](https://camo.elchika.com/409aaeb4e5fb1c1d32feee41ce85c30e1edd6336/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f39326264396664302d363263312d343039332d383234382d6532633630396638623839392f64666435626334622d313662652d346330612d383162302d393830363161346638353362/) ![クリックして拡大](https://camo.elchika.com/387eec3af7fb20067474a33486aaca3f1399260a/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f39326264396664302d363263312d343039332d383234382d6532633630396638623839392f63393033366533372d343032642d343862322d613464342d386362653763333636326564/) ※青矢印はダイオードの向きです ここまで終われば、組立説明の模式図通りの接続が完了しているはずです。 ![クリックして拡大](https://camo.elchika.com/b246fe09d5a1f8d6073ea82e73c194e995477dce/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f39326264396664302d363263312d343039332d383234382d6532633630396638623839392f32626264396133352d333737322d346262312d613835382d326561646534353065306263/) 引用(https://github.com/google/mozc-devices/blob/master/mozc-yunomi/README_promicro.md) ### base基板との接続 base基板と円筒状のkey基板を接続します。 ==これにも向きがあり、base基板上の矢印が、先程最後に接続した、上下しかはんだ付けしていない部分に来ます。== ![キャプションを入力できます](https://camo.elchika.com/0bbbfad913bd1681419af4a251a63750737327fa/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f39326264396664302d363263312d343039332d383234382d6532633630396638623839392f34363661353662362d616230662d343030362d623534362d376431616362666135623532/) ※青矢印はダイオードの向きです 各key基板ごとに2箇所計24箇所はんだ付けを行いました。 このときもダイオードのカットした足を曲げて使用しました。 ![キャプションを入力できます](https://camo.elchika.com/b1d03c09bc66106dc712a8e601fca4d7784f8159/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f39326264396664302d363263312d343039332d383234382d6532633630396638623839392f35643861653332322d356531312d343436392d613637612d636462316638623632323065/) ==この時注意しなければならないのが、あまり接続用ワイヤを長くしてしまうと内側でダイオードの足等と接触してショートしてしまう可能性があります。== 差し込む長さは必要最低限としましょう。 ![悪い例(長過ぎる)](https://camo.elchika.com/5e0c70660562631e6571322c88cb040318042d50/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f39326264396664302d363263312d343039332d383234382d6532633630396638623839392f62303432623334322d353536362d343934632d386361642d363937663336363566386364/) ここまでくればはんだ付け作業終了です。 ## その他部品の取り付け このままだとArduinoが邪魔をして真っ直ぐ立てることができないので、あらかじめ用意しておいた治具を固定します。 ![キャプションを入力できます](https://camo.elchika.com/1d8b581d7927b885f5e379a7281d73f995b6735d/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f39326264396664302d363263312d343039332d383234382d6532633630396638623839392f32386664396332392d333735352d343536392d623033352d363931346435323464623239/) キーキャップを取り付けました。 私の場合は、無地なので特に何も考えず取り付けしましたが、 刻印サービス等でキーキャップを用意した場合は、のちのプログラムの書き込みの手順を先に行い、どのキーでどの文字が入力されるのか確認しながら取り付けを行ったほうが確実です。 ![キャプションを入力できます](https://camo.elchika.com/edcb0c3e1fff634213eb44256d1dd29e9a6b96f0/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f39326264396664302d363263312d343039332d383234382d6532633630396638623839392f63653338356235622d646261632d346337622d616663612d616262336638623930366465/) ## プログラム書き込み プログラムは、公開されているfirmwareに入っているfirmware.inoを使用し、ArduinoIDEで書き込みを行います。 ![キャプションを入力できます](https://camo.elchika.com/b183ba6fe81f7b6978b8a8c91fe37b6b9b1666b0/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f39326264396664302d363263312d343039332d383234382d6532633630396638623839392f38636163653863622d646462312d343030652d386535652d656662393065343561616431/) ArduinoにUSBケーブルを差し込み、Arduino IDEのツール→シリアルポートで認識されていることを確認しましょう。 複数のポートが有る場合は、デバイスマネージャー等で接続先が合ってることを確認しましょう。 ツール→ボードより、Arduino Microを選択します。 ![キャプションを入力できます](https://camo.elchika.com/c2e55d2df7990050af3dc043dd2847b55a1e2020/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f39326264396664302d363263312d343039332d383234382d6532633630396638623839392f62356262313330632d316631362d343737622d626363332d643561383233313830383266/) 存在しない場合は、ArduinoIDEのバージョンが古い可能性があります。 アップデート行うか、Arduino Leonardoでも使用可能な場合があります。 プログラムを1箇所修正します。 Pro Microを使用しているため、2行目をコメントアウトします。 //#define PRO_MICRO ↓ #define PRO_MICRO ```arduino:firmware.ino // Uncomment next line if you use ProMicro #define PRO_MICRO // Uncomment next line if your PC thinks this is US keyboard. //#define JP_KEYBOARD #include "Keyboard.h" #ifdef PRO_MICRO // COLS = 9,8,7,6,5,4 // ROWS = 18,15,14,16,10 ``` また、キーを押されたときに入力される文字を変更したい場合は、132行目からの配列を入力したい文字のUnicodeに変更します。 [unicode検索](https://rakko.tools/tools/89/) ```arduino:firmware.ino uint16_t chars[5][12] = { { 0x0040, // @ 0x002b, // + 0x9c19, // 鰙 0x9c73, // 鱳 0x9c25, // 鰥 0x9baa, // 鮪 0x9c30, // 鰰 0x9c60, // 鱠 0x9bdb, // 鯛 0x9bd6, // 鯖 0x9c39, // 鰹 0x9bf5, // 鯵 }, { 0x0020, // 0x002d, // - 0x0021, // ! 0x9bda, // 鯚 0x002c, // , 0x9bab, // 鮫 0x9c2d, // 鰭 0x9c0a, // 鰊 0x9c58, // 鱘 0x9bf1, // 鯱 0x9c5a, // 鱚 0x9c2f, // 鰯 }, { 0x005f, // _ 0x002a, // * 0x9b5a, // 魚 0x9bcd, // 鯍 0x9b77, // 魷 0x9be5, // 鯥 0x9c24, // 鰤 0x9c56, // 鱖 0x9c41, // 鱁 0x9c78, // 鱸 0x9be8, // 鯨 0x9c3b, // 鰻 }, { 0x003d, // = 0x002f, // / 0x003f, // ? 0x9c7a, // 鱺 0x002e, // . 0x9bb4, // 鮴 0x9b83, // 鮃 0x9bf0, // 鯰 0x9bf3, // 鯳 0x9bac, // 鮬 0x9b5d, // 魝 0x9c4f, // 鱏 }, { 0x9ba8, // 鮨 0x8336, // 茶 0x9c77, // 鱷 0x9b6f, // 魯 0x9c29, // 鰩 0x9b79, // 魹 0x9bd4, // 鯔 0x9b76, // 魶 0x9c0c, // 鰌 0x9bfc, // 鯼 0x9bc9, // 鯉 0x9c27, // 鰧 }, }; ``` 書き込みボタンを押し、コンパイル後書き込みが完了しましたと表示されれば完了です。 ![キャプションを入力できます](https://camo.elchika.com/c29cafa0ca6007ebcfe97cabc9dcb71c9da4c338/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f39326264396664302d363263312d343039332d383234382d6532633630396638623839392f33613036316332652d643334372d346661642d623162362d396563643433353833313636/) # 動作確認 正常にプログラムが書き込みができている場合に、USB接続をすると、入力デバイス欄に新しいキーボードが表示されるはずです。 ![キャプションを入力できます](https://camo.elchika.com/1e4832311272524125915c07ec034fd31d5daf3e/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f39326264396664302d363263312d343039332d383234382d6532633630396638623839392f33623031326432612d313665332d343962302d626465392d383265326266613333653732/) PCに[google日本語入力](https://www.google.co.jp/ime/)をインストールします。 IMEをgoogle日本語入力に切り替えて、かな入力モードにします。 ![キャプションを入力できます](https://camo.elchika.com/d82d7ded4d65bf7c078ec266ad412e7357c94c4a/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f39326264396664302d363263312d343039332d383234382d6532633630396638623839392f34666539303465352d316463652d346332642d623737342d646534623130393035383736/) この状態でメモ帳等を開き、キースイッチを押すと魚漢字が入力されているはずです。 ![キャプションを入力できます](https://camo.elchika.com/d521141a9a1a45f27e592a05015d1c02b3ff313e/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f39326264396664302d363263312d343039332d383234382d6532633630396638623839392f64646630643661622d633334302d343336372d386635642d326430373565383562653464/) U~で始まる英数列が入力された場合は、USキーボードとして認識されてしまっている可能性があります。 ![キャプションを入力できます](https://camo.elchika.com/b8f95986c775594d8d44c3c084db49baff3582e8/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f39326264396664302d363263312d343039332d383234382d6532633630396638623839392f32336230353336302d383865352d343466312d393234612d336137383232613439646333/) その場合はプログラムの6行目をコメントアウトして再度書き込みを行いましょう。 //#define JP_KEYBOARD ↓ #define JP_KEYBOARD ```arduino:firmware.ino // Uncomment next line if you use ProMicro #define PRO_MICRO // Uncomment next line if your PC thinks this is US keyboard. #define JP_KEYBOARD #include "Keyboard.h" #ifdef PRO_MICRO // COLS = 9,8,7,6,5,4 // ROWS = 18,15,14,16,10 ``` u+で始まる英数列や全角の英数列が入力される場合は、IMEの設定が間違っている可能性が高いです。google日本語入力になっているか、かな入力になっているかを確認してください。 ![キャプションを入力できます](https://camo.elchika.com/557a206fabecf07305802b57419ac32b877a108e/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f39326264396664302d363263312d343039332d383234382d6532633630396638623839392f32616231616661322d643863642d346563612d626238342d323263646262396565353636/) そもそも文字が表示されない場合は、回路の作成やプログラムの書き込みに失敗している場合があります。 # 完成 ![キャプションを入力できます](https://camo.elchika.com/19f8abfd6f6a4bc37b9c0368784832fc1f66cdfd/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f39326264396664302d363263312d343039332d383234382d6532633630396638623839392f63363164656337372d383135352d346164302d626662612d373134616261353835633962/) はんだ付けに作業、プログラム書き込み等でだいたい4時間ほどかかりました。 キーボードとしての実用性は皆無ですが、はんだ付け箇所が多くとても達成感がありました。 次年度以降も、もし公開されたら挑戦してみたいです。 ++本投稿の情報の利用、内容によって、利用者にいかなる損害、被害が生じても、著者は一切の責任を負いません。ユーザーご自身の責任においてご利用いただきますようお願いいたします++