IchigoJam RPiのプログラムをPCで書きたい
以下の記事に書いた通り、最近、Raspberry PiにIchigoJamを入れて遊んでいます。
ただ、ちょっと長いプログラムを書こうとすると、IchigoJam単体の編集機能だと、なかなかつらいです。書き出したバイナリファイルをバイナリエディタで編集するのも地獄だしまいったなーということを書いていたのですが、なんと開発者様より、PCで編集する方法を2つも教えてもらいました!
公式マニュアルには、まだ記載ないようなので簡単に紹介しようと思います。
IchigoJam RPiとシリアル通信
IchigoJamとシリアル通信する方法です。本家IchigoJamでは、これがPCとファイルをやりとりする常套手段となります。マニュアルにも記載ないので、Raspberry Pi版IchigoJamでは、てっきりダメだと思っていたのですが、なんと対応しているとのこと。凄い!
接続的には、下記記事の通り、普通の(Raspbianを入れた)Raspberry Piとシリアル接続する要領で通信できました。
ただ、Macだと通信のところでハマったところがいくつかあったので、簡単に紹介します。Windowsでは、Teraterm等で公式情報を参考に接続・設定すれば多分大丈夫じゃないかなと思います(環境が無いので試せませんでした)。
まず接続に関しては、上記記事と同じ要領で以下のようにジャンパワイヤで接続しましょう。ピン配置や購入するものに関しては、上記記事と全く同じもので大丈夫でした。また、Raspbianのように、特別なエラー対応(ファイル書き換え)は不要です。
通信は、最初Macのscreenで試していたのですが、Deleteや改行がききませんでした。改行はCtrl+j
でなんとかいけたのですが、Deleteは分からずギブアップ。仕方なくcoolterm
というターミナルソフトを使いました。
coolterm
は以下からインストールできます。
パッケージ管理ソフトのHomebrew Caskが使えるなら、ターミナルで以下コマンド1発でインストールできます。
$ brew cask install coolterm
Homebrewに関しては、以下記事参照下さい。
cooltermのシリアルポート設定は、以下の通りです。
Transmitの設定は、長い行のプログラムを転送(コピペ)したとき、デフォルト設定だとうまく転送できなかったので以下の通りディレイを設定しています。もしこれでもうまくいかなかったら、ディレイの10
をもっと大きい数字にしてみて下さい。通信が遅くなりますが、確実に転送できるようになるはずです。
通信できると、ターミナルとIchigoJamの画面が完全に同期するようになります。
わかりにくい絵ですが、PC(Mac)上のターミナル画面(右)と、IchigoJamの画面(左)です。
PCからIchigoJamにプログラムを送信したい場合は、プログラムをPCのcoolterminal
のターミナル画面にコピペすれば、IchigoJamにも同じ内容が転送されます。
逆にPCでIchigoJamからプログラムを受信したい場合は、IchigoJam上でLIST
コマンドをうてば、PCのターミナル上にもプログラムが表示されるので、それをコピーすればよいです。
使用するソフト等は、以下の記事を参考にさせていただきました。
IchigoJam の紹介と OS X で使う方法のまとめ - Qiita
テキスト <-> バイナリ変換によるファイル保存
もう一つの方法は、SDカードに保存されるバイナリ形式のプログラムをテキスト形式と変換することで、ファイル転送する方法です。
なんと、以前の記事をきっかけに、IchigoJam RPi開発者のみつを(@tkmsm)さんが、もの凄いスピードで作成下さいました。
IchigoJam BASIC RPi 本体の対応は先になりそうなので、パソコン上で
— みつを (@tkmsm) 2017年11月10日
files 内のファイルからテキストデータを取り出すツールを作ってみました。https://t.co/rrBcT4o8Ag
オプションをつけると逆の処理もできます。
よろしければお使いください。
早すぎだろ…
以下リンク先に、ソフト(Linux/Mac/Windows)とマニュアルがあります。
実は、最初バグがあってうまくいかなかったのでGitHubの方でissueを立てたのですが、立てた5秒後くらいに修正連絡がきたので、確認して5分後にはクローズしてました。タイミングもあったと思うのですが、あらゆる開発スピードが早い。
変換したファイルでRUNするとSyntax errorになるケースがあります · Issue #1 · mitsuji/ijbconv · GitHub
具体的には、以下のような手順でPCからIchigoJamにファイルを転送できます
- PCでテキストファイルでプログラムを書く
- PC上で変換ソフトを使って、テキスト -> バイナリ変換したファイルを保存(以下
100.bin
というファイル名で保存した例) - IchigoJamのSDカードにPCでアクセスして
files
ディレクトリのファイル(100.bin
)を上書き - IchigoJamでファイルをロードする(
LOAD 100
)
IchigoJamからPCにファイルを転送する場合は逆で、以下ですね。
- IchigoJamでプログラムをセーブする(
SAVE 100
) - IchigoJamのSDカードにPCでアクセスして
files
ディレクトリのファイル(100.bin
)をPCにコピー - PC上で変換ソフトを使って、バイナリ -> テキスト変換
今は、変換ツールを使う形式ですが、将来的にはIchigoJam自身がバイナリとテキスト両対応の書き出し、読み込みができるよう、開発検討くださっているらしいので期待大ですね!
なるほど、テキストとバイナリ両方対応しちゃえばいいわけですね。対応検討します!
— みつを (@tkmsm) 2017年11月9日
まとめ
IchigoJam RPiとPCでプログラムのソースコードをやりとりする方法を2つ紹介しました。オススメは、準備に手間はかかりますが、断然シリアル通信する方式ですね。リアルタイムに簡単にプログラムをやりとりできます。SDカードを抜き差しして、やりとりするのは、実際やってみると思った以上に手間がかかります。といっても、両方ともIchigoJamでプログラム書くよりはずっと効率的ですので、IchigoJamに慣れてきて、もっと楽にプログラム書きたいという方は試してみる価値はあるのじゃないかなと思います。
自分としては、これで益々IchigoJamが実用的になってきました。正直、プログラミング教育はRaspbian+Scratchが有ればいいじゃんって思っていた自分がいたりしたのですが、やっぱり実際使って実感する良さというのはありますね。今回、開発者陣のレベルの高さと対応のスピード感・本気度を改めて感じて、益々IchigoJamのファンになってしまいました。いいじゃんIchigoJam!
IchigoJamとRaspberry Piの組み合わせという視点で考えると、Raspberry Piをベアメタルでこれほど手軽に開発できる環境って他にはそうそうないと思う(少なくとも自分は知らない)ので、実用の面でも結構アリな選択肢なのではとか思ったりしています。また、そのうちIchigoJam使って何かやれないか、色々妄想してみようかと思います。