いろんなOSでスクショを素早く撮る

スクショをチャットツールに貼り付ける機会が増えませんでしたか。
今回はスクショコマンドをまとめたみた。

スマホだとスクショ撮ってチャットツールに流し込んだりするの簡単ですよね。
Android だと「ボリューム上+電源ボタン」で撮影。
共有のショートカットから簡単にペースト。
他の OS だとどうかという話です。

■Windows の場合
「Winキー+PRTSC」で全画面スクショ。
「ピクチャ」フォルダに連番で、パシンパシンぶちこんでくれます。
部分的なスクショは「Winキー+Shift+s」で、選択するとクリップボードのバッファに入る。
これチャットツール上で 「ctrl+v」 するとすぐ貼れる。
すごく活用できるので是非覚えたいテク。

画面の動画撮影はどうするか。これ何種類か方法がある。
「XBox Game Bar」というのが入っていると、「Winキー+G」でスクショメニューが出る。
会社PCとかで入ってない場合がある。
その場合は、なんとあの「パワーポイント」で動画キャプチャ可能。
「挿入」の一番右にボタンがある。

まあキャプチャアプリ入れてもいいんですけどね。
共通に使えるノウハウとして、できるだけ標準で済ませたい時代ですよね。
なお Geforce が入っていると、Alt+z で nVidia のメニューが使え、負荷の少なさでいくと、これが一番よい感じ。

■Chromebook の場合
部分スクショは「ctrl+Alt+すべてのウィンドウ(F5)」。
https://www.google.com/intl/ja_jp/chromebook/howto/take-partial-screenshots/
「すべてのウィンドウ(F5)」キーの機能って、Widows でいうところの「Alt+Tab」。
なお全画面スクショは「「ctrl+すべてのウィンドウ(F5)」」
動画については拡張機能を入れる必要があって標準では対応していない。

■Mac OSX の場合
部分スクショは「shift+command+4」。
全体スクショは「shift+command+3」。
動画キャプチャは「shift+command+5」。
QuickTime player 使う方法もある模様。

■Ubuntu の場合
部分スクショは「Shift+PrtSc」。
全体スクショは「Alt+PrtSc」。
古来のショートカットですね。
動画キャプチャは「ctrl+Alt+shift+R」で録画開始。
もう一度押すと録画停止で書き出されます。
こちらはコーデックが WebM で出力されるので注意。

■ラズパイ(Rasbian)の場合
そういえば、8GBメモリ搭載のラズパイ4Bがリリースされますね。
https://monoist.atmarkit.co.jp/mn/articles/2005/29/news048.html
クライアント用途なら十分じゃないか。それはさておき。
「scrot」というコマンドが入っているので、そちらが標準ですが使い勝手はいまいち。
手間ですが「apt install gnome-screenshot」で、アプリを入れるのがおすすめです。

■おまけ
スクショした画像をOCRしたくないですか。
実は Google Drive にさりげなくOCR機能がある。
https://webkikaku.co.jp/homepage/blog/webservices/googledrive-ocr/
スマホが手元にあったら、Google Keep や Google レンズで撮影するって手段もある。
VelociDrone で LeaderBoard がいい感じに上がらない時に、いろいろ実験したりした。(ローテクすぎる)
背景入るので間違いも出るけど、まあ数字ぐらいなら取り込める感じ。

ChromebookのUVCカメラ活用事情

テレワークでパソコン爆売れは間違い?本当に売れてるのはChromebookらしい…
https://www.gizmodo.jp/2020/05/telework-boosts-chromebook-sales.html
これ海外の話で、特に米国では Chromebook を積極的に使っているようだ。
日本は相変わらず Windows が売れているらしい。
Chromebookは学校関係で活用されはじめてるとは聞いている。
まあ十分だと思う。トラブルも起きにくそう。
お仕事もこの端末で完結できるように環境整えるべきではないか。

今回のテレワークはビデオチャットへの配信ということで、UVCカメラへのニーズが随分高まり、活用方法もいろいろ出た。
なにも顔を映すだけでなく、動画を流し込む手段としての活用だ。
HDMIキャプチャとか OBS、Xsplit の仮想UVCとか。
今後も配信コンテンツの作成で活用されるだろう。
UVCカメラというと、FPVドローン界隈では 5.8GHz 受信機がおなじみ。

スマホやPCに接続して、FPV映像を受信したりするのだが、実は Andoid9,10 においては API の仕様変更に伴い、UVCカメラがうまいこと使えていない。
https://serenegiant.com/blog/?p=3596
ようやく最近修正が入り始めたらしい。
https://serenegiant.com/blog/?p=3830&
こちらにもあるとおり、OS更新の途絶えた端末ではムリだろうし、使える使えないが出るのめんどう。

ということで、出先の確認用途では Chromebook を使うことが多い。
OTG で接続すると、複数の UVCカメラ接続も可能。
DVR も標準のカメラアプリで可能。
ビデオチャットで配信可能かどうかはちょっとめんどくさい。
Chromebook の Android は LXD コンテナ技術で搭載されているので、USBデバイスにアクセスできない。
(同様に crostini からもアクセスできない)
なので、使う場合は ChromeOS のブラウザ機能限定となる。
ブラウザ版のチャットツールを使うことになるが、サービスごとにUVCデバイスの切り替えは対応しているかどうかで変わるようだ。
Discord はダメだったが、Google Meet いけるとか。
配信となると、こっちも使える使えないがあったりする。

