こどもパソコンIchigoJam(3)ー遊んでみる | virt_flyのブログ

virt_flyのブログ

フライトシミュレーターソフトのFlightGearで仮想飛行を楽しむブログです。

↑TV画面に映し出されパックマン風ゲーム「IchigoPac」

 

なつかしいBASICプログラム

 

IchigoJamのプログラミング言語による開発環境

 

前回、今どきなんでBASICなのと書きましたが、教育用、あるいは機械制御用のシングルコンピューターといえば、超有名なのがRaspberry Piであり、学ぶにも環境がよく整ってそうで、推奨プログラミング言語はPythonだったと思います。また、巷ではアンドロイド・アプリの開発もトレンドのようで、おばあちゃんがつくったアプリが売れているとか。機会があれば学びたいものと思っていましたから。もちろんIchigoJamにもJavaSccriptやRuby、FORTHがあります。(注1)

 

加えて、BASICだとプログラムがスパゲッティになりやすく、また、オブジェクト志向のプログラミング言語になかなか馴染めなかった個人的経験もあったもので。

 

それでも、安く、シンプルで自分でつくれ、慣れ親しんだBASICならすぐ動かせるという手軽さには惹かれます。

 

そういうことで、こしらえるにいたったIchigoJamですが、とりあえず起動しLEDが点灯するところまでは確認したものの、実際にBASICプログラムが動くのかは、まだこれからになります。

 

IchigoJam BASICがバージョンアップーファームウエアの更新の必要

 

ちなみに、IchigoJam BASICの現バージョンは暮にバージョンアップしたばかりのver.1.4に対して、ファイブテンから購入したキットではver.1.3.1でした。不具合の修正やら日本語キーボード/USキーボードの切り替えが可能などの改善が多数あるようですが、基本は大きくは違わないと思いますからこのままにします。いつ飽きるかわかりませんから。ただしキーボードの切り替えができるのなら、ファームウェアの更新も考えてみようかな(注2)

 

例1:足し算ー久しぶりで忘れかけてたBASIC

 

それでは、実際にプログラムを入力してみましょう。大概思いつくのは次のようなものでしょう。あれっ、どうやって実行するんだっけ。RUNだった? そう! もう長いことBASICは使ってなかったので、忘れかけてました。

 

 

例2:めぢからゲームーデバッグに四苦八苦、エラーは意外な原因

 

なにか他にプログラム例がないかと探していたら、福野泰介さんのブログで「小3からのプログラミング入門」という、感じの良い解説をみつけました。その中の「めぢからゲームをかいぞうせよ」にあったゲームを試してみましょう。画面のあちこちに出現する数字と同じキーをただちに押して時間内に何個押せるかに挑戦するゲームです。

 

なにっ、動かない。お決まりのデバッグです。なんとか入力ミスを見つけ記述通りに入力したのにまだ動きません。一応、waitと1との間にスペースはいれたのですが、数字が2回ほど表示されたら、後はでてこないのです。

 

 

ハンダ作業がまずかったかと心配になりましたが、数字が画面外に表示されているのかもしれません。福野さんのブログの別の箇所で、以前のIchigoJamと今のとでは、画面に表示される文字数が違うと書かれていたのを思い出しました。プログラムが少し古いものでしたから、30行目のLOCATEの後ろの2つのRND関数の数字を改めたところ、無事ゲームを続行できるようになりました(注3)

 

例3:パックマン風ゲーム「Ichigo Pac」ー保存、読み出し

 

白黒でしかもプログラムリストの写真では地味なので、せめて派手めなゲーム画面を掲載したいと、パックマン風ゲームの「Ichigo Pac」を試すことにしました。福野さんのブログにてその筋屋さんのプログラムをさらに870byteまで圧縮したものを見て入力しました。

 

冒頭の写真のように、無事プログラムは動きました。ただし、ゲームが苦手な方の人間なので、とても速さについていけず、またたく間にゲームオーバーになってしまいます。

 

わずか1KBに満たない大きさとはいえ、またプログラムを1から手入力するような気力はもうありません。昔はよく何ページもあるプログラムを入力したものです。やはりどこかに保存し、読み出せるようにしたいものです。IchigoJamのCPUは、内蔵フラッシュメモリを記憶媒体として持っていますので、IchigoJam単体でも4つまで保存が可能です。

 

プログラムの保存の仕方と読み出し方は次の通り

 

SAVE [数] 保存する 数は0〜3(IchigoJam単体)

 

 

LOAD [数] 読み出す 数は0〜3(IchigoJam単体)

 

 

なお、EEPROMを外付けした場合は、数に100〜227を使います。

 

さて、少しは賑やかしになりましたが、やはり色付き、音ありでないと寂しいものがあります。日本橋でPanCakeを買っておけばよかったかな。少なくとも圧電ブザーがありますから、ジャンパー線があればスマートに音がだせるようになるのですが。

 

通販だと小さな部品は送料の方が高かったり、必要数以上に買わないとならなかったりして、近くにパーツを売る店がないというのは、残念なことです。ホームセンターのようなところにもないですから。外国に侵略されたら、市民としてレジスタンスに取り組もうにも、電子部品がアマゾンや秋葉原、日本橋にしかないとなると、闘えないことになるじゃないか。なんて、グチをいうにしては大袈裟な。大きな国民の犠牲を出してまで、武力で抵抗することがよいことかは、はなはだ疑問です。

 

 

注1)IchigoJamにも、IchigoLatte ・IchigoCakeのJavaSccript、IchigoLatte Ruby、iIchigoLatte FORTHによるプログラミング開発環境ができています。また、パソコンで開発しマシン語にしてIchigoJamに転送するruby4ij、c4ijがあります。

注2)ファームウェアの変更は、パソコンにダウンロードしUSB-シリアル変換モジュールを通じ書き換えソフトを使って自分で実行するか、有料で書き換えを行ってくれるサービスを利用する方法があります。詳細は省略。
注3)厳密には、以前のIchigoJamでは、画面に表示される文字数は36(〜37)×27文字。現在のIchigoJamは32×24文字ですから、プログラムのLOATEの数値をそれぞれ4(〜5)および3減らし、画面に収まるようにしなければなりません。後で気付いたのですが、使用したTV(古いSHARPのAQUOS)の画面で表示文字数を数えたら、微妙ながら32×21文字でした。なぜ?