RaspberryPiをXojoでプログラミング

備忘録的にな意味も兼ねてXojoでRaspberryPi上で動作するアプリケーションの開発方法について紹介したいと思います。

公式の参考ページ
http://developer.xojo.com/ja/pibook

1.環境の準備

まずRaspberryPi本体が必要です。
RaspberryPiは2,3に対応しています。初代の物は使用できません。
ちなみにZeroもダメです。
ここではRaspberryPiへのOS導入については説明しません。
OSはRASPBIAN JESSIEに対応している。(とは言えdebian系なら動作するものと思う)

開発のホストPCについてリモートデバッグを行うにはMacかLinuxになるがビルドしたものをラズパイ実機で動かすだけならばWindowsでもOKです。
(2018-08-20 Xojo2018r2現在)

2.OS導入後にやる事

a)sshを使用できる状態にする

b)libunwind8をインストール

#sudo apt-get install libunwind8

パッケージリストを読み込んでいます… 完了

依存関係ツリーを作成しています
状態情報を読み取っています… 完了
以下のパッケージが自動でインストールされましたが、もう必要とされていません:

libcwiid1 libjs-prettify libllvm3.7 libqscintilla2-11 libqscintilla2-l10n

libqt4-network libqt4-xmlpatterns libqtwebkit4 libruby1.9.1 libruby1.9.1-dbg
 libtcl8.5 libtcltk-ruby1.9.1 libtk8.5 pix-icons pix-plym-splash
 pixel-wallpaper ri1.9.1 ruby1.9.1 ruby1.9.1-dev ruby1.9.1-examples
 ruby1.9.1-full ruby1.9.3 supercollider supercollider-common
 supercollider-ide supercollider-language supercollider-supernova tcl8.5
 tk8.5

これを削除するには ‘apt-get autoremove’ を利用してください。
以下のパッケージが新たにインストールされます:
libunwind8
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 0 個。

44.5 kB のアーカイブを取得する必要があります。
 この操作後に追加で 140 kB のディスク容量が消費されます。
 取得:1 http://mirrordirector.raspbian.org/raspbian/ jessie/main libunwind8 armhf 1.1-3.2 [44.5 kB]
 44.5 kB を 1秒 で取得しました (42.0 kB/s)
 以前に未選択のパッケージ libunwind8 を選択しています。
 (データベースを読み込んでいます … 現在 135415 個のファイルとディレクトリがインストールされています。)
 …/libunwind8_1.1-3.2_armhf.deb を展開する準備をしています …
 libunwind8 (1.1-3.2) を展開しています…
 libunwind8 (1.1-3.2) を設定しています …
 libc-bin (2.19-18+deb8u10) のトリガを処理しています …

この状態で作成したXojoアプリをRaspberryPi上で動作させることが可能である。グラフィカルなアプリも問題なく動作する。
WindowsやMacの画面上で開発したアプリがRaspberryPiでもそのまま動作するので非常に便利、簡単である。

Build architectureをARM 32-bitに設定しビルドしRaspberryPiに生成されたファイル群を転送するだけである。
ちなみに実行バイナリにはchmod +xなどで実行権限を付加する必要がある。
注意:ディレクトリ構造に日本語が使われているとコンパイルがエラーになる場合があり。Windowsのログインユーザー名やXojoのプロジェクトファイル名には日本語を使用しない方が無難である。

XojoIDEにサンプルとして同梱されていたソースサンプルをARM 32bitでビルドしRaspberryPiに転送し実行。
こんなに簡単にGUIアプリを作る事ができる。

c)IPアドレスを固定にする

この段階では固定である必要は必須では無いですが後に照会するリモートデバッグ時には固定である方が便利だし楽です。