FireHD10をRaspberryPiのモニタ化

先日、AmazonのBlackFridayセールもあったのでAmazon Fire HD 10タブレット(以降FireHD10とする)を購入したかたも多かったかなと思います。

自分は以前のセールで購入していますが、先日はWindowsのマルチモニタ化して、サブモニタとして使用することができました。

uepon.hatenadiary.com

今回はRaspberryPiのモニタにできないかの挑戦をしてみました。結果からいうと単純にモニタにはできませんでした。ただ、VNCで接続ができたのでモニタぽくは使用することができました。VNCによる接続になったのでマウスやキーボードのエミュレーションをタブレットVNCアプリ側でできるようになり、運用が割と簡単になったという利点はありました。ただ、その使い心地がいいかといわれると最低限度のレベルでの操作にとどまるかなとは思います。開発イベント(例えばハッカソンなど)では、このような接続で急場を凌ぐといったこともよくあるので、メモとして残しておこうかなと思います。ちょっとだけ引っかかるところもありますが、それも記載しておこうと思います。

タイトルはFireHD10RaspberryPiのモニタにする」としていますが、どちらかというとFireHD10からRaspberryPiを操作する」という表現のほうがあっているかなとは思います。

FireHD10をRaspberryPiのモニタにする

今回はFireHD10からRaspberryPiVNCで接続することになります。自分は自己責任でFireHD10をPlayストアなどのアプリをインストールすることで、一般にあるAndoroidタブレットなどと同様にアプリをインストールすることができる状態にしてあります。そのため、今回の情報はごく一般にあるAndroidタブレットでも同様に動作するかもしれません。

作業としては2つの作業があります。

  • VNCの有効化
  • HDMIホットプラグ有効(起動後にHDMIの活線挿抜を有効にする)

VNCの有効化

VNCの有効化に関してはCLIでもGUIでもどちらでも行うことができますが、今回はCLIで操作をします。 ターミナルのCLIからraspi-configコマンドを実行して設定をするのが一番ポピュラーだと思います。 以下の様にコマンドを実行し、

$ sudo raspi-config

以下の様にmenuが表示されたら、

f:id:ueponx:20211203235624p:plain

次の操作を行っていきます。

  1. 3 Interface Optiopns を選択し、Enterキーを押下
  2. P3 VNCを選択し、Enterキーを押下
  3. VNC Serverをを有効にするか尋ねられるので、Yesを選択し、Enterキーを押下
  4. VNCサーバが有効化されたメッセージが表示

1) 3 Interface Optiopns を選択し、Enterキーを押下

f:id:ueponx:20211203235732p:plain

2) P3 VNCを選択し、Enterキーを押下

f:id:ueponx:20211203235735p:plain

3) VNC Serverを有効化

f:id:ueponx:20211203235737p:plain

4) VNCサーバが有効化されたメッセージの表示

f:id:ueponx:20211203235740p:plain

これでVNCの有効化に関しては終了です。raspi-configコマンドのメニューを終了させます。 基本的にはこれでいいのですが、残る手順忘れると接続できないようです。

HDMIホットプラグ有効(起動後にHDMIの活線挿抜を有効にする)

残る手順はHDMIのホットプラグ有効化なのですが、普通に考えて今回のような場合には、HDMI接続を接続しないになぜ設定が必要かがわからないかもしれません。

実際にこの設定を忘れて、VNC接続を行うと以下のような表示が行われます。VNCとしては接続はされるのですが、Xの画面は全く表示されず画面に大きくCannot currently show the dekstopと表示されます。

f:id:ueponx:20211204000430p:plain

ネットを検索すると、以下の様な情報がでてきます。HDMIケーブルを接続していれば問題なく、VNC接続ができるのですが、HDMIケーブルの接続を切り離すとVNC接続ができなくなるといった現象になります。HDMIのホットプラグの設定を行うことでHDMI接続が保持される(終了されず)ためVNC接続ができるようになるということのようです。

forums.raspberrypi.com

では、HDMIのホットプラグ設定を有効化してみます。設定は```/boot/config.txtに含まれるので、このファイルを編集していきます。

$ sudo vi /boot/config.txt

f:id:ueponx:20211204000956p:plain

ファイルを開くと設定項目がでてきますがその中のhdmi_force_hotplug=1という項目を探し、行頭にある#を削除することで非コメント化して有効にします。

f:id:ueponx:20211204001135p:plain

ファイルの編集が終わったら、保存したあと、RaspberryPiを再起動します。これで準備完了です。

VNCで接続する

今回はFireHD10にはVNC Viewerというアプリを使用して接続を行いますので、ストアからインストールを行います。 Amazonのストアでは存在していませんが、無料のVNCアプリをダウンすればしようできるでしょう(結構投げっぱなしですみません)

f:id:ueponx:20211201013944p:plain

インストール後にRaspberryPiに接続するのですが、AndroidではデフォルトではmDNSAvahiBonjour)の名前参照ができないので、IPアドレスを接続先として入力する必要があるので、注意が必要です。

以前のエントリでLAN内のRaspberryPiIPアドレスを探す方法を書きましたのでそれを参考にしてみてください。

参考

uepon.hatenadiary.com

接続でIPアドレスを設定することで、VNC接続ができるようになります。

接続するRaspberryPiのIPアドレスを指定

f:id:ueponx:20211204002418p:plain

これで接続するとFireHD10にRaspberryPiのXの画面が表示されます。

f:id:ueponx:20211201013929p:plain

FireHD10側のタッチパットも有効なので、タブレットのタッチ操作も可能です。また、マウスやキーボードの操作もできます。 RaspberryPi本体に接続しなくてよいのが大きなポイントかもしれません。

f:id:ueponx:20211201013939p:plain

また、先程もいいましたがこの設定は一般のAndroidでも同じことができるのでChromebookでも同様に動かす事ができます。

ChromebookからRaspberryPiに接続する

f:id:ueponx:20211201013947j:plain

f:id:ueponx:20211201013950j:plain

ただ、キーボードやマウスを使用しなくていいのは利点だということをいっていますが、使い心地がいいわけではないので、最低限さわることができるという程度だと思ったほうがいいかなと思いますのであしからず。

おわりに

Windowsのマルチモニタというのとは少し趣は違っていますが、ほぼ同様のことができました。開発系のイベントでできるだけ持っていくものを減らすことができれば…と思うことが多かったのですが、今回の方法を使用すればキーボード、マウスの代わりにタブレットを持っていけば代わりになるという点では効果は得られそうです。

ちなみにiPadでも同じことはもちろんできます。コストを考えるとやっぱりFireHD10あたりがいいような気がしますが。

モニター接続なしで起動したRaspberryPiのIPアドレスを確認する方法

使い始めた最初の頃を過ぎてしまうとRaspberryPiは基本モニター接続をせずに使用することが多いかなと思います。基本的にはSSHVNCリモートデスクトップ接続を行うことが多いのだと思います。また、かなり前からmDNSがデフォルトで起動していることもあり、LAN内に1台のRaspberryPiが起動している状態であればraspberrypi.localというホスト名でアクセスすることもでき、DHCPで割り振ら得たであろうIPアドレスなどを知ることなく、アクセスすることも容易になってきています。

そんな環境ではあるのですが、ごくたまに起動したRaspberryPiIPアドレスが知りたいということもあります。こういう時は体外にトラブル発生しているときが多いのですが…。今回の内容はそんなときのものになります。

使わない人はたぶん全く使わない内容だと思います。

LAN内にあるRaspberryPiのIPアドレスを調べる

RaspberryPiMACアドレスは一定なのでb8-27から始まるものになっています。そこで、OSで管理しているIPアドレスMACアドレスの管理テーブルを参照するコマンドarpを使用して、該当のMACアドレスのついたIPアドレスを検索できればRaspberryPiIPアドレスもわかります。

※RaspberryPi4では"dc-a6"から始まるMACアドレスのものもあるようです。

Windowsであれば、cmdPowerShellに以下のようなコマンドを入力することで検索することができます。

cmd

> arp -a | findstr "b8-27"
> arp -a | findstr "dc-a6"

OSの起動状況によっては時間がかかることもあります。

そんなときには一旦ネットワーク内のすべてのデバイスpingでパケットを送信することでarpテープルの更新を行うことができます。 以下のコマンドの192.168.0.%1は検索するLANのネットワークになるので、適宜変更します(%1の部分はforによる変動値)。

batファイルに書く記述

for /l %i in (0,1,255) do ping -w 1 -n 1 192.168.0.%i

RaspberryPiのIPアドレスを探すバッチファイル

for /l %%i in (0,1,255) do ping -w 1 -n 1 192.168.0.%%i
arp -a | findstr "b8-27"
arp -a | findstr "dc-a6"

バッチファイルの実行画面

f:id:ueponx:20211130004457p:plain

おわりに

今回は最近ちょっとトラブルが多かったので、メモというレベルの内容となりました。 ヘッドレスの環境でトラブルがあった場合にはたまに使う機会もあるかもしれません。

ちなみにRaspberryPi3以降でないとWiFi機能が装備されていません。そのためRaspberryPi2などではこの情報をそのままは使えないので注意です。(これで結構時間を無駄にしたこともありましたw)

Fire TV Stickのスクリーンショットを撮る

最近はテレビの機能でAmazon PrimeYoutubeを見る機能があるので、一時期ほどFire TV Stickを使用する機会が減ってはいるのですが、テレビではできないことも結構あります。それが画面のキャプチャになります。単純にはFire TV Stickだけでは実はキャプチャはできないのですが、Androidのデバイスとして位置づけることでキャプチャを撮る事ができます。

その方法はadbLinkというソフトを使う方法となります。

f:id:ueponx:20211122235609p:plain

www.jocala.com

続きを読む

RaspberryPi2に最新RaspberryPi OSをインストールするとUSB接続のWiFi子機(ドングル)が行えない

以前からRaspberryPi2を使っていたのですが、新しいOSへ変更するとUSB接続のWiFiバイスができないというトラブルがありました。そのため、古いイメージを使用して利用していたのですが、流石にちょっともったいないなあと思っていましたが、upgradeしていくことで凌いでいました。とはいえ、SDカードの寿命もそろそろでは?ということもあったので、OSのイメージを0から刷新。ハード的にももったいないですし。

f:id:ueponx:20211109012900p:plain

今回使用しているWiFiのUSB子機(今回は子機という名称とします)はエレコムWDC-150SU2MBKを使用します。2.4GHz帯のものですが、コンパクトで使いやすく、自分もRaspberryPi2ではかなり使用していました。

あと使用しているのは

  • 最新RaspberryPi OS(執筆時2021.11.03 RaspberryPi Imagerを使用して書込み)
  • RaspberryPi 2B

OSをunameコマンドの表示は以下のようになっていました。

$ uname -a
Linux raspberrypi 5.10.17-v7+ #1414 SMP Fri Apr 30 13:18:35 BST 2021 armv7l GNU/Linux

ハードウエアの認識確認

基本的にはハードウエアの認識に関しては単にUSBコネクタに差し込むことで認識を行ってくれます。ドライバファイルがないだけの話。 接続の確認は、lsusbコマンドを使用して行います。

接続前の状況

$ lsusb
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. SMC9514 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

接続後の状況

lsusb
Bus 001 Device 004: ID 056e:4008 Elecom Co., Ltd 
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. SMC9514 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

f:id:ueponx:20211109013123p:plain

ドライバのインストール

ドライバは以下のサイトにあります。

http://downloads.fars-robotics.net/wifi-drivers/8188eu-drivers/

ドライバはOSのバージョン毎にあるので、先程確認したunameコマンドの結果を使用してインストールするドライバを探します。

今回はバージョンが以下の様になっていたので

再掲

$ uname -a
Linux raspberrypi 5.10.17-v7+ #1414 SMP Fri Apr 30 13:18:35 BST 2021 armv7l GNU/Linux

その中の以下の部分が5.10.17-v7+ #1414となっていたので、ダウンロードするバージョンは8188eu-5.10.17-v7-1414.tar.gzとなります。

f:id:ueponx:20211109011639p:plain

こちらをファイルをダウンロードして、tarファイルを展開しインストール。インストールが終わったら、再起動を行います。

$ wget http://downloads.fars-robotics.net/wifi-drivers/8188eu-drivers/8188eu-5.10.17-v7-1414.tar.gz
$ tar zxf 8188eu-5.10.17-v7-1414.tar.gz 
$ ./install.sh
$ sudo reboot

動作確認

再起動が終わると、ネットワークインターフェースが有効になります。

ifconfigコマンドを使うとwlan0インターフェースが有効になります。

f:id:ueponx:20211109012527p:plain

また、X環境であれば、右上のパネル上のネットワークステータスのアイコンをクリックするとSSIDの一覧が表示されるようになります。X環境が使えるのであれば、こちらから接続設定するのが手っ取り早いですかね。設定ファイルをエディタで編集してももちろん大丈夫です。

f:id:ueponx:20211109011933p:plain

おわりに

これで無事にRaspberryPi 2Bで最新のRaspberryPi OSでもWiFiでのネットワーク仕様ができるようになりました。 設定に有線ネットワークが必要なので、思いたったらすぐにつかえるというわけではありませんが、ハードウエアが 利用できず、もったいないというような状況は回避できるかなと思います。

デフォルトで旧ドライバに対応してくれればいいのですが…。

micro:bitをセンサのロガーにしてみる(Version2限定)電源断でのデータの永続性も保持可能?!

micro:bitのことを検索していて、ちょっとだけ気になる記事を見つけました。

【参考】 microbit.org

micro:bit公式サイトでData logging with the micro:bitという内容になります。micro:bitを使用したデータロギングということなのですが、通信としてはBluetoothやUSBを使用したシリアル通信しかデフォルトではないのかなと思っていたのでそのような話なんだと思ったら、よく読むと少し違っていました。

Version2用(以降Ver2)の機能に限定されるようなのですが、以下の様に記載がありました。

It allows you to record data on your micro:bit which is kept even when the micro:bit is disconnected from a power source.(micro:bitが電源から切断されている場合でも保持されるmicro:bitにデータを記録できます)

電源がついていなくてもデータが記録される?と一瞬思ったのですが、そう意味ではなく保持ができるという内容になります。永続的なストレージとしてデータを保持できますといっていいでしょう。

Ver2限定というのは多分メモリ量に依存しているのかなと予想しています。

とりあえず実験をしてみます。

続きを読む