HSP : Hot Soup Processor ver3.5 / onion software 1997-2017(c)

HSP3 for Linux/Raspberry Pi

はじめに

HSP3 for Linux/Raspberry Piは、LinuxのGUI環境(X Window System)及びRaspberry Pi(Raspbian)で動作するHot Soup Processor(HSP)の開発環境です。
安価で幅広く環境が整備されているLinux上で、HSP3の開発環境を含むサポートを目指して開発が進められています。 Raspberry Piは、その中でも非常にコンパクトで安価なデバイスとして、IoTやプログラミング教育の分野でも注目されています。
いままでも、Windowsだけでなく、HSP3Dishというランタイムを通してAndroid,iOS,WebGL(html5)などの実行環境を整備してきましたが、 新たに、Linux及びRaspbian(Raspberry Pi上のOS)環境でも利用できるよう、整備を行なっていきます。



最初のバージョンとして、簡易スクリプトエディタとHSP3Dish/HGIMG4実行環境を含むプレビュー版を公開しています。 Windows版HSP3とともにサポートを広げていく予定ですので、どうぞご期待ください。

最新版は、githubにてソースコードとともに公開されています。
Raspberry Piをご使用の方は、JBOYSOFT様の「初心者入門 HSPプログラミング ラズベリーパイ版」のページにて導入が説明されています。

また、kikeroga3さんによるRaspberry Pi Zero用の「HSPインストール済みRaspbian」イメージが公開されています。HSPの導入に必要なセットがすべて同梱されています。

初心者入門 HSPプログラミング ラズベリーパイ版 by JBOYSOFT
HSP installed Raspbian (for Pi Zero)

Linuxインストール

LinuxのGUI環境(X Window System)で動作します。一部の機能は、OpenGL及びSDLライブラリを使用して動作します。 アーカイブの内容を任意のディレクトリに展開して、ソースをコンパイルしてください。コンパイルには、gcc及びmakeを実行できる環境が必要になります。

	git clone http://github.com/onitama/OpenHSP
		

コンパイルの際には、以下のライブラリが必要になりますので、あらかじめ確認を行なって下さい。

	OpenGLES2.0以降 / EGL
	SDL1.2
	gtk+-2
		

アーカイブにはソースのみが含まれていますので、makeによってコンパイルする必要があります。 (Linuxのバージョンやディストリビューションによって正しくコンパイルされない場合は、修正が必要になります。)

	cd OpenHSP
	make
		

アーカイブの内容が展開されたディレクトリでmakeコマンドを実行してください。 必要なツールのコンパイルが行なわれ、HSP3が使用できる状態になります。

Raspberry Piインストール

Raspberry Pi, Raspberry Pi2, Raspberry Pi3, Raspberry Pi zeo上で動作します。
Raspbian OS上で動作します。(推奨バージョンは、September 2017 Kernel version4.9です)
あらかじめ、Raspbianが動作してキーボード、マウスが接続されている状態でご使用ください。
hsp3dish及びhsp3gp(HGIMG4)、hsed(スクリプトエディタ)は、GUI環境でのみ動作します。
githubから最新版を任意のディレクトリに展開して、ソースをコンパイルしてください。コンパイルには、gcc及びmakeを実行できる環境が必要になります。

	git clone http://github.com/onitama/OpenHSP
	cd OpenHSP
		

コンパイルの際には、追加のライブラリが必要になります。ネットワークに接続されている状態で以下のコマンドを実行することで取得できます。

	sudo apt-get update
	sudo apt-get install libgtk2.0-dev
	sudo apt-get install libglew-dev
	sudo apt-get install libsdl1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-ttf2.0-dev
		

アーカイブにはソースのみが含まれていますので、makeによってコンパイルする必要があります。 (Raspbianのバージョンやディストリビューションによって正しくコンパイルされない場合は、修正が必要になります。)

	make -f makefile.raspbian
		

アーカイブの内容が展開されたディレクトリでmakeコマンドを実行してください。 必要なツールのコンパイルが行なわれ、HSP3が使用できる状態になります。

使用方法

インストールを行なうと、以下のコマンドが生成されます。

	hsed		スクリプトエディタ(簡易版)
	hspcmp		HSP3コードコンパイラ
	hsp3cl		HSP3コマンドラインランタイム
	hsp3dish	HSP3Dishランタイム
	hsp3gp		HGIMG4ランタイム
		

スクリプトエディタ(簡易版)は、HSP3のスクリプトを記述して、実行することのできるGUIアプリケーションです。 基本的なスクリプトの編集、及びロード・セーブ機能を持っています。 以下のコマンドで起動することができます。

	./hsed
		

[F5]キー、または「HSP」メニューから「Run」を選択することで編集しているスクリプトを実行できます。 現在のバージョンでは、標準ランタイムとしてhsp3dishが使用されます。 HSP3Dishに対応するサンプルコードがsampleフォルダに含まれていますので、お試しください。 スクリプトの文字コードはUTF-8として扱われます。Windowsが使用する文字コード(SJIS)とは異なりますので注意してください。

コマンドラインからスクリプトの実行を行なう場合は、hspcmpによりHSPオブジェクトファイルを作成する必要があります。

	./hspcmp -d -i -u test.hsp
		

上の例では、「test.hsp」ファイルからオブジェクトファイル「test.ax」を生成します。 生成されたオブジェクトファイルを、ランタイムに渡して実行を行ないます。

	./hsp3cl test.ax
		

上の例では、「test.ax」をHSP3コマンドラインランタイムで実行します。 同様に、「hsp3dish」「hsp3gp」などのランタイムに合わせたスクリプトを実行させることができます。 (「hsp3dish」「hsp3gp」の実行は、GUI環境が必要になります。)

HSP3Dishのページへ
HSP3Dishオンラインマニュアル

Raspberry Pi拡張

Raspberry Pi版では、HSP3Dish時にフルスクリーンで実行を行ないます。 実行の中断は、[ctrl]+[C]か[esc]キーを押してください。 (キーボードだ正しく認識されていない場合など、中断ができなくなることがありますので注意してください。)
また、Raspberry Pi版では、devcontrol命令によりGPIO入出力を行なう拡張が行われています。 GPIO出力を制御する場合は、以下のように記述します。

	devcontrol "gpio", ポート番号, 出力値
		

ポート番号は、GPIOのポートを数値で指定します。 出力値は、1(ON)か0(OFF)を数値で指定することで、デジタルポートの出力を制御します。 入力を行う場合は、以下のように記述します。

	devcontrol "gpioin", ポート番号
		

命令の実行後にシステム変数statに0か1が代入されます。 (エラーが発生した場合は、マイナス値が代入されます)
GPIO入出力は、hsp3dishだけでなくhsp3clからも使用することが可能です。

HSP3 for Linux/Raspberry Piは、OpenHSPの派生物として取り扱い、ライセンスもOpenHSP/HSP3に準拠した修正BSDライセンスとなります。

-------------------------------------------------------------------------------
Hot Soup Processor (HSP)
Copyright (C) 1997-2017, Onion Software/onitama, all rights reserved.
Made with base technology of OpenHSP.

OpenHSP
Copyright (C) 1997-2017, Onion Software/onitama, all rights reserved.

These softwares are provided by the copyright holders and contributors "as is" and
any express or implied warranties, including, but not limited to, the implied
warranties of merchantability and fitness for a particular purpose are disclaimed.