2020年7月8日水曜日

STM32F042K6T6 のブレークアウトボードを Type-C 化してみた

作成した Type-C, 18ピン, 17.8 x 24.4 mm, STM32F042K6T6 ブレークアウトボード

最近は百均でも USB micro-B ケーブルが減ってきて、Type-C USB2.0のものに置き換わってきている。そこで、そろそろブレークアウトボードも Type-C 化してみたいと思って調べ始めたら、CC1, CC2 という端子に5.1kΩのプルダウン抵抗を1個ずつ付けておけばよいようだ。これなら簡単に出来そうだぞ!?

キーボード用ブレイクアウトボード


左右分割キーボードを作るのに、毎回マイコンを2個ずつ消費するのももったいないし、ハンダ付けがそれなりに大変だ。ハンダ付け自体は好きだけどね。なので、次からは左右にI/Oエキスパンダをひとつずつ配置し、それらをI2Cで接続して、マイコン自体は片方に1つだけ、という構成にしようと考えた。

必須ピン


I2C の他には、APA102 などの2線式 addressable LED(クロック線とデータ線)を駆動出来るように、SPI が欲しい。 キーボードは光らないとね!?

LC8822 2020 full-color addressable LED

左右のキーボードをつなぐケーブルは、このLED 用に 5V, GND が最低限必要なので、信号線となる I2C, SPI も同じ 5V の単一電源で動かしたい。そのため、信号ピンは 5V 耐圧の FTf ピンから選ぶことにする。

でもこれだけなら、ブレークアウト基板からは I/O ピンはそんなに出てなくてもいいよね、ということで、

  • 3.3V, 5V, GND
  • I2C(プルアップ抵抗付き)
  • SPI
  • UART
  • SWD
  • アナログピン数本

と、これぐらいの最小構成を作ってみたい。SWD と UART はデバッグ用。

周辺部品


周辺部品としては、

  • 電源(VBUS)LED
  • Lチカ用 LED
  • BOOT0 兼用スイッチ
  • WS2812 2020

とする。それほど使用頻度のないリセットスイッチは、ケーブルの抜き差しで代用する事にして、スイッチ入力としても使える BOOT0 のみ基板に実装することにした。

おまけで、WS2812 2020 はコントローラ内蔵のフルカラー LED で、サイズが 2.0x2.2 mm。これならちょうど、1.6mm 厚の PCB の側面にハンダ付け出来ると最近気付いて調子にのって付けてみている(笑)

WS2812 2020

PCB の周囲ギリギリにパッドを作ってもらえるかの確認用としても取り込んでみた。タイマーによる PWM 出力が出来るピンにつないでおく。

小さく?


今回は小さく作ることを目的のひとつにしているので、上述のように、ピン数・部品点数だけでなく、各パーツも見直した。

まず、レギュレータの出力電流を 250mA に下げて SOT-23 パッケージのものにした。

低ドロップアウト電圧レギュレータ 3.3V300mA SOT-23 AP7333(10個入)

キーごとに LED を付けるとかなりの消費電力になるけど、前回の後で気付いたのは、LED は 5V 電源なので、3.3V が必要なのは実はマイコンだけだから、レギュレータが 500mA も流せる必要はない。

タクトスイッチも表面実装のものに変更した。ただ、固定のポッチ用に穴を開けないといけないので、裏面に別のフットプリントを置きにくくなってちょっと不便だけど、大きさで選んでみた。

表面実装用タクトスイッチ TVAF06-A020B-R

あと、ErgoDash の組み立てで知った、パッドにビア打ちを許容することにした。非推奨かもしれないけど、これで場所の節約になるし、大きめのビアを使い易くなる。今回は後学のためにも敢えて試してみた。

小さく。でも、マイコンと Type-C コネクタだけで、結構場所取るなぁ。

タクトスイッチの 3D モデルは使い回し(汗)


ピン表


PCB 上の配置も考えながら、STM32F042K6T6 の 32 ピンのうち、以下で○を付けたピンをヘッダーに出すことにした。

ピン番号 端子名 種類 機能 ヘッダー
1 VDD
2 PF0 FTf I2C1_SDA ○
3 PF1 FTf I2C1_SCL ○
4 NRST ○
5 VDDA
6 PA0 TTa
7 PA1 TTa
8 PA2 TTa USART2_TX ○
9 PA3 TTa USART2_RX ○
10 PA4 TTa
11 PA5 TTa SPI1_SCK ○
12 PA6 TTa SPI1_MISO ○
13 PA7 TTa SPI1_MOSI ○
14 PB0 TTa
15 PB1 TTa
16 VSS
17 VDD
18 PA8 FT

