2022年9月28日水曜日

TOPPERS/ASP - Arduino Mega2560版 その3

前回からの続きです。

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


開発環境の構築(Eclipse編)

さて、デバッガを使うための「Microchip Studio」のインストールに続き、コーディングとビルドを行うための「Eclipse」をインストールします。

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

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


C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin


普通にGCCを含むGNUツールチェーンですね。


ディレクトリの名前で「Atmel」って何?と思われた方もいらっしゃるでしょう。

Atmel社は、かつてはAVRマイコンを始めとする半導体メーカーでした。

ホビー用途に使える手軽なマイコンとして、AVRマイコンは、PICマイコンと人気を二分するライバルでした。

だからかどうかは知りませんが、PICマイコンのメーカーであるMicrochip社が、あろうことかAtmel社を買収しちゃったんですね。

というわけで、ちょっと前まで「Microchip Studio」は「Atmel Studio」という名前であり、このディレクトリの名前はその名残りでしょう。

さて、話を戻して…。

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

ただし、パスは…


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


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


C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin


に置き換えてください。

こんな感じ…。


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


> avr-gcc --version


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

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


「Cygwin」がインストールできたら、ここまでの作業が上手くいっているかどうか確認しておきましょう。

次のページ(TOPPERS/ASPのビルドからデバッグまで~サンプルプロジェクトのビルド)を参照してください。

ただし、今回使用するソースコードはこのページの冒頭の「NUCLEO-F401RE STM32 Nucleo-64」開発ボード用のTOPPERS/ASPカーネル簡易パッケージではなく、「Arudino MEGA2560」用のものを使います。

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

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


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


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

また、今回は「OBJ」ディレクトリを作成する必要はありません。

これは既に用意されていますので、そのまま「OBJ」ディレクトリに移動し「make~」コマンドを実行してください。


コマンドライン環境で正しくビルドができることを確認したら、いよいよ「Eclipse」のインストールを行います。

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


さて、以上でEclipseのセットアップは終了です。

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

次回は、それぞれのIDEでプロジェクトの作成を行います。


<続く>

2022年9月25日日曜日

TOPPERS/ASP - Arduino Mega2560版 その2

前回からの続きです。


開発環境の構築(Microchip Studio編)

Arduino Mega2560版のTOPPERS/ASPを使って開発を行っていく上では、以下の方針を採ります。


1.コーディングとビルドは「Eclipse」を使う。

2.デバッガを使う場合のみ「Microchip Studio」を使う。


…面倒くさいですね。

何で2つのIDEを使い分けなきゃならんのか?

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


1.「Microchip Studio」はMicrosoftの「Visual Studio」をベースにしているため動作が重くて使いにくい。

2.TOPPERS/ASPはビルドに独自のMakefileを使うため「Microchip Studio」のGUIによるソースコード管理の利点が少ない。


もちろん、これは個人的な好みです。

パソコンのスペックの問題はさておき、「Microchip Studio」だけで全てを賄う方法もあるに違いありません。

(私は上手くいかなかったのですが。)

しかしながら、ここでは上記の方針に則り説明していきます。


では、まずは以下のページで「Microchip Studio」のダウンロードをしましょう。


https://www.microchip.com/en-us/tools-resources/develop/microchip-studio


Offline Installer」と「Web Installer」という2つの種類のインストーラーがあるかもしれません。

ここでは「Offline Installer」を例とします。

ダウンロードが完了すると「as-installer-x.x.xxxx-full.exe」のようなファイルが落とせます。

これをダブルクリックしてみましょう。

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

ここでは「I agree to the license terms and conditions.」のチェックボックスをクリックして、「Next」ボタンをクリックして先に進みましょう。


次は、開発ターゲットのアーキテクチャを選択します。

今回のArduino Mega2560は「AVR」というアーキテクチャですので、ディスク容量に余裕がない方は最悪「AVR」だけチェックすれば良いでしょう。

「Next」ボタンをクリックして先に進みましょう。


サンプルプログラムをインストールするかどうかを選択します。

こちらもディスク容量に余裕がない方はチェックしなくて良いです。

「Next」ボタンをクリックして先に進みましょう。


以下、特に何もせずに「Next」ボタンをクリックして先に進みましょう。



ようやくインストールが開始されました。


…と思って安心したのも束の間、「MPLAB XC8」というソフトウェアのセットアップが始まります。

この「XC8」というのは「PIC」というMicrochip社の看板マイコンのためのコンパイラなのですが、前の画面で特に選択してませんよね?

なんででしょう?

まあ、害にはならないと思いますのでインストールしてあげましょう。

「Next」ボタンをクリックして先に進みましょう。


お約束のライセンス画面です。

I accept the agreement」のラジオボタンを選択して、「Next」ボタンをクリックして先に進みましょう。


以下、特に何もせずにひたすら「Next」ボタンをクリックして先に進みましょう。





ようやく「XC8」のインストールが開始されました。


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

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

今回のAVRだけではなく、将来的にPICも使いたいよ~という方は、メモしておいた方が良いでしょう。

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


「XC8」のインストールはこれで終了のようです。

「Finish」ボタンをクリックして先に進みましょう。


「Microchip Studio」のインストーラー画面に戻ってしばらくすると、お待ちかね(?)の「Visual Studio」のインストールが始まります。

このフェーズは今までのように色々聞いてこないので楽ちんです。

…なまら時間が掛かりますが。

「Visual Studio」のインストールが終了すると、自動的に消えて再び「Microchip Studio」のインストーラー画面に戻ります。


この後のインストールの過程で、以下の画面が表示されることがあります(3回位)。

これは、各種デバッガのデバイスドライバのインストールの許可を求めています。

その中には、今回使用する「Atmel-ICE」のデバイスドライバもあるはずです。

「インストール」ボタンをクリックしましょう。


かなりの時間が掛かりますが、以下の画面が表示されると全てのインストール作業は終了となります。

「Close」ボタンをクリックします。


「Microchip Studio」が起動するはずです。

以下のような画面が見られれば「Microchip Studio」のインストールは成功です。

お疲れ様でした!


次回以降も開発環境の構築を行います!


<続く>

2022年9月18日日曜日

TOPPERS/ASP - Arduino Mega2560版 その1

TOPPERS/ASP - Arduino Mega2560版 概要

皆様おなじみの「Arduino」。


「Arduino IDE」という優れた開発環境を使って、手軽に組み込みソフトを作って動かせる安くて便利なボードとして、愛用されている方も多いのではないでしょうか。

私も長年、仕事で原理試作品をパパッと開発するために愛用しています。

でも、モノによってはどうしてもマルチタスクを使いたい案件もあり、Arduinoの本来の使い方では解決できないケースもあります。

そこで、「Arduino Mega 2560」に「μITRON4.0」準拠のRTOS(リアルタイムOS)であるTOPPERS/ASPを移植してみました。

普通Arduinoといえば、「Arduino UNO」という代表機種を指しますが、今回使うのはその上位版の「Arduino Mega 2560」です。

「Arduino UNO」に搭載されているCPUは、ATmega328P(ROM:32KB/RAM:2KB)というもの。

ROMはともかく、さすがにこのRAM容量ではOSが載りません。

一方の「Arduino Mega 2560」に搭載されているCPUは、ATmega2560(ROM:256KB/RAM:8KB)ですので、十分とは言えないまでも何とかなるかな~?と思いました。

さて、このATmega2560、なんと8ビットCPUです。

今どき8ビットってあ~た…。

しかしながら、レジスタの数が多くてアセンブラのニーモニックもRISCらしくキレイで、そのせいもあってか8ビットCPUとしては例外的にGCCコンパイラが提供されています。

クロックも16MHzで動作しますので、ちょっとしたIoT機器なら十分に開発できそうです。


必要なもの

まずは、今回のターゲットとなる「Arduino Mega 2560」です。

7,000円以上したら高いと思ってください。


次に、デバッガです。

Atmel-ICE」っていいます。

秋月電子さんで16,800円ですね。

高い!…と思われるかもしれませんが、これ一台あるとAtmel系は今回のAVRやSAM(ARM)シリーズのデバッグも出来ちゃうので、今回の「Arduino Mega 2560」に限らずArduinoシリーズを普段良くお使いの方は買っておいて損はないですよ。

まあ、安くはないわな…。


ダウンロード/GitHub

ソースコードの入手は、こちらからどうぞ。

なるべく定期的にメンテナンスするようにしていますので、動きがおかしいな?という場合は最新版に更新をお願いします。

それでもダメな場合はコメントください。


では、次回以降、開発環境の構築やビルド方法、使い方を書いていきます!


<続く>

2022年9月4日日曜日

MSX DEVCON 1 Tokyo その2

 「MSX DEVCON 1 Tokyo」へ行ってきました。

結論から言えば、守秘義務があるためここで当日の内容を発信することはできません。

ごめんなさい。


今回のDEVCONの内容は、確かに一般ユーザー向けの内容ではなかったのですが、元々ゲームマシンとしてのMSXではなく、他の分野への展開を期待していた私のような人間にとっては大いに腹落ちさせられました。

故に「DEVCON」だったのでしょうが。

もちろん、ゆくゆくは一般ユーザー向けの発表会やイベントの計画もあるそうですので大いに期待しましょう。


それにしても、勉強しなきゃいけないことが増えました。

おちおち仕事なんか、やってられないな。


DEVCONの会場は東京大学。これが大学の門かよ…。


こっちが正門。私みたいなバカがくぐると突然死するとかないよな?

と半ば本気でビビっていた。


安田講堂。かつてここを象徴とした一連の紛争は、

日本が一歩先へ進むための通過儀礼だったのだろう。


お土産をいただきました。西氏の著作でサイン入り。

こっちは神棚に置いて、Kindle版を買って読んでます。

2022年8月27日土曜日

MSX DEVCON 1 Tokyo その1

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

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

MSX FS-A1WX


この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!


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


ゴゴゴゴゴゴ…!

完全に一致!!

Advanced Test Reactor


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

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

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

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

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

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

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


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


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


いい感じ!


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

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


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

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

2022年8月21日日曜日

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

続きを書きました。

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


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

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

あくまでご参考程度に。


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

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

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


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

MLAA License

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