virt_flyのブログ -63ページ目

virt_flyのブログ

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

↑IchigoJamのファームウェアを書き換えソフトIJUtilitiesを使って更新

書き換えの手順

前回、IchigoJamのファームウェアの書き換えができないと書きました。

 

どうも、ISPピンとGNDピンをジャンパー線でつなぐところを、いつの間にか別なピンにつないでいたようです。それと、IchigoJamの電源を入れたらISPピンのジャンパー線を抜くように書いてある解説もありますが、結果的にはその必要はなさそうです。参考になったのは「コドモとアプリ」の「IchigoJamのファームウェアを書き換える」でした。

 

また、TVモニターやキーボードはつながないほうがよさそうに思います。なんとか書き換えに成功しました。仕方がわかってしまえば、書き換えはしごく簡単に行なえます。

 

今後も、ファームウェアの書き換えというかOSのインストールは想定できますので、メモを残しておきます。

 

①ファームウェアのダウンロード
IchigoJamのサイトからファームウェアをパソコンにダウンロードしてきます(ここでは最新のIchigoJam BASIC 1.4.1)
 
②書き換え用ソフトの準備
IJUtilitiesをダウンロードし、パソコンにインストールします
ダウンロードし解凍、exeファイルをクリック。はじめに、フォントのインストールを求めてくるので、新しそうなforIJ1.2を開き、最初のフォントファイル(日本語・英語)を指定します。
 
 
③IJUtilitiesの設定
IJUtilitiesを起動し、「環境設定」をクリック、開いた画面で[Font/Char.]を選び、IchigoJam、IchigoLatte、IchigonQuestで使うフォントを指定します。続いて[環境設定]で[Utilities]を選び、lpc21isp fileを選択します
 
④IchigoJamとUSB-シリアル変換モジュールをつなぐ
(ここでは、amazonで購入した291円のノーブランド品「USB→TTL コンバーターモジュール アダプター モジュール CP2102 シリアル変換」を使用、チップセットはCP2102)
 
以下の通りジャンパー線でピン同士をつなぎます
IchigoJam側 TXD ー USB-シリアル変換モジュール側 RXD
   〃   RXD ー          〃     TXD
   〃   GND ー          〃     GND
(ここまでは、通常のパソコンとの接続の場合)
ファームウェアの書き換えのためには、さらに
IchigoJam側 ISP ー 同じくIchigoJam側 GND
(これでISPモードでIhigoJamは起動できるように)
 
↑IchigoJam互換機での接続の例
 
⑤USB-シリアル変換モジュールをパソコンのUSBにつなぐ

USB-シリアル変換モジュール用のドライバは、自動的にインストールされない場合は、手動でインストールが必要です(前回USB-シリアル変換で書いたように、チップセットがCP2102 なのでSilicon Labsからドライバをダウンロードしてきてインストールは済ませています)

 
⑤IJUtilitiesでIchigoJamに接続
[スキャン]を押して該当COMポート(Windowsの場合)を表示させて、[接続]をクリック
COMポートの確認は、[スタート]からデバイスマネージャーを開き、[ポート(COMとLPT)])をクリック、USB-シリアル変換モジュールに対応するCOMポートの番号を見ます(ここではCOM3)
(接続したらターミナルの色が黒から黄緑に変わります)
 
⑥IchigoJamの電源をON
 
⑦IJUtilitiesでファームウェア書き換え
IJUtilitiesで[Firm書き換え]を選び、開いた画面のFirmで目的のファームウェアを指定してやり、[Start]を押します
書き換え処理が行われ(瞬時)、「Now launching the brand new code」が表示されたら完了

 

2in1タブレットをTVモニター・キーボード代わりに

作成できるプログラムのサイズがわずか1KB

 

自作したIchigoJamでBASICプログラムが動くことも確認(注1)できました。ただ、残念なのは作成できるプログラムのサイズが1KBーわずか1KBですよーに制限されることです。IchigoJamは、解像度が256×192と低く表示される文字数も32×24と少ないこともさることながら、凡人の私には1KBではロクなプログラムが書けません。

 

諦めきれず調べてみると、昔懐かしい「スタートレック」ゲーム風の「IchigoTrek-4K」なるゲームプログラムを作られている方がありました。マイコンチップを大容量版に換えた環境で動作するもの(注2)で、現在ではプログラムメモリーが4KBある「IchigoCake」で楽しむことができるようです。

 

しかしながら、容量のあるマイコンチップに換装すればコストアップとなり、IchigoJam自体の価格を「イチゴ」(1500円)に据え置くことは困難でしょう。ichigoCakeは、「ちょっぴり大人なこどもパソコン『IchigoLatte』とこどもサウンドグラフィックボード『PanCake』が合体&パワーアップ」した製品でもあるだけに、組み立て済完成品の価格が5,478円(税込み)とお高いのが玉にキズ。タブレットなどと比較すれば、コストパフォーマンスに欠けるのは否めまず、どちらかと言うと用意された高級プログラミング言語の習得や開発をめざす人向きと思えます。

 

プログラミング教育を広げようというのであれば、あくまでもIchigoJamの価格は1,500円(税別)に据え置いてほしいものです。さほど関心のない方やものになるかわからないと思っている初心者、お子さんの小遣いから出せるのはせいぜい2,000円位まで。私自身、3,000円もしてたら買わなかったでしょう。

 

そろそろ何かハードが買いたい

 

IchigoCakeはさておき、そろそろハードを何か購入したくなってきました。

 

Pancakeでカラー表示、音を出してゲームを楽しもうか、それとも作成したプログラムを保存できるようにROMカセットを手に入れようか、いやいやファームウエアの更新のためにUSB‐シリアル変換モジュールを買うべきか、悩むところです。

 

↑USB‐シリアル変換モジュールで2in1タブレットにつなげたIchigoJam(黒い丸いものは取り忘れた圧電ブザー)

 

USB‐シリアル変換モジュールを使えば、IchigoJamをパソコンに接続して、パソコンをキーボードやテレビ画面の代わりにできるそうだし、作成したBASICプログラムをEEPROM代わりにパソコンに保存もできるようなので、まずはUSB‐シリアル変換モジュールから買うことにしましょう。

 

安物だと動かないものをつかまされる可能性がありますが、IchigoJam本体を買うのと同じくらいの価格がするものを買うのは癪なので、イチかバチかのamazonでの購入にしました。IchigoJamもパソコンなのに、他のパソコンの助けを借りるのは癪じゃないのか、と言われそうですが、お許しを(注3)。

 

 

上のスクリーンショットは、購入したUSB‐シリアル変換モジュールで2in1タブレットにつなげたIchigoJamのBASICプログラムが動く様子を、タブレットでモニターしているところのものです。使用したソフトはIJUtilities。

 

タイトルがUFO GAMEとなっていますが、元のプログラムはShiro SaitoさんのIchigoJamプログラム集にあったSHOOTING GAMEです。前に話したように、液晶テレビの表示範囲がなぜか狭いため、ここでは修正したプログラムと元のプログラムとを実行画面で区別できるようにしていたものが写ってしまったものです。スミマセン。

 

当初は、amazonで購入したノーブランドのUSB‐シリアル変換モジュールでつなげてもドライバがないと言われ、わけのわからないまま石の名前(CP2102)でWEB検索し、Silicon Labsからダウンロードしてインストール。なんとか動いてくれてるようで、ほっとしましたが…。

 

IchigoJam BASICが1.4.1にバージョンアップしているので、次にァームウエアの書き換えを試みましたが、残念ながらこちらはうまくいきませんでした。この件はまた今度とします。

 

 

 

注1)IchigoJamでテレビ画面に表示される文字数は、現在32×24文字とされていますが、我が家の少し古い液晶テレビでは32×21文字しか表示されず、ゲーム画面などがはみ出してしまうことを前回ブログに書きました。テレビの映像表示の仕組みを知りませんし、調べもしていませんので、何か解決方法があるのかも知れませんがわかりません。しかしながら、IchigoJamの自作に問題があったわけではなさそうです。というのも、ガレージの奥に放置していた随分古いブラウン管テレビを引っ張り出し、自作したIchigoJamを接続してみたところ、先のような現象は起こらず、正常に画面表示されたからです。

注2)IchigoCakeは、LPC1114/333を2つ積んでいる。

注3)ファームウエアの更新はいたし方ないとしても、ディスプレイやキーボードの代用に他のパソコンを使ったのでは、確かにIchigoJamはなんのためのパソコンかと言いたくもなります。WEB上でIchigoJam BASICを動かせるIchigoJam WEBもあるのですから。そこは、PS/2キーボードは今では手に入りにくいとか、居間のテレビを占領できないとか、インターネット環境にない外出中でもエミュレーターのようにできるとか、ひょっとしてプログラム開発しやすい(?)とかなんとか、弁解の理由をつけられないでしょうか。

↑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文字でした。なぜ?