Chromebook は Betaflight Configuretor の類も拡張に入れられる。
https://papalagi.org/blog/archives/358
特にシリアルのドライバ関係で悩むことがないのでオススメだ。
さすがに VelociDrone は動かないが、FreeRider なら動く。
https://papalagi.org/blog/archives/360
先の記事にもあったとおり、sapcedesk での連携もできる。
https://papalagi.org/blog/archives/1399
Chromeのリモートデスクトップもむちゃくちゃ強力だし。
https://www.itreview.jp/blog/archives/3938
ということで、このページでは Chromebook の活用を推奨いたします。

WiFi接続のマルチモニタ「spacedesk」

ようやくコロナ自粛解除の方向になるようで。
とはいいつつ、今後も在宅ワーク継続の方も多いようです。
在宅ワークでいくつかのノウハウができたので、覚書のためにまとめていこうと思う。
最初期の頃はボイスチャットやビデオチャット関係をまとめてた。
https://papalagi.org/blog/archives/1186
https://papalagi.org/blog/archives/1188

今回はマルチモニタの問題。
物理的につなげばいいんだけど、場所とるしめんどくさい。
「男の仕事場」的にガッチリ固めるのもなんだかな。
そこらへんに転がってる端末を、必要な時に必要な数使いたい。
Windows についてはさりげなく Miracast に対応しているので、そいつを使えばいいんだけど、これ使い勝手があんまりよくない。
ということで出てくるのがコチラ。

spacedesk
https://spacedesk.net/

WiFiベースでマルチモニタ化してくれるフリーソフト。
出力モニタ側はいろんな OS が対応している。
画面のローテーションはもちろん、タッチも拾うし、リフレッシュレートは60fpsまで対応可能。
この中で一番使い勝手が良いのが Android だろう。
FireHDとか転がってないですか。
さらに一歩進むと Chromebook の Android を使うのが一番便利。
つないで VelociDrone を表示してみた実験がコチラ。

本体液晶が反応いいのはわかりきっているが、動画視聴ぐらいであれば困らない程度のレスポンスとスピード。
十分使い物になる。
つないでいるのは Pixelbook だが、ドットバイドットだと 3429×2286(珍しい白銀比アスペクト)までいける。
もちろん解像度をあげると、Windows 側の GPU に負担がいく。
Chromebook の Android がよいのは、ChromeOS も並行して動いているので、そちらはそちらで動かすことができる。
ピクチャーインピクチャーとかも可能なワケだ。
ついでに画面の角度を固定したり、タブレット形状で使ったり、縦配置にしたり、とにかく調整幅が多いのが便利。
バカほど電池は持つし、もちろん複数台の接続も可能だ。
Chromebook や Android から HDMI の出力も可能なので、スイッチャーに突っ込む時にも使える。

残念ながら出力側は Windows のみ。
リンゴの人は、sidecar つうのがあるようです。
あと同一ネットワーク内にいる必要があるので、VPN 環境の人は接続に工夫がいります。
オンラインであれこれやると、チャット画面を別に出したいとか、資料を別画面とか、いろいろあると思うので覚えておくとよいと思う。

May 2020 Update がやってきた

またプロポのドライバやられるから注意。

追記:例によっていろいろあるみたい
https://pc.watch.impress.co.jp/docs/news/1255346.html
ウチは Bluetooth のヘッドセット(Aeropex)で、ちょっと引っかかったけど、ヘッドホンの Enhancements を無効にしたら戻った。
トラブルいやな人は枯れるの待つのもありっすね。

Windowsの大型アップデート「May 2020 Update」が、今朝ほどリリースされた。
Windows Update でも落ちてくるが、順番待ちなので急ぎの方はコチラへ。
https://www.microsoft.com/en-us/software-download/windows10
「May 2020 Update」は例によって小一時間ぐらいかかるので、時間のある時にしよう。
あとドローンクラスタの皆様におかれましては、またまたプロポのドライバが使えなくなりますので、コチラで修正しましょう。
https://www.liftoff-game.com/sites/default/files/inline-files/Liftoff-Windows-10-Reinstall-Remote-USB-Driver_0.pdf

今回アップデート最大の目玉は WSL2 の正式リリースだ。
WSL とは Windows Subsystem for Linux ということで、Windows 上で動く Linux システム。
ウチのページでは、これを利用した Betaflight とか iNav のカスタムファームをビルドする方法とか紹介していた。
https://papalagi.org/blog/archives/1076
今回の 2 で、仮想化によりカーネルも取り込まれ、ほぼほぼ普通の Linux になった。
これによって Docker が普通に使えるとか、ファイルの IO 関係が改善されるとか、まあいろいろある。
さらにこれからは、GPU を Linux で使えるようにしたり(これまでは Windowsバイナリを WSL から叩いていた)、X-server なしで GUI が使えるようにしたり、なんか DirectX を Linux に挿してみたり。
https://devblogs.microsoft.com/directx/directx-heart-linux/
dxgカーネルドライバを経由して、Windows のドライバを叩くらしい。
まあとにかく目白押しだ。

Windows の仮想化には Hyper-V という機能を使うのだが、Windows10Pro のみで Homeでは使うことができなかった。
仮想化は Hyper-V 以外にも方法はあって、やってできないことはないのだけど。
今回の WSL2 は、なんか Home でもこっそり Hyper-V で使えるようになっているらしい。
ありがてえ話だが、いまどきそんなケチくさい差別化なんてやめちまえばいいのにとも思う。
もっともウチにあるのは全部 Pro なんで関係ないですが。

