できること

第26回「スマートフォンからラズベリーパイを触ろう!(1)VNC実装編」

raspberrypi26_main

スマートフォンの画面にラズベリーパイのデスクトップを表示してみよう!
Windowsからのリモートアクセスについては第16回記事でも紹介していますが、今回はiPhoneからの操作をしてみたいと思います。スマホなのでもちろん指で触れます!ネットワークを介してタッチパネル化して、ラズベリーパイの使い勝手を更に向上させたいと思います!

 

VNCとは?

Virtual Network Computing – Wikipedia
Virtual Network Computing(ヴァーチャル・ネットワーク・コンピューティング、略称VNC)は、ネットワーク上の離れたコンピュータを遠隔操作するためのRFBプロトコルを利用する、リモートデスクトップソフトである。

このソフトウェアはサーバソフトと、クライアント(もしくはビューア)ソフトの2つに分かれている。
操作される側でサーバソフトを起動しておき、遠隔操作する側はクライアントソフトを起動させ接続、遠隔操作を行う。

今回の場合は、ラズベリーパイが「サーバ」、iPhoneが「クライアント」の役割になりますね。また、それぞれにソフトを準備する必要があります。

VNC (Virtual Network Computing) – Raspberry Pi Documentation

VNCについては、ラズベリーパイ公式サイトにドキュメントがありました。このページでは「tightvncserver」というパッケージのインストールから自動実行までの手順が紹介されています。今回はこのドキュメントに沿って、「tightvncserver」を「サーバソフト」として使ってみましょう!

 

ラズベリーパイ側の準備

tightvncserver – Debianパッケージ
VNC は、Virtual Network Computing の略です。要するに、これは起動中のマシン 上だけでなく、インターネット上のどこからでも、幅広いマシンアーキテクチャの マシンから、「デスクトップ」環境を閲覧可能なリモートディスプレイシステムです。

まずはラズベリーパイの下準備。「tightvncserver」パッケージをインストールしましょう。

apt-get install tightvncserver

「tightvncserver」はRaspbianのプリインストールソフトではありませんが、「xrdp」など、リモートアクセス用のパッケージを既にインストールしている場合は、一緒にインストールされている事があります。

インストールが終わったら、ヘルプを表示して、コマンドを確認しておきましょう。

raspberrypi26_img01

図1

終了させるときは「-kill」オプションを使うようですね。「DISPLAY#」というのは、VNCのディスプレイ番号です。番号の前に「:(半角コロン)」を付けて記述します。のちほど何度か登場するので、この書式を覚えておきましょう。

それでは早速起動します!

tightvncserver

起動コマンドはこれだけでOKです。初回実行時は、パスワードの登録が必要となります。

You will require a password to access your desktops.
Password:

このように表示されるので、確認用を含めて、設定したいパスワードを2回入力します。
ちなみに、パスワードの文字数は6~8文字となっています。5文字以下の文字列を入力した場合は「Password too short」と表示され、登録されずに終了します。反対に、9文字以上入力した場合は「Warning: password truncated to the length of 8.」と表示され、8文字目までに切り詰めたパスワードが登録されます。
このパスワードはアプリから接続する際に使用するので、覚えておきましょう。

Would you like to enter a view-only password (y/n)?

1つ目のパスワード設定が終わると、閲覧専用のパスワードを作るかどうか聞かれます。必要であれば「y」を入力し、先程と同じように、6~8文字までのパスワードを設定します。

New 'X' desktop is raspberrypi:1

このメッセージが表示されたら、準備完了!
末尾の数字は、今起動したVNCの「ディスプレイ番号」です。VNCを停止するときや、アプリ側から接続する際に使用する数字となります。
ドキュメントではディスプレイ番号は「0」となっていますが、実際にやってみたところ「1」からスタートしてしまいました。他の

ip a

ここで、IPアドレスも確認しておきます。スマートフォンを使用するので、Wi-Fi接続ができる回線で接続しておきましょう。

ドキュメントはまだ続きますが、ここまでできればとりあえずOK!(続きは次回!)
それでは、クライアントソフトの設定に移りましょう!

 

iPhone側の設定

VNCの「クライアント」には、iPhone端末を使用します。VNCアプリは多数ありますが、今回は「VNC Viewer」というアプリを使用することにしました。

VNC Viewer – itunes
VNC Viewer for iOS

無料で使えてとっても高機能!(以前は有料アプリだったようですね!)
表記は英語ですが、操作説明のイラストが分かりやすく、簡単に操作する事ができました。アンドロイド版も公開されています。

raspberrypi26_img03

図2

「VNC Viewer」をインストールしたら、アプリを立ち上げ、右上の「+」ボタンをタップします。

raspberrypi26_img04

図3

設定画面が表示されるので、「Address」欄にIPアドレスとディスプレイ番号を、半角コロン「:」区切りで入力します。
(例)192.168.0.7:1
「Name」欄は、任意の名前を付けておきます。入力が終わったら、右上の「Save」ボタンをタップして完了です。

raspberrypi26_img05

図4

接続先の登録が完了すると、このような画面に切り替わります。真ん中の「Connect」をタップすると、接続が開始されます。暗号化に関する警告が出ることがありますが、そのまま接続を続けます。

raspberrypi26_img06

図6

無事に接続されると、パスワード入力画面が表示されますので、先程ラズベリーパイ側で設定したパスワードを入力します。そして「Done」をタップすると……

raspberrypi26_img07

図6

スマホの中に、ラズベリーパイのデスクトップ画面が!
これでラズベリーパイの中身を直接触ることができます!

 

VNC Viewerの画面説明

画面は、基本的には横向きにしたほうが見やすいです。ピンチインで拡大することもできます。
触れた位置ではなく、マウスカーソルの位置が操作対象となります。

raspberrypi26_img08

図7

画面の下から上へスワイプすると、図のようにツールバーが表示されます。このバーを固定表示させたい場合は、一番左のピンマークをタップします。
詳しい使い方は、右から二番目の「?」アイコンから表示できます。

raspberrypi26_img09

図8

イラスト付きで分かりやすい!基本的な操作方法はスマートフォンやタブレットと同じですね。
苦戦したのは、右の画像の上から4番目、ダブルタップ&ドラッグ。文字列をドラッグするときや、ウインドウを拡大縮小するときにこの操作を使用するのですが、慣れない動きなので、コツを掴むのに一苦労しました。

残り4つのアイコンについて、左から順番に見ていきましょう。

raspberrypi26_img10

図9

左から2番目のアイコンをタップすると、画面の下側にキーボードが表示されます。LX Terminalやテキストエディタなど、文字入力が可能な部分にカーソルを合わせた状態で使用します。日本語入力にも対応しています。[Ctrl]キーや[alt]キーは、タップするとボタンがハイライトされ、長押し状態になります。[Ctrl]+[alt]+[del]でタスクマネージャーを起動……というようにショートカット操作もできちゃいます!
キーボードの分、表示部分が狭くなってしまうので、キーボードを使うときだけは画面は縦にする方がオススメです。

raspberrypi26_img11

図10

お次は3番目、マウスアイコンです。画面上でマウスのような操作を可能にしてくれます。右側はホイールです。長い画面をスクロールするときにはこちらが便利です。下の方のグレーになっている部分はマウスのボタンにあたります。タップ操作が苦手な方にはありがたい機能ですね!

raspberrypi26_img12

図11

4番目の「i」は、「information」の「i」ですね。VNC Viewerの情報を閲覧できます。

最後の「×」マークは、見ての通りの終了ボタンです。ビューアを終了させる場合はこちらをタップしましょう。

 

まとめ

ラズベリーパイでの電子工作はコマンド入力ばかりだったので、タッチスクリーンで操作できることがとても新鮮!iPhone標準のキーボードが表示されるせいか、文字入力は意外と快適でした。操作性がスマホとほとんど変わらないので、iPhoneのOSがRaspbianに変わったような、不思議な感覚で遊ぶことができました。

ちなみに、TFTタッチディスプレイを使った工作は、「DevicePlus 電子工作マニュアル Vol.4~ラズベリーパイを活用してみよう(中級編)〜」で紹介されています。本物のタッチパネルを使ってみたい方はこちらをどうぞ!

次回も引き続きVNCを使います。
ラズベリーパイ公式サイトのドキュメントの後半戦!オートランの設定です。ラズベリーパイの電源を入れたときに、VNCを自動で起動できるように設定します!

アバター画像

プロフィール:プログラミング暦通算4年、最近IT業界に舞い戻ってきたプログラマーです。女子です。

学生ロボコン2017 出場ロボット解剖計画