IchigoJam BASIC RPi で遊ぶ
2021.06.15

YouTube でも紹介しています。画像をクリックすると再生できます。
今回は、IchigoJam BASIC RPi で遊んでみましょう。
IchigoJam は、BASIC言語によるプログラミングを手軽に楽しむために開発されました。
IchigoJam BASIC RPi は、「こどもパソコンIchigoJam」の Raspberry Pi 版です。
■IchigoJam

こちらが本家のIchigoJamです。色々な互換製品が発売されています。
・CPU - NXP LPC1114[11] - ARM Cortex-M0搭載 32-bitマイコン 48MHz
・メモリ - 4KB
・プログラミング言語 - IchigoJam BASIC
・グラフィックス
・32x24 テキスト(PCG対応) / NTSCビデオ出力
・16x6 テキスト(PCG対応) / AQM1248A液晶ディスプレイ
・キーボード PS/2キーボード(ファームウェアでJP/US選択可能)
・I/O
・ボタン、汎用入力x4 (アナログ入力x2) / LED x1、汎用出力x6(IO切替により入力最大x10、出力最大x10、アナログ最大x6)
・PWM x4(2ch)
・シリアル入出力(TXD/RXD) 最大115,200bps
・記憶媒体 - 内蔵Flashメモリ4つ / 外付けEEPROM対応
・拡張機能 - PanCake を接続することで、80x45 16色+4和音に対応[12][13]
Ref.https://ja.wikipedia.org/wiki/IchigoJam
■IchigoJam BASIC RPi
IchigoJam BASIC RPi は 各種 Raspberry Pi に対応しており、HDMIディスプレイやUSBキーボードが利用できます。

IchigoJam BASIC RPi+ は I-O DATA製品
RPi にはないSense HAT や Touchscreen Display に対応した 専用コマンド が利用できます。
基本的に、すべての Raspberry Pi で動作するように開発されています。
動作確認済み機種は下記のようです。
Raspberry Pi 3 Model A+
Raspberry Pi 3 Model B+
Raspberry Pi 3 Model B V1.2
Raspberry Pi Zero W V1.1
Raspberry Pi Zero V1.3
Raspberry Pi 2 Model B V1.2
Raspberry Pi Model B+ V1.2
Raspberry Pi Model A+ V1.1
■インストール
USBリーダ/ライタに、microUSBをセットします。
ラズベリーパイのUSBポートに挿します

$ sudo fdisk -l
Device Boot Start End Sectors Size Id Type
/dev/sda1 8192 62586879 62578688 29.9G c W95 FAT32 (LBA)
FAT32フォーマットがされていない場合
$ sudo mkfs.vfat -F 32 /dev/sda1
mkfs.fat 4.1 (2017-01-24)
mkfs.vfat: /dev/sda1 contains a mounted filesystem.
オプションの解説
-v:詳細な進捗を表示
-c:不良ブロックの精査を行う
-F 32:FAT32形式でのフォーマットの指定。-FだとFAT(16)となる。
$ mkdir ~/IchigoJamRPI
$ cd ~/IchigoJamRPI
$ wget https://ichigojam.github.io/RPi/downloads/ichigojam-rpi-1.2.6-fw-12e0bf8.zip
※配布に関して
※ オリジナル(LPC1114)版含め、IchigoJam BASIC ソフトウェアを第三者に配布するときはライセンスの購入が必要です。
$ unzip ichigojam-rpi-1.2.6-fw-12e0bf8.zip
$ cd ichigojam-rpi
$ ls -l
-rw-r--r-- 1 pi pi 18693 11月 13 2018 COPYING.linux
-rw-r--r-- 1 pi pi 1494 11月 13 2018 LICENCE.broadcom
-rw-r--r-- 1 pi pi 52116 11月 13 2018 bootcode.bin
-rwxr-xr-x 1 pi pi 32 12月 6 2018 config.txt
drwxr-xr-x 2 pi pi 4096 12月 6 2018 files
-rw-r--r-- 1 pi pi 6694 9月 14 2017 fixup.dat
-rwxr-xr-x 1 pi pi 140823 6月 16 2015 ichigojam-license.pdf
-rwxr-xr-x 1 pi pi 2364672 12月 6 2018 kernel.img
-rwxr-xr-x 1 pi pi 2381072 12月 6 2018 kernel7.img
-rw-r--r-- 1 pi pi 3 10月 16 2017 keymap.txt
-rw-r--r-- 1 pi pi 1508 12月 6 2018 readme.txt
-rw-r--r-- 1 pi pi 2040 12月 6 2018 readme_ja.txt
-rw-r--r-- 1 pi pi 2857060 11月 13 2018 start.elf
ユーザ・プログラムは、赤文字で示した filesディレクトリに保存されます。
キーボードを設定します
$ vi keymap.txt
jp
キーボードの種類
us:USキーボード
jp:JPキーボード
※jp に変更しても、私のキーボードではきちんと対応していませんでした。
本来は、この時点で解凍したディレクトリーを、microSD にコピーして、
microSDから、IchijoJam BASIC を起動、コーディングを始めるのですが、
面倒なので、すでにあるゲームプログラムを使います。
■ブロックくずしを試してみる

Ref,簡素ブロックくずし(Simple Breakout)
このブロックくずしを実行するには、バイナリーファイルに変換する必要があります。
変換サイト ijbconv web にアクセスして変換を行います。
Ref.ijbconv Web版

BASICソースコードをテキストエリアにコピーして、[text to binary]ボタンを押します。
生成されたバイナリーファイルを filesディレクトリーに、ファイル名 1.bin として保存します。
ここまで完了しましたら、解凍したディレクトリーの中身すべてをmicroSDカードにコピーします。
$ sudo mount /dev/sda1 /mnt/target
$ cp -rp * /mnt/target
マウントを解除して、SDカードリーダ/ライタをラズベリーパイから抜きます
$ sudo umount /mnt/target
インストールに使用したRaspberry Pi 3 model B のmicroSDを差し替えて、IchigoJam BASIC RPi を起動してもよいのですが、
モニターを接続していないので、IchigoJamRPiの動作環境には、Raspberry Pi Zero WH を使用しました。
Zero に HDMIモニターとキーボードをつないでいます。
これに先ほど作成した microSDカードを挿して起動します。

起動はとても速やかです。

プログラムをロードして、実行します
LOAD 1
Loaded 1000byte
OK
RUN
LOAD 1 とすることで、1,bin バイナリーファイルが読み込まれます。

Raspberry Pi Zero系 と Model A+系 については 一部のキーボードで、入力の反応がよくない現象が報告されているようです。
Raspberry Pi 公式キーボードでも、このブロックくずしでボールを跳ね返すのにかなり苦労しました。
また、IchigoJam BASIC RPi では処理速度が ARM Cortex-M0搭載 32-bitマイコン LPC1114(48MHz) による IchigoJam BASIC よりも遥かに高速です。
このため、オリジナルのプログラムをそのまま動かすと、シューティングゲームなどでは動きが早すぎて相手の攻撃に対応できないまま、GAME OVER になるので修正が必要です。
プログラムの実行を中断したいときには、[ESC]キーを押します。

LIST コマンドでソースコードを標示しています。

作成したプログラムは、SAVEコマンドにより、files フォルダ内に保存されます。
本来は (プログラム番号).bin と (プログラム番号).txt で保存されるようですが、バイナリーファイルのみで、テキストファイルは生成されませんでした。
ソースコードが必要な場合は、ijbconv web でバイナリーからテキストへ変換してください。
※bin ファイルは仮想領域 #C00~#FFF の状態を保存したバイナリーファイルです。
■イチゴジャム レシピ - はじめの一歩
IchigoJam BASIC のソースコードのサイズは最大 1K バイトですが、教材としては機能的にも充実した内容となっています。
ぜひ一度「イチゴジャム レシピ - はじめの一歩」を読んでみてください。

Ref.イチゴジャム レシピ - はじめの一歩
■IchigoJamを自作する場合
IchigoJam には、LPC1114というチップが使用されています。

Ref. IchigoJam (イチゴジャム)の味見
■参考文献
・IchigoJam
・IchigoJam BASIC RPi ダウンロード
・ijbconv
・IchigoJam BASIC RPi1.2 ドキュメント
・IchigoJam BASIC リファレンス ver 1.4
・イチゴジャム レシピ
・IchigoJam でシューティングゲームを作る
|
Raspberry Pi(ラズベリー パイ)は、ARMプロセッサを搭載したシングルボードコンピュータ。イギリスのラズベリーパイ財団によって開発されている。
たいていのことは100日あれば、うまくいく。長田英知著
「時間がなくて、なかなか自分のやりたいことができない」
「一念発起して何かを始めても、いつも三日坊主で終わってしまう」
「色んなことを先延ばしにしたまま、時間だけが過ぎていく」
そこで本書では、そんな著者が独自に開発した、
まったく新しい目標達成メソッド「100日デザイン」について、
その知識と技術を、余すところなくご紹介します。
まんがで納得ナポレオン・ヒル 思考は現実化する
OLとして雑務をこなす日々に飽き足らず、科学者だった父が残した薬品を商品化すべく、起業を決意した内山麻由(27)。彼女はセミナーで知り合った謎の女性からサポートを得ながら、彼女と二人三脚でナポレオン・ヒルの成功哲学を実践し、さまざまな問題を乗り越えていく。
ヒル博士の<ゴールデンルール>に従い、仕事に、恋に全力疾走する彼女の、成功への物語。
今日は人生最悪で最高の日 1秒で世界を変えるたったひとつの方法 ひすいこたろう著
偉人の伝記を読むと、最悪な日は、不幸な日ではなく、新しい自分が始まる日であることがわかります。最悪な出来事は、自分の人生が、想像を超えて面白くなる兆しなのです。偉人伝を読むことで、このときの不幸があったおかげで、未来にこういう幸せがくるのかと、人生を俯瞰する視線が立ち上がるのです。
ご飯は私を裏切らない heisoku著
辛い現実から目を背けて食べるご飯は、いつも美味しく幸せを届けてくれる。
29歳、中卒、恋人いない歴イコール年齢。バイト以外の職歴もなく、短期バイトを転々とする日々。ぐるぐると思索に耽るけど、ご飯を食べると幸せになれる。奇才の新鋭・heisokuが贈るリアル労働グルメ物語!
【最新版Gemini 3に対応!】できるGemini (できるシリーズ)
Geminiを「最強の知的生産パートナー」として使いこなすための、実践的なノウハウを凝縮した一冊です。
基本的な操作方法から、具体的なビジネスシーンでの活用、日々の業務を自動化するGoogle Workspaceとの連携、さらには自分だけのオリジナルAIを作成する方法まで余すところなく解説します。
Rustプログラミング完全ガイド 他言語との比較で違いが分かる!
Rustの各手法や考え方を幅広く解説!
500以上のサンプルを掲載。実行結果も確認。
全24章の包括的なチュートリアル。
ポチらせる文章術
販売サイト・ネット広告・メルマガ・ブログ・ホームページ・SNS…
全WEB媒体で効果バツグン!
カリスマコピーライターが教える「見てもらう」「買ってもらう」「共感してもらう」すべてに効くネット文章術
小型で便利な Type-C アダプター USB C オス - USB3.1 オスアダプター
Type-C端子のマイコンボードをこのアダプタを介して直接Raspberry Piに挿すことができます。ケーブルなしで便利なツールです。
Divoom Ditoo Pro ワイヤレススピーカー
15W高音質重低音/青軸キーボード/Bluetooth5.3/ピクセルアート 専用アプリ/USB接続/microSDカード
電源供給USBケーブル スリム 【5本セット】
USB電源ケーブル 5V DC電源供給ケーブル スリム 【5本セット】 電源供給 バッテリー 修理 自作 DIY 電子工作 (100cm)
|