19 PA9 FTf USART1_TX, I2C1_SCL ○ I2C pull-up
20 PA10 FTf USART1_RX, I2C1_SDA ○ I2C pull-up
21 PA11 FTf USB_DM ○
22 PA12 FTf USB_DP ○
23 PA13 FTf SWDIO ○
24 PA14 FT SWCLK, USART2_TX ○
25 PA15 FT USART2_RX
26 PB3 FT SPI1_SCK ○
27 PB4 FT SPI1_MISO ○
28 PB5 FT SPI1_MOSI ○
29 PB6 FTf I2C1_SCL
30 PB7 FTf I2C1_SDA
31 PB8 FTf BOOT0 ○
32 VSS


PCB レイアウト


回路図


これらを踏まえた回路図。

STM32F042K6T6 ブレークアウトボードの回路図

前回からの主な変更点としては、

  • USB コネクタを Type-C に変更
    • CC1, CC2 に 5.1kΩのプルダウン抵抗を配置
  • I2C 用のプルアップ抵抗を 5V でプルアップ(前回は 3.3V)
  • 5V ラインも、ポリスイッチとチップインダクタを通す

など。

PCB


今回も PCB gogo に発注。製造開始から 24 時間以内に発送手続きまで完了していた!

届いた PCB。下端の WS2812 用パッドもギリギリまで出来ている

7x7 ピンに収まれば、ちょうど 1U キーの大きさになってカッコええのになぁ、と思いながらも、手ハンダし易い 2012 サイズで、スイッチや LED、I2C プルアップ抵抗も載せる、というのでは、このあたりが自分には精一杯だった。 これのために2週間ほど寝不足になったよ(笑)

Type-C コネクタの初ハンダ付けはかなり手こずった・・・。フットプリントをデータシート通りに作ったのだけど、そうしたらパッドが端子ギリギリしかなくて難易度高(汗)次回はパッドを手ハンダ用に少し大きくしよう。

動作確認


レギュレータ周りからハンダ付けしていって、テスターで電圧を確認しながら組み立て。

奥の白 LED は電源。手前は WS2812 の side-glow

Side-glow LED も無事光った! 拡大すると、こんな感じの空中ハンダ。何か LED を仮固定する手段がないと、ハンダ付けがかなりふわふわ。

Side-glow のハンダ付け


最後に、5V I2C に OLED と MCP23017 経由の 2x2 のスイッチマトリックスをつないでみたところ。

J-Link (SWD), OLED (I2C), MCP23017 (I2C) 経由の 2x2 スイッチマトリックス

また、UART についても、J-Link 経由でシリアルに printf() できるところまでを動作確認している。

感想


とりあえず動いて満足!

でも、ここへきて Choc V2 というスイッチが届き、この低いスイッチでキーボードを作ってみたくなる・・・。でもそうすると、Type-C コネクタの 3.2mm という背の高さがあだになり、このブレークアウト基板では分厚過ぎることが発覚・・・。ミッドマウントのコネクタにしないとだけど、そうすると、コネクタの裏に何も置けなくなるんだよな・・・。ブツブツ。

ということで、このブレークアウト基板は、これはこれでもう少しフットプリント・配置・配線・外形を調整した改善版を作成中~。





2020年5月17日日曜日

ErgoDash を組み立てて Emacs キーバインドにしてみた

組み上がった直後の ErgoDash

新型コロナの影響でテレワークになったのだけど、自宅にはノートパソコンしかなく、小さな画面で目を酷使してしまう日々。2週間程で目の痛さが限界になり、これはイカン!と、環境を整えることにした。作業環境は大切だよね!

まずは、27 インチモニタを購入。お値打ち品は入荷待ちも多く、今回は早く入手したかったので、在庫もあって、色々安心の EIZO を選択した。

次に、MacBook のトラックパッドだけではなかなかつらいので、大きめのトラックボールを購入。

そして、満を持しての初自作キーボードキット購入だ!作業環境は大切だからね!!

え〜っと、じゃあ、どれにしようかな〜(ルンルンらしい)


数字キーは必要でしょう?!


改めて色々自作キーボードのキットを見てみると、数字キーのない 40% ものが多いことに気付く。でも、数字キー無しは玄人過ぎて、ど素人の自分には到底使いこなせるようには思えない・・・。

実際、今度作るとしたらこれ、と思って考えていたキー配置はこんな感じだ。

次作ろうと妄想していたキーボード:数字キー+方向キー

カラム スタガードは外したくなかったので、そうなってくると、Iris か ErgoDash かの2択で最後は迷った。

そして、決めては真ん中の第7列目の存在。片手6列では、どうしても足りないキーがあるよな〜、と思っていたので、人差し指のところに追加列のある ErgoDash に決定!

キースイッチはリニアが好みなので、この際だからと奮発して、滑らかだと書いてあった Turquoise Tealios を買ってみた。今だとお店で触れないから、説明だけ読んで思い切ってみた。

組み立て♪


遊舎工房さんの通販で購入。翌日到着〜♪

ErgoDash キットとキースイッチ

