IC・トランジスタで出来たコンピューターを設計・製作するためのブログ
Jeans & Development | 電子ブロック工房 | 三日坊主 | フロントページ |
MachiKaniaを使ったチャートレコーダー [MachiKania]
2022年12月27日
MachiKania type Pの開発環境 [MachiKania]
2022年9月30日
MachiKania type Pのver 1.1では、USBケーブルで接続したPC上で、BASICプログラムの開発や、クラスライブラリーの開発が行えます。
下の写真は、開発環境の実行例です。操作としては、PC上のテキストエディターでBASICプログラムを編集し、MachiKaniaのリセットボタンを押すだけです。MMC/SDカードの抜き差しや、BASICファイルのドラッグ&ドロップは必要ありません。
![2022-09-25-Clipboard01.png](/jeans/skins/media/1/2022-09-25-Clipboard01.png)
この機能は結構便利で、私自身が常用しています。MMC/SDカードの抜き差しをほとんどしなくなりました。以下で、開発環境の構築方法について述べます。
下の写真は、開発環境の実行例です。操作としては、PC上のテキストエディターでBASICプログラムを編集し、MachiKaniaのリセットボタンを押すだけです。MMC/SDカードの抜き差しや、BASICファイルのドラッグ&ドロップは必要ありません。
![2022-09-25-Clipboard01.png](/jeans/skins/media/1/2022-09-25-Clipboard01.png)
この機能は結構便利で、私自身が常用しています。MMC/SDカードの抜き差しをほとんどしなくなりました。以下で、開発環境の構築方法について述べます。
MachiKania type Pに、BASICプログラムを埋め込む [MachiKania]
2022年8月10日
MachiKania type Pでは、起動時に自動的に実行するBASICプログラムを指定することができます。これにより、Raspberry Pi Picoの電源を入れると指定のBASICプログラムがすぐに実行されます。
これを行うには、2つの異なる方法があります。
1.MMC/SDカードに、MACHIKAP.BASを保存する
2.MachiKania本体に、実行するBASICプログラムを埋め込む
1の方法は、単にMMC/SDカードのルートに、MACHIKAP.BASという名でBASICプログラムを保存するだけです。特に説明は必要ないと思います。また、MACHIKAP.INIを編集すると、起動時にMACHIKAP.BASとは異なるファイル名のBASICプログラムを実行することもできます。
この記事では、2の方法について述べます。1の方法と異なり、MMC/SDカードも液晶ディスプレイの接続も必須ではありません。Raspberry Pi Pico単体でMachiKaniaおよび埋め込んだBASICプログラムが走ります。従って、様々な組み込み用途でMachiKaniaを使用することができます。
これを行うには、2つの異なる方法があります。
1.MMC/SDカードに、MACHIKAP.BASを保存する
2.MachiKania本体に、実行するBASICプログラムを埋め込む
1の方法は、単にMMC/SDカードのルートに、MACHIKAP.BASという名でBASICプログラムを保存するだけです。特に説明は必要ないと思います。また、MACHIKAP.INIを編集すると、起動時にMACHIKAP.BASとは異なるファイル名のBASICプログラムを実行することもできます。
この記事では、2の方法について述べます。1の方法と異なり、MMC/SDカードも液晶ディスプレイの接続も必須ではありません。Raspberry Pi Pico単体でMachiKaniaおよび埋め込んだBASICプログラムが走ります。従って、様々な組み込み用途でMachiKaniaを使用することができます。
MachiKania type Pの実行速度 [MachiKania]
2022年7月26日
現在、Raspberry Pi Pico用のMachiKaniaを、ケンケンさんと共同で開発中です。これは、MachiKania Type M, Type ZとコンパチブルなBASICコンパイラーを搭載し、表示装置にLCDを使った、Raspberry Pi Pico用のMachiKaniaで、コードネームにPhyllosomaと名付けたものです。正式名称は、MachiKania Type Pになる予定です。近々、公式にversion 1.0を公開します。
Type MやType Zでは、プログラムの実行にMMC/SDカードやNTSCディスプレイが必要でしたが、Type Pではそういったものが無い環境でもBASICプログラムを高速で実行し、I2CやSPIなどのインターフェースで外部機器を制御することが可能です。従って、組み込み用途でのMachiKania Type Pの利用も、ニーズとしてあると考えています。
Raspberry Pi Pico用には、C/C++による開発環境やMicroPythonによる開発環境がすでに提供されていて、これらはニーズに応じて便利に使えます。C/C++で開発すると最速の実行速度が得られる一方、開発環境の構築に手間がかかり、かつ、外部機器との接続用のSDKの呼び出し方も複雑です。他方で、MicroPythonでの開発は外部機器の制御も分かりやすく、開発にかける時間を少なくできますが、実行速度がそれほど速くはありません。
MachiKaniaはC/C++と同じコンパイル形式なので、最速でないにせよ、ある程度の高速実行が可能です。また、Pythonほど強力ではありませんが、オブジェクト指向プログラミングも可能です。
そこで、MachiKaniaの利便性を評価するため、MachiKania・C/C++・MicroPythonで、実行速度の差がどれぐらいあるのか、調べてみました。
Type MやType Zでは、プログラムの実行にMMC/SDカードやNTSCディスプレイが必要でしたが、Type Pではそういったものが無い環境でもBASICプログラムを高速で実行し、I2CやSPIなどのインターフェースで外部機器を制御することが可能です。従って、組み込み用途でのMachiKania Type Pの利用も、ニーズとしてあると考えています。
Raspberry Pi Pico用には、C/C++による開発環境やMicroPythonによる開発環境がすでに提供されていて、これらはニーズに応じて便利に使えます。C/C++で開発すると最速の実行速度が得られる一方、開発環境の構築に手間がかかり、かつ、外部機器との接続用のSDKの呼び出し方も複雑です。他方で、MicroPythonでの開発は外部機器の制御も分かりやすく、開発にかける時間を少なくできますが、実行速度がそれほど速くはありません。
MachiKaniaはC/C++と同じコンパイル形式なので、最速でないにせよ、ある程度の高速実行が可能です。また、Pythonほど強力ではありませんが、オブジェクト指向プログラミングも可能です。
そこで、MachiKaniaの利便性を評価するため、MachiKania・C/C++・MicroPythonで、実行速度の差がどれぐらいあるのか、調べてみました。
MM Systemの紹介 [PIC]
2020年12月3日
Microchip社のPIC32MMファミリーのマイクロコントローラーは、低価格で32ビットのCPUが使え、DIPパッケージもあるので、趣味の電子工作にはもってこいの石です。私自身も最近はこれを多用しています。そこで、色々な用途に簡単に使えるよう、最小限のインターフェースを簡単に実装するためのプラットフォームを作成しました。MM Systemと名付けています。
特徴:
・PIC32MM0064GPL028を使用
・出力用に、4桁の7セグメントLEDを標準装備
・入力用に、最大32個までのスイッチを接続化
・最大9個までのA/Dコンバーターの読み込みが容易
・PIC32MMに標準で組み込まれているSPIやUARTだけでなく、I2C通信も使用可
特徴:
・PIC32MM0064GPL028を使用
・出力用に、4桁の7セグメントLEDを標準装備
・入力用に、最大32個までのスイッチを接続化
・最大9個までのA/Dコンバーターの読み込みが容易
・PIC32MMに標準で組み込まれているSPIやUARTだけでなく、I2C通信も使用可
FZ/KM mega の紹介 [MachiKania]
2020年2月2日
KM-Z80 midi 進捗:Fuzix [Z80]
2019年11月1日
KM-Z80 midi 用のアプリケーション第三弾、FZ/KM midi (Fuzix 実行環境)を製作中。特徴は、次の通り。
1)Fuzix ver 0.3 (Tom's SBC用) が走る。
2)ディスプレイは液晶表示(NTSCビデオは非対応)
3)Fuzix内ではRAM領域に64K bytesを割り当て
4)USBメモリー上のディスクイメージファイルを仮想ドライブとして使用
5)仮想ドライブは、128 Mbytes のサイズ
実行中の様子。
![2019-11-01-fuzix.jpg](/jeans/skins/media/1/2019-11-01-fuzix.jpg)
使用方法は、FZ/KM webとほぼ同じ。
1)Fuzix ver 0.3 (Tom's SBC用) が走る。
2)ディスプレイは液晶表示(NTSCビデオは非対応)
3)Fuzix内ではRAM領域に64K bytesを割り当て
4)USBメモリー上のディスクイメージファイルを仮想ドライブとして使用
5)仮想ドライブは、128 Mbytes のサイズ
実行中の様子。
![2019-11-01-fuzix.jpg](/jeans/skins/media/1/2019-11-01-fuzix.jpg)
使用方法は、FZ/KM webとほぼ同じ。
KM-Z80 midi 進捗:CP/M [PIC]
2019年9月25日
KM-Z80 midi 用のアプリケーション第二弾として、CP/KM midi (CP/M 2.2 実行環境)を製作している。特徴は、次の通り。
1)CP/M ver 2.2 (54k system) が走る
2)KM-Z80 midi 上で走る、スタンドアローン設計
3)ディスプレイは液晶表示(NTSCビデオは非対応)
4)RAM領域に56K bytesを割り当て
5)USBメモリー上のディスクイメージファイルを仮想ドライブとして使用
6)仮想ドライブは、1954K bytesの物を4つ割り当て
実行中の様子。MBASICから、STARTREKを起動した。
![2019-09-24-start.jpg](/jeans/skins/media/1/2019-09-24-startrek.jpg)
1)CP/M ver 2.2 (54k system) が走る
2)KM-Z80 midi 上で走る、スタンドアローン設計
3)ディスプレイは液晶表示(NTSCビデオは非対応)
4)RAM領域に56K bytesを割り当て
5)USBメモリー上のディスクイメージファイルを仮想ドライブとして使用
6)仮想ドライブは、1954K bytesの物を4つ割り当て
実行中の様子。MBASICから、STARTREKを起動した。
![2019-09-24-start.jpg](/jeans/skins/media/1/2019-09-24-startrek.jpg)
KM-Z80 midi 進捗:液晶表示 [PIC]
2019年9月23日
KM-Z80 midi (MZ-80K 互換機)をバージョンアップし、2019年9月現在、ver 0.4としている。ver 0.1からの変更は、以下の通り。
・アプリケーションのロード機能を追加。
・緑LEDをRB0に繋がず、トランジスターなどを用いてRB1から制御するようにした。
・液晶(ILI9341・SPI接続)表示にも対応。
・RB5とRB15の機能を入れ替えた。
・CMT機能の呼び出しの際、002xhでなく04xxhを呼び出しているプログラムに対応。
・FORMなど、分割ファイルの読み込みを行なっているプログラムに対応。
・プログラムセーブ時の不具合を解消。
・ソースコードのコンパイルにおいて、XC32 ver 1.32だけでなく上位のバージョンの XC32 コンパイラーにも対応。
・回路図微修正(LCDのバックライト電圧を3.3vに)。
写真は、SPI接続のILI9341液晶(3.2 インチ)を繋いで実行している所。
![2019-09-23-bugfire.jpg](/jeans/skins/media/1/2019-09-23-bugfire.jpg)
・アプリケーションのロード機能を追加。
・緑LEDをRB0に繋がず、トランジスターなどを用いてRB1から制御するようにした。
・液晶(ILI9341・SPI接続)表示にも対応。
・RB5とRB15の機能を入れ替えた。
・CMT機能の呼び出しの際、002xhでなく04xxhを呼び出しているプログラムに対応。
・FORMなど、分割ファイルの読み込みを行なっているプログラムに対応。
・プログラムセーブ時の不具合を解消。
・ソースコードのコンパイルにおいて、XC32 ver 1.32だけでなく上位のバージョンの XC32 コンパイラーにも対応。
・回路図微修正(LCDのバックライト電圧を3.3vに)。
写真は、SPI接続のILI9341液晶(3.2 インチ)を繋いで実行している所。
![2019-09-23-bugfire.jpg](/jeans/skins/media/1/2019-09-23-bugfire.jpg)
KM-Z80 midi 制作中 [PIC]
2019年7月15日
KM-Z80 の新しいシリーズ、midiを制作中。
![2019-07-15-kmz80midi1.png](/jeans/skins/media/1/2019-07-15-kmz80midi1.png)
特徴は、以下の通り:
1)Sharp MZ-80K 互換機
2)PIC32MX270F256Bを使用した、1チップ設計
3)USB メモリーを使って、プログラムのロードとセーブが可能
4)キーボードを内蔵しており、外付けキーボード(PS/2など)が不要
5)NTSC ビデオ出力(モノクロ;40x25文字)
6)将来的に、液晶表示にも対応予定
7)将来的に、MachiKania BASICも実行可能予定
![2019-07-15-kmz80midi1.png](/jeans/skins/media/1/2019-07-15-kmz80midi1.png)
特徴は、以下の通り:
1)Sharp MZ-80K 互換機
2)PIC32MX270F256Bを使用した、1チップ設計
3)USB メモリーを使って、プログラムのロードとセーブが可能
4)キーボードを内蔵しており、外付けキーボード(PS/2など)が不要
5)NTSC ビデオ出力(モノクロ;40x25文字)
6)将来的に、液晶表示にも対応予定
7)将来的に、MachiKania BASICも実行可能予定