Raspberry Pi でノクトビジョン、暗視ゴーグルを作った (3)

ほんとは真っ暗だけど、赤外線カメラの映像で周りが見える。
これが犬・猫・エルフの視界…!

そんなわけで、暗視ゴーグルに使ったパーツです。

ラズパイ本体

当時は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

つけかた
f:id:kurokawanushi:20190426020005j:plain:w300

赤外線カメラ

赤外線ライト付き
長時間使用でめっちゃ熱くなります。 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

過去記事

kurokawanushi.hatenablog.com

kurokawanushi.hatenablog.com

RealForce R2 黒のテカリ問題と対処

以前買ったキーボードRealForceR2の黒マット仕上げ、
こんなかんじで皮脂テカリみたいになるんです。Eキーの手前のところ。 f:id:kurokawanushi:20190330222138p:plain:w300
めだつ

あと、まわりのフレームの塗装がはげはじめました。
f:id:kurokawanushi:20190330222232p:plain:w300
僕だけなのかと思って調べていたら、あるブログで同様の人が何人もいるらしいと書かれていた。
というかその中に僕のツイートもあった。

下の方、[筐体の塗装がハゲる]ってところ。
pasokatu.com

自分、皮膚科で出してもらった薬を手に塗ってるんですが、それが影響してるんでしょうか。
でも多分普通の皮脂でもなる。
テカる。とにかくテカる。
テカるのが嫌なので、一日に何回もふいてる。
しかし手に薬塗ってるから、またテカる。

そんなわけで皮脂汚れ対策です。
とりあえずキムワイプキムワイプ+アルコール、無印良品の不織布メガネ拭きをためしました。
f:id:kurokawanushi:20190330222411p:plain:w300
ファイッ

その結果

武器 汚れとれ具合
キムワイプ あんまりとれなかった。
油汚れをひろげてるだけ
キムワイプ+アルコール あんまりとれなかった。
アルコール揮発後、油がまんべんなく広がってる
無印良品携帯メガネ拭き いちばんよくとれる。
油をメガネ拭きの不織布が吸い取ってる

この無印良品携帯メガネ拭き、恐るべき皮脂拭き取り性能でメガネの虹色油汚れもがっちりキャッチだし、コンビニで買ったサラダドレッシングをこぼしても元の状態に戻せるくらい、油の吸着性能が高いです。超おすすめ!

以前、サラダドレッシングをこぼした、同じく無印の鏡。 フレーム部分に派手にごま油ドレッシングがかかったが、分解して無印メガネ拭きでお掃除したら元の状態になりました。すごすぎる。

f:id:kurokawanushi:20190330223922j:plain

Raspberry Pi でノクトビジョン、暗視ゴーグルを作った (2)

Raspberry Pi でノクトビジョン、暗視ゴーグルを作った (1)

Raspberry Pi でノクトビジョン、暗視ゴーグルを作った (1) - 黒川文書

のつづき。

[赤外線piCamera] - [raspberryPi] - [7インチモニタ] こんなかんじでつなぎます。

f:id:kurokawanushi:20190324195223p:plain:w300
こんな感じで、7インチモニタに左右の画像を投影します。
視差は考慮しないことにします。
うっすら闇に写っているのは、ぐんまちゃんのぬいぐるみ。 ナイトビジョンにぬいぐるみが映るとホラー映画みたいですんごい怖い。

f:id:kurokawanushi:20190324195334p:plain:w300
スマホ入れる形式の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するところは以下のサイトを参考にさせて頂きました。

www.pyimagesearch.com

使用した部品や実際の映像は次回のっけます。

kurokawanushi.hatenablog.com

Vimがフリーズしたような気がする対処

クソ雑魚い思い出ですが、誰もが通る道だと思ったので自戒をこめて記録に残すことにしました。

vim使い始めた頃、なんにも操作を受け付けてくれなくなったことがありました。
f:id:kurokawanushi:20190314233406p:plain:w300

原因はWindowsのエディタ感覚でうっかり Ctrl + s を押してしまいターミナル出力ロックがされてしまったため。 vimだけでなく、Linuxターミナルで操作中なら Ctrl + s でいつでも発動する。 もとに戻すには Ctrl + q を押すだけ。
f:id:kurokawanushi:20190314233517p:plain:w300
(当時の状況を再現)

焦った私が入力した文字が表示される。はずかしい。

デュアルブートにしたSurfaceの9時間ズレを修正する

無事UbuntuとWin10のデュアルブートにしたんですけど、なんか起動後9時間ずれてるんです。どういうこと。 なおしてもOS別の動かしてから戻ってくると、またズレてる。

原因

UbuntuとWin10でシステムクロックの解釈がUTCとLocalTimeで異なるのだそうです。 UbuntuUTC

対処

これコマンドで打つだけ!

sudo timedatectl set-local-rtc true

kurokawanushi.hatenablog.com

raspberry Pi ではじめからSSH接続設定してモニタいらず

raspberry Pi に入れてるOS、raspbianって OSインストール直後だとSSH接続できないんです。
OS入れたあと、またはOS入れるために、 モニタ&キーボード&マウスなどなど付けて、GUIからSSH許容しなきゃならいんです。

本体こんなにちっさいのに!
いきなりSSHで接続して、コンパクトにはじめたいんですよ僕は。
モニタ置く場所ないし。
ミッションスタートですわ!

ちなみに調べればこの情報に限らず、先人が同様のことを書いておられるわけだが、あえて今更記事にするのは、
「今この段階でも使えるよこの方法」と言いたいから。

概要

raspberryPiに入れたraspbianに、モニタ接続せずに いきなりSSHでリモート操作したい。

方法

  1. raspbian のイメージを落とす(NOOBSじゃない方)
  2. SDカードをフォーマットして、更にイメージを書き込む
  3. OSを書き込んだSDカードのroot直下に、sshって空っぽのファイルを置く。 f:id:kurokawanushi:20190306212551j:plain:w300
  4. LANケーブルと電源ケーブルつないで起動
  5. netEnumとかで、起動したラズパイのIPを調べる
  6. SSHクライアントで接続する。

これだけ。これだけでデフォでSSH接続できるようになってます。 ね?簡単でしょう?

NOOBSでOS入れたときも使える。

ちなみにNOOBSを使う場合でも、SDカードにNOOBSのファイルを書き込んだあとに、ディスクのルート直下に ssh っていう空っぽのファイルを置くと、raspbian起動後にデフォルトでSSH接続できます。 でもNOOBSはインストール時にモニタが必要だから、いきなりSSH接続する意味がないのです。モニタつないじゃったんなら、そのままGUISSH許容設定すればいいんじゃないかしら?

Surface Pro 6 をUbuntuデュアルブートにする

概要

発売日に手に入れたSurfacePro6、ネットにはまだPro6の事例はなかったが、Ubuntuデュアルブートにしようとしたチャレンジングスピリットあふれる去年のぼくの記録


Linuxを普段遣いにしたかったので、SurfacePro6が納品された当日、即UbuntuとWindows10のデュアルブートにした。

結論をはじめに

Surface Pro 6 でもUbuntuデュアルブートできる。ちょっとだけ問題もある

Ubuntuカーネル更新をすると、SecureBoot設定が[Microsoft]か[Microsoft & 3rd Party CA]に設定になっていると、Windows起動時にBirLocker回復キーを求められる。
SecureBootを無効にしたくなかったので、ちょくちょくBitLocker回復キーを入力するマンになった。
Microsoftアカウントに関連付けられたBItLocker回復キーを控えておきましょう。
重要です。超重要です。

Surface Pro 6 をUbuntuデュアルブートにする方は、ディスクのイメージバックアップを取った上で、BitLocker回復キーを保管、自己責任でお願いします。

Ubuntuブートローダで起動OSを選べるようになった、輝かしき我がSurfacePro6。やだかっこいい
f:id:kurokawanushi:20190304225817p:plain:w300

懸念点

  1. ネットにある、デュアルブート例でのSurfacePro(第5世代まで)のOSはWindows10 Proとか。これらはBitlocker有効無効の操作ができる。
    SurfacePro6(非企業向け)のOSはWindows10 home であり、bitlockerは操作できない。というかはじめから無効。
    しかしディスクの管理メニューではbitlocker有効と表示されている。どっちが正しいんだ?
    SurfacePro(第5世代以前)の例では、手順に「Bitlockerを無効化する」とあったが、影響がないだろうか。 不安。でもやっちゃうもんね。

作業手順

  1. SSD全体をバックアップしておく。
  2. UbuntuのOSイメージを落とす&USBメモリにbootイメージにする。
  3. SurrfaceのWindowsパーティションを縮小、Ubuntuを入れる領域を確保する。とりあえず256GBモデルなので1/3確保してみる。
  4. 第5世代以前のSurfacePro ではエクスプローラのドライブ右クリック後、コンテキストメニューからBitoLockerを解除する設定画面が出せたが、Pro6はコンテキストメニューにBitlocker設定がない。
  5. セキュアブート設定を変える。Microsoft & 3rd Party CAにする。
  6. Ubuntuインストーラを入れたUSBメディアからOS入れる。
  7. Boot Orderを戻す。Ubuntu を一番上にする

SSDをバックアップする

Clonezillaとか使うといいんじゃないでしょうか。
SSD全体を保存する。 まったく起動できなくなったら、泣いちゃうくらいダメージがでかいぞ。

Ubuntuインストーラのbootメディア作成

https://www.ubuntu.com/download Get Ubuntu する。
Ubuntu Desktop をDL、Rufus でUSBブートメディアを作成する。

Windowsパーティションを縮小、 Ubuntu領域を確保

Windowsマーク -> Windowsシステムツール -> コントロールパネル -> 管理ツール(表示方法:小さいアイコンの場合) -> コンピュータの管理 -> Local Disk (C:) 右クリック -> ボリュームの縮小 -> 縮小後の"Windows"のサイズを入力する。自分はLinuxに80GB確保しました
f:id:kurokawanushi:20190304225246p:plain:w300

UEFIでSecureBootを無効にする。

PC起動時、Surface Pro 6 上面の音量ボタン[+]を押しながら電源を入れる。
UEFIに入って、SecureBootを一旦 None にした。
が、 MIcrosoft & 3rd party CA でもインストールできるそうです。
f:id:kurokawanushi:20190304225431p:plain:w300

UEFI でBootOrderを変える。

USB Storage を一番上にする。
f:id:kurokawanushi:20190304225510j:plain:w300
写真は、全て終了後のブート順序になってます。 この作業をするときはUSB Storageを一番上にした。 自分は謎のブートローダが2番めに入っちゃいました。いらないかも。

OSいれる

作成したUbuntuインストーラUSBメモリで起動! 途中の選択肢では、UbuntuをWindowsBootLoaderとは別に入るほうを選びました。

Boot Order を戻す

再び音量[+]ボタン押しっぱなしで起動、UEFIに入る。 起動順序をUbuntuを一番上にする。 Windows起動時にBitLocker回復キーを求められたら適宜入力する。

あとはもうデュアルブート生活を好きに楽しんでください。

Linuxを普段使いにしてどうだったのか

  1. Webブラウザ使ってAmazonで買い物するくらいだし、何も変化がない。
  2. Google日本語入力の挙動がめっちゃ早い。Windows版のもっさりが一切ない。超反応
  3. Ubuntuカーネル更新後、Windows10を起動するとBitLocker回復キーを求められるのがちょっとだるい。
  4. OSに直入れしたPythonとか環境を更新するのは相変わらず慎重にならざるを得ない。
  5. UEFIでSecureBootが有効になってると、ubuntuにインストールしたvirtualBoxでゲストOSが動かない。VMのホストOSは結局Windowsにしてる。

  6. おれってすげーんだぜ、と根拠のない自信がつく。

その後

  1. ちょくちょくBitLocker回復キーを入力することになりながらも、大きなトラブルもなく平和に使用しています。
  2. UEFIのSecureBoot設定を、一番厳しい[Microsoft]にしてみたが、Ubuntuが普通にうごいでる。BitLocker回復キーも求められない。よくわかんない。
  3. Surface Pro 6をUbuntuデュアルにする人は、くれぐれも自己責任でお願いします

kurokawanushi.hatenablog.com