フォト
2017年3月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
無料ブログはココログ

« arduinoで利用可能な漢字フォントROMの製作(2) | トップページ | ReadyNAS上に電子書籍閲覧サーバーを試しに作ってみました »

2015年2月 4日 (水)

IchigoJam用の支援ツールLinux版を作成しました

この前作成したIchigoJam用の支援ツールのLinux版を作成しました。

ダウンロード ファイル: ichigotools.tar     (2016/03/16版)

機能はこの前のWindows版とほぼ同じです。
CentOS 6.6(x86)での動作を確認しています。

2016/03/16 追記

    Raspberry Pi (Raspbian Jessie)に対応しました。


シリアル接続が必要となります。

ツールはシェルプログラム(bash)で記述しています。
支援ツールと名乗ってますが、大したことはやってません。
短いプログラムです。自由に流用して下さい。


解凍方法

tar xvf ichigotools.tar
./ichigotools/
./ichigotools/rcmd
./ichigotools/rsave
./ichigotools/rload

解凍したプログラムは、パスの通っているディレクトリに入れる等して使って下さい。

シリアルデバイスについて
デフォルトではシリアルデバイスは/dev/ttyUSB0としています。
tty=/dev/ttyUSB0

使う場合には、上記箇所を各自環境に合うようソース修正が必要となります。
rloadコマンドの例
下記のソースのttyの定義を修正します。

2016/03/16 追記 ソースの内容を修正しました

#!/bin/bash
PRE_IFS=$IFS
IFS=$'\n'

tty=/dev/ttyUSB0  
l_delay=0.4     # delay for line
c_delay=0.04    # delay for character

stty -F ${tty} 115200 \
-iuclc -ixany -imaxbel -iutf8 -opost -olcuc -ocrnl -onlcr \
-onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig \
-icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase \
-tostop -echoprt -echoctl -echoke 
filename=$1

echo > ${tty}
echo "NEW" | while read -rN 1 c
do
	echo -n "$c" > ${tty}
	sleep ${c_delay}
done
echo > ${tty}


sleep 0.1
echo -n "loading now."
cat ${filename} | while read -r line
do
	echo "${line}" | while read -rN 1 c
	do 
		echo -n "$c" > ${tty}
		sleep ${c_delay}
	done
	echo > ${tty}
	sleep ${l_delay}
	echo -n "."
done
echo -e "\ndone."
IFS=$PRE_IFS
また、シリアルデバイス(/dev/ttyUSB0)の利用権限が必要となります。
利用権限の設定を行って下さい
(例: 一時的 #sudo chmod o+rw /dev/ttyUSB0
       永久的 #sudo gpasswd -a USER dialout  ・・・ USERは利用者のアカウントを指定
)

ツールの使い方

エラー処理は一切実装していません。万が一の場合もあるので、
一般ユーザ権限で利用して下さい。

1)ichigojamのプログラムをファイルに保存する
   rsave ファイル名
  実際の例

  02 

2)ファイルをichigojamにロードする
   rload ファイル名

   Linux上にある指定したプログラムをichigojamに送信してロードさせます。
   1行、および文字単位でウィエイトを入れているため、プログラム量が多い場合
   時間がかかります。
   
   実際の例

  03

3)リモートコマンド実行
    rcmd コマンド

    例: ./rcmd "? 2*3*4"

           6
           OK 

    空白文字を含む場合は、コマンドはダブルクオーテーション(")で囲って下さい。
    ゲーム等のすぐに処理が終了しないプログラムを実行した場合でも2秒間で
    タイムアウトして復帰します。

    実際の例

    01


補足
rloadコマンドでは、ichigojamへのテキスト送信で
行、文字単位で遅延を行っています。
状況によっては、遅延時間の調整が必要になるかもしれません。
ソースを修正して調整して見てください。

プログラムではsttyコマンドでシリアル通信の設定しているのですが、
環境によってはパラメタの修正が必要になるかもしれません。

« arduinoで利用可能な漢字フォントROMの製作(2) | トップページ | ReadyNAS上に電子書籍閲覧サーバーを試しに作ってみました »

IchigoJam」カテゴリの記事

コメント

支援ツールの公開ありがとうございます。
ところが手元のUbuntuではusleepを修正しただけだと、IchigoJamからの出力が読み込めませんでした。
そこで以下のような変更を加えた物を作成しました。
1. IchigoJamからの読み込み処理はバックグラウンドの別プロセスです
2. タイムアウトではなく、OKプロンプトが返ってきたら終了します
3. sleepもしくはusleepコマンドを自動検索します
この変更したバージョンを
sano-ya.org/ichigojam/ait/
で公開しています。
もし何か問題がありましたら、ご連絡ください。

佐野幸彦さん

ご丁寧なコメント有難うございます。
つたない問題ありの公開プログラムの修正有難うございます。
修正ソースの公開については、まったく問題なしです。

ホームページ拝見しました。
私より(当然ですが)もLinux関連のノウハウをお持ちのようでです。

ディストリビュータによって、非互換が発生するのは悩ましいですね。
(かつて、UNIXのBSD系とAT&Tの非互換に悩まされたのですが、
soralisがBSDとSystem V統合とか懐かしい)

Linuxでもなぜ、こんなにも非互換になってしまったんですかね。

いつも参考にさせてもらっています。
LINUX版ではichigo jam側でALT+SHIFT+1のように入力した特殊文字をセーブ、ロードすることはできないのでしょうか?

> いつも参考にさせてもらっています。
> LINUX版ではichigo jam側でALT+SHIFT+1のように入力した特殊文字をセーブ、ロードすることは
> できないのでしょうか?

コメントありがとうございます。
私の利用環境 CentOS 6.6で特殊文字を含めたプログラムのセーブ、ロードが出来ることを
確認しています。
ご利用している環境によっては何かしらの設定が必要かもしれません。

スクリプトの先頭がbashでなくshであったため、ubuntuでrloadにおいてreadのNオプションが読み込めなかったようです。他にもすこし手を加えて特殊文字も問題なくセーブ、ロードすることができました。お手数かけて申し訳ありませんでした。

ほと さん

ご報告ありがとうございます。

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/571408/61085089

この記事へのトラックバック一覧です: IchigoJam用の支援ツールLinux版を作成しました:

« arduinoで利用可能な漢字フォントROMの製作(2) | トップページ | ReadyNAS上に電子書籍閲覧サーバーを試しに作ってみました »