最初は PCB の端を #400 の紙やすりで滑らかにする。PCB が届くといつもやっていることなので、それほどバリは残ってなかったけど、今回もやってみた。

バリ取り完了〜

スイッチ マトリックスのダイオードと、バックライト LED の制限抵抗は、どちらも表面実装のものにした。

最近覚えた、両手でハンダゴテを持って、リフロー風にハンダ付けをする。

予備ハンダを盛って、ペーストを塗って、部品を置いて、両側からジュワッと溶かすと、部品がスルッと収まる。

これを使って、ダイオードと抵抗とフルカラー LED をどんどん付けていく。

両手ハンダごてでリフロー風ハンダ付け

スイッチ マトリックスのダイオードとバックライト LED の制限抵抗のハンダ付け後

ErgoDash の PCB はパッド中央にビアが打ってあるので、裏面にもハンダが出て行く。綺麗に流れて行けばいいんだけど、中途半端なものも多いので、裏面のパッドにもハンダを盛り直す。この作業に意味があるかは分からない。

裏面。パッドのスルーホールから中途半端にハンダが出ている

裏面にハンダを盛り足す

フルカラー LED のハンダ付けも、両手ハンダゴテで行う。マステで仮止めしなくても、大体の位置に入ってくれるので、作業が少し楽、のはず。


こうして、フルカラー LED のハンダ付けまで終わったところで、ピンセットでキースイッチのところをパチパチつないで、動作確認。LED の点灯まで無事 OK だった!

最後はキースイッチとバックライト用 LED のハンダ付けだ。しかし、キースイッチ用のスルーホールは径が大きくて、ハンダをもの凄い勢いで吸い込んでいきますね。

ホットスワップ用のパーツを見てみると、

スイッチ用PCBソケット(10個入り)

端子を挟むところは横穴になってるので、今度 PCB を作る時は、細い横穴にしてみたい。

また、先に右手分を組み立てたのだけど、キースイッチの端子と、バックライト用 LED の端子が出っ張っていて、フラックスの除去掃除がしにくかった。

そこで、左手分を組むときには、キースイッチの端子とバックライト用 LEDの端子を基板表面ギリギリで切断してからハンダ付けしてみた。

キースイッチの端子の切断後(左)と切断前(右)

ゴツゴツが気になる右手側

ハンダ面がなだらかな左手側

あんまり意味無さそうな作業だけど、最後のフラックス除去はしやすかった。


完成!?


アクリル板も取り付け、いよいよ完成かと思って横から見てみると、アクリル板が斜めになっている?よくよく見てみると、スタビライザーのところでスイッチが浮いている。

PCB と上側のアクリルプレートの間隔が一定ではない。

スタビライザーが浮かないように気を付けてハンダ付けしたつもりだったけど、まだ若干浮いていたらしい。

と思っていたら、見ている前で、急に右手側のフルカラー LED の1つの緑が点灯しなくなった!?

不意に LED の1つの緑が壊れた(汗)

早速交換するものの、LED の取り外しにも、ハンダゴテ両手持ちは重宝!

その後1週間ぐらいして、今度は左手側のフルカラー LED がハンダ不良?らしい・・・。

今度は左手側の LED がちゃんと光っていない

でも意外に、フルカラー LED は普段はオフにしているので、まだ直してない(爆)


もげ対策


あと、ProMicro のもげ対策も初めてしてみた。こちらのマステ使う版でエポキシ接着剤を盛る。

マスキングテープを使って、安全にProMicroのモゲ対策をする

マステのくっ付きが不十分で、エポキシが若干コネクタ内に盛り上がっていて、最初 USB コネクタが刺さらなかったけど、1.2φの細い丸ヤスリで削って対応。

これだけ盛っておけば、大丈夫でしょう!?

使ってみて


左右分離型 70 キー


最初に驚いたのは、手首をそれほど動かさなくても、全部のキーに指が届くこと!これは衝撃的だった。

左右分離型であることも、背筋が丸まらず、肩への負担が減ってよかった。

手首をあまり動かさずに、手の中で指をカタカタするだけで打てることに歓喜してくると、今度はもっと小さくしたくなってくる・・・。40% キットが多いのは、こういう理由だったのだろうか!?

それなら、今度自分が設計する時のために、今からどんな配列がよいか試しておこうと思い、試行錯誤中の現在の様子はこんな感じだ。

44キーとトラックボール(と、高さ調整用の定規w)


親指キー


親指が忙しい。それに痛い。親指キーは、おそらく省スペースのために残りのキーに寄っている。しかし、それだと親指の指先でキーを押すことになる。ところが、親指は横に向いているので、押下時に第一関節に力がかかる。仕事で1日もキーボードを叩いていると、第一関節が痛くなってくる。なので、親指キーは少し下に離して、第一関節でガスッと押せるようにしたい。

真ん中の人差し指用の2キー(Del と Enter)は、無しにもしてみたけど、無いとやっぱり結構不便。Ctrl-M で Enter にしているので、Ctrl-Enter が押せない。

う〜ん、Lower+M も Enter にするか?いや、そこは ¥ マークか。結局、この真ん中の2キーが記号にも要るし、Fn にも要るんだよな。ブツブツ。


狭ピッチ?


そしてなにより、数字の入力がまだまだ慣れない。余裕のある時は、Raise や Lower を押しながらホーム列で数字入力、というのは楽で全然良いのだけど、大文字や記号や中かっこが混じったものを入力する時は、Lower と Shift と Lower+Shift で頭の中が大混乱(汗)

でも上段に数字キーを置いても、指が遠いしなぁ。SA をさらに推し進めて、指ごとに形の異なる 3D キーキャップにすれば、遠さは軽減するか?

さらに、キーキャップを 18x17 などの狭ピッチにすれば、もっと軽減出来るかな?

以前、クレバリーさんで触ってみた μTRON キーボードは、「キーちいさっ!」と思ったけど、あれは 17x17 だったようだ。慣れたらなかなかよいかもしれない。でも、市販のキーキャップが使えなくなるのも、それはそれで色々大変そうだなぁ。

というところで、現在うだうだ中〜。


リニアスイッチ


今回使った Turquoise Tealios というリニアスイッチがすごく滑らかで、キーキャップを SA 風に置き換えた(DMM.make で印刷したキーキャップでシリコン型を取ってみた)後の打鍵感が正直たまらない。打鍵音と打鍵感にコトコト重みが出るだけでなく、数字行も近づいて押しやすくなった。

これまで RealForce の打鍵感が最高と思って、静電容量無接点スイッチ キーボードの製作をしていたけど、今のところの自作キーパッドでは、どうにもこの Tealios スイッチには敵わない。円錐バネがビョンビョン鳴るのと、軸がカシュカシュしていて、ガタつきもある。なので、次は MX スイッチで作ろうと方針転換を検討中・・・。


QMK で Emacs キーバインド


学生時代に Emacs に慣れてしまったばかりに、いまだに抜けられないでいる。当時は「窓使いの憂鬱」というソフトで、Windows 上でも Emacs のキーバインドにしていた。現在もその後継の yamy を使っている。

でも、そもそもキーボード側で Emacs のキーバインドを実現してしまえば、毎回こういうソフトを使わなくても、いつもの自分の設定に出来る。

そこで QMK での Emacs キーバインド実装を探してみたけど、ありそうで見つからなかったので、自分で書いてみた。

https://github.com/orihikarna/qmk_ergodash_emacs_keymap

書いてみて意外だったのは、例えば C-a C-e C-a C-e ... と打ち続けているとき、直前の a キーが離れる前に、次の e キーを押している時がある。最初うまく動かない時があって、あれ?と思ったら、こういうケースに対応が必要だった。

あと、Windows では、Alt を単独で押下すると、メニュー項目にフォーカスが移ってしまう。そのため、M-f などを拾って代替シーケンスを送っても、まだメニューにフォーカスがあるままになっていて、うまく動かない。

この Windows の Alt メニューを抑制するために、AutoHotKey を使って、Alt 押下時に存在しない仮想キーコードを送るというテクニックがあるようだ。

しかし、QMK では仮想キーコードは送れないので、色々試してみた結果、Ctrl を押しながら Alt を押下して Ctrl を離すと、Alt メニューにフォーカスが行かないようだった(Windows10)。そこで、今のところは Alt 押下時にそういうキーシーケンスを送るようにしている。

これで現在のところは、yamy を使わずに Emacs ライフ?を過ごしている。欠点としては、cygwin のようなもともと Emacs キーバインドのソフトには、むしろ逆効果なところもある。これを yamy のように、プロセスごとにキーバインドを切り替えるということは出来ない。


感想


自作キットは使わずに全部自分で作りたい!って思っていたけど、自作キットを作ってみると、すごく参考になり、色々と考えも深まり、作業も進んで、とてもよかった。

しかし、重め滑らかリニア軸+SA、よき(また言っているw)






2020年5月6日水曜日

DMM.make で印刷したキーキャップでシリコン型を取ってみた

右端の4個が DMM.make で印刷したキーキャップ。その左側の着色キャップが UV レジンで複製したもの

KeyV2 をカスタマイズして逆 SA 風のキーキャップを作成し、3Dプリンタで印刷して、型を取ってUVレジンで複製し、キーボード1つ分のキーキャップを作ろうとしている。前々回

おゆまるでキーキャップを作ってみた

では、3D プリンタで出力したキーキャップの型取りをしてみた。だけど、FDM 方式の 3D プリンタだと、そもそもキートップ部分に積層痕が残ってしまい、指ざわが凸凹してしまう。側面はかなり綺麗に出来上がるんだけどね。

そこで DMM.make の出品を検索してみると、キーキャップセットもそこそこ出されていて、「MJF の PA12GB ブラック磨き」という素材がお薦めされていた。・・・と思っていたら、2020年の 3, 4月は、DMM.make で MJF の 20% オフキャンペーンが行われていたので、今がチャンス?!と思って試してみた。


1.親指用鞍型キートップ+いつものサイズで出力


KeyV2 では、キートップを凸に盛り上げるか、凹にくり抜くかを選べる。人差し指から小指までの4本については、キートップを凹ませておくと、指の位置が指先の感覚で分かってちょうど良い。

一方で、親指キーについては、キートップが凹んでいると、親指の横側面がへりの角に当たって、長時間使っていると少し痛くなってくる。そこで、親指キーキャップには、凸に盛り上げたものも試してみた。でも実際に使ってみると、親指への当たりは確かにかなり柔らかくなったんだけど、今度は、親指がキーの上でどこにいるのか、横方向の位置が分からなくなってしまった。

う〜ん、両者のいいとこ取りをして、鞍型がいいんじゃないか?!と思って OpenSCAD のドキュメントを探してみたけど、そのものズバリの関数はないようだ。


鞍型キートップ


そこで、鞍型面は二次曲面なので、円を並べて 凸包を取ることで、近似的に鞍型を実装してみた。

鞍型キートップ
OpenSCAD のソースコードはこちら。
https://github.com/orihikarna/KeyV2/blob/master/src/dishes/saddle.scad

gist-it.appspot.com の埋め込みでは綺麗に入らなかったので、コピペ(汗)

module saddle_dish(width, height, depth, inverted) {
    $fa = 4;
    direction = inverted ? 1 : -1;
    hdepth = depth / 2;
    radius = height * height / (8 * hdepth) + hdepth / 2;
    xdivs = 16;
    dx = 1 / xdivs;
    intersection() {
        translate( [-width, -height, depth * (direction - 1)] )
            cube( [2 * width, 2 * height, 2 * depth] );
        translate( [0, 0, - direction * radius] )
            union() {
                for (nx = [-1:xdivs-1+1]) {
                    x0 = -0.5 + dx * nx;
                    x1 = -0.5 + dx * (nx + 1);
                    hull() {
                        translate( [width * x0 - 0.01, 0, direction * hdepth * ((x0 * x0) * 4 + 1)] )
                            rotate( [0, 90, 0] ) cylinder( dx / 8, radius, center = true );
                        translate( [width * x1 + 0.01, 0, direction * hdepth * ((x1 * x1) * 4 + 1)] )
                            rotate( [0, 90, 0] ) cylinder( dx / 8, radius, center = true );
                    }
                }
            }
    }
}

これは何をしているかというと、まず Google Calculator で \(z=x^2-y^2\) という鞍型面を表す関数を描画してみる。

z=x^2-y^2 の鞍型面

ここで各 \(x=x_0\) を固定して y-z 面で見てみると、\(z=x_0^2-y^2\) という放物線になっている。

この放物線を円に置き換えて、x 軸方向に dx 間隔で並べて配置し、隣同士を hull() で閉じている。100円玉のような円板をたくさん重ねて、放物線の形に少しずつずらして並べたようなもの。あえて式で書くなら、\((z-x^2)^2+y^2=1\) となる。この上半分を同じようにプロットすると、

z=sqrt(1-y^2)+x^2

と、ここだけ見れば、鞍型面に近いものになっている。

あとは、幅と奥行きと高さの設定に合わせて、円の大きさや放物線の係数を調整すると、先ほどの scad コードになる。


DMM.make へ発注!


普段の 3D プリントでは軸のプラス穴のサイズ決めに一番苦労したので、DMM.make でも、まず、1.25mm、1.35mm、1.45mm の3種類で出してみた。違いが分かるように、キートップに、無印、○、ー、の刻印を入れておく。

発注した STL

PA12GB ブラック磨きで、1uが8個と1.25uが3個で3,403円。送料込みの固定費を除くと、1キー当たり100円前後のようだ。

1週間ちょいで到着したけど、到着前に、細いところが再現出来ませんでした、とのメールを受け取る。ふむ?と思ったら、普段の 3D プリンタ用のサポートが残ったままだった。でもこれはニッパーで切れば、問題なし!というより、こういう風に再現されるのかぁ、という感じ。細くてもそこそこ強度がある。

細すぎてクニャリと曲がったサポート

そして、出来上がりの全体像。

逆SA風なので、左側が上段キー

鞍型面の仕上がりはこんな感じ。

親指用 1.25u 鞍型キートップ

既に試していた通りの形だけど、キートップに積層痕がないので、より滑らかな指触り。


軸穴のサイズ


さてさて、では、キースイッチに取り付けてみると!?

どれもこれも軸穴がガバガバのスカスカで、まったく使い物になりませんでした(涙)

だけど、硬さがあり、重みもあり、肌触りも悪くなく、これで1つ当たり 100 円なら、全然アリだと思える仕上がり。この素材感には大満足!

ちなみに、軸穴のサイズをノギスで 0.05mm 単位で測ってみると、こんな感じだった。R0 と書いてあるのは親指キー。プラス穴の縦横幅を3パターン変えている。

  • 4.3mm x 1.25mm

キー長幅短幅
R04.401.35

  • 4.4mm x 1.35mm
キー長幅短幅
R04.501.40
R14.451.45
R24.501.45
R34.501.45
R44.451.45

  • 4.5mm x 1.45mm
キー長幅短幅
R04.551.50
R14.551.50
R24.551.55
R34.601.50
R44.601.50


軸部分は薄いからか、穴のサイズは常に広がる方向で、最大でも0.1mm 程度の広がりのようだ。


2.軸穴を攻める


ということで、次は軸穴サイズを変えてやり直し。プリンタが変わると調整やり直しなのは、まぁ仕方ないですね。

前回、1.25mm でも結構緩かったので、今回は、1.05mm、1.10mm、1.15mm、1.20mm の4パターンで出してみた。違いが分かるように、キートップに、無印、ー、=、≡ の刻印を入れておく。

上下向かい合わせにして空間費を節約(刻印は見えない)

今回も1週間ちょいで到着。

軸穴4パターン

軸穴はどうかと言うと、1.20mm と 1.15mm は、前回の1.25mm 程ではないけど、やはり緩い。1.10mm だとちょうど嵌るけど、若干緩いかも。1.05mm だと、ぐぐっと力を入れて押し込まないと入らない。

意外にも、1.10mm まで軸穴を細くしないと、緩かったようだ。スイッチによっても違いがあり、手元の Gateron の静音赤軸にはきつ目で、Kailh 系のスイッチには緩めのようだ。


初シリコン型取り!


そして今回は、このキーキャップを使ってシリコンで型取りし、UVレジンで複製を試してみた!初シリコンで、ブロックとか精密スケールとか真空容器とか色々手間取って面白い。

でも、その結果は・・・。

「PA12GB ブラック磨き」のブラック塗装がシリコン型にもレジンにも色移りして、薄紫色のキーキャップになりました(涙)

左下が DMM.make、上が黒が色移りした透明シリコン、中央下は緑着色レジン、右下はクリアレジン

あと、軸穴は 1.10mm で出したものを使ったのだけど、最終的にレジンで複製したものだと、かなり緩々の軸穴になってしまった。型取りには 1.05mm ぐらいが良さそうだ。


2.5.3月中にもう一つ!


MJF の 20% オフキャンペーンは、最初は3月だけだったので、駆け込みで 2u 親指キーキャップを作って発注してみた。(実際は、4月もキャンペーン継続になった。)

KeyV2 では、2u 以上だと、スタビライザー用の軸も出るようだ。スタビライザーの間隔はちょうど 12mm になっている模様。

普段使い用に実用品として駆け込み発注(2uは右奥)

でも写真撮るの忘れていた・・・。キーキャップ自体は職場のキーボードに付いていて、ただいま新型コロナのリモートワーク中なので、実物が手元にない・・・。


3.それなら塗装無しナイロンで!


そして、諦め切れない型取り用キーキャップ。いやしかし、DMM.make で出したモデルなら、複製に耐えうるだろうと思って始めたのに、まさか塗装でこけるとは・・・。

う〜ん、それなら次は、塗装無しを試そう!

と言うことで、より安価のナイロン素材を試してみた。型取りにしか使わないのなら、軽い素材で出しても問題ないしね。

こちらの素材での軸の出方も分からないので、1.05mm から 1.12mm まで、0.01mm 刻みで8バリエーション作ってみる。刻印はドットとコロンで点の数を入れてみた。

ナイロン40キー

届いたもの。

キートップに積層痕・・・。

キートップに積層痕がある?!

ガツカリ・・・(よく調べてから注文しようね)

振り出しに戻る。

キーキャップ自体は軽い感じで PA12GB のような重厚感はない。だけど、とりあえず普段使いして、高さや傾きを確認するのには使えそう、といった感じ。

軸穴サイズについては、1.05mm、1.06mm、1.07mm の辺りはきつくて入らない。1.08mm から使える感じだった。

MJF ほどのトキメキは無かったので、早々に次へ・・・。


4.そしてグラファイトへ


さらに他の素材と言っても、やっぱりナイロンと MJF が一番お手頃っぽい。それなら、最後に PA12GB で、塗装無しのナチュラルと、グラファイト磨き、というのを試してみることにした。

シンプルに8キーを、ナチュラルとグラファイト磨きで発注

軸穴は 4.05mm x 1.05mm に設定。

ナチュラル

ナチュラルは、表面がザラザラとしている。あまり型取りには向かなそうだ。

グラファイト磨き

一方のグラファイト磨きは、表面はブラック磨きとあまり変わらない滑らかさ。色はブラックからダークグレーになるけど、自分としてはあまり気にならない。

ただし、軸穴の中に鉛筆の粉みたいなもの(これがグラファイト?)が残っていたので、実際に使うには、まず、つまようじとかで軸穴内を掃除した方がよさそうだ。今回のように型取りするならなおさら。

そして、グラファイト磨きの方をシリコンで型取りし、UV レジンで複製してみた。

シリコン型の硬化後

太陽光で硬化中〜

硬化完了〜

右手分量産完了〜

感想


グラファイトでも、多少の黒い粉がシリコン型に入り込む。それでもブラックの塗装が移り込む度合いよりはかなりましだった。あらかじめキーキャップにシリコン離型剤を塗っておくと、グラファイトの入り込みがより少ない。また、同じキーキャップで複数回型取りすれば、2回目以降はより入り込みが減った。

あと実は、毎回キーキャップの高さとか角度を微妙に調整していたのだけど、今回の最後のを使ってみると、最上列はもう少し高めにして、角度も急にした方が指が届きやすくて押しやすそうだと分かった。

しかし、カチャカチャいわずに、コトコトした感じの、

この重めの打鍵感と打鍵音、よき。






2020年4月3日金曜日

秋月で売っている LED 基板で UV-LED ランプを作ってみた

LED 基板に電源専用 USB micro-B メスコネクタを嵌め込む

おゆまる+UV レジンでキーキャップを作ってみた のだけど、まだまだお試しと思っていたので、硬化については、天気頼みの太陽光を使っていた。

翌日の天気予報を確認してから、夜寝る前に、軸の部分にレジンを入れて東向きの窓際に置いておき、朝起きたら、上型にレジンを入れて下型と合わせて閉じ、南向きの窓に置いておく。

晴れたら問題なく硬化するんだけど、曇りだとイマイチだし、何しろ1個硬化させるのに1日かかる。数作るには、型自体も量産しないといけなくなる・・・。

(ちなみに、意外と役に立ったのは、むか〜しに買った 100 均のマジックライト。これでも多少は硬化するので、レジン表面の仮硬化ぐらいには使える。)

おゆまるキーキャップからステップアップするなら、シリコン型に移行するのはもちろん、UV LED ランプも手に入れねばならない!(いや、そもそもそこまでやるのか?)

迷いながらも、秋月電子のサイトを見てみたら、そのものズバリの製作例があった!!

片面丸型LED用ユニバーサル基板 32mm の UV-LEDライト製作例

本当に使うかどうかは置いておいて(こら!)、とりあえず無駄に作りたくなってしまった。同じく LED 用の基板で、ペットボトルのキャップサイズというのもあって、何かそれを使っても作ってみたい!

両面TH丸型ユニバーサル基板 27mm (ペットボトル基板)

ということで、作ってみたいだけで作ってみた(笑)


UV LED ライト用基板 その1


秋月の上記の基板は、放射状+中央の 7 個の LED を取り付けられるようになっている。作例を見ると、1/4W の抵抗と、電源線を直付けしている。

今回は、電源は USB から取りたい。

抵抗もチップ抵抗にすることにして、USB の 5V に合わせて、抵抗値は 75Ωにする。秋月の通販だと、75Ωのチップ抵抗は 3216 サイズしか見当たらない。デカい。けど今回は電流も流れるからちょうどよいか。

電源線も、できたら USB コネクタで受けたいと思って、電源専用の USB micro-B メスコネクタも注文してみた。届いてみると、実際、コネクタの足をほんの少し内側に傾ければ、最外周のパターンに嵌めることができた(冒頭の写真)

でも、それだと LED が1灯減ってしまう。

そこで、反対側のパターンの一部をドリルで切断して、1灯追加することにした。そして、何となく丸っこくなるように配置。

中央上部のチップ抵抗のすぐ上の丸い穴がパターンの切断位置

せっかくなので、ハンダ面はクリアレジンで覆っている。USB コネクタの金属部分は覆っておらず、ここは USB の電源ラインが丸出しになっているので取扱注意だ!(そういうなら絶縁しろ)

何となく丸く配置(シルクをガン無視)

あと、点灯時には基板がそこそこ熱を持つようだ。UV LED 1灯あたりの電流は 20mA のようなので、7灯で 140mA。USB の電流容量的には問題なさそうだけど、放熱的にはレジンで固めるのがいいのかどうかよく分からないまま、絶縁と固定を優先している。

また、UV LED の波長には、今回は作例通りに 375nm のものを使った。


UV LED ライト用基板 その2


う〜ん、せっかくなら、7灯と言わず、もっと点灯させたい!前回のように、基板の配線を切る前提なら、何だってできる?(普通にユニバーサル基板を使え)

ということで、2回目は、5箇所配線を切断して、合計11灯にしてみた。配置も、全て外側に並べてみた。

外側に10個+中央に1個の11個配置

今回は、中央の LED だけ 375nm で、周りは市販の UV LED ランプでよく使用されているらしい 365nm にしてみた。色味が若干変わるけど、レジンの硬化速度への影響まではよく分からない。とりあえずどちらでもそこそこ硬化はしているようだ。

数の都合上、中央のみ 375nm で外側は 365nm

両者比較


肉眼で見ると 365nm と375nm で色味に違いがあるのだけど、下の写真だとよく分からない。

USB で点灯中

ペットボトルのキャップ基板


ついでにペットボトルのキャップに入る基板も注文しておいたので、5mm の LED が並ぶように配置・配線を考える。キャップに入れるなら、ネジのところが干渉しないように、少し内側にしておく必要があるだろう。

周囲に余裕を持たせた LED の配置

3216 のチップ抵抗も置かないとね。最初はやはり、375nm の UV LED で作ってみた。

赤と黄色が電源線、青がチップ抵抗のつもり

しかし、作ってみると、思っていたよりもチップ抵抗のサイズが大きくて、空中配線になってしまった(汗)

チップ抵抗の場所が足りなくて、空中配線

今回もクリアレジンでハンダ面を固めてみた。あとは、ペットボトルのキャップにハンダゴテで穴を開けて、そこから100均で買ってきた電源専用 USB ケーブルを通し、基板にハンダ付けする。

ペットボトルのキャップに嵌め込む

そして、そう、上の写真のように、こちらも2個目を作ってみた。

2個目の配置図。チップ抵抗のスペースに余裕を持たせた

1個目の空中配線を反省して、抵抗がちゃんと着地するようにして、ワイヤーもうまく曲げるための治具を 3D プリンタで作った(いや、そこまでしなくても?)

ワイヤーの折り曲げ用治具

しかし、治具があっても、綺麗に折り曲げるのが難しいのはあまり変わらなかった。

2個目:1個目よりは整然としている?

1個目よりはなかなか良い感じになった!(と思う)

2個目の UV LED はやはり 365nm にした。

左:1個目 375nm、右:2個目 365nm

使うレジンにもよるけど、方向を変えながら数分〜十数分も当てていれば、大体硬化しているようだ。実際に使うときは、反射光も使おうと思ってお茶の缶に放り込んでいる。


おまけ:サッカーボール型鏡


UV LED ランプでも 100 均の UV レジン(UV LED 非対応のもの)はそこそこ硬化するのだけど、どうやら表面は最後までベタついてしまうらしい。ここはやっぱり太陽光の出番だ!(本当か?UV ランプ買えよ)

そこで、球面鏡で太陽光を受けて、表から裏からレジンに当てる、ということを考えてみた(思いついてしまったらしい)

球面鏡を作るのは大変そうだから、サッカーボール型なら作れるのでは?

いやいや、そもそも平行な太陽光線を集光するなら、回転放物面にしないとダメなんじゃ?でも調べてみると、回転放物面に斜めに平行光線が入射した場合は、一点には収束しないようだ。それなら始めから一点には集光しない球面でもよいだろう。むしろ斜め入射の時の集光具合は、回転放物面よりも優れているのでは?と勝手に合点したことにして、やはりサッカーボール型でいくことにしよう。そもそも多角形で回転放物面を作るやり方を編み出すのも大変そうだ・・・(要はサッカーボール以外はやる気出ないらしい)

ということで、最近使い始めた OpenSCAD で早速外枠を作る。何度も計算間違いをしていて、拡大すると5角形と6角形が綺麗につながっていないとかもあったけど、何とか全部直った。そして最終的には、5角形だけ作って、それらの凸包にすればよいと気付いた。


サッカーボール型鏡の外殻

思えば高校生の時に、1週間ぐらい考えて、厚紙で一部模型まで作って、四苦八苦してサッカーボールの頂点座標を求めたことがある。だけど、その後同級生に、対称性からあっさりと解かれてしまった時には、衝撃的に悔しかったことを憶えている。サッカーボールの中心を通る面で、断面が正十角形になるところがあるんだよね。でもそのおかげで今回は、それ以外の部分では間違えまくったけど、さっくりと scad を書くことが出来た。

3D プリントは 12 時間。サポート無しでも意外と綺麗に仕上がった。

サッカーボールの半分弱

あとは、カッターナイフで切れる鏡面シートを Amazon で購入して、A4 の紙に型をセブンイレブンで原寸大印刷して、それを貼り付けて切っていく。

結構分厚いので、切るのは大変

1%小さめに型を出したのだけど、貼り付け時にピッタリいかず、ちょっと余らせてしまった・・・。ドンマイ!(やり直しなさい)

あと、3つの角が合わさっているところは鏡面が少し歪むようなので、次回作ることがあれば、多角形を繋ぐのは2個までにした方がよさそうだ。

この後に作った初シリコン型で硬化中〜♪