Thursday, November 7, 2013

Coder for Raspberry Pi

2013年9月にGoogleから『Coder for Raspberry Pi』と呼ばれるWebアプリケーションの開発環境が発表されたので、今さらながら使ってみました。

セットアップ

公開されているイメージファイルをSDカードに書き込んでRaspberry Piを起動するだけです。PCからChromeなどのWebブラウザを使ってRaspberry Piにアクセスすれば、Webアプリケーションの開発環境が使用できるようになります。
Windows PCから接続する場合、Raspberry Piを検索できるように『Bonjour Print Services for Windows』を入れる方法を推奨しています。ただ、DHCPで割り当てられるIPアドレスがあらかじめ分かっているか、“/etc/network/interfaces”を編集して固定IPアドレスに設定すれば、Bonjour Print Servicesを入れる必要はありません。


Raspberry Pi単体での開発

Raspberry Pi自体がPCなので、ほかのPCを使わずに開発できれば便利です。Raspberry Piはもともと教育用途につくられたこともあるので、子ども向けのプログラミング教室を開催する場合などに重宝しそうです。
そこで、Raspberry PiにChromeのオープンソース版である『Chromium』をインストールして、開発環境に接続してみました。
$ sudo apt-get install chromium

Raspberry Pi上でChromiumを起動して、URLに『https://localhost:8081/』と指定してください。Raspberry Pi自身からもで開発環境にアクセスすることができます!


ただし、ちょっと動きがもっさりしていて、現時点で開発に使うのはちょっと厳しそうな感じです。今後、性能が改善されてゆけばいいですね!


Friday, July 19, 2013

Express - Web application framework for Node.js

以前、Raspberry Pi上にNode.jsをインストールする手順を紹介した。
Node.jsには、expressと呼ばれるWebアプリケーションフレームワークがあるらしいので、どんなものか一度使ってみたいと思い、その手順を書き残すことにした。

まず、今回のサンプル用Webアプリケーションを格納するディレクトリをつくってその中に移動しよう。
$ mkdir hello-world
$ cd hello-world

つづいて、今回つくるアプリケーション用にnpmの設定ファイル“package.json”を用意する。
$ nano package.json
内容は以下の通りとする。
{
  "name": "hello-world",
  "description": "hello world test app",
  "version": "0.0.1",
  "private": true,
  "dependencies": {
    "express": "3.x"
  }
}
つぎに、以下のコマンドを実行して、必要なパッケージをインストールしよう。
$ npm install

これでexpress関連のモジュールが使えるようになったので、サンプルアプリケーションを書いてみよう。
$ nano app.js
内容はとりあえず、以下の通りで。
var express = require('express');
var app = express();

app.get('/hello.txt', function(req, res){
  res.send('Hello World');
});

app.listen(3000);
console.log('Listening on port 3000');
さて、実行してみよう。
$ node app.js
Listening on port 3000
ブラウザから、以下にアクセスしてみよう。
http://<Raspberry Piのホスト名またはIPアドレス>:3000/hello.txt

Thursday, July 18, 2013

Installing Node.js on Raspberry Pi

以前、apt-getコマンドを使用してRaspberry PiにNode.jsを入れる手順を書いた。しかしながら、2013年7月の時点で、この手順でインストールされるバージョンが古いため、最新バージョンを入れる手順を改めて書くことにする。
すでに古いNode.jsを入れてしまった方は申し訳ないが、アンインストールした上で、以下の手順を実行してほしい。

まず、インストール先ディレクトリを作成しておこう。
$ sudo mkdir -p /opt/node

Node.jsのサイトからRaspberry Pi用にビルドされたモジュールをダウンロードして、先ほど作成したインストール先ディレクトリにコピーする。ここで示したv0.11.4はあくまでも執筆時点の最新であるため、適宜、読み替えていただきたい。
$ wget http://nodejs.org/dist/v0.11.4/node-v0.11.4-linux-arm-pi.tar.gz 
$ tar zxvf node-v0.11.4-linux-arm-pi
$ sudo cp -r node-v0.11.4-linux-arm-pi/* /opt/node

このままではコマンドにパスが通っていないので、/etc/profileを編集してパスを通しておこう。
$ sudo nano /etc/profile
“export PATH”と書かれた行の手前に、以下の内容を追加しよう。
# Node.js
NODE_JS_HOME="/opt/node"
PATH="$PATH:$NODE_JS_HOME/bin"

パスが反映されたのは次回ログイン時なので、いったんログアウトすればよい。
ログインして、コマンドが実行できれば成功。バージョンも最新だ。
$ node -v
v0.11.4

今回、紹介した手順は、http://blog.rueedlinger.ch/2013/03/raspberry-pi-and-nodejs-basic-setup/を参考にさせていただいた。

Sunday, July 7, 2013

Remote Desktop Connection to Raspberry Pi

今日は、Windowsの『リモート デスクトップ接続』を使用して、Raspberry Pi (Raspbian OS)をGUI操作できるようにする方法について書くことにしよう。
Raspberry Piが家庭用テレビに接続されていて、家族がテレビ番組を見ているときにどうしてもGUI操作したい場合や、そもそもRaspberry Piがディスプレイにつながっていない場合に便利だろう。
Raspberry Pi側をリモートデスクトップ接続に対応させるには、xrdpというアプリケーションをインストールすればよい。
sudo apt-get install xrdp
インストールが終わったら、Raspberry Piに接続してみよう。[コンピューター]欄にホスト名またはIPアドレスを入れる。接続時に訊かれるユーザ名には、ふだん使う“pi”ユーザと、そのパスワードを指定すればよいだろう。



以下のようにRaspberry Piのデスクトップ画面が表示されれば成功だ。
たいていの作業はssh接続で済んでしまうってあまり画面を使うことはないけれど、たとえば、Scratchでプログラムを描きたい場合などに重宝するかもしれない。


リモート デスクトップ接続のオプションで画面サイズを調整したり、接続情報を保存しておいたりすると、次回からの起動に便利だろう。

注意事項がひとつ。
このままではキーのマッピングが英語キーボードとなっているので、記号などがうまく入力できないので、サーバ側で設定を行う必要がある。
先人の知恵を拝借して、以下に示すページの手順に従って、設定ファイルを/etc/xrdpディレクトリに格納することで、この問題は解決する。素晴らしい、ありがとう。

■xrdp 0.5.0 の日本語キーマップ

ひと昔前は、Linuxサーバなどにリモート接続する際はVNCというソフトを使うのが一般的で、Windows側にもVNCクライアントをインストールする必要があったりして面倒くさい感じがあったけれど、標準の『リモート デスクトップ接続』を使えるので手間がかからなくて便利である。

Wednesday, June 26, 2013

Installing Node.js on Raspberry Pi (deprecated)

2013年7月19日現在、この手順でインストールされるNode.jsはバージョンが古いため、こちらの手順を参考にしてください。

Raspberry Piをホームサーバ として使うことを考えて、Node.jsをインストールしてみた。PythonでもRubyでも、何でもよかった。ただ、JavaScriptで動くNode.jsとはどんなものなのか、一度は試してみたかった。
$ sudo apt-get install nodejs

どうやってアプリケーションをつくればいいか分からなかったので、Wikipediaに載っているNode.jsのサンプルを入れてみることにした。
$ nano index.js
プログラムは以下のとおり。
var http = require('http');
http.createServer(
  function (request, response) {
    response.writeHead(200, {'Content-Type': 'text/plain'});
    response.end('Hello, world\n');
  }
).listen(8000);
 
console.log('Server running at http://localhost:8000/');

ファイルを編集したら、実行してみる。
$ nodejs index.js

このサンプルでは、以下のURLをブラウザに指定してアクセスする。
http://<Raspberry Piのアドレス>:8000/