MachiKania type P ver 1.2の新機能
2023年1月30日
2023/01/28に、MachiKania type P の ver 1.2を公開しました。
公式ページは、こちら。
Github リリースページは、こちら。
Readmeに記載した更新履歴は、次の通りです。
USB キーボードが使用可能に
何といっても、新機能の目玉は、USB キーボードの接続に対応した事と、type M/Z と同じエディターを搭載した事です。これにより、スタンドアローンのパソコンとして使えるようになったほか、プログラムの開発も MachiKania 単独で行えるようになりました。従来の PC-connect 機能も使えますので、用途に応じて使い分けてください。
公式ページや Github の README に書かれてある通り、USB キーボードは USB-OTG コネクターを介して接続し、5 V 給電は Raspberry Pi Pico の VBUS 端子(40番ピン)から行うのが基本ですが、私は以下のような回路を自作して接続しています。
USB-OTG コネクターに、通常通りの USB type A 端子からの 5 V の電源供給を追加した様な構成です。このような構成なら YD-RP2040でも、MachiKania type P と USB キーボードを接続して使えるはずなので、参考にしてみて下さい。
(追記:同じ機能の市販品もあるようです。この商品が動くことを、確認しました。)
C で作成したアプリケーションの読み込みと実行
もう一つの目玉は、type P で使う用のアプリケーションやコードの一部について、C で記述したものを取り込む機能の追加です。
一つは、C で作成した type P 用のアプリケーションを、HEX ファイルで MMC/SD カードに保存しておけば、ファイル選択画面で選んで実行できるようにした事です。公式ページのパックマンの紹介を見てください。ダウンロードできる ZIP アーカイブに「pacman.hex」というファイルが含まれていますから、これをカードにコピーし、ファイル選択メニューからそれを選んでください。パックマンが起動します。リセットボタンを押せば、元の MachiKania に戻ることが分かると思います。uf2 ファイルからインストールした場合は、元の MachiKania に戻すには、MachiKania を再度 uf2 ファイルを用いてインストールする必要がありましたが、この HEX ファイル読み込み機能により、その必要がなくなりました。ただし、この HEX ファイルを作成するのにちょっとした工夫が必要なので、その方法については別記事で説明します。
Cで作成したコードを、BASIC から読み込んで実行する機能
もう一つは、プログラムの一部について、C で記述されたコードを BASIC プログラムから読み込んで実行する機能です。この機能のために、MachiKania ベーシックでは、3つのステートメント・関数を追加しました(ALIGN4ステートメント・DATAADDRESS()関数・FUNCADDRESS()関数)。
複雑な処理を行うコードについて、C で書かれたものが一般に公開されているケースが多々あります。シンプルなコードなら BASIC のコードに移植して使えますが、複雑なコードだとそう簡単にはいきません。そこで、そういった、公開された C コードを MachiKania で活用するために、この機能を追加しました。この機能を用いたものとして、ver 1.2 では正規表現を扱うためのクラスである REGEXP がライブラリーに追加されています。これは、ここで公開されている正規表現実装コードを、MachiKania BASIC から呼び出せるようにしたものです。C コードの BASIC からの呼び出しをどのように行うかについては、別記事で説明します。
embed(コード埋め込み)機能は、USB キーボード接続時でも使える
Ver 1.0 からある embed 機能ですが、USB キーボード版(phyllosoma_kb.uf2)でも使えるようにしました。方法は、以前書いた記事を参考にしてください。キーボード使用版に埋め込むか、非使用版に埋め込みかの選択は、convert_kb.php を実行するか convert.php を実行するかで行えます。これにより、USB キーボードを使用する組み込み開発が、BASIC で簡便に行えるようになりました。もちろん、実行速度は MicroPythonを用いた場合の数倍で、C で開発した場合に准ずるものなので、様々な用途に使えるはずです。
公式ページは、こちら。
Github リリースページは、こちら。
Readmeに記載した更新履歴は、次の通りです。
Phyllosoma 1.20/KM-1502(2022.1.28) ・USBキーボード及びエディターをサポート ・INKEY()・READKEY()・INPUT$()の3つの関数と、INKEY割り込み機能を整備 ・クラスファイルコンパイル時に一部の環境で生じる不具合を修正 ・ALIGN4ステートメント・DATAADDRESS()関数・FUNCADDRESS()関数を追加 ・タイマー割り込みのタイミングが少しずれていたのを修正 ・SYSTEM()に、メモリーアロケーション関連の機能を追加 ・文字列で「\r」「\t」のエスケープシークエンスが使用可能に ・OPTION CLASSCODEに対応 ・BASICプログラム実行中でのカードの抜き差しが可能に ・ファイル選択画面でC言語で作成したHEXファイルのロードが可能に ・CRDINI・CLDHEX・REGEXP・STRINGの4つのクラスを、ライブラリーに追加
USB キーボードが使用可能に
何といっても、新機能の目玉は、USB キーボードの接続に対応した事と、type M/Z と同じエディターを搭載した事です。これにより、スタンドアローンのパソコンとして使えるようになったほか、プログラムの開発も MachiKania 単独で行えるようになりました。従来の PC-connect 機能も使えますので、用途に応じて使い分けてください。
公式ページや Github の README に書かれてある通り、USB キーボードは USB-OTG コネクターを介して接続し、5 V 給電は Raspberry Pi Pico の VBUS 端子(40番ピン)から行うのが基本ですが、私は以下のような回路を自作して接続しています。
USB-OTG コネクターに、通常通りの USB type A 端子からの 5 V の電源供給を追加した様な構成です。このような構成なら YD-RP2040でも、MachiKania type P と USB キーボードを接続して使えるはずなので、参考にしてみて下さい。
(追記:同じ機能の市販品もあるようです。この商品が動くことを、確認しました。)
C で作成したアプリケーションの読み込みと実行
もう一つの目玉は、type P で使う用のアプリケーションやコードの一部について、C で記述したものを取り込む機能の追加です。
一つは、C で作成した type P 用のアプリケーションを、HEX ファイルで MMC/SD カードに保存しておけば、ファイル選択画面で選んで実行できるようにした事です。公式ページのパックマンの紹介を見てください。ダウンロードできる ZIP アーカイブに「pacman.hex」というファイルが含まれていますから、これをカードにコピーし、ファイル選択メニューからそれを選んでください。パックマンが起動します。リセットボタンを押せば、元の MachiKania に戻ることが分かると思います。uf2 ファイルからインストールした場合は、元の MachiKania に戻すには、MachiKania を再度 uf2 ファイルを用いてインストールする必要がありましたが、この HEX ファイル読み込み機能により、その必要がなくなりました。ただし、この HEX ファイルを作成するのにちょっとした工夫が必要なので、その方法については別記事で説明します。
Cで作成したコードを、BASIC から読み込んで実行する機能
もう一つは、プログラムの一部について、C で記述されたコードを BASIC プログラムから読み込んで実行する機能です。この機能のために、MachiKania ベーシックでは、3つのステートメント・関数を追加しました(ALIGN4ステートメント・DATAADDRESS()関数・FUNCADDRESS()関数)。
複雑な処理を行うコードについて、C で書かれたものが一般に公開されているケースが多々あります。シンプルなコードなら BASIC のコードに移植して使えますが、複雑なコードだとそう簡単にはいきません。そこで、そういった、公開された C コードを MachiKania で活用するために、この機能を追加しました。この機能を用いたものとして、ver 1.2 では正規表現を扱うためのクラスである REGEXP がライブラリーに追加されています。これは、ここで公開されている正規表現実装コードを、MachiKania BASIC から呼び出せるようにしたものです。C コードの BASIC からの呼び出しをどのように行うかについては、別記事で説明します。
embed(コード埋め込み)機能は、USB キーボード接続時でも使える
Ver 1.0 からある embed 機能ですが、USB キーボード版(phyllosoma_kb.uf2)でも使えるようにしました。方法は、以前書いた記事を参考にしてください。キーボード使用版に埋め込むか、非使用版に埋め込みかの選択は、convert_kb.php を実行するか convert.php を実行するかで行えます。これにより、USB キーボードを使用する組み込み開発が、BASIC で簡便に行えるようになりました。もちろん、実行速度は MicroPythonを用いた場合の数倍で、C で開発した場合に准ずるものなので、様々な用途に使えるはずです。
コメント
多博 (2023年1月31日 18:04:59)
Warning: comments::cb1_tag_body(): Argument #1 ($m) must be passed by reference, value given in /home/u109394186/domains/rad51.net/public_html/jeans/jeans/libs/comments.php on line 51
ケンケン様、
大変ご無沙汰しております。 '博(多)'改め、'多博'です。
昨年の8/1で当該掲示板のサービスが終了してしまった事(→過去記事等は何処かに保存されているのでしょうか?)と、その後、個人的に薬の副作用による両眼白内障の進行により、PC画面もまともに見ることができず、ましてや半田付け作業も一切できない状況となっていました...
とうとう限界に達した為、年明け中旬に両眼白内障入院手術を実施しました。(→そのお陰で、世界が一変しました!)
久々にホームページを拝見させて頂くと、DOZANさんとの共同プロジェクトで、「MachiKania type P」が、昨年8/27に既に公開されており、USBキーボード接続版がつい先日の1/28にリリースされた件を知り、俄然、また'実装魂'が湧き上がって、半田付け作業のリハビリ(?)も兼ねて、目下、「Machikania type P(in 'Hand-Spinner Can')」の製作に取組中です...
(→実装完了&基本動作確認等ができましたら、追って一報させて頂きます。)
【今回の実装概要】
①HAT増設用端子、LCD、キースイッチ、LiPO充電池系等も含めて、ハンドスピナー缶内に基本全実装する。(→Picoは裏面からICソケットを活用して取り外し可対応)
②手持ちのPico用LiPO充電&昇圧基板と、LiPO充電池(1100mAh)を実装し、5V電源供給をポータブル化。
③LCD(2.2インチILI9341仕様)を缶蓋の窓枠に実装。
④microSDカード用DIP基板実装。(→裏面からICソケットを活用して取外し可対応。 ※LCD裏面に実装済みのSDカードソケットと交換する手もあるが、一応念の為)
⑤ONボードブザー(+10kΩボリューム)とAudioジャック実装、等々。
Katsumi (2023年2月1日 11:55:06)
こんにちは。
このブログは、ケンケンさんの運営ではなく、MachiKaniaの共同開発者である私、Katsumiの運営です。ケンケンさんの掲示板が終了してしまったのは、残念ですね。
このコメントをいただいたことは、ケンケンさんにお知らせしておきます。
このブログは、ケンケンさんの運営ではなく、MachiKaniaの共同開発者である私、Katsumiの運営です。ケンケンさんの掲示板が終了してしまったのは、残念ですね。
このコメントをいただいたことは、ケンケンさんにお知らせしておきます。
ケンケン (2023年2月2日 06:54:59)
多博様
お久し振りです。
白内障の手術とは、大変ですね。
掲示板はサービスが終了してしまったので残念ながら閉鎖してしまいました。
一応ローカルにコピーは残していますが、もう外に出すことはないと思います。
掲示板の再開については、どこかよいサービスが見つかれば行うかもしれません。
MachiKaniaシリーズはこの掲示板を運営しているKatsumiさんと私の共同プロジェクトです。
DOZAN氏はそのハードウェアを使ったXeviousの作者ですね。
MachiKania type Pのハンドスピナー缶への実装、楽しみですね。
Raspberry Pi Picoは工作もしやすく、実装についてはいろいろと考えられるのではないかと思います。
しかも今回は小型液晶に標準で対応しているので、コンパクトに持ち運んで利用できるものが作成できるので、期待しています。
お久し振りです。
白内障の手術とは、大変ですね。
掲示板はサービスが終了してしまったので残念ながら閉鎖してしまいました。
一応ローカルにコピーは残していますが、もう外に出すことはないと思います。
掲示板の再開については、どこかよいサービスが見つかれば行うかもしれません。
MachiKaniaシリーズはこの掲示板を運営しているKatsumiさんと私の共同プロジェクトです。
DOZAN氏はそのハードウェアを使ったXeviousの作者ですね。
MachiKania type Pのハンドスピナー缶への実装、楽しみですね。
Raspberry Pi Picoは工作もしやすく、実装についてはいろいろと考えられるのではないかと思います。
しかも今回は小型液晶に標準で対応しているので、コンパクトに持ち運んで利用できるものが作成できるので、期待しています。
多博 (2023年2月2日 21:30:28)
Katumi様、(cc: ケンケン様)
はじめまして、多博と申します。
この度は、ブログ所有者の勘違いをしており大変失礼致しました。
また、ケンケン様にもその旨ご連絡頂き有難うございます。
掲示板の件は残念ですが、これを機に宜しくお願い致します...
(p.s)
MachiKania Type P(in 'Hand-Spinner Can')の実装回路図の書き直しと部品配置構想はほぼ完了し、これから部品加工&配線作業に取り掛かる予定です。
はじめまして、多博と申します。
この度は、ブログ所有者の勘違いをしており大変失礼致しました。
また、ケンケン様にもその旨ご連絡頂き有難うございます。
掲示板の件は残念ですが、これを機に宜しくお願い致します...
(p.s)
MachiKania Type P(in 'Hand-Spinner Can')の実装回路図の書き直しと部品配置構想はほぼ完了し、これから部品加工&配線作業に取り掛かる予定です。
多博 (2023年2月6日 01:34:03)
Katsumi様、(cc:ケンケン様)
多博です。
先日は、MachiKania type Pの共同開発者&本ブログ管理者を勘違いしており、誠に申し訳ありませんでした。
(&お名前の's'が抜けており失礼致しました。)
標記の件、初期に予想外のトラブルがありましたが、何とか部品加工実装&基本動作確認ができましたので、一報させて頂きます。
尚、当初計画から、将来の拡張性を考慮して以下の仕様を追加しました。
①パワーアンプ基板(PAM8403)の実装。
②将来的にFM音源基板(YMF825)と交換実装できる様、周りにスペース確保。
(→その為、以下の実装部品&配置変更が発生...汗)
③LiPO充電池の容量変更:(1100mAH→1000mAH)
④LCD裏の既存SDカードソケットをmicroSD基板と交換。(→※ここで予想外のトラブルに嵌る...)
⑤PiCoLiPoSHIM(充電&電源制御基板)のコネクタ変更。(PH→ZR:LiPO電池のコネクタに合せて小型化)
※当初、microSDカードが、交換したソケットに入れても認識しない(&LCD画面のバックライト消灯&異常発熱?!)という症状が発生。
【原因】→既存のSDカードソケットとmicroSD基板のPIN配置仕様が一部異っていた!?
【対策】→既存の半田ラウンド&コネクタラウンドは使用せず、絶縁して電源ラインを含め信号線をバイパス配線。
【基本動作確認】
①フォルダ&ファイル一覧表示、キーの上下左右動作、ブザー音量調整、各BASファイルとパックマン&テトリスhexファイルの実行。
②iniファイル変更による、画面縦横変更時のKeyローテーション有無動作。
③PC connect機能によるファイル転送動作。
目下、USBキーボード接続以外は問題無く動作することを確認しました。(※OTG変換ケーブルが準備出来なかった為...)
以上、満充電で5時間以上の連続動作が可能な小型&ポータブルの'MachiKania Type P(in H-S-C仕様)'が完成しました。
( 写真が添付できないのが残念です。)
多博です。
先日は、MachiKania type Pの共同開発者&本ブログ管理者を勘違いしており、誠に申し訳ありませんでした。
(&お名前の's'が抜けており失礼致しました。)
標記の件、初期に予想外のトラブルがありましたが、何とか部品加工実装&基本動作確認ができましたので、一報させて頂きます。
尚、当初計画から、将来の拡張性を考慮して以下の仕様を追加しました。
①パワーアンプ基板(PAM8403)の実装。
②将来的にFM音源基板(YMF825)と交換実装できる様、周りにスペース確保。
(→その為、以下の実装部品&配置変更が発生...汗)
③LiPO充電池の容量変更:(1100mAH→1000mAH)
④LCD裏の既存SDカードソケットをmicroSD基板と交換。(→※ここで予想外のトラブルに嵌る...)
⑤PiCoLiPoSHIM(充電&電源制御基板)のコネクタ変更。(PH→ZR:LiPO電池のコネクタに合せて小型化)
※当初、microSDカードが、交換したソケットに入れても認識しない(&LCD画面のバックライト消灯&異常発熱?!)という症状が発生。
【原因】→既存のSDカードソケットとmicroSD基板のPIN配置仕様が一部異っていた!?
【対策】→既存の半田ラウンド&コネクタラウンドは使用せず、絶縁して電源ラインを含め信号線をバイパス配線。
【基本動作確認】
①フォルダ&ファイル一覧表示、キーの上下左右動作、ブザー音量調整、各BASファイルとパックマン&テトリスhexファイルの実行。
②iniファイル変更による、画面縦横変更時のKeyローテーション有無動作。
③PC connect機能によるファイル転送動作。
目下、USBキーボード接続以外は問題無く動作することを確認しました。(※OTG変換ケーブルが準備出来なかった為...)
以上、満充電で5時間以上の連続動作が可能な小型&ポータブルの'MachiKania Type P(in H-S-C仕様)'が完成しました。
( 写真が添付できないのが残念です。)
多博 (2023年2月10日 16:43:51)
Katsumi様、(cc:ケンケン様)、
多博です。
その後の状況ですが、手持ちの'十文字型USBテスター'にmicroUSBの5V入力端子が付いていた事を思い出し、これが流用できるのではと思い、「MachiKania type P(in H.S.C)」とUSBキーボードを繋げたところ、一発認識してテキストエディターが起動しました。(これで電圧と電流チェックも同時にできます。)
さらに、手持ちの'小型USB無線キーボード'を繋げてみたところ、これも一発認識してエディターが起動しました。
お陰様で、後は5V供給用のモバイル電池Uを用意すれば、
全くPCを使わずに、小型USB無線キーボードで野外編集&実行できる、「ポータブルKM-BASICシステム」が完成しました!
多博です。
その後の状況ですが、手持ちの'十文字型USBテスター'にmicroUSBの5V入力端子が付いていた事を思い出し、これが流用できるのではと思い、「MachiKania type P(in H.S.C)」とUSBキーボードを繋げたところ、一発認識してテキストエディターが起動しました。(これで電圧と電流チェックも同時にできます。)
さらに、手持ちの'小型USB無線キーボード'を繋げてみたところ、これも一発認識してエディターが起動しました。
お陰様で、後は5V供給用のモバイル電池Uを用意すれば、
全くPCを使わずに、小型USB無線キーボードで野外編集&実行できる、「ポータブルKM-BASICシステム」が完成しました!
Katsumi (2023年2月28日 11:37:41)
多博さん
おお、それは良いですね。ポータブルシステムが完成したのですね。私はまだ、最低、電源ラインは供給しないといけないシステムしか構築できていないので、スタンドアローンのポータブル無線システムは面白そうです。
おお、それは良いですね。ポータブルシステムが完成したのですね。私はまだ、最低、電源ラインは供給しないといけないシステムしか構築できていないので、スタンドアローンのポータブル無線システムは面白そうです。
ケンケン (2023年3月1日 08:54:36)
多博様
製作が着々と進んでいるようで楽しみですね。SDとマイクロSDの端子が微妙に違うのは多くの人がはまる罠です。
キーボードが2つとも問題なく動作したという報告もありがたいです。ところで、どこか公開するような場はないでしょうか?
ブログとかツイッターとかがあると見せびらかすことができてよいのですがね。
製作が着々と進んでいるようで楽しみですね。SDとマイクロSDの端子が微妙に違うのは多くの人がはまる罠です。
キーボードが2つとも問題なく動作したという報告もありがたいです。ところで、どこか公開するような場はないでしょうか?
ブログとかツイッターとかがあると見せびらかすことができてよいのですがね。