■WSL2
WSL2 のインストールは、コマンドラインから「wsl.exe — install」で入る、という至極簡単なものになるらしいが、今の所ダメだった。
とりあえずコチラの方法。
https://docs.microsoft.com/ja-jp/windows/wsl/install-win10
まず WSL1 を入れて、WSL2 にあげる手順。再起動とかあせらずやろう。
さらに Linux カーネルコンポーネンツの更新が必要。
https://docs.microsoft.com/ja-jp/windows/wsl/wsl2-kernel
元々入れていた WSL の Ubuntu-18.04 を 2 に変換。
Ubuntu-20.04 もリリースされてるのを気づいた。
これも入れた。複数環境がかなりお手軽に使える。
なお、Powershell へのペーストは、Linux スタイルつうか、右クリックでもできるようになってます。

■Windows Terminal
Windows のコマンドラインも、従来の cmd.exe やら、PowerShell やら、それこそ WSL の bash やら種類が増えてきてる。
それらをまとめてくれるの「Windows Terminal」つうのが出てるので、これを使うとよい。
https://forest.watch.impress.co.jp/docs/news/1253445.html
設定ファイルは json ですが、まあいろいろできる。

■winget
さらに「winget」というコマンドラインのパッケージ管理ができるようになっている。
「Windows Packege Manager」というのが正規式名称らしい。
つまり Windows版の apt。
https://github.com/microsoft/winget-cli
「winget install 7Zip」とかで、7-Zip のインストールとかできる。
コチラはまず Insiders Program に参加する。
https://forms.office.com/Pages/ResponsePage.aspx?id=v4j5cvGGr0GRqy180BHbR-NSOqDz219PqoOqk5qxQEZUNFkzQVcxMkJXWEFCUkE4WThQWUJMVlA1Ty4u
その後、Microsoft Store から「app installer」で検索した「アプリインストーラー」を更新すると使えるようになる。
これについては、まだまだこれからって感じだけど、本来あるべきものではないか。

ということで、この機会に Linux 試してみるといいと思う。
今後もいろいろコレを活用する話は出てきそうだ。

FATSHARK HDO2がキタ

外でドローン飛ばさないと実機壊れない。
実機壊れないと部品も買わないので、お金貯まる!
か、どうかわかりませんが、FPVゴーグルを更新してみた。
かつての FATSHARK 1強時代から、昨今は選択肢が若干広がった感じだ。
最終的には HDO から HDO2 に更新した。

もうレビューはアチコチに出ているので、個人的にいくつか思ったところを列記。

■スイッチが付いた
「スイッチが付いた」って特出しでいうのが逆にすごくないか?
長押しでオン/オフ。ちょい押しでファンをオン/オフ。
利用にあたっては電源基板のジャンパを差し替える必要ある。

■悪評高い電池ボックスは改善がなかった
使ってるうちに切れるケーブルもそのまま。
ファンの電源コネクタは使わないのについている。
まあいつもどおり。

■ピント調節がついた
これ期待していなかったが、使ってみたらすごい使える機能。
私は左右の焦点距離が違ういわゆる「ガチャ目」で、メガネが必要なレベルではないのだけど、老眼が進んだのもあり、距離によって左右の目を使い分けるように生活している。
そんな感じで、違和感なかった。
今回は左右のピントがあわせることができる。
左右のピントがあうってこういうことだったかね、という感動が。
ただ、この調整ローラー、ちょいちょい動くので、マメに設定が必要。

■平たい顔族カスタムが必要なくなった
フェースプレート形状が「平たい顔形状」で、従来形状にするために部品を追加する形になった。
これで無加工でもそこそこフィットするようになったが、レンズまでの距離が近すぎて、まつげがレンズに当たる。
なんか底上げが必要か。あと鼻のところからは光が入る。

■HDMI が 16:9 に対応した
HDMI の入力がちゃんと 16:9 になった。
FATSHARK としては 16:9 液晶だった DominatorV3 以来ではないか。
やっとまともに PC 接続できるね。
実際つないで見てシミュレータ飛ばしてみた。
有機ELっぽい、暖色が強く、黒が強く出るコントラストの強い映像になります。
リフレッシュレートが 60Hz っぽいので、高リフレッシュレートのモニタあるなら、そっちのほうがいいかもしれんですね。
めんどくさがりなので、積極的に使うことはないかもしれず、という感想になった。
なお HDMI だけでなく、アナログも 4:3 と 16:9 に対応しました。
まあライバル機も普通に対応してますよね。

■DVR機能は前のまま
まったく改善なし。
なお HDMI 入力は DVR で記録できない。

■画面がキレイになった
かつては「スゲー」とか感動しただろうが、DJI FPV ゴーグルとかいろいろあったし、「まーこんなもんか」という、ものすごい日常の道具感。

あいかわらず細かいところが気になるが、改善は進んだか。
いろいろなゴーグルあるけど、日々の使い勝手や取り回しも考えると、これがベストなのかなーという感想。

ネッククーラーNeoがスゴい!

いよいよ暑い日も出てきましたね。
中間期を屋内で過ごしていましたが、USBファンを出してきました。
ゲーミングノート冷却用にも VTX 冷却にも使えるぞ。
そんな中、すごい製品を見つけて思わず買ってしまった。
今年の夏はコレだ!

USB電源のユニークなお役立ちアイテムを売るサンコーレアモノショップ。
今年の夏対策はこちら「ネッククーラーNeo」。
https://www.thanko.jp/shopdetail/000000003498
首の冷却部にペルチェ素子が組み込まれている。
ペルチェ素子の排熱側をファンで冷却している。

ペルチェとは通電することで、片側の熱を逆側に移動するという素子。
つまり排熱側を冷却することで、吸熱側は温度が下がってくる。
世間的にはワインセラーとかに活用される。(音がしないため)
かつてパソコンの CPU 冷却とかで、よく使われていた。
古いパソコンマニアなら一度はつかったことがあるのではないか。
排熱側がおっつかないので、多段のピラミッド式に組んだりする。
その結果、冷えるは冷えるけどものすごい電気食う。

そんな思い出のペルチェ。
今回も 5v の USB 電源だし「まあちょっと冷たくなる程度でしょ」と思っていたら。
全然冷える。結露するぐらい冷える。十分効果がある。
首元を冷やすというのも理にかなっている。
操作は3段階あり、強・弱・ゆらぎ。
ゆらぎは強くなったり弱くなったりするやつで、フルパワー時はファンの音もそれなりする。
5v 1A なので、モバイルバッテリはもちろん、PC の USBポートでもOK。
カタログによると、10000mAh のモバブで 10時間持つそうだ。

5980円とちょっと高いと感じるかもしれないが、その価値があると思う。
屋外ドローンはもちろん、在宅ワークにも有効ではないでしょうか。
控えめにいって、オススメ。

Ender3ProにOctoPiを追加する

格安3Dプリンタを改良しようシリーズ。
今回は OctoPi について。
Ender3は本体の SDカードに stl データを書き込み、それをメニューから呼び込ませることでプリントする。
このネットワーク時代にそれは不便やろ。
ということで、ネットワークプリンタ化するのが OctoPrint。
https://octoprint.org/
具体的には USBシリアル使って、Gコードを送る WiFi 端末ということです。
OctoPrint は python ベースなので、OS 選ばず使える。
今回は3Dプリンタ専用ということでラズパイベースの「OctoPi」を設置します。

■何が便利か
ものすごい高機能なので、さっさと試すのが早いと思う。

■作り方
https://octoprint.org/download/
ここにあるページの説明になります。

■どのラズパイにするか
どれでもよいが、Zero は制限付となっています。
おそらく512MBのメモリが厳しいのでしょう。
同様に 3A+ もダメかもしれません。
もちろんがんばると Zero でもイケると思いますが、USB 給電とかいろいろハマりポイントもあるので、腕に覚えのある人以外は 3B 以降が無難です。

■ラズパイ以外に何が必要か
システムを入れる SDカード。
8GB もあれば十分ですが、別に 32GB でもよいです。
ラズパイの電源。4B とかはデカいの要求するので注意。
最終的には Ender3pro の DC24vから BEC つないで一本化するのがよいでしょう。
Ender3pro に接続する Mini-USB ケーブルが必要です。最近減りましたね。
通信は USBシリアルで行う形です。(/dev/ttyUSB0)
カメラがあると、印刷風景がネットワーク越しに見れたり、ラプス動画ができたりします。
ラズパイ純正カメラでも Webカメラでもいいです。
がんばればマルチカムもいける。

■システムイメージ焼付
最新のディスクイメージはコチラ。
https://octopi.octoprint.org/latest
SDカードに OctoPrint からダウンロードしたシステムイメージを焼き付ける。
最近は Etcher が多いですかね。マルチプラットフォームだし。
https://www.balena.io/etcher/
そういえばラズパイ公式からもイメージライタ出されていましたね。
https://www.raspberrypi.org/downloads/
こちらもマルチプラットフォームで、メジャーどころは選ぶだけでよいし、EEPROMなども焼けるので今後はこれが主流になるかもしれないですね。
OctoPrint の場合は、「Use Custum」でイメージファイルを指定して焼きましょう。
pythonのスクリプトも配布されているので、作り直すのがめんどくさい場合は、それを入れるのもアリです。

■WiFiの設定
ラズパイを使う上で、めんどくさいのがこの WiFi への参加。
モニタや HDMI を準備したくなるが、できるだけやりたくない。
ラズパイのディスクイメージは、2個のパーテションで構成されている。
先頭が FAT で、2個目が ext4(Linuxのファイルフォーマット)。
Windows などから見ると、先頭のドライブが開ける。
この中の「octopi-wpa-supplicant.txt」に WiFi の設定を書き込むことでブート時に WiFi に接続する。
改行コード(LF)に注意して書き込む。
書き方はコチラに FAQ がある。
https://community.octoprint.org/t/wifi-setup-and-troubleshooting/184
一般家庭の WiFi ルータだと、WPA/WPA2 で SSID/PASS 設定でイケルと思う。

## WPA/WPA2 secured
network={
ssid="自宅のSSID"
psk="ルータのパスワード"
}

あと国コードもココで直しておくと吉。

#country=GB # United Kingdom コメントアウト
country=JP #追加

ココがすんなりいかないと、ちょっとめんどくさい。
そこはあとガッツで手作業でいくしかない。
有線LANだと悩まないでいいです。

カメラの設定は同様に「octpi.txt」に入っています。
ラズパイカメラか USB カメラかで設定変える必要あるので、よく中身を見て修正しましょう。

■起動する
設定は一旦これで終了。
Mini-USBケーブルで Ender3pro と接続し電源オン。
最初は初期設定あるのでしばらく時間かかるかも。
心配なら HDMI で画面を出して確認してみよう。(通常運用時はつなぐ必要なし)
起動が完了したら Avahi に対応しているので、「http://octopi.local/」で Octopi が表示される。
Windows の場合は bonjour 入ってないとダメです。
もちろん IPアドレス直打ちでもよい。
SSH も動いているので、黒い画面派の人はそっちでアレコレやってもよい。
初期IDは「pi」でパスワードは「raspberry」です。(Rasbianと一緒)
sudo raspi-config で、rootパスワードの変更とか、TimeZone の変更とかしましょう。
直接必要ないかもしれないですが、初期の Locale が en-GB/UTF-8 なので、#とか入力するために、Locale を en-US/UTF-8 で LANG=C にの変更とかは個人的に最初にやってます。

■Cura(スライサー)への接続
Cura のプラグインを使うことで、Curaから直接プリントできるようになります。
OctoPrint から API を入手し、Cura のプラグインに入力しましょう。

■その他のプラグイン拡張
本体からアレコレあるので選んで使ってみる。
WebHookでプリントスタート終了をプッシュするとか、タイムラプス動画撮影するとか。
思いつきそうなハード改造はコチラにまとまってる。
https://howchoo.com/g/ntg5yzg1odk/using-octoprint-with-the-creality-ender-3-3d-printer
いろいろできる。

■まとめ
ラズパイ便利だなあ。
OctoPi は、ほぼ素の Rasbian なので、ちまたにあるIoT端末的に、いろいろ仕込むこともできる。
箱で囲って温湿度センサーを追加して管理強化するとか。
タイムラプス撮影時だけ照明点灯とか。
ラズパイをイジる入門としては、目的も作りやすいし対象としてはいい感じでないでしょうか。

Ender3Proにオートレベラを追加する

どうやってもワケわからなくなるので、あんまり書きたくなかったんだけど。

ドローンの部品作るのに 3Dプリンタだ!というのが丁度1年ほど前。
一時期ぶん投げたり、思い出したようにフィラメント揃えたり。
亀のような歩みで、しかしながらちゃんと進み、ようやく形になりだした。
海外で売っているハードなヘアスプレーが、デッキに吹いておくと材料が反らないとか言ってて、同じスプレーないんで、同じ材料使ってるの試したり。
(現在は100均の合成のりがベストとなっている)

そんなこともあり、今年に入り我チームでは、もう1台 Ender3Pro を追加。
その後、理屈も理解したし、そろそろちゃんと30万とかの高いやつとかでもいいんじゃね?
と、いろいろ調査して悩んだ結果、やっぱり安い Ender5 を追加を決定。
もうすぐ 3台体制になりそうだ。

ということで、重い腰をあげ、当初予定してた改良を行おうという記事。
正直どうやってもわかりやすく書ける気がしなかったのだけど、複数台やる過程や修理の時に思い出せないというのがよくあるので、つまるところ覚え書きだ。

Ender3 とか Ender5 は、Creality という会社の格安 3Dプリンタで、2万5千円ぐらいから買える。
https://github.com/Creality3DPrinting/Ender-3
オープンソースで展開されており、そのあたりが安価であることと、ノウハウが集まりやすく、とにかく工夫すればなんとかなる。
しらべるとドローンの改造ネタよりよっぽど情報が多い。
まあコレで十分じゃないか?というのが感想。
様々な改修方法があるが、その中でも今回は「オートレベラ」というのをやってみる。

FDM式の 3Dプリンタは、温めたプラスチックをノズルの先から垂らし、それを積層していくことで形にする。
なので、デッキとノズルの高さ設定がポイント。
複数点を計測し、紙などでクリアランスを測りプリントするのだ。
これを自動でやるのが「オートレベラ」となる。
センサーは純正の BL_Toutch というのがあるが、パチの 3D Toutch とか、まあ似たようなのがいっぱいある。
おそらくどれでもいい。

ココで制御系の簡単な構成を説明する。
制御基板は AVR マイコンで、Arduino互換。
モータドライバや各種センサは入るようになっている。
なんかこのあたりはドローンの FC に似てますね。高性能基盤とかも売ってます。
これに U8glib の液晶がつく。
Mini-USB端子と MicroSDカードスロットがあり、この SDカードにデータを置き、液晶で見ながら操作するというのが基本的な構造。

オートレベラをつけるためには、Z軸のリミットスイッチの部分にタッチセンサーを割り込ませ、制御基板のファームを改造してやることで利用可能となる。
ファームは Merlin というものを使うのだが、最初は bootloader の書き込みが必要。
そして Bootloader の書き込みには AVR ライタの類が必要となる。(ココがめんどい)
世間で実践した例を見ると、Arduino Uno を AVRライタ改造して ArduinoIDE から書き込むパターンが多いようだが、これはこれで大変よね。
ということで、最近は AVRライタまでセットになったのが売ってる。
https://www.amazon.co.jp/dp/B07SHS8CJS/
こういう部品セットのがオススメ。4~5000円。
変換基盤x2、センサー、AVRライタ、マウンタ、ケーブル各種。
ニッチな製品に思えるが、中華ショップも含めた多数売っている。
なお、それっぽい QRコードあって、そこに説明書ありそうだが、説明書はない。

AVRライタはこんな感じで組み合わせる。

このあたりから写真とってないので、肝心なところなのに端折っちゃうが、調べればたくさん出てくる。
AVRライタを PC の USBに接続し、制御基板のファームを書き込みできる状態までやる。
ファームはコチラ。
https://creality.com/download/creality3d-bl-touch-firmware_c0006
Ender3は、無印とProとあるが、コレ中身同じじゃないかな?
これを解凍すると「progisp+1.72」というフォルダがあり、その中にある「progisp.exe」が AVRライターのプログラム。

①で「ATmega1284P」を選択
②でダイアログを開き
③で番地を「DC D6 FC」として
④で「Write」して閉じる
⑤でファイルを開き、同じフォルダにある「Marlin.cpp.hex」を選択
⑥で焼付

これで bootloader の焼付が完了。
この状態ではファームは空の状態なので別途ファームを焼き付けることになる。
ファームの焼付方法は何種類かある。
このまま AVR ライタで焼き付ける場合は、同じアーカイブの中に入っている「Ender-3 Pro1.1.6BLTouchV3.1PowerLossContinueEnglish.hex」を同様の方法で焼き付ける。
Octoprint を使ってたら、そこから焼き付けるのもあり。

ただし上記の方法では、バイナリが出来上がっている状態なので、細かい設定等ができない。
その場合は、ArduinoIDE を使ってビルドしてバイナリを作ることで可能。
ArduinoIDEはコチラからダウンロード。
https://www.arduino.cc/en/main/software
Merlin のソースはコチラ。
https://marlinfw.org/meta/download/
2.0.x系は 32bit のもので、今回の ATmega1284P は 16bit の 1.1.x系を使う。
解凍して「\Ender3_3Dtoutch_Marlin-1.1.x\Marlin\example_configurations\Creality\Ender-3」からヘッダファイルを「Marlin」のフォルダにコピー。
「Marlin.ino」を ArduinoIDE で開いて、各種ヘッダファイルを調整する。
タッチセンサーの項目を組み込むとともに、メモリが足りないのでメニューとかの機能を削る。
液晶に使っているので「U8glib」のライブラリも忘れず追加。

おなじみのPID設定とかもできますよ。

ということをやるとできる。
あとセンサーとのオフセットとかの調整もあって、ようやく自動になります。
動かすときには Cura の Gコードで、G28 のあたりに G29 (オートレベラ起動)を追加します。
これもヘッダファイルで G28 に連携する設定ありますが、まあ入れとけ。
まだモノは見てないけど、おそらく Ender5 も同じじゃないかな。
いきあたりばったりだが、今回もなんとかなった。

右側の青LEDがタッチセンサー。奥の青LEDのあたりが今回の増設ポイント。

Epic版GTAVの街をドローンで飛ぶ

右上に小さく見える FiveM のアイコン。これが Epic版MOD運用のキモ。

Epic Store つうのは、Steam の対抗的なところがあるのですが、時折大盤振る舞いがある。
で、コレ。
https://www.epicgames.com/store/ja/free-games
GTAVが無償配布。
GTAVは非常にお金のかかったソフトで、ちょっと古いけど人気タイトルだ。

しかしドローン野郎にはもっと別のニーズがあって、実はこの緻密に書き込まれた街を FPV ドローンMOD を使うことでドローンで飛ばせる。
ということで、今回はタダで GTAV の世界をドローンでフリースタイルできるようにする記事としてみた。
今のPCでは動かしきれない?
とりあえずライセンス確保しておけば後日もできる!(終了しました)

まずは Epic Store に登録しましょう。いわゆる Steam みたいなもんです。
2段階認証の登録が必須とされています。
3つ選択肢がありますが、一番下のメール認証がよいでしょう。
2段階認証を終えたら「入手」です。
ここまでブラウザですが、右上に「EPIC GAMESの取得」とあるので、ランチャーを入れましょう。
めんどくさい認証をやって立ち上がったなら、ライブラリから GTAV をインストールしましょう。
その間に下の準備をしておきましょう。

ScriptHookVって改造パッチをあててやるというのが基本なのですが、対応が Retail版と Steam版だけで、Epic版は対応していないです。
なので Epic版は別の方法で入れます。
おおまかな流れとしてはこうなります。

①FiveM をインストール
②Drone Mod をインストール
③x360ce をインストール


FiveMは自鯖をつくるためのもので、脱獄した GTAV みたいなものです。
ScriptHookV は最初から FiveM に入っているので、改めて入れる必要はないです。
ファイルの置き場所とか細かい差異があるので、それを説明します。

①FiveM をインストール
https://fivem.net/
ココにいってダウンロードしてインストール。
追加ファイルもダウンロードされます。
インストールフォルダは「c:\Users\user\AppData\Local\FiveM」になります。
使っているアカウントによって「c:\Users\user\」が違うので、えーわかりますよね?
デスクトップに「FiveM」「FiveM Singleplayer」のショートカットができます。
「FiveM」は、世界にあまたある自鯖への入り口です。
いちおうアカウント登録必要ですが、シングルで動かすのにいるのかな?
わからないですが、いちおう登録しました。Bot避けがめんどくさいです。
 → 登録なしでも Single Play可能なのを確認しました。
今回は「FiveM Single player」を使います。
こちらを起動すると、GTAが立ち上がると思います。
悲しいことに Epic版からセーブデータが引き継がれない。 → ちょっと下の追記を確認。
場所探すのも面倒だったので、しゃーないまたチュートリアルを実施。
PCゲームに慣れていない人だと、ココがしんどいかもしれない。
そして長い。キーボードで車の運転ツライ。
銀行強盗やって、車盗んで、パトカー振り切って、お店に行って、自宅に帰るところまでやりましょう。

追記
FiveMのセーブデータは「C:\Users\user\Saved Games\CitizenFX\GTA5」に置かれます。
「SGTA50015」と「SGTA50015.bak」がセーブデータです。
いっそ100%のを引っ張ってきて差し替えましょう。
https://www.gta5-mods.com/misc/100-save-game
最初の電話なくなってドローンに移行するのラクになります。
チュートリアルもやらないですむかな。→ やらずにできるのを確認しました。

②Drone Mod をインストール
「Quadcopter 1.2.1」をダウンロードしましょう。
https://www.gta5-mods.com/scripts/fpv-drone-racing
MOD の置き場所が Steam版などと違います。「c:\Users\user\AppData\Local\FiveM\FiveM.app\plugins」に解凍します。
FiveM.app」もエクスプローラで見たら「FiveM Application Data」で、さらにカタツムリのアイコンになってますが、大丈夫フォルダです。

pluginに配置。せっかくなんでLambdaMenu.asiも入れてありますが、おそらくなくてもOK。

■追記
元々のEpic版バイナリのところに入れていた Drone Mod(LeFixDrone)を消したところ、起動時にエラーが出てうごかなくなりました。

こんなエラーが出て立ち上がらない。

「c:\ProgramFiles\EPIC Games\GTAV」にもLeFixDroneをコピーしてください。
どうも起動時に、Epic Game側を確認して、実行時に Plugin 側を呼び出している・・感じ?
何回か実験して、両方に入っていると動くのを確認しました。

■さらに追記
Drone Mod の各種設定は「C:\Users\user\AppData\Local\FiveM\FiveM.app\plugins\LeFixDrone」の「settings_mod.ini」に入っています。
なんとなくこんな感じかなーって個人的デフォルトはコチラです。(覚書ともいう)

[AUDIO]
volume = 1.000000
[CAMERA]
mode = 0
d1FOV = 98
d1Tilt = 32
d3FOV = 100
d3Tilt = 29
c1CloseFOV = 100
c1FarFOV = 30
d3YPos = -2.000000
d3ZPos = 0.100000
[CONTROL]
RcRatePR = 1.500000
RcRateY = 1.500000
RateP = 0.500000
RateR = 0.500000
RateY = 0.300000
ExpoPR = 0.960000
ExpoY = 0.880000
[DRONE]
3dFly = false
acroMode = true
mass = 0.700000
maxRelLoad = 2.600000
maxVel = 40.000000
zeroThrustDown = true
[GAMEPAD]
vibration = false
invertedCam = false
[PID]
enable = true
p = 1.500000
i = 0.000000
d = 0.800000
[PHYSX]
collision = true
gscale = 1.000000
[VISUAL]
trails = false
sticks = false
model = false
colli = false

③x360ce をインストール
プロポを使う場合は(みんなそうでしょうが)x360ceもダウンロードします。
これは XBox のコントローラー、通称「箱コン」のエミュレータです。
http://www.x360ce.com/
なんかサーバ落ちてますね。
そんな時はGithubにもあります。
https://github.com/x360ce/x360ce
x360ce_x64.exeというファイルが出ますが、これを「c:\Users\user\AppData\Local\FiveM」に配置します。
プロポつないでマッピングしましょう。
最初起動すると DLL 作る?っていわれるのでつくる。
「xinput1_3.dll」ってファイルが同じフォルダにできると思います。
これを「xinput1_4.dll」とリネームします。64bit 読みに行く対策です。
加えて「c:\Users\user\AppData\Local\FiveM\FiveM.app\bin」に「xinput1_3.dll」があるので削除しておきます。

こんな感じです。一番上のは見た目違うがフォルダだ。FiveM.appがそれ。

これで完了。めんどくさいね!
起動後、電話終わったあと TABキーを押すと左上に MOD 使う?が出てくるので、エンターで入ります。
なかなか出てこないこともあるので、あせらずやろう。
設定メニューは、AとXを同時押しすると出てきます。
必要ならプロポにバインドしておくといいです。
設定はイジらなくても問題なく飛べます。

ひっかかるところだけ書いたつもりですが、すげえめんどくさいですね。
加えて文字ばっかりだしな。
二の足踏みたくなるのわかりますが、なんせタダなんで。
とりあえず GTAV をもらうところまでやって、やる気になった時にやってみてはどうですかね。
無償配布は 5/22の0時までとのこと。
ギリギリになったが、みんなライセンスだけはゲットしてるよね?

あとは高画質化MOD「Natural Vision」でも入れてみますかね。
せっかくなんで。
これももうすぐ新しいのが出るらしいです。

■追記
入れてみた。FiveMの方がコレのインストールは簡単。
やったね!(これが正しいかはよくわかってない)
Natural Vision Remastered をダウンロードしましょう。
https://www.gta5-mods.com/misc/naturalvision-photorealistic-gtav
解凍して「Optional Add-Ons\19. FiveM NVR Pack\Main Package」の中にある「addons」ってフォルダを丸ごと、「c:\Users\user\AppData\Local\FiveM\FiveM.app」にコピーする。
これだけ。

もうすぐ出るという NaturalVision Evolved も楽しみですね。

おまけ
「半角/全角キー」、US配列の人は「Alt+`」で、チートコードが打てるようになります。
ここで「makeitrain」と入れると天候を変えられます。
何度も入力することで次々に変わりますのでやってみましょう。
そういえば、Epic版であった強制英語入力化は FiveM だとないっすね。

さらにおまけ
Steam版でも同様の方法でやることができるのを確認しました。
なんか Epic版も dll を差替して強引に ScriptHookV を動かす方法も確立されつつあるみたいです。
どれがいいのかってありますが、この Drone Mod については、いっそ FiveM がラクなのかもしれないとか思ったり。
FiveM は微妙にバージョン古いですが、固定なので変化に対応する必要ないし、そもそも Drone Mod 自体も古いので後日悩むことがない。
元々のもさっくりバニラで残せますしね。

6/5追記
このところ FiveM の Single Player が動かないですね。
plugins 外すと Multi は立ち上がるようですが。
FiveM だと今後の手間いらず予想はなんだったのか。
しばらく眺めてましたが、今や普通の方法でもいけます。
https://twitter.com/ITACHI_USER/status/1267836597208117249

補足すると、1.0.1868.4 対応のやつは配布が始まっています。
https://www.gta5-mods.com/tools/script-hook-v
NVRの導入とかもOpenIVから入れる方法になります。
こちらは新しいの出たらあらためて紹介するかも。

ラズパイHQカメラを試したよ

前回記事にしたのは4/30ですか。
https://papalagi.org/blog/archives/1257
月日が経つのは早いもんです。

その時に pimoroni に注文してたのが、英国から約3週間を経てはるばるやってきました。
先週まで英国の税関にいる Tracking でしたが、一気に物流動き出したか。
正式名称は「Raspberry Pi High Quality Camera」
通称ラズパイのHQカメラ。
ということで、ブツはコチラ。

予想よりデカく重い。
作りは思ったよりしっかりしてて、コストから考えてもよくできてる。
ラズパイも立派になったな・・と思いを馳せる。

今回は重くて高い望遠レンズは使い所思いつかないのでパス。
63mmの通称ワイドを買ってみた。まっどさんも欲しいというので2セット。
9500円/個で、国内で調達するよりちょっとだけお得かもしれんですね。

さて早速組み上げてみましょう。
まず基盤には C-CS アダプタがついています。
これマウント方式の違うものに対応するアダプタですが、今回のワイドレンズを使う場合には不要です。
望遠の時は必要なようです。
コレ、意外にハマりポイントかも。
あと一眼用のテレコンみたいなのもコレを使うようですね。

で、あとはいつもどおり、CAMERAコネクタにフレキつないでいつものヤツです。
基盤を支えるところに三脚用の穴があります。
今回手元になかったので使ってないけど、なんか小さな三脚はあったほうがいいですね。

今回はテストに 4B(2GB) を準備してみました。
raspi-config で Interface にいって、カメラを Yes。
lsmod で確認するとちゃんとカーネルドライバ入ってます。
簡単になったものですね。
コレで raspistill で撮影したりすればいいのですが、その前に。

$ raspistill -t 0

これで、画面に出しっぱにしてピント調整しましょう。
これは CLI モードでも出ます。黒い画面大好きな人も安心。
「-t」のスイッチはタイムアウトを指定するもので、「0」だと出しっぱになります。
ピントは基板側に一番近く一番大きいギザギザをまわします。
ワイドレンズの場合、相当ネジをあげないとピントが合いませんでした。
ある程度の場所になったら、付属のドライバとネジで固定を行います。

ピントをあわせ、ようやくこれで撮影可能になりました。
3Dプリンタの監視用を想定したので、ちょっと近めでピントをあわせて撮影したものがコチラ。

これぐらいの距離で撮影。

4056×3040で、カメラ名は「RP_testc」ってなってる。
センサーから無加工の画像を目にすることは、今の時代逆に少ないのでないか。
味気のない絵がとれていますが、明らかに従来のカメラよりパワーアップしました。
このあと momo につないで WebRTC での接続テストをしてみました。
https://github.com/shiguredo/momo
従来のラズパイカメラと同じ扱いでさっくりつながりました。
4Bだと VP9 でも余裕で、なんかいい感じですね。
ちょっと出せる感じの動画ないのが残念ですが、いつもと変わらない感じです。

出せる動画を作ったり、アレコレ実験してたところで、MicroSDHC がヘンな匂いが出て壊れた。
で、今回はここまで。
これ Jetson nano とかにもつながるのかなー。
とかは気が向いたところで。
なお壊れたのは、アキバで 399円で買った、トランセンド(ホントかどうかわからず)と書いてる 32GB でした。
SDカード、あんまり安物もどうよって感じだけど、所詮は SDカード。
実験用のブートイメージは USBブートで、SSD とかが無難なのかも。
3B+とか従来機で可能だったこの機能、4B もようやく使えるようになるらしいですよ。
https://raspida.com/usb-boot-beta

ということで、サラっとやってみました。
基盤の後ろには面白げなランドが並んでます。
このあたりもこれから活用されるんですかね。

「教育用」という逃げでスタートしたラズパイ。
私も初代の頃からずーっと使ってますが、もう普通のパソコンで、Linuxプラットフォームとしては一番使える環境になりつつある。
ところで、「RaspberryPi」ってネーミングは、始めた人たちの「アップルガガガ」から来ているとのこと。
「アップル」の再開発も随分大きくなったので、この次に続く「ラズパイガガガ」ってのにも期待したいです。