virt_flyのブログ -18ページ目

virt_flyのブログ

フライトシミュレーターソフトのFlightGearで仮想飛行を楽しむブログです。

so

 

非スマート家電をスマート化

Alexaとの連携に成功するには、Alexaアプリで「スキル・ゲーム」からtapoと検索するのが肝!

 

あれよあれよという間に1ドル=153円を突破した円相場は、その後も下がり続け154円どころか今や155円に迫る勢いです。

 

財務大臣は、あらゆる手段を排除せず対応と繰り返しますが、一向にその気配は見られず、口先介入と見透かされていましたから当然かも。

 

円安で日本株はかつてない上昇を見せ、物価も上昇して国の借金も相対的に減少するとなれば、政府にはこんな好都合はありませんから、動くわけがないか。

 

Aliexpressを見ていると、円表示の商品価格は日々値上がりしており、悲しいかな購買欲は激下がりしています。

 

それでも株価上昇の恩恵をこうむることができ、先頃プチ贅沢をしちゃいました。M.2 SSDとスマートWi-Fiプラグの購入です。

 

並行輸入なら消費税がかからない分安く購入できて良いのですが、AliexpressのSSDではリスクがあるし、技適を受けていないWi-Fi製品を使うわけにはいかず、珍しく今回はAMAZONで購入しました。

 

M.2 SSDについては、前回ふれましたので、今回の話題はスマートWi-Fiプラグです。

 

 スマートWi-Fiプラグとは 

 

スマートWi-Fiプラグといっても知らない方にはわかりにくいですが、Wi-FiでON/OFFのできる電源タップといえばよいでしょうか。

 

スマート家電でない製品をスマート化するには、これしかないでしょう。Wi-Fiでコントロール、あるいは声で操作するといっても、電源のON/OFFができるくらいですから、用途は限定的です。

 

とはいえ、購入したTapo P105には電源のON/OFFをスケジュールしたりタイマーの機能もありますから、考えれば結構使い道はありそうです。

 

 購入した動機 

 

購入した動機は、電子工作の成果物の電源を音声操作で楽してON/OFFしようというものです。AlexaのようなAI音声アシスタントに慣れ親しんでしまった今となっては、いちいち立ち上がって何かのスイッチをON/OFFしにいくというのは苦痛でしかありません。

 

使用目的からすれば、スマートWi-Fiプラグでなくても、USBソケットに挿し込みWi-Fiで給電をON/OFFできるUSBアダプター(スマートUSBアダプターとかWi-Fi USBパワーアダプターと呼ばれる)でもよかったのですが、Aliexpressでは500円以下と安価ではあっても技適がなく、国内で買おうとすれば最低でも1000円近くはしますから、同じ1000円弱なら、まだしも汎用性のありそうな(根拠のない主観)スマートWi-Fiプラグをと考えたものです。

 

 Tapo P105の初期設定 

 

それでは、Tapo P105の初期設定です。ここでは、アンドロイド端末での設定になります。

 

 

設定には、アプリのインストールが必要です。製品に添付の「かんたん設定ガイド」にあるQRコードから開くか、もしくはGoogle Playで「tapo」と検索しTP-Link Tapoを見つけ、Tapoアプリのインストールを実行します。

 

なお、「かんたん設定ガイド」は説明が簡略化され過ぎていて、以降の設定はアプリの指示に従って行うほかなく、とまどうことがありました。

 

設定の流れは以下のとおり。

 

①インストールされたTapoアプリを起動します

 

②利用規約、プライバシーポリシーについて同意します(初回のみ)

 安全に使用する上で注意すべき大事なことが書かれています(注1)

 

③TP-Link IDが未作成なら作成を選び④へ、作成済みならログインを選び⑦へ

 

④設置場所はデフォルトで日本が表示されているはずなのでそのまま

 TP-Link IDにはメールアドレスを入力します

 

⑤パスワードを作成します

 この時、利用規約、プライバシーポリシーを確認、同意します

 

⑥TP-Link IDとして④で入力したメールアドレスに、Activationを求めるメールが届きます

 メールを開いて実行します

 

⑦Tapoへようこその画面が開いたら、パスワードを入力してログインします

 

⑧Tapoアプリのホーム画面が開きます

 画面右上部の〇に+の字のマークをタップし、「デバイスを追加」を選びます

 

⑨表示の中からプラグをタップし、Tapo P105を選びます

 

⑩プラグを電源コンセントに挿します

 プラグのLEDがオレンジと緑に交互に点灯するようになったら、「オレンジと緑色に点灯」をタップします

 

⑪位置情報をオン(有効)にし、アクセスを許可します

 アプリがデバイスを検索中の画面になります(検索にはBluetoothを使用しているようです)

 

⑫デバイスが見つかり画面が変われば、今度はWi-Fi接続するためのネットワークを選びます

 Wi-Fiのパスワードを入力します

 

⑬Wi-Fiに接続できれば、デバイスに名前を付けます(デフォルトはスマートプラグ)

 デバイス(プラグ)をいずれの場所に置くのか指定します(注2) なお、場所は増やせます

 そのアイコンも選びます

 

⑭ファームウエアが最新か確認が求められます

 必要ならファームウエアのアップデートを実行します

 

⑮Tapoアプリのファームウエアが最新であることが確認できれば、ホーム画面が表示されます

そして、デバイスとしてスマートプラグが表示されるようになりました。

 

以上で初期設定は終了です。いつでも遠隔操作が可能です。

 

 操作の仕方 

 

操作はいたってシンプルです。

 

 

スマホでTapoアプリを立ち上げたら、「お気に入り」や「すべての端末」、「書斎」などの場所にあるデバイスから目的のデバイスの「off」をタップします。対象となるデバイスの電源が入り、デバイスの表示も「on」に変わります。

同様に、「on」をタップすれば、電源を切ることができ、デバイスの表示は「off」に変わります。

 

なお、Tapoアプリを使い、「スケジュール」で予定時刻に電源をON/OFFする、「タイマー」終了時にON/OFF、また「おでかけ」では不在を悟られないようにランダムにデバイスをON/OFFさせることが可能です。

 

 

 

方法としては、個別デバイスをタップし、開いた画面の「スケジュール」、「タイマー」、「おでかけ」を使って、時間を設定して実行させます。

 

 

また、ホーム画面の下部にある「スマート」(立方体の形のアイコン)をタップすれば、「ルーティーン」、「ショートカット」、「オートメーション」の各タブが設けられています。

 

「ルーティーン」では、「家から外出」、「家に着く」、「寝る」などのショートカットが用意されていて、タップすればデバイスが自動的にON/OFFできるようになります。「オートメーション」を使えば、自動でいつ何をさせるかを設定できます。

 

 Alexaとの連携 

 

スマホで遠隔操作ができるようになれば、やはり声で操作ができるようにしたいですねよね。そこでAlexaとの連携を試みました。

 

アンドロイドのバージョンが旧いためか、いくつかのサイトで紹介されている方法では成功せず(注3)、少々手こずりました。それでも、Alexaアプリのナビゲーションメニュー中の「スキル・ゲーム」の選択からはじめて、tapoを検索してこれを「有効にして活用する」以下の作業をすすめることでAlexaとの連携に成功しましたので、次に手順を記します。

 

①スマホでAlexaアプリを起動します

 

②ホーム画面の左上にある3本線アイコンのナビゲーションメニューをタップ

 

③「スキル・ゲーム」を選択

 

④開いた画面の右上にある虫メガネアイコンをタップ

 

⑤検索画面で「tapo」と入力して検索

 

⑥検索結果より「Tapo」選び

 

⑦Tapoと表示の画面で「有効にして使用する」をタップ

 

⑧TP-Link IDでログインし、Alwxaアカウントと紐付けするため、メールアドレスとパスワードを入力します

 

⑨「AlexaのTP-Link IDの使用を許可」に「承認」を与えます

 

⑩Tapoが正常にリンクされたら、現在の画面を閉じます

 

⑪端末の検出を実行します

 

⑫「プラグを1個検出・接続済み」と表示されます

 「デバイスをセットアップ」を実行します

 

⑬セットアップ画面ではプラグをグループに追加するか聞いてきます

 追加するかスキップします

 

⑭「スマートプラグはセットアップ済ですぐ使えます」と表示されたら、「終了」です

 Alexaアプリのデバイス画面にはプラグのアイコンができています

 

以上で、Alexaとの連携は完了です。実際に声でプラグをON/OFFできました。

 

なお、「Alexa 5分後にスマートプラグをオンにして」と声で操作できますが、こちらはTapoのタイマー機能ではなくAlexaの機能になります。

 

 

 

注1)電気ヒーターや扇風機など、火災や感電、ケガする恐れのある機器との接続が禁じられています。離れた所から遠隔操作するわけですから、遠隔操作のできなくなった場合や、接続機器が突然動作した場合を含め、危険がないよう配慮が必要ですから、目を通しておきましょう。

 

注2)場所を指定しても、その場所にデバイスは表示されず、端末の追加を行っても現れず、あわてました。気が付けばTapoアプリのホーム画面の「お気に入り」や「すべての端末」タブではいつの間にかプラグが表示されるようになっていました。よくわからないところです。その後、端末の追加を試すと、プラグ名が選択できるように表示されて、追加を実行することもできました。

 

注3)TapoアプリでサードパーティーサービスからAlexaとの連携を試みたり、Alexaアプリのデバイス画面から右上部の〇に+の字のマークをタップし、「デバイスを追加」でプラグを選び「TP-Link Tapo」を指定すると、「アプリケーションのアップデートが必要です」とAlexaの最新バージョンのインストールを求められます。

しかも、手持ちのスマホのアンドロイドのバージョンが旧く、Google Playでは「このアプリはお使いのデバイスに対応しなくなりました」と表示される始末。Alexaが対応するのはバージョン9以上とされているようですので、Alexaアプリのアンインストールもアンドロイドのバージョンアップも困難と判断せざるをえません。

↑購入した1TB内蔵用SSDとエンクロージャー(外付け用ケース)ー写真はセット済

 

バックアップのコピー用に

 

 HDDの復元が必要に 

 

USBハブとパソコンのコネクターは、なんて接続が不安定なんでしょう。USBデバイスが認識されないことがしょっちゅうです。昔はこんなことはまずなかったのに(注1)

 

ついに今回は、USBハブに挿したUSBメモリーからパソコンに外付けされたバックアップ用HDDにファイルをコピーしようとしていて、途中でUSBメモリーが認識されなくなって転送がストップ。結果、あろうことかHDDに保存してあったファイルが消えて一切読みだせなくなるという、悲惨な目にあいました。

 

消えてしまったHDDの中身は、自身にとっては大事な長年の保存ファイル。幸いなことに複数のUSBメモリーにジャンル別にしてほぼほぼ保存してありましたので、HDDは再フォーマットしてファイルをすべてコピーしなおせばおおよそ元に戻せます。

 

 バックアップは1つでは心許ない 

 

今回の一件でバックアップ用HDDが一つでは心許ないことを思い知り、念のためにもう1台ストレージデバイスを増やすことにしました。

 

個人的には何年分もの様々なファイルといえども、保存に必要な容量は1TBもあれば事足りると考え、中古のHDDをAmazonで探してみたのですが、2年前と違い他の容量ならあっても1TBは見つけられません。

 

Raspberry Pi 5がSSDブートに対応するくらいですから、ご時世だと思い1TBのSSDの購入を検討することにしました。

 

安くなったとはいえHDDと比べればまだ高額のSSDですが、読み書きが速く、何よりも軽くて衝撃に強いとなれば、日常使いに良さそうに思えます。ただし、上書きができないSSDの特性から、日常使いにはHDDを用いた方が良いとする考えもあるようです(注2)。寿命に悪影響が及ばない方が良いのですが、どちらがましかいまいちわからず、流行りに乗っかることにしました。

 

 購入したSSDとエンクロージャー 

 

ちょうどAmazonの年度末セールでSSDが値引きされていましたので、1TBの内蔵用SDDと外付けに必要なエンクロージャー(外付け用ケース)を、合わせて1万円余りで購入しました。

 

購入したものは次のとおりです。

 

・SSD

KIOXIA EXCERIA G2 SSD 内蔵 SSD 1TB NVMe M.2 Type 2280 PCIe Gen 3.0×4 国産BiCS FLASH TLC 搭載 読み込み:2,100MB/s、書き込み:1,700MB/s

 

・エンクロージャー(外付け用ケース)

ORICO M.2 SSD ENCLOSURE TCM2₋SV TYPE-C M-Key/B&M Key (Nvmeのみ) USB3.1 Gen2 10Gbps UASP Trim対応 2230/2242/2260/2280 SSD対応 透明

 

 SSDのセッティング 

 

エンクロージャー(外付け用ケース)へのSSDのセットは、説明書の絵をよく見てSSDのボードを挿し込み、反対の端を正しくねじ止めして固定すれば、あとはカバーでふたするだけで終わりです。

 

至極簡単なのですが、私の場合は説明書の図が小さく文章も中国語と英語だったもので、ねじと対になるナットがわりの金属製の円筒形の部品の使い方をよく理解しないままねじ止して、カバーがしまらないばかりか、ボードを無理に湾曲させて危うく壊しかねないところでした。

 

正しくは、円筒形の金属部品には一周する溝があって、SSDのボードの半月形の切り込み部分を溝に挿し込むようにしてねじ止め、固定します。

 

 初期化が必要 

 

SSDはエンクロージャーにセットできましたので、後はすっかりパソコンにUSBケーブルで接続すれば使えるものと思っていたのですが、HDDと違ってSSD内を覗くことができません。

 

あわててググって見ると、どうやら初期化とやらを実行し、フォーマットをしてやらねばならないようです。

 

今回は、Windows10上で行いました。

 

SSDを使えるように初期化するには、Windowsで「ディスクの管理」を開かなければなりませんが、[スタート]の右クリックから開いたメニュー中の[ディスクの管理]を直接指定して開いた場面では、何をしても「初期化」を実行することができませんでした。

 

「初期化」を実行するには、[スタート]から開いたメニュー中の[コンピューターの管理]を選び、次に開いた「コンピューターの管理」画面の左そでにある[ディスクの管理]をクリックすることで開いた「ディスクの管理」の画面ではじめて「初期化」が可能になります。

 

画面下半分にパソコンのSSDが「ディスク0」と表示され、その右側にドライブが帯状に示されています。外付けSSDはその下に「ディスク1」と表示され、白抜きで矢印の書かれた赤丸が頭につき、下に「初期化されて…」の文字が記されており、ドライブを示す帯には「未割り当て」と書かれています。これをクリックすると、「初期化」用の画面が開きます。

 

「ディスクの初期化」画面では、「選択したディスクに次のパーティションスタイルを使用する」では「MBR(マスターブートレコード)」のラジオボタンがチェックされた状態のままで[OK]です。

 

「ディスクの管理」の画面に戻ったら、「未割り当て」の部分をクリックし、[新しいシンプルボリュ―ム]を指定、開いた画面で「新しいシンプルボリューム ウィザード」を開始します。

 

「ボリュームサイズの指定」では最大サイズのまま、次の「ドライブ文字またはパスの割り当て」ではここも「次のドライブ文字を割り当てる」のデフォルトのままで、「パーティションのフォーマット」では「このボリュームを次の設定でフォーマットする」のラジオボタンをクリックし、「ファイルシステム」を指定します。今回は「exFAT」を指定しました。

 

↑Windows10 の「ディスクの管理」画面 外付けSSDがここではEXCERIA_G2と表示されています。

 

以上で、初期化、フォーマットは完了です。今回、最後の「ボリューム」のところで「EXCERIA_G2」と入力しましたので、スクリーンショットでは「ディスクの管理」画面の「ディスク1」には「EXCERIA_G2」が表示されています。

 

外付けSSDが準備できましたので、さっそくこれを使ってバックアップのコピーを作成しました。

 

注1)考えてみると、パソコンのUSBポートに直挿しのマウスのドングルやUSBメモリと違って、少しかさばり中途半端な長さのケーブルでパソコンにぶら下がるUSBハブは、手が触れやすく力のモーメントが働きコネクター部分が揺さぶられるのでしょう。そこに、近頃のUSBハブやパソコンのコネクターの出来があまりにもお粗末とくれば、接触不良が起きようというもの。

 

注2)SDDもフラッシュメモリーの一種であり、磁気ディスクと異なりデータの上書きができないため、空き容量に新しいデータを書き込み、前のデータを消すという動作を行うそうです。このことがSSDの寿命に大きく影響し、また、また使い込むと遅くなる原因にも関わるといいます。すなわち、空き領域が減ると使用不可領域を消去して空き領域を作る作業が増えてSSDが遅くなります。また空き領域が減って同じ領域が頻繁に作業に使われるようになれば局部的に一層劣化がすすむ箇所もでてきます。使用時間が長くなるほど劣化するというのはトンネル酸化膜のことでしょうか。近年広まってきているTLCタイプのSSDでは、1セル当たりの書き込み回数は1千回とされます。そこで、SSDの読み書き軽減のために、HDDと併用し適した使い分けを行うのがこのましいとか。

HDDは機械部分が多く故障しやすくSSDより寿命が短いという見解とは、何か真逆に聞こえるのですが。

 

↑飛び交うカモメ

 

春の海ひねもすのたりのたりかな

 

AI機をかつてのように旋回飛行ができるようにしたくて、FlightGearの方針に逆らい、性懲りもなくAIシナリオを使った方法をなんとか見つけ出したことは、前回のブログに書いた通りです。

 

その際に思い出したのが、フライトシミュレーターのFlightGearにカモメの飛び交う様子を再現したAIシナリオがあったことでした。

 

FlightGear用に自作した水上機に、着水中は潮騒とカモメの鳴き声が流れるようにするくらい、船や港の雰囲気が好きな私のことですから、水上機やヨットの周囲を飛び交うカモメは大のお気に入りでした。

 

いつの間にやら、牛や馬、羊、象などとともにどこかにいなくなっていてびっくり。かつてFlightGearにあった機能やシナリオで今はないものには、こんなものもあったのですね。

 

リアルさを売りにしていると言っても、シーナリーはまだまだ開発途上。フライトシミュレーターとしてのリアルさに加え、将来の高精細なシーナリーの実現を展望した場合、今では古臭く桎梏となりかねないものは一掃すべしということなのでしょうか。そうであれば歓迎すべきことですが、一抹の寂しさがあります。

 

シナリオの出所は?

 

当該カモメのシナリオについては、当ブログでもとりあげておりその記述をたよりに調べたところ、FlightGearの2012年4月のNewsletterにカモメのアニメーションが利用可能になるとの記事があって、どうやらFlightGear2.8.0あたりに実装されたことをうかがわせます。

 

ちょうど手元に残してあったポータブル化したFlightGearがバージョン2.12.1で、今はないFaunaフォルダーがありデフォルトのものかわからないもののカモメの3Dモデルとxmlファイルが含まれていました。これを使って、現行のFlightGearでも動くのか試してみることにしました。

 

※現行のFlightGear2020.3.0でも、直下にあるSceneryフォルダーの中のModelsフォルダーにFaunaフォルダーがあり、カモメの関連ファイルが含まれています。FlightGearでは、直下のModelsフォルダーとSceneryフォルダー内のModelsフォルダーに似たようなフォルダーが含まれていて、私も若干混乱してしまいましたので、訂正します。

 

インストールと使い方は?

 

Faunaフォルダーにあった関連ファイルは、カモメの3DモデルであるSeaGull_Origin.acとSeagull_Flying.ac、の2つのacファイル、ならびに4羽分のxmlファイルと4羽を1グループにするSeaGull_Origin.xmlの計5つのxmlファイルです。

 

Faunaフォルダーごと現行のFlightGear2020.3.0のルート下にあるModelsフォルダー内にコピペし、カモメの群れを配置するために作成していたAIシナリオを同じくAIフォルダー内にコピペ。FlightGearを立ち上げたらこのAIシナリオを指定して実行します。

 

関連ファイルは、FlightGearにデフォルトで同梱されており、インストールの必要はありません。カモメの3Ⅾモデルである3つのacファイル、ならびに4羽分のxmlファイルと4羽を1つの群れにするxmlファイルが2つです。

 

カモメの群れを配置するために作成したAIシナリオをAIフォルダー内にコピペし、FlightGearを立ち上げたらこのAIシナリオを指定して実行します。

 

結果は、冒頭の画像が示す通りです。「春の海ひねもすのたりのたりかな」と、くつろいだ感じがして素敵です。波間に揺れるヨットをNasalプログラムで再現すれば、もういつまでも見続けていられます。

 

仕組みは?

 

基本的な仕組みについては、カモメよりも以前に自身でガチョウを模した水鳥を作って飛ばせた―旋回ではなく渡り鳥らしく直線飛行―ことがあったのでおおよそ想像がつきます。

 

翼の上下に見合った2つの3Dモデルを、<type>タグでtimedに指定し、<duration-sec>タグで表示時間を与えて交互に表示させれば、羽ばたきを再現して見せることができます。パラパラアニメの要領です。では

イメージ 1
↑10年前のgifアニメ 容量ギリギリでギクシャクしています
 

羽ばたくとしばらく滑空、また羽ばたくたびにカモメの体が上下し、いかにもというところがいいですね。

 

問題は、カモメをどうやって旋回させているのかです。それらしく思えるタグの値を変えたり削除すれば何らかの変化が起こりそうなものですが、これがさっぱりなし。旋回のもととなるファクターが見つけられません。何か見落としているのでしょうが…。

 

旋回半径や方向を変えれないようではどうしようもありません。AI機の旋回飛行に利用するのを諦めた理由でもあります。