RasPiとは言うまでもなくRaspberry Piのことです。ArduinoでUSBホスト機能やイーサネット接続を実現するのに大枚をはたいてシールドを重ねても、Arduinoボードに搭載されているAVRチップ(8ビット・マイコン)の処理性能には限界があり、その上を望むにはmbedとか、同じく32ビット・マイコンを搭載してArduinoコンパチブルを謳うようなボードを選ぶ必要に迫られました。ところが、RasPiの出現で様子が変わりつつあります・・・。

RasPiにはGPIO、UART、I²C、SPIといったポートも備わっているのですが、デフォルトで動いているのはLinuxなので気軽に取り扱うには敷居が高い。そこでスケッチの例がいくらでも公開されているArduinoをRasPiとUSBで接続し、RasPiには外部との通信のような上位の仕事をさせるようにすれば、大袈裟な拡張をしなくても済むというわけです。

RasPiならLANケーブルによる接続はもちろん、BluetoothもWi-Fiも市販のUSBアダプターで簡単に接続できてしまいます。HDMI、RCAコンポジット・ビデオ出力、3.5 mmジャック・オーディオ出力が備わっていて無いのはマイク入力くらいですが、USBカメラを繋げば内蔵マイクが使えます。手のひらに乗るワンボード・マイコンなのに、性能は10年ほど前のデスクトップPCのレベル。VNC(Virtual Network Computing)やRDP(Remote Desktop Protocol)によるリモート・アクセスが実用になります。そこで、まずRasPiのWiFi化から取り組んでみることにしました。

最初に1Aの充電器を用意したのですが、RasPiのUSB端子に直接キーボードとマウスを繋げると不安定になることが判ったため、容量が2AあるセルフパワーのUSBハブ ELECOM U2HS-MB02-4SBKを用意します。USBケーブルが短いのでハブ回りはすっきり。RasPiの電源もこのハブから充電用のケーブルで供給して、キーボード+マウス、WiFiアダプターを取り付けています。

Raspbian “wheezy”の立ち上げとアップデートについての手順は省きますが、私はLANケーブルを接続して行いました。一通りの作業を終えたら一度リブートします。

WiFiアダプターは用意しておいたPLANEX GW-USValue-EZを試してみましたが、デスクトップにあるWiFi Configのアイコンをダブル・クリックして開いたダイアログにパス・フレーズを入れただけでルーターに接続できました。そのままの状態でBUFFALO WLI-UC-GNHPに取り替えても問題なく繋がって、リブートしても大丈夫です。あちこちのブログに書かれている手間暇かけたWiFi設定は現在の時点では不要になっているのではないでしょうか。

次に、VNCによるリモート・アクセスを試すためにTightVNCをインストール。

sudo apt-get install tightvncserver
tightvncserver

起動すると設定するパスワードを求められるので、同じパスワードを2回入れます。

vncserver :1 -geometry 1024x768 -depth 24

これで好みのVNCクライアント・ソフトをインストールした他のPCから、RasPiのIPアドレス:1にアクセスすればデスクトップの操作をすることができるようになります。RasPiに割り当てられているIPアドレスはWiFi Configを開けば判ります。192.168.xx.xxならVNCクライアントで192.168.xx.xx:1をアクセス。

remmina_vnc

もう一つ、Windows系でサポートされているRDPも試してみます。オープンソースのxrdpをインストール。

sudo apt-get install xrdp

インストールすると起動し、以後のシステム・ブートで自動的に実行されるようになります。xrdpは動きが軽快な印象ですが、Windows7のPCからアクセスしたせいかも知れません。

xrdp
xrdp2

RDPはMac用のクライアント・ソフトがマイクロソフトから提供されているほか、Ubuntuに標準で備わっています。広くサポートされているVNCとどちらが良いかは条件によって変わるので、使う端末によって決めれば良いのではないでしょうか。

次回はArduinoコンパチブルのボードをリモート・デスクトップで操作する実例をご紹介したいと思います。