タブレットやスマートフォン、VNC/RDPを使ってラズパイを操作する
目次
- iOS搭載のタブレットやスマートフォンで、VNCを使ってラズパイを操作する
- iOS搭載のタブレットやスマートフォンで、RDPを使ってラズパイを操作する
- Android搭載のタブレットやスマートフォンで、VNCを使ってラズパイを操作する
- Android搭載のタブレットやスマートフォンで、RDPを使ってラズパイを操作する
このワークショップでは、ラップトップあるいはデスクトップ・コンピュータ(以下コンピュータと呼びます)からラズパイを操作するのにVNCを使います。VNCの設定、インストールの方法は、ワークショップの説明スライドの中に記載してあります。また、VNCと同じ役割を果たすツールに、Microsoft RDP(Remote Desktop Protocol)というのがあり、それについてはここに設定方法が書いてあります。
VNCやRDPを介してラズパイを操作するには、WindowsやMacのコンピュータだけなく、タブレットやスマートフォン(iOSやAndroid)を使うこともできます。
タブレットやスマートフォンからラズパイにアクセスする場合は、指やペンを使ってラズパイを操作できます。ソフトウェアキーボードも使えるので、ある程度ならタイプもできます。外付けキーボードを使えばラップトップの代わりとして使うことも可能です。
個人的には、タブレットやスマートフォンを使ってプログラミングしようとは思いません。ラップトップの方が使い慣れているので、ラップトップを使ってプログラミングしたいと思うタチです。ただ、タブレットやスマートフォンを使ってラズパイのThonnyを起動して、すでに作ってあるプログラムを実行したり、現在実行中のプログラムを止めるような用途ではとても便利です。
iOS搭載のタブレットやスマートフォンで、VNCを使ってラズパイを操作する
Real VNC ViewerにはiOS版があります(App Store内のリンクはこちら)。まずは、お使いのデバイスにダウンロード、インストールしてください。
そして、アプリ起動後、接続先のコンピュータ(ラズパイ)の名前として、「<hostname>.local」を指定します(<hostname>はラズパイの名前。ラズパイの名前がpandaなら、「panda.local」にする)。そして、ユーザ名「pi」と、自分のパスワードを入力します。
iOS搭載のタブレットやスマートフォンで、RDPを使ってラズパイを操作する
RDPにはiOS版(Remote desktop Mobile)があります(App Store内のリンクはこちら)。
そして、アプリ起動後、接続先のコンピュータ(ラズパイ)の名前として、「<hostname>.local」を指定します(<hostname>はラズパイの名前。ラズパイの名前がpandaなら、「panda.local」にする)。そして、ユーザ名「pi」と、自分のパスワードを入力します。
Android搭載のタブレットやスマートフォンで、VNCを使ってラズパイを操作する
Real VNC ViewerにはAndroid版があります。(Google Play Store内のリンクはこちら)。
そして、アプリ起動後、接続先のコンピュータ(ラズパイ)の名前として、「<hostname>.local」を指定します(<hostname>はラズパイの名前。ラズパイの名前がpandaなら、「panda.local」にする)。そして、ユーザ名「pi」と、自分のパスワードを入力します。
ラズパイに接続しようとすると「The computer’s domain name could not be resolved.」というエラーメッセージがでるはずです。その場合は接続を断念し、ラズパイでTerminalを開いて以下のコマンドを実行してください(「I」は大文字です)。
hostname -I
4つの数字が「.」(ピリオド)で区切られたものが表示されます(例えば192.168.1.239というようなもの)。これがラズパイの「IPアドレス」で、インターネット経由で接続するのに必要な最も基本的な情報です。Real VNC Viewerの接続設定画面に戻り、「<hostname>.local」の代わりにこのIPアドレスを入力して、ラズパイに再接続してください。
もし、ラズパイの画面を使えない状況(ラズパイ上でTerminalを使えない状況)の場合は、別のコンピュータでTerminalを開いて、以下のコマンドを実行します。
ping panda.local
ここでは、pandaがラズパイの名前と想定しています。適宜「panda」 の部分をお使いのラズパイの名前に置き換えてください。このコマンドを実行すると、以下のような情報が延々と出力されます。
PING panda.local (192.168.1.239): 56 data bytes
64 bytes from 192.168.1.239: icmp_seq=0 ttl=64 time=8.315 ms
64 bytes from 192.168.1.239: icmp_seq=1 ttl=64 time=3.987 ms
キーボードのCtrl(コントロール)とcを同時に押すと、この出力が止まります。この出力の各行に、ラズパイのIPアドレスが表示されています(この例では192.168.1.239)。Real VNC Viewerの接続設定画面に戻り、「<hostname>.local」の代わりにこのIPアドレスを入力して、ラズパイに再接続してください。
最後にひとつ注意点。ラズパイを再起動すると、原則的にIPアドレスが別のものに変わります。したがって、ラズパイを再起動したら、上記方法で新しいIPアドレスを調べ直す必要があります。そして、タブレットやスマートフォンからラズパイにアクセスする際に、新しいIPアドレスを入力しなければなりません。
面倒ですね。。。昨今のOSはどれも(WindowsもMacもiOSもLinuxもラズパイも)「<hostname>.local」形式が利用可能なのに、Googleは頑なにこれをAndroidに実装しません(正確に言えば、実装はしていますがエンドユーザには使わせません)。「<hostname>.local」形式でアクセスしていれば、再起動後にIPアドレスが変わっているとか、そもそもIPアドレスが何か等々の詳細を知らずに済むのですが。ちなみに、この「<hostname>.local」形式でリモートのコンピュータにアクセスする機能のことを、Zero-configuration networking(zeroconf)といいます。身近にGoogleでAndroidの仕事をしているエンジニアがいたら、「zeroconfを使えるようにしてくれ」と苦情を言いましょう(笑)。
Android搭載のタブレットやスマートフォンで、RDPを使ってラズパイを操作する
RDPのAndroid版をGoogle Play Storeからダウンロード、インストールします。
そして、アプリ起動後、接続先のコンピュータ(ラズパイ)の名前として、「<hostname>.local」を指定します(<hostname>はラズパイの名前。ラズパイの名前がpandaなら、「panda.local」にする)。そして、ユーザ名「pi」と、自分のパスワードを入力します。
ラズパイに接続しようとすると「Unable to connect」というエラーメッセージがでるはずです。その場合は接続を断念し、ひとつ前のセクションに書いてある方法でラズパイのIPアドレスを調べてください。そして、「<hostname>.local」の代わりにこのIPアドレスを入力して、ラズパイに再接続してください。