MachiKania

Jeans & Development 電子ブロック工房 三日坊主 フロントページ

MachiKania type P ver 1.4 を公開 [MachiKania]

2024年2月16日

MachiKania type P の ver 1.4 を公開しました。

公式ページはこちら
GitHub リリースページはこちら

ReadMeに記載した更新履歴は、次の通りです。
Phyllosoma 1.40/KM-1505 (2024.2.17)
 ・サンプルプログラムに、FILEMAN.BAS(ファイルマネージャー)を追加。
 ・クラスライブラリーに、BUTTON(ボタン操作), GEN3O(源ノ角ゴシック表示), 
  QRCODE(QRCODE表示), TSC2046(タッチパネル操作)を追加。
 ・液晶を使わない場合に、SPI命令でspi1を使う事を可能にした。
 ・PUTBMP命令で、横幅が長い画像を表示する際の不具合を修正。
 ・ファイル一覧表示の際、ファイル更新日時の表示を可能にした。
 ・ファイル一覧表示の際の、ファイル名・ファイル更新日時による表示順に対応。
 ・ILI9488液晶で縦置の際の表示不具合を修正。
 ・FRENAME, MKDIR命令及びFRENAME(), MKDIR()関数の追加。
 ・補助コード(auxcode)を追加できる機能を実装

MachiKania type P ver 1.3 に、天気予報を喋らせる [MachiKania]

2023年10月1日

MachiKania type P の ver 1.3 では、Raspberry Pi Pico W を使って、インターネットから情報を取ってくることが可能です。

作例として、天気予報の情報サイトからデーターを取ってきて、今日と明日の天気予報を得るような物を作ってみました。NTPから今日の日付も取ってこられるので、その情報も使います。今日の日付と天気予報は、画面に表示させるのではなくスピーカーで話させるようにしてみました。完成写真は、以下の通りです。小さな箱に、電源スイッチとスピーカーが取り付けられたものです。

2023-09-26-weatherBox.jpg

MachiKania type P ver 1.3 で、http サーバー [MachiKania]

2023年9月29日

MachiKania type P の ver 1.3 では、Raspberry Pi Pico W を使って、WiFi 接続及びインターネット接続が出来るようになりました。この記事では、MachiKania を http サーバーとして利用する方法について述べます。

ver 1.3 では WiFi 機能の追加に伴って13種類の新たな命令・関数が追加されていますが、それらを使ってサーバーを構築するのは、骨の折れる作業です。そこで、需要の高い http サーバーを構築するためのクラス、HTTPD を作成しました。

この、HTTPD クラスを用いれば、簡単に http サーバー(www サーバー)を構築することができます。この記事では、HTTPD クラスの使い方について述べます。

MachiKania type P ver 1.3 で、http クライアント [MachiKania]

2023年9月29日

MachiKania type P の ver 1.3 では、Raspberry Pi Pico W を使って、WiFi 接続及びインターネット接続が出来るようになりました。この記事では、MachiKania を http クライアントとして利用する方法について述べます。

ver 1.3 では WiFi 機能の追加に伴って13種類の新たな命令・関数が追加されています。それらを使えば様々なインターネット接続(クライアント・サーバー)を行うことができますが、非常に複雑な手続きが必要です。そこで、インターネットの接続で最もよく使う、http プロトコルに関して、クラスライブラリーを用意しました。

ここでは、新規に追加されたクラスのうち、WGET クラスについて説明します。http クライアントを簡易に構築するためのクラスです。

MachiKania type P ver 1.3 で、ネット接続 [MachiKania]

2023年9月29日

MachiKania type P の ver 1.3 を、2023年9月30日(日本時間)に公開しました。これにより、Raspberry Pi Pico W を利用して、WiFi 経由でネットに接続できるようになりました。

公式ページはこちら
GitHubリリースページはこちら

ReadMeに記載した更新履歴は、次の通りです。
・Raspberry Pi Pico W を用いた WiFi 接続に対応。次の命令・関数を追加: 
 DNS$(), IFCONFIG$(), NTP, TCPACCEPT(), TCPCLIENT, TCPCLOSE, TCPRECEIVE, 
 TCPSEND, TCPSERVER, TCPSTATUS, TLSCLIENT, WIFIERR(), WIFIERR$()
・GCOLOR()関数の不具合を修正
・一部USBキーボードでのキー入力不具合に対応
・EOFの時、FGETC()関数が-1を返すようにした
・embed用にXIAO RP2040, RP2040-Zero, and Tiny-2040に対応
・SPIの対応ポートをINIファイルで指定出来るようにした
・SERIALステートメントの第3引数を省略した時の不具合を修正
・例外をトラップして画面表示するようにした
・CORETIMERが電源投入後およそ2000秒後から不具合を起こす事を修正
・ILI9488に対応
・RTC(Real Time Clock)をサポート。次の命令・関数を追加: 
 GETTIME$(), SETTIME. STRFTIME$()
・ファイル保存時の日時設定をサポート
・NTPサーバーによるRTCのセットをサポート
・SYSTEM 201 呼び出しにより、ボード付属のLEDのオン・オフを出来るようにした
・メモリーアロケーションの不具合を修正
・FREMOVE/SETDIR等のファイル関連命令を使用時の、ガベージコレクション不具合を修正
・WAVEプレーヤーの安定性を改善
・クラスのスタティックメソッド呼び出し不具合を修正
・FFINGD$(), FINFO(), FINFO$()の3つの関数を追加。ファイル一覧の作成が可能に
・REM 文に「"」を含む際のコンパイル時の不具合を修正

MachiKania type Pで、BASICコードからCで書かれたコードを呼び出す、その2 [MachiKania]

2023年3月26日

MachiKania type P の ver 1.2 では、BASIC コードから C で書かれたコードを呼び出すための機能追加がされた。ひとつ前の記事では、CプロジェクトをHEXファイルに変換し、そこから必要なC関数を呼び出す方法について述べた。この記事では、もう一つの方法について述べる。

HEXファイルに変換する方法においては、複雑なCでのコーディングが必要な多くの事例に対応できる。一つの例として、正規表現エンジンを実装するMachiKaniaクラス(REGEXP クラス)の実装について述べた。

この記事で述べる方法では、Cのプロジェクトから必要なコードを抜き取って BASIC コードに変換してプログラムに埋め込む方法を取る。HEXを介する方法と比べた長所は、以下の通り。

1.一つの BASIC ファイルの中に C コードを埋め込むことができる
2.HEX を介した方法では HEX コードのメモリ上での配置位置を考慮する必要があったが、この方法ではその必要が無い
3.C プログラムの中から必要なものだけを抜き取って BASIC プログラムに埋め込むので、メモリー占有領域を最小限にできる


他方、短所は以下の通り

1.複雑な C プログラムでは対応できない場合がある

従って、それほど大きくない C のプログラムの場合はこの記事で述べる方法が有利である。後に述べる「c_convert.php」スクリプトの実行でエラーが出る、あるいは、作成されたBASIC プログラムが意図したように動作しない場合は、HEXを介する方法に移行すればよい。

MachiKania type Pで、BASICコードからCで書かれたコードを呼び出す [MachiKania]

2023年3月26日

MachiKania type P の ver 1.2 では、BASIC コードから C で書かれたコードを呼び出すための機能追加がされた。この記事では、どのようにすれば C で書かれたコードを呼び出すことができるのかについて述べる。

方法は大きく分けて二通りあって、一つは RAM 上に HEX アプリケーションを読み込んでそこに含まれる機能を呼び出す方法である。RAM 上にアプリケーションを配置して HEX ファイルを作成する方法は、別の記事で紹介した。この記事では、作成したHEXファイル中にある C で関数をどのようにして呼び出すかについて述べる。この手法を用いて HELLO_CW アプリケーションREGEXP クラスを作成したので、それを例に挙げながら説明する。

もう一つは、C でビルドしたオブジェクトから、必要な機能だけをピックアップして、BASIC の EXEC ステートメントに変換して埋め込む方法である。簡単な C のコードを実行させる場合には、この方法が簡便でサイズもコンパクトにできるが、これについては、別の記事で取り上げることにする。

この記事では HEX アプリケーションを読み込んでそこに含まれる機能を呼び出す方法について述べたい。複雑な C のコードを呼び出すのに向いた方法である。

Raspberry Pi Picoで、RAM領域にアプリケーションを配置する [MachiKania]

2023年1月30日

Raspberry Pi Pico 用のアプリケーションを C で開発すると、デフォルトではメインプログラムがフラッシュ領域(アドレス 0x10000000 からの 2048 kbytes)に配置される。作成されたuf2ファイルを、Pi Pico 本体の BOOTSELボタンを押しながら PC の USB 端子に接続すると現れる RPI-RP2 ドライブにコピーすると、フラッシュ領域にプログラムが書き込まれ、2回目以降は Pi Pico に電源を供給するだけで、インストールしたプログラムが実行される。

この記事では、フラッシュ領域ではなく RAM 領域(アドレス 0x20000000 からの 256 kbytes)にプログラムを配置する方法について述べる。ソースコードに若干の変更を加えるだけでよい。(ビルドすると、uf2 ファイルだけではなく hex ファイルも作成されるが、この hex ファイルは、MachiKania type P でファイル選択すると、実行可能。)

MachiKania type P ver 1.2の新機能 [MachiKania]

2023年1月30日

2023/01/28に、MachiKania type P の ver 1.2を公開しました。

公式ページは、こちら。
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つのクラスを、ライブラリーに追加

MachiKaniaを使ったチャートレコーダー [MachiKania]

2022年12月27日

MachiKania type Pを使って、チャートレコーダー(記録装置)を作成しました。

2022-12-27-ChartRecorder.png
<<前の記事