2022年8月27日土曜日

MSX DEVCON 1 Tokyo その1

MSXというパソコンをご存知ですか?

詳しくはリンクのWikipediaを見ていただくとして、要は今から40年近く前、1983年に発表されたレトロPCのことです。


このMSXが、遂に現代の世の中に復活するというのです!

(MSXの立役者、西 和彦氏のツイートより。)


MSXの最終モデルが1991年に発売されてから30年あまりの沈黙を破り、再びどのような姿を表すのか?

西さん、オッサンになった僕らと今度は何をして遊んでくれるのか?

大変気になっていましたが、「MSX DEVCON 1 Tokyo」という発表会が開催される模様。

(同じく、西 和彦氏のツイートより。)


コロナで7月が9月に延期になったみたいですが、早速、参加を申し込みましたので行ってきます。

なにか遊べるものが発表されたら、実際動かしてみて今後ここで紹介できたらいいなぁ。

秘密保持契約がありますので、色々な情報を含めて、すぐには無理でしょうけどね。


幼少の頃、MSXには大変お世話になりました。

初めてBASICというプログラミング言語に本格的に触れたのが、MSXだったと思います。

MSXが無かったら、プログラマーやってなかったかも。

おかげで、日々納期に追われる生活が


…まあ、そう考えると、幸か不幸か…。

2022年8月22日月曜日

植木鉢の水やりセンサー

室内でモヒート用のミントを育てています。


鉢植えで一番面倒くさいのは、毎日の水やり。

特にミントは乾燥に弱いので、うっかり水をやり忘れると一大事。

そこで、これを組み込み技術を使って自動化できないか?と考えました。

使うセンサーは、こんなの。


電極を土にぶっ刺して抵抗値で湿度を測定するタイプのものです。

Amazonさんで\1,000もせずに買えてしまいます。

しかし、このセンサーに問題が発覚。

土に挿しっぱなしにしておいて、1ヶ月もしないうちにサビサビ…


こうなると、まともに測定できなくなってしまいます。

それなら、錆びにくいステンレス棒を使って新しく作ってしまおう!

DIY精神!!

…というわけ、こんな感じに。


ステンレス棒は、模型用の12cmほどのものをAmazonさんで購入。

漏電が怖いので防水コネクターも。

ハンダ付けは下手くそです。

(プログラマーだからいいんです!)


ちゃっかりLEDも仕込んでおきました。

ただのセンサーを作るのでは面白くないので、ここで悪巧みを。

レジン液、レジン用着色料、レジン用LED、シリコンのモールド(型)をこれまたAmazonさんから購入。


紙コップで必要なレジン液と着色料をよく混ぜ合わせます。

…めちゃくちゃイヤなニオイがします。

しかもレジン液というのは、手に付くといつまでもベタベタします。


さて、着色されたレジン液をシリコンのモールドに流し込み、新たに作成したセンサーと一緒にレジン用LEDにセット。

スイッチON!


これは…チェレンコフ!?


ゴゴゴゴゴゴ…!

完全に一致!!


…ヤバい見た目ですが、このままで完全硬化するのを待ちます。

この硬化時間が重要で、時間が短いと悪臭を放ち、表面がベタベタの物体が出来上がります。

(腐ってやがる…早すぎたんだ。)

触りたい気持ちを抑えて、我慢して待ちましょう!

実は、一度3時間ほどでモールドから取り出してしまい、失敗しました…。

再挑戦時は、念のため24時間以上このまま放置しました。

そして出来上がったのがコチラ。


今回は、完全に硬化しているようです。


さて、鉢植えにぶっ刺して仕込んだLEDをON!


いい感じ!


なんかRPGのラスボス前のセーブポイントみたいになりました…。

あとは、このセンサーの抵抗値をマイコンやPLCでアナログ入力として取り込んで、ポンプをリレーか何かで駆動させてやれば完成。


さて、今回はレジンという素材を初めて経験したわけですが…臭いしベタベタだし面倒くさい!

もう当分やりたくないかなぁ。

2022年8月21日日曜日

TOPPERS/ASPのビルドからデバッグまで その7

続きを書きました。

サンプルプロジェクトのデバッグ編です。


TOPPERS/ASPの開発環境の記事は、これでおしまい。

プログラマーの数だけ開発環境がありますから、これが正解とか正統とかはないと思います。

あくまでご参考程度に。


でも、開発の環境は、プログラマーであれば大いにこだわるべきところだと思います。

作業効率に大きく影響しちゃいますからね~。

究極の効率化を目指して、開発環境を改善し続けるのは良いことだと思います。


私はモノグサなので、一度上手く行った方法を延々と使い続けるタイプですが…。

2022年8月16日火曜日

TOPPERS/ASPのビルドからデバッグまで その6

続きを書きました。

Eclipseの導入編です。

Eclipse


これらのドキュメントの中で、必要なソフトウェアに関しては、このブログから直接ダウンロードできるようにしています。

その中には、かなり古いバージョンが含まれます。

それは、以下の二つの理由からです。


1つ目は、一般にソフトウェアに関しては、最新のものイコール最良のものとは限らないからです。

特にオープンソースのソフトウェアに関しては、日々進化を続け、バージョンの更新を重ねています。

しかし、改良を突き詰めていくにつれて、様々な不具合も内包していきます。

それらの不具合も、やがては世界中の開発者たちが修正してくれる(ありがたや~)わけですが、どうしてもタイムラグが発生します。

したがって、一世代古いバージョンの方が安定して動作するという現象が、ママあります。

(こういうのソフトウェアが「良い具合に枯れている」とか言うんですけどね。)

パソコンのOSでもトラブルを恐れて「Windows」の最新版になかなかアップデートしない人がいるでしょう?

組み込みソフトウェアの場合は、新しい機能よりも安定性が重視されますので、このような考え方が顕著です。


2つ目は、確実に動作するものを選んでいるからです。

せっかく、こんなチンケなブログを訪れてくれて、それを試そうと思ってくれた人に、余計なご苦労を掛けたくありません。

最新版特有のつまらないトラブルで、ヤル気が折れてしまうのは申し訳ないし、何より勿体ないです。

なので、今まで自身で長く使ってきて、確実に動作することを確認したバージョンを紹介しています。

そうなると、必然的に古いバージョンになってしまうのです。

最新版を試すのは、ある程度慣れてからでも遅くないと思います。


これらの理由から、それが許可されているライセンスのソフトウェアに限り、再配布を行っています。


しかし、例外もあります。

それは、セキュリティに関する不具合です。

これに関しては、また別の機会に。

2022年8月14日日曜日

TOPPERS/ASPのビルドからデバッグまで その5

続きを書きました。

OpenOCDの導入編です。


で、この「OpenOCD」とはなんぞや?ということですが、一言で言えばオンチップ・エミュレータのオープンな実装です。

GNUデバッガ(GDB)と組み合わせて使用されます。

これらのソフトウェアと、あとは簡単なハードウェアがあれば、それがたとえ開発しているパソコンの外に繋がっている別のターゲットで動いているソフトウェアであっても、ブレークポイントを仕掛けたり、そのときの変数の値を参照したりすることができます。

まるで、VisualStudioでパソコンのアプリケーションを開発するときみたいに。


パソコン上で、同じパソコンで動くソフトウェアを開発することを「セルフ開発」とか言います。

このセルフ開発の場合は、比較的早い時期からデバッグ環境は整っていましたし、別途ハードウェアも必要ないことから、無償か安価で広く使われてきました。

一方、パソコン上で、別のターゲットで動くソフトウェアを開発することを「クロス開発」と呼びますが、この場合には、デバッグのために大掛かりなハードウェアと専用のソフトウェアが必要となり、お値段もそれなりに掛かりました。

かつては多くのメーカーが使用するCPUごとに様々な製品を発売し、市場を賑わせていたものです。

その状況を一変させてしまった要因の一つが、この「OpenOCD」です。

これと簡単で安価なハードウェアを組み合わせることにより、市販のオンチップ・エミュレータと同等のデバッグ環境を構築することが可能となったのです。

安価なハードウェアとは、例えば、私も愛用しているブルガリアの企業Olimexのデバッガです。

8000円以下で買えちゃいます。

これと組み合わせて使うソフトウェアが「OpenOCD」です。

Olimexのデバッガ


そんな便利なソフトウェアである「OpenOCD」はタダで使えます。


それをやられちゃあ、オンチップ・エミュレータを作っていたメーカーはタマッたモンじゃない!


…というわけで、近年これらのメーカーは物凄い勢いで撤退していきました。

今残っているのは、コンピューテックスさんや、京都マイクロコンピュータさんくらいじゃないかな?

ただし、これら有償のオンチップ・エミュレータは近年著しく高性能化しています。

生き残りのために「OpenOCD」にはできない機能をバンバン入れて、付加価値を高めています。

両方のメーカーの製品を使ったことがありますが、お値段に見合う信頼性と機能性は十分持ち合わせています。

ただ、個人が趣味で使うには高価過ぎるというだけです。


そんな偉大な「OpenOCD」なんですが、Cygwinにはパッケージが存在しないので、ソースコードからビルドしなければなりません。

面倒くさいですがお付き合いを。


それにしても、オープンソースが既存の市場を壊滅させてしまう世の中とは。

くわばらくわばら。

TOPPERS/ASPのビルドからデバッグまで その4

続きを書きました。

サンプルプロジェクトのビルド編です。


コマンドラインインタフェース、いわゆるCUIに苦手意識を持つ人が結構います。

若い世代なんかは、物心付いたときからパソコンって言えばグラフィカルインターフェース、つまりGUIが当たり前の時代でしょう。

だから戸惑うのは仕方ないし、ぶっちゃけGUIの方が便利ですしね。

ただし、プログラマーをやっていれば、令和の今でもCUIに触れる機会は結構あると思います。

だから、苦手なままっていうのは厄介です。


私なんかがパソコンに触りだした子供時代は、電源入れたら「How many files(0-15)?」とだけCUIで表示されて、それが当たり前だったので幸い苦手意識はなかったです。


PC-9801 ROM BASIC起動画面


なので、Windowsを初めて見たときの衝撃は大きかったです。

ダイアログに文字の貼ってあるボタンがたくさん並んでて、それをマウスカーソルでクリックという今では当たり前の操作感。


…「コックリさん」を思い出しました。

TOPPERS/ASPのビルドからデバッグまで その3

続きを書きました。

Cygwinの導入編です。

Cygwin


CygwinMinGW、どちらが優れているか?という論争がありますが、優劣なんてありません。

用途が違うので、場合によって使い分けるのが正しいかと思われます。

MinGW


ソフト屋って派閥に分かれて論争するのが好きですよね。

テキストエディターだったら、Vi派とEmacs派。

OSの設計だったら、モノリシック派とマイクロ派。

楽しいんですよね。

2022年8月12日金曜日

ML62Q1000マイコン スタータキット

仕事でSigfox(LPWAの一種)を使用するという話になって、マイコンと無線が一体型になっているSoCがないかな~と探していたところ、ラピステクノロジーさんが今度そういう石を出すという噂をキャッチ。

(「ML7456N」っていう型番らしい。)


ところがこのSoC、マイコン部分が今流行りのARMではなく、独自コア「U16」を採用しているとのこと。


言ってはなんだけど、マイナーなコアなので(ていうか、ARM以外は全てマイナーと呼ばれる寒い時代)市場にリアルタイムOSの類は見当たらない。

ならば、TOPPERS/ASPカーネルをブチ込んじまおう!と、購入したのがこのキット。

ここから購入。自腹!


ML62Q1000マイコン スタータキット
(マイコンの型番は「ML62Q1577」)


このキットに搭載されている「ML62Q1577」が、お目当てのSoCに積まれているのと同じ「U16」コアを採用した製品。

つまり、これの上でTOPPERS/ASPカーネルを動かしてしまえば、もう準備万端。

件のSoCのリリースを待つばかり。

なので、チャチャっと(…ではないな。結構苦戦した。)カーネルを移植。

ところがだ…。

代理店さんを経由して尋ねたところ、件のSoCについては、ラピステクノロジーさんは月数万のロットでなければ相手にしてくれないとのこと。

ウチみたいな零細メーカーじゃ絶対無理だね。

残念~。


加えて、Sigfox自体、製品への採用を頓挫したので、せっかく作った「U16」用のTOPPERS/ASPカーネルもどのみちお蔵入り確定。


勿体ないから、現在ここで公開できるようにデバッグ中。

(いまのところ安定して動いているみたい。)

TOPPERS/ASPのビルドからデバッグまで その2

続きを書きました。

GNUツールチェーンの導入編です。


最近は「GCC」よりも「LLVM/Clang」の方がエモいらしいです。

更に先行く人は、そもそも「Rust」でカーネルを書き換える例も。


いずれ「Rust」はやんなきゃならんかも?

2022年8月11日木曜日

TOPPERS/ASPのビルドからデバッグまで その1

これからこのブログでTOPPERS系のカーネルを公開するとしても、使い方が分からないとどうしようもない!


…ということで、簡単な解説を。

まずは概要編


新入社員の教材にもなる…とかカッコいい理由じゃなくて、自分のための備忘録という意味合いが強いかも。

ごあいさつ

窓際プログラマーの技術系ブログ、開設しました。

経緯はこちらから。

最寄り駅から


よろしくお願いします。

TOPPERS/ASP - Arduino UNO R4版 その7

前回からの続き です。 このテーマを最初からご覧になる場合は こちら からどうぞ。 プログラムの転送とデバッグ ターゲットの「Arduino UNO R4」とデバッガの「E2 emulator Lite」を 前々回 作成したケーブルで接続します。 こんな感じ。 これからTOPPE...