仕事猫キーボード計画
自作したキーボードにつける、お気に入りデザインのキーキャップを作った時の記録です。
ちなみに適合するキーキャップはCherryプロファイルの十字軸受のものです。
他のキーキャップって自作できるのかな?
※今回は仕事猫グッズのイラストを再利用しました。
仕事猫はくまみねさんのキャラクターです。
kumamine.blogspot.com
用意したもの
- UVレジン
- キーキャップのシリコン型
- シリコンマット : マットの上でレジン流し込み作業と硬化作業を行う
- 爪楊枝 : 気泡つぶし用
- UVLEDライト
- 段ボール箱 : 光硬化させるときに、UVライトを覆うために。
- キーキャップを装飾するための、キャップ内に封じ込める絵
- 作業用手袋 : 硬化前のレジンはアレルギー物質なんだそうですよ。直接触らないようにしました。
ユザワヤや、東急ハンズで大体揃います。
キーキャップのシリコン型は、自作キーボードショップの遊舎工房さんや、通販で買えます。
キーキャップに入れる絵を切り出す
今回は、以前購入したトイズキャビン様のガチャガチャ、仕事猫スタンプ2に封入されていた説明書のイラストを再利用させていただきます。捨てずにとっておいてよかった。
キーキャップに収まるように切り抜きます。
キーキャップはわりと小さいです。シリコン型のサイズを見て、ちまちまと切り出しましょう。
シリコン型にUVレジンを流し込む
シリコンマットを敷いた上で作業します。シリコンマットの上ならこぼれてもかんたんに剥がれるから安心。
キースイッチの十字軸受側と、キートップ側に流し込みます。
キートップ側に1~2mmほど流し込んで、気泡を爪楊枝で潰したら、切り抜いた絵を入れ、更にその上からレジンを流し込みます。
終わったらシリコン型をキートップ側と軸受側をあわせる。
たい焼きみたいに、レジンがはみでても気にしない。
硬化させる
シリコンマットごと、段ボール箱の中に入れます。
シリコン型の上にUVライトをのせて、電源ON!
蓋を閉めて待ちます。(UVの光が漏れるのが嫌だったから)
気が済むまで紫外線をあてます。
シリコン型を裏返して、まんべんなく光を当てるといいぞ!
裏面に光を当てないと、写真みたいに波打った状態になっちゃうぞ!
取り出す
世界に一個、私だけのキーキャップのできあがり。
プラモ用ニッパーとかで、バリを取ろう。
こんなに簡単に作れちゃっていいのかよ!
yada~kawaii~
うっかりサーバをダウンさせそうなキーキャップができました。
ヨシ!
Ubuntu - 解像度の異なるモニタの倍率を個別設定する
Surface Pro6 に入れているUbuntu、Surfaceの本体ディスプレイは高解像度のため、倍率100%だと絵も字も小さすぎてつらい。
本体ディスプレイを倍率200%にすると、外付けの24インチフルHDモニタまで倍率200%になり、字も絵も巨大化してしまい、これも使いづらい。
画面100%の場合は本体モニタのアイコンと文字が小さすぎる
画面200%の場合は24インチフルHDモニタのアイコンがでかすぎる
解像度200%にした状態。
下のモニタ(高解像度)はちょうどいいサイズだが、上はフルHD解像度でしかないため、画面に対しアイコンが巨大化。
この問題を解決する、
外付けフルHDディスプレイ : 100% 本体ディスプレイ : 200%
↑の状態をディスプレイごとに個別設定するための方法。
WindowsだとGUIから設定できるが、 Ubuntu(というかxranderを使える環境)ではxrandrで設定する。
前提
Ubuntuの設定で、モニタ倍率200%にした状態から設定を行う。
※24インチフルHDモニタのアイコンや字がでかい状態。
xrandrで個別にscaleを設定する
ターミナルからコマンド実行、接続しているディスプレイの解像度と位置座標を取得する。
$ xrandr Screen 0: minimum 320 x 200, current 2736 x 2904, maximum 8192 x 8192 eDP-1 connected primary 2736x1824+0+1080 (normal left inverted right x axis y axis) 260mm x 173mm 2736x1824 59.96*+ 2560x1600 59.97 2560x1440 59.96 59.95 (省略) DP-1 disconnected (normal left inverted right x axis y axis) HDMI-1 disconnected (normal left inverted right x axis y axis) DP-2 disconnected (normal left inverted right x axis y axis) HDMI-2 disconnected (normal left inverted right x axis y axis) DP-2-1 connected 1920x1080+413+0 (normal left inverted right x axis y axis) 527mm x 296mm 1920x1080 60.00*+ 74.97 50.00 59.94 1680x1050 59.88 (省略)
connected となっているモニタを見る。
これが本体ディスプレイ(多分)
eDP-1 2736x1824+0+1080 解像度横幅 : 2736 解像度縦幅 : 1824 X軸原点 : 0 Y軸原点 : 1080 ※画面の上方向にフルHD外付けモニタを配置しているので、そのぶん1080pixel下に本体モニタが存在する
外付けフルHDモニタ
解像度横幅 : 1920 解像度縦幅 : 1080 X軸原点 : 413 Y軸原点 : 0 ※外付けモニタのほうが解像度が低く、上下に並べると左端が内蔵モニタよりも413pixelぶん右にある(私の設定では)
外付けモニタの倍率を変更、原点座標を変更する。
$ xrandr --output DP-2-1 --scale 2x2 --pos 207x-1080
DP-2-1(外付けモニタ) --scale 2x2 サイズ二倍にする --pos モニタサイズを倍にしたので、左端座標を207に変更、上端を1080pixel上に移動する
※--pos を指定しないと、外付けモニタと内臓モニタの表示部分が一部重複して、部分的に画面ミラーリングした状態になる。
Ubuntuのキーボード配列をUS101からJP106にしたメモ(mozc)
以前Ubuntuを入れてデュアルブートにしたSurfacePro6、しばらくUS配列のキーボードを繋いでいた。
だが外出時の持ち出しはSurfaceタイプカバー。日本語しかない。
キーバインドを覚えているから、記号も入力できないことはないが、さすがにめんどくさくなったので、物理キーボードもキーバインドも日本語に戻すことにした。
日本語入力環境
mozc を使ってます。Google日本語入力の予測変換がラクなんだもの。
英語キーバインドにした際の参考サイト
こちらを参考にさせて頂きました。
golang.hateblo.jp
geek-memo.com
うまくいかなかった例
$ sudo dpkg-reconfigure keyboard-configuration
このあと応答がない。
なんにもされないまま、プロンプトが帰ってくる。何が起こっているの?
正解
$ sudo localectl set-keymap jp106
これでキーマップがjp106に戻る。
その後、layoutを手動で変更する。
$ sudo vim /usr/share/ibus/component/mozc.xml
↓こうする
<layout>jp</layout>
これ、参考にしたサイトだと↓こう "ja" になってるんですよね。
うちの環境だと "jp" にしないと認識しなかった。
<layout>ja</layout>
おしまい。
Raspberry Pi でノクトビジョン、暗視ゴーグルを作った (3)
ほんとは真っ暗だけど、赤外線カメラの映像で周りが見える。
これが犬・猫・エルフの視界…!
夜中に台所に飲み物を取りに行くとき、電気をつけて家族を起こさないように、ラズパイで自作した暗視ゴーグルを装備して闇の中を移動するぼくの視点https://t.co/hbfk4wR58v pic.twitter.com/BcfE0AB9mV
— くろかわ (@kurokawanushi) 2019年3月9日
そんなわけで、暗視ゴーグルに使ったパーツです。
ラズパイ本体
当時は3Bが最新だったけど、今なら3B+でいいんじゃないですか? https://www.amazon.co.jp/dp/B07BFH96M3/www.amazon.co.jp
7インチモニタ
これを選んだのは、ラズパイ本体をマウントできるネジ穴が付いてるから https://www.amazon.co.jp/dp/B06XSQZ573/www.amazon.co.jp
つけかた
赤外線カメラ
赤外線ライト付き
長時間使用でめっちゃ熱くなります。
https://www.amazon.co.jp/dp/B06XTQZCWX/www.amazon.co.jp
ヘッドセット
ラズパイ、7インチモニタ、赤外線モジュール、そしてバッテリの重量に耐えられるように、しっかり頭にマウントできるやつ。
https://www.amazon.co.jp/dp/B07NJFH5DC/www.amazon.co.jp
モバイルバッテリー
以前買ったやつは絶版。これが後継みたいなんだけど、
よく見たらこれ、アンペアが足りてない。
https://www.amazon.co.jp/dp/B01LC5EDKO/www.amazon.co.jp
過去記事
RealForce R2 黒のテカリ問題と対処
以前買ったキーボードRealForceR2の黒マット仕上げ、
こんなかんじで皮脂テカリみたいになるんです。Eキーの手前のところ。
めだつ
あと、まわりのフレームの塗装がはげはじめました。
僕だけなのかと思って調べていたら、あるブログで同様の人が何人もいるらしいと書かれていた。
というかその中に僕のツイートもあった。
下の方、[筐体の塗装がハゲる]ってところ。
pasokatu.com
RealForceR2黒のフレーム、黒い塗装が剥がれてプラスチック(やっぱり黒)が見えはじめてるんだけど、なにこれ私の手のひら、酸でもでてんの?
— くろかわ (@kurokawanushi) 2018年8月22日
自分、皮膚科で出してもらった薬を手に塗ってるんですが、それが影響してるんでしょうか。
でも多分普通の皮脂でもなる。
テカる。とにかくテカる。
テカるのが嫌なので、一日に何回もふいてる。
しかし手に薬塗ってるから、またテカる。
そんなわけで皮脂汚れ対策です。
とりあえずキムワイプ、キムワイプ+アルコール、無印良品の不織布メガネ拭きをためしました。
ファイッ
その結果
武器 | 汚れとれ具合 |
---|---|
キムワイプ | あんまりとれなかった。 油汚れをひろげてるだけ |
キムワイプ+アルコール | あんまりとれなかった。 アルコール揮発後、油がまんべんなく広がってる |
無印良品携帯メガネ拭き | いちばんよくとれる。 油をメガネ拭きの不織布が吸い取ってる |
この無印良品携帯メガネ拭き、恐るべき皮脂拭き取り性能でメガネの虹色油汚れもがっちりキャッチだし、コンビニで買ったサラダドレッシングをこぼしても元の状態に戻せるくらい、油の吸着性能が高いです。超おすすめ!
以前、サラダドレッシングをこぼした、同じく無印の鏡。 フレーム部分に派手にごま油ドレッシングがかかったが、分解して無印メガネ拭きでお掃除したら元の状態になりました。すごすぎる。
Raspberry Pi でノクトビジョン、暗視ゴーグルを作った (2)
Raspberry Pi でノクトビジョン、暗視ゴーグルを作った (1)
Raspberry Pi でノクトビジョン、暗視ゴーグルを作った (1) - 黒川文書
のつづき。
[赤外線piCamera] - [raspberryPi] - [7インチモニタ] こんなかんじでつなぎます。
こんな感じで、7インチモニタに左右の画像を投影します。
視差は考慮しないことにします。
うっすら闇に写っているのは、ぐんまちゃんのぬいぐるみ。
ナイトビジョンにぬいぐるみが映るとホラー映画みたいですんごい怖い。
スマホ入れる形式のVRゴーグルの形状。
左右の目に対応するレンズが独立してます。
この画面に、VRゴーグルをべったりつければ、画像が目に見えるというわけです。
コード
import cv2 import numpy as np # for PiCamera from picamera.array import PiRGBArray from picamera import PiCamera import time # for PiCamera capture cam = PiCamera() cam.resolution = (320 , 240) cam.framerate = 32 rawCapture = PiRGBArray(cam, size=(320, 240)) # init view windows right left cv2.namedWindow("leftEye") cv2.namedWindow("rightEye") cv2.moveWindow("leftEye",50, 150) cv2.moveWindow("rightEye",425, 150) time.sleep(0.1) # capture raw frame from picamera for frame in cam.capture_continuous(rawCapture, format="bgr", use_video_port=True): image = frame.array cv2.imshow("leftEye", image) cv2.imshow("rightEye",image) key = cv2.waitKey(1) & 0xFF rawCapture.truncate(0) if key == ord("q"): break cv2.destroyAllWindows()
(いらない処理消し忘れてた)
piCameraの映像をrawCaptureするところは以下のサイトを参考にさせて頂きました。
https://www.pyimagesearch.com/2015/03/30/accessing-the-raspberry-pi-camera-with-opencv-and-python/www.pyimagesearch.com
使用した部品や実際の映像は次回のっけます。