2023年8月15日火曜日

TOPPERS/ASP - PIC32MX版 その5

前回からの続きです。

このテーマを最初からご覧になる場合はこちらからどうぞ。


MPLAB Harmonyとは?

MPLAB Harmony」とは、ドライバ、プロトコル、スタック、コーディングユーティリティ、ビルドシステムなどを開発者に提供するソースコードのライブラリです。

いわゆる純正のライブラリパッケージであり、これを使用するとCPUに内蔵されているペリフェラル(周辺機器)を簡単に利用することができるというものです。

今回の「TOPPERS/ASP PIC32MX版」のカーネル内でも、割り込み、タイマーやシリアル通信ドライバなどは、この「MPLAB Harmony」のドライバを使用しています。

ところが、この「MPLAB Harmony」のソースコードのライセンスの条項が不明瞭なために再配布できません。

そのため「TOPPERS/ASP PIC32MX版」のソースコードが不完全なものとなり、そのままではビルドが通らず、通すためには手動で不足分のソースコードをコピーしていただくという手間を強いることになってしまいました。

申し訳ありません…。

では、その「MPLAB Harmony」のソースコードを何処から入手すれば良いのか?

そのためには、インストールした「MPLAB X IDE」上で雛形となるプロジェクトを作って、そこで生成された「MPLAB Harmony」のソースコードを「TOPPERS/ASP PIC32MX版」のソースツリーにコピーするという方法を採ります。

ちなみに、この「MPLAB Harmony」は、すでにインストール済の「MPLAB X IDE」には付随しておらず、別途ダウンロードとインストールが必要になります。

今回はやたらとダウンロード/インストールするものが多いですね。

こらえてつかぁさい…。


MPLAB Harmonyのインストール

「MPLAB Harmony」は、以下のページでダウンロードします。


https://www.microchip.com/en-us/tools-resources/configure/mplab-harmony/version-2

このページの下の方に行ってもらって…。

Harmonyダウンロードページ - 1


「MPLAB Harmony Integrated Software Framework v2.06 Windows」という表記の右側の「Download」という表示をクリックします。

Harmonyダウンロードページ - 2


ダウンロードが完了すると「harmony_v2_06_windows_installer.exe」というファイルが生成されますので、これをダブルクリック!

以下のようにインストーラが起動します。

ここでは「Next>」ボタンをクリックです。

Harmonyインストーラ - 1


同意せざるを得んでしょう…。

ラジオボタンを「I accept the agreement」に選択してから「Next>」ボタンをクリックしましょう。

Harmonyインストーラ - 2


しばらくは「Next>」ボタンを連打です。

Harmonyインストーラ - 3


Harmonyインストーラ - 4


Harmonyインストーラ - 5


ようやくインストール作業が開始されたようです。

これも、そこそこ時間がかかります。

終わるまでTVでも観ていてください。

Harmonyインストーラ - 6


終了すると以下のような表示となります。

Finish」ボタンをクリックしてインストーラを終了させましょう。

Harmonyインストーラ - 7


これで「MPLAB Harmony」のインストールは終了です。

しかし、これを使うにはまだまだ作業が必要です!


MPLAB HarmonyのIDEへの登録

すでにインストール済みの「MPLAB X IDE」は、先程インストールしたばかりの「MPLAB Harmony」の存在を知りません。

(大体、この時点で「MPLAB X IDE」は一回も起動させていませんしねぇ。)

ですので「MPLAB X IDE」に「MPLAB Harmony」の存在を知らせて、それを使えるようにする作業が必要です。

そこで、まずは「MPLAB X IDE」を起動します。

普通にインストールした場合、PCのデスクトップに「MPLAB X IDE」のショートカットがあるはずですので、それをダブルクリックします。

すると、以下のようなスプラッシュスクリーンが表示されます。

「MPLAB X IDE」スプラッシュスクリーン


しばらくすると、まっさらな状態のIDEが立ち上がります。

キレイでシッカリ作られていそうなIDEですね!

「MPLAB X IDE」 - 1


次に「MPLAB X IDE」上部の「Tools」メニューから「Plugins」をクリックします。

「MPLAB X IDE」 - 2


以下のようなダイアログが現れます。

このダイアログの「Download」タグをクリックしましょう。

「Plugins」ダイアログ - 1


以下のように表示が切り替わりましたか?

次は、ダイアログの左上の「Add Plugins...」ボタンをクリックです。

「Plugins」ダイアログ - 2


新たに開いたダイアログで「MPLAB Harmony」のプラグイン・ファイル(.nbm)を選択します。

つまり、このプラグインをインストールすることで「MPLAB X IDE」が「MPLAB Harmony」を認識し、協調して働くことができるようになるという寸法です。

では、そのプラグイン・ファイルが何処にあるかっていうと、以下のパスです。


C:\microchip\harmony\v2_06\utilities\mhc


「MPLAB Harmony」は、ここにインストールされていたのですね。

そこで、以下のダイアログで上記のパスまで移動し「com-microchip-mplab-modules-mhc.nbm」という長ったらしい名前のファイルを選択し、右下の「開く」ボタンをクリック!

「Add Plugin」ダイアログ


以下のような表示になったでしょうか?

それでは満を持してダイアログ左下の「Install」ボタンをクリックです!

「Plugins」ダイアログ - 3


すると、以下のように「Plugin Installer」なるものが立ち上がります。

Next>」ボタンをクリックしましょう。

「Plugin Installer」 - 1


ああ、いつものアレだ…。

同意のチェックボタン、「Install」ボタンの順にクリックです。

「Plugin Installer」 - 2


プラグインのインストールが終わると、以下の表示となります。

Finish」ボタンをクリックしてください。

「Plugin Installer」 - 3


その後「MPLAB X IDE」は自動的に終了しますが、ビックリしないでください。

しばらく待っていると再起動します。

これで無事「MPLAB Harmony」のIDEへの登録は完了です!


このマイコンは、開発を始めるまでの作業が多いですね!

この辺り、もうちょっとスマートになると良いのですが…。

次回からは「TOPPERS/ASP PIC32MX版」をビルドするのに必要なソースコードを回収する作業を始めましょう。


<続く>

2023年8月8日火曜日

DIYレトロゲーム機「Nibble」がやってきた! その2

前回からの続きです。


さて、ようやく届いたクラウドファンディングサイト「Makuake」でオーダーした、DIYレトロゲーム機「Nibble(ニブル)」。

この「Nibble」執筆時点では、まだコチラで購入できますよ~。

Nibble


ゲームをプログラミングして遊ぶことを目的で購入したのですが、キット(半完成品)なので、まずは組み立てないといけません。

対象年齢9歳以上の知育玩具という位置付けなので、半田付けの難易度も低いはず。

不器用なプログラマーの私でも無事組み立てることができるでしょうか?


なにはともあれ、作業前にシッカリとドキュメントを読みましょう。

「Nibble」の箱を開封すると最初に目につく一枚の紙、ドキュメント類をダウンロードするためのURLが表記されています。


https://circuitmess-japan.tokyo/nibble-guide/

ドキュメントのダウンロードURL


このページでは、以下の4つのドキュメントがダウンロードできます。

ちゃんと日本語なのでご安心を。


1.組み立てガイド - Nibble_JP_Build Guide.pdf

2.コーディング最初のステップ - Nibble_JP coding-first steps.pdf

3.プログラミングガイド - Nibble_JP Programming Guide.pdf

4.セットアップガイド - Nibble_JP Setup Guide.pdf


最初の「組み立てガイド」以外は、プログラミングに関するドキュメントのようですね。

それらが非常に気になりますが、今注目すべきは「組み立てガイド」。


熟読中…。


ふむふむ…。

全80ページにも及ぶ、相当に丁寧なドキュメント!

子供でも失敗しないように…という配慮が感じられて好感が持てます。

これなら、流石の私でも大丈夫か!?

では、このドキュメントに沿って「Nibble」の組み立て開始!!


まずはメイン基板を用意。

メイン基板


ドキュメントに沿うと、最初に実装するのはボタン類です。

これらは、細かい部品がパッケージされたビニール袋の中に入っています。

ボタン以外にも細かい部品が沢山!

無くさないように注意です。

ビニール袋の中の部品


これらの中からボタンを拾っていきましょう。

すると、ボタンとボタンキャップが8組出てきました。

実際は7組しか使わないので、1組は予備ですね、親切ぅ~!!

ボタンとボタンキャップ


せっかくのご厚意ですが…今回これらは使わないことにしました。

理由は、仕事で同様のボタンとボタンキャップを使ったことがあるのですが、これが結構脆い。

ボタンにはボタンキャップを嵌めるためのクビれがあるのですが、ここからモゲることが良くありました。

ボタンのクビれ


なので、手持ちのクビれの無いボタンを使うことにしました。

です。

クビれの無いボタン


懐かしいSFCのコントローラーのイメージですね!

こういう、ちょっとした改善やカスタマイズができるのも、DIYキットの良いところです。

SFCのコントローラー


その他は、基本的にドキュメント通りにスイッチ、LCD、電池ボックスの順に半田付けを行っていきます。

作業中 - 1


強いて言うならば、LCDの取り付けが最難関でした。

ピンのショートに注意することと、半田ごての熱が分散して半田のノリが悪いピンがあること(接触不良の原因になります)。

更に、LCDをメイン基板と水平に取り付けようとすると、すでに基板に実装されているマイコンと干渉するので、ちょっと浮いた感じで実装する必要があります。

作業中 - 2


他は特に問題無しで、サクサク実装できます。

作業中 - 2


すべての部品を実装後、電池を入れて、スイッチをオンにする前にチップヒューズを挿入する必要があります。

チップヒューズ


これも、子供が作業して間違った配線で回路を壊さないように…という配慮でしょう。

しかも、チップヒューズは1つしか使わないのに3つも付属しています。

ここまで気を配っているクロアチア共和国のメーカー「CircuitMess」社の理念は素晴らしい!

さて、緊張の一瞬。


スイッチON!!



お、なんか写った!!

Bonk


スイッチをONにすると、まずメニューが立ち上がり、ここから設定画面や最初から入っているゲームを立ち上げることができるようです。

最初から入っているゲームは、かなりレトロなテニスゲーム「Bonk」、そしてヘビを操ってひたすらエサを食べていく「Snake」…。

Snake


そして、隕石を次々と破壊するシューティングゲームの「SpaceRocks」の計3本です。

SpaceRocks - 1


特に「SpaceRocks」は、グラフィックが良く描き込まれています。

フルカラーとはいえ、128x128の低解像度の可能性を感じさせるものです。

SpaceRocks - 2


SpaceRocks - 3


さて、動作チェックも終わったので次の作業です。

ケーシング(アクリル製)の装着です。

ケーシング(アクリル製)


…なのですが!

今回は、この作業は行わないことにします。

今後、色々とこの「Nibble」で遊ぶ上で、多分ハードウェアの改造やら線の引き出しやらをやるでしょう。

ケーシングをしてしまうと、その都度にバラして組み立てるのを繰り返すのも億劫です。

ちなみに、ケーシングを行うと、以下のような外観になるようです。

ケーシング後の外観


アクリル板は結構分厚いので、実物を見てみると全く安っぽい感じはなく、シッカリとした印象です。

知育玩具として本当に良く出来たキットです。

ただし、特に半田付けなど対象年齢の9歳児が一発で成功するほど簡単な作業とは言い難いでしょう。

半田ごてなど、危険な道具も扱いますから、12歳位までは大人同伴での作業が前提となるでしょうね。

これで遊んだ子供たちが一人でも多く「モノ作り」に興味を持ち、組み込みエンジニアへの道に進んでくれると嬉しいですね!


…ウソです。

海外ではいざ知らず日本では、組み込みエンジニアなんてキツい割に低収…


というリアルな話は置いといて~。


さて、無事に「Nibble」を組み立てることが出来ました!

最初から入っているゲームを遊び倒したら、いよいよプログラミングに挑戦したいと思います。

これらのゲームはオープンソースとして公開されていますので、プログラミングの際にも貴重なサンプルになるでしょう。

何か作ったら、このブログでその過程からレポートしましょうかね…。

皆さんも夏休みの工作として、この「Nibble」いかがですか?


<終わり>

2023年8月1日火曜日

TOPPERS/ASP - PIC32MX版 その4

前回からの続きです。

このテーマを最初からご覧になる場合はこちらからどうぞ。


開発環境の構築(Eclipse編)

さて、デバッガを使うための純正IDEである「MPLAB X IDE」と純正コンパイラの「XC32」のインストールに続き、コーディングとビルドを行うための「Eclipse」をインストールします。

まずは、今回使う「PIC32MX」用のツールチェーンの環境変数の設定を行います。

ツールチェーンは、「XC32」のインストールにより既に以下のディレクトリにセットアップされているはずです。


C:\Program Files\Microchip\xc32\v4.30\bin

(XC32のバージョンが「4.30」の場合)


XC…などと言っても、普通にGCCを含むGNUツールチェーンのように見えます。

XC32ツールチェーンのディレクトリ


環境変数の設定方法は、このページ(TOPPERS/ASPのビルドからデバッグまで~GNUツールチェーンの導入)の「環境変数の設定」の項目を御覧ください。

ただし、パスは…


C:\Program Files (x86)\GNU Tools ARM Embedded\7 2017-q4-major\bin


…となっているところを…


C:\Program Files\Microchip\xc32\v4.30\bin


に置き換えてください。

こんな感じ…。

「環境変数名の編集」ダイアログ


また、このページの「パスの確認」の項目で打ち込むコマンドも、以下のように変わります。


> xc32-gcc --version

コマンドプロンプト


続きまして「Cygwin」のインストールを行います。

このページ(TOPPERS/ASPのビルドからデバッグまで~Cygwinの導入)を参考にしてください。


次に、ソースコードをゲットしちゃいましょう。

ソースコードのダウンロードはこちらからどうぞ。

TOPPERS/ASP PIC32MX版」というのを選んでください。

また、「Github」を使いたい方は以下のコマンドでソースコードのクローンを行います。


$ git clone https://github.com/RyutaroMorita/asp_pic32mx_gcc.git

Cygwinターミナル

ダウンロードとGithub、いずれの場合も「asp_pic32mx_gcc」というディレクトリの名前を「asp_1.9.2」などと改名すると、上記のページと同じ状況になります。


さて、コンパイラーをインストールして、ソースコードもダウンロードしました。

早速ビルドを~!って思う気持ちはわかりますが、やめておきましょう。

どうせ、必ずビルドは失敗します。

なぜならば、ソースコードに色々加えなければならないからです。

その手順も追って説明いたしますので、ここはグッと我慢。


それよりも先に「Eclipse」のインストールを行います。

例のごとく、このページ(TOPPERS/ASPのビルドからデバッグまで~Eclipseの導入)を参考にしてください。


さて、以上で開発環境のセットアップは終了です。

これで「MPLAB X IDE」と「Eclipse」の2つのIDEを使用する準備が整いました。

次回は、Microchip社が提供する、PIC32用のソフトウェア開発フレームワーク「Harmony」のインストールを行います。

その「Harmony」とは何ぞや?というところからも説明したいと思います。


<続く>

2023年7月28日金曜日

TOPPERS/ASP - ML62Q1000版 目次

知る人ぞ知る、地元民しか知らないお店の絶品ラーメンみたいなマイコンML62Q1000シリーズ。

そこで動作するTOPPERS/ASPに関する記事の目次です。


■TOPPERS/ASP - ML62Q1000版 その1

TOPPERS/ASP - ML62Q1000版 概要

必要なもの

ダウンロード/GitHub


■TOPPERS/ASP - ML62Q1000版 その2

開発環境の構築


■TOPPERS/ASP - ML62Q1000版 その3

サンプルドライバのソースコードのコピー

スタートアップファイル「start.asm」のコピーと修正

コマンドラインでのビルド


■TOPPERS/ASP - ML62Q1000版 その4

プロジェクトの作成

プロジェクトのクリーンとビルド


■TOPPERS/ASP - ML62Q1000版 その5

デバッガとターゲットの配線

プログラムの転送とデバッグ


■TOPPERS/ASP - ML62Q1000版 その6

サンプルプロジェクトの説明

ML62Q1000版カーネルについて

ライセンスについて


なお、Qiitaにも上記の記事を1ページにまとめたダイジェスト版を投稿しました。

こっちの方が読み易いです。

仕事でもネットで調べ物をしていると、このQiitaには有用な投稿が多いです。

いつも助けれられています。

投稿者の皆様に感謝です。

私の投稿も、よろしければ参考にしてください。

Qiita

TOPPERS/ASP - ML62Q1000版 - Qiita

2023年7月25日火曜日

TOPPERS/ASP - PIC32MX版 その3

前回からの続きです。

このテーマを最初からご覧になる場合はこちらからどうぞ。


開発環境の構築(XC32コンパイラ編)

お次はPIC32MX用のコンパイラのインストールを行いましょう。

XC32」っていうGCCベースのコンパイラです。

以下のページでダウンロードします。


https://www.microchip.com/en-us/tools-resources/develop/mplab-xc-compilers

このページのほんのちょっと下へ行ってもらって…。

XC32コンパイラ・ダウンロードページ - 1


3つ並んでいる内の一番右「Download an XC32 Compiler」というバナーをクリックして下さい。

XC32コンパイラ・ダウンロードページ - 2


以下のようなページに飛ばされますので、ここでは「MPLAB VC32 C-Compiler(Winodws)」をクリックです。

ダウンロードが始まります。

XC32コンパイラ・ダウンロードページ - 3


ダウンロードが完了すると「xc32-vx.xx-full-install-windows-x64-installer.exe」というファイルが生成されますので、これをダブルクリック!

以下のようにインストーラが起動します。

ここでは「Next>」ボタンをクリックです。

XC32コンパイラ・インストーラ - 1


お次はお約束のライセンス承諾。

I accept the agreement」のラジオボタン、「Next>」ボタンを順にクリックしましょう。

XC32コンパイラ・インストーラ - 2


しばらくは「Next>」ボタンを連打です。

XC32コンパイラ・インストーラ - 3


XC32コンパイラ・インストーラ - 4


XC32コンパイラ・インストーラ - 5


XC32コンパイラ・インストーラ - 6


ようやくインストール作業が開始されたようです。

これがまた終わるまでにどえりゃ~時間がかかります。

コーヒー片手に、しばらくネットサーフィンでもしていてください。

XC32コンパイラ・インストーラ - 7


インストールが終わると以下のような表示が…。

以下のように「Your Host ID is:」という記述の後にパスワードらしきものが表示されています。

「XC32」を最大限の最適化で使用する際にはアクティベーションが必要であり、その登録のために必要なIDなのだそうです。

趣味レベルではなく、仕事などで本格的にPIC32を使いたいよ~という方は、メモしておいた方が良いでしょう。

アクティベーションしなくても、普通の用途ならコンパイラは問題なく使えます。

一応メモしたら「Next>」ボタンをクリックして先に進みましょう。

XC32コンパイラ・インストーラ - 8


コンパイラのインストールはこれで完了です。

Finish」ボタンをクリックしてインストーラを終了させましょう。

XC32コンパイラ・インストーラ - 9


今回はここまでにしましょう。

次回はEclipseの導入を行いましょう。


<続く>

2023年7月21日金曜日

DIYレトロゲーム機「Nibble」がやってきた! その1

今年の初めくらいにクラウドファンディングサイト「Makuake」でオーダーした、DIYレトロゲーム機「Nibble(ニブル)」が届きました!

この「Nibble」とは?

詳細は公式サイトを参照ください。

Nibble


どことなく往年のPSPに似ているゲーム機のキット(半完成品)です。

最初から三つくらいのゲームが入っているみたいですが、自分でプログラミングして開発することもできます。

この「Nibble」の私の購入動機は、当然、最初から入っているゲームではなくてプログラミングをして遊ぶことです。

その際の開発環境/言語は、

初心者向けの「CircuitBlocks」(ブロックを組み合わせるビジュアル言語)、

中級者向けの「Arduino」(実質C言語)、

上級者向けの「C++」

などが、それぞれ利用できるようです。

いきなり「C++」に挑戦しても大丈夫でしょうかね?

この「Nibble」執筆時点では、まだコチラで購入できるみたいですよ~。


メーカーのCircuitMess社は、クロアチア共和国の会社です。

なので、外箱はどことなく色使いがヨーロピアンテイスト。

外箱 - 1


外箱の裏には簡単な商品解説が。

外箱 - 2


何はともあれ御開帳!

開封 - 1


なにやら、紙が入っています。

ドキュメント類は、サイトからダウンロードしてください、という旨が書いてあります。

続きはWebでっ!」ってやつです。

内容物は、以下のような感じです。

開封 - 2


目を引くのがプラスチック(アクリルかも?)筐体。

白い色をしていますが、これは保護シートが貼られているみたいです。

それを剥がすと無色透明のようです。

ホント…小さいPSP。

プラスチック(アクリルかも?)筐体


部品類は、こんな感じ。

ドライバーや半田なども同梱されています。

(半田は「鉛フリー」のようです。これは使い難いので破棄するでしょう…。)

液晶は128x128ドットのフルカラーとのこと。

往年の名機MSXが256x192ですから、それより相当荒いのですが、発色数だけは圧倒的ですか。

ほか、プッシュスイッチやボタンなど、半田付けが必要な部品は最小限です。

私のようなブキッチョ(って、きょうび聞かねぇなぁ~)にとってはありがたいです。

部品類


肝心のメイン基板がこちら。

結構、シッカリした基板で好感が持てます。

コッチは裏側かな?

メイン基板(裏)


メイン基板をひっくり返してみましょう。

CPUのお出まし!

面実装の細かい部品は、すでに実装済みです。

メイン基板(表)


さて、ここで奇妙なことに気付きます。

このCPU、パターンアンテナが出てますね。

これは、何らかの無線通信機能を持っていることを意味します。

なんだろう?

そんな仕様、上記のサイトに書いていなかったのに?

では、このCPUの正体とは、一体!?

CPU


あ~、これは以前このブログでMSX関連の記事でも取り上げた、中国のEspressif Systems社の「ESP32」マイコンの廉価版「ESP-12F」ですね。

アメリカのTensilica社がライセンスする「Xtensa LX106」CPUコアを採用し(今どき珍しくARMじゃない!)、80MHzのクロックで動作します。

そしてこのマイコン、確かにWiFi機能を内蔵しています。

しかし、それならばこの「Nibble」の強力な売り文句として、もっとアピールすれば良いのに?

この「Nibble」に対して、メーカーのCircuitMess社がどのようなゲーム開発用ライブラリを提供しているのか?…まだ分かりませんが、そこは対応していないということでしょうか?

果たして、どのような開発環境を提供しているのか?

そして仮に、その開発環境が対応していないのであれば、閉ざされしWiFiの封印を解くことができるのか!?

気になるので、早速見てみたいです!!

とはいえ、まずは組み立てを成功させねばなりませんね…。


次回は、組み立ての過程とゲーム機の起動までレポートしたいと思います。

…無事に組み立てられたらねw!


<続く>

MLAA License

 名称:「MLAAライセンス」(MLAA) タイプ: ・コピーレフト…× ・ライセンス文の掲示…〇(ソースコード頒布のみ) ・コピーライト(著作権)…〇(ソースコード頒布のみ) ・その他…〇(バイナリ頒布のみ) 原文: Copyright: 2010 Jorge Jimenez ...