2020年08月04日

DaisyDuino

GitHubに新たな項目が新設されているのを発見した。

Screen Shot 2020-08-04 at 4.36.10.png

https://github.com/electro-smith/DaisyDuino

Arduino IDEでスケッチを試してみたが、コンパイルは問題なく通るようだ。

DaisyPOD関連のライブラリを改装して、

Screen Shot 2020-07-20 at 10.17.04.png

Screen Shot 2020-07-20 at 10.16.48.png

Screen Shot 2020-07-20 at 10.15.07.png

Screen Shot 2020-07-20 at 8.37.44.png

ロータリーエンコーダを複数個展開できないか試す予定。

posted by Yasuski at 04:40| DaisySeed

2020年07月13日

その後のDaisy

Daisyのコンパイル・エラーの原因を探っていると、「参照するファイルが不在」とのアラートが出ていて、今一度ライブラリ内のファイルを点検したところ、必要なファイル群が存在していないことが判明した。

LibralyのZipFileを自動登録するコマンドでは、「空のフォルダ」がインストールされるようだ。

件のフォルダには、Git内のリンクを辿って別のファイル群を追加する必要があったのが、

Screen Shot 2020-07-13 at 6.34.54.png

そのような指示はWiki内には見当たらず、、、

Screen Shot 2020-07-13 at 6.51.18.png

本来参照されるべきファイルの不在によって、エラーが返っていた、、、という間抜けな結末だった。

ファイルの補充後は、

Screen Shot 2020-07-13 at 6.36.02.png

無事にコンパイルを完了しているが、

Screen Shot 2020-07-13 at 6.45.06.png

書き込み後は、相変わらず「起動不能」のアラートが出ている。 

稼働状態を確かめるため、テンプレートのフリースペースに設定されていたLoop内にBlinkを書き込んでみたところ、これが正常に作動していることから、プログラム自体は「ほぼ正常に」起動しているようだ。

ちなみに、先日発覚したBlinkのExampleで発生するエラーは、今回のファイルを追加したことによって解消した模様。

なんにせよ、音を出して確認するためには、取り急ぎ実験用のプラットフォームをでっち上げる必要がある。

追記:

IMEの切り替えがトリガーとなって、Arduino IDE 1.8.13 がいきなり落ちる現象が発覚している。

追記2:

Arduino関連のファイル取得は、個別に行わず一括でダウンロードすれば解決する模様。

Download the Daisy Arduino libraries here. Once downloaded, unzip the file.
posted by Yasuski at 07:59| DaisySeed

2020年07月07日

Daisy@Arduinoの開発環境について

DaisySeedのオンボードLEDが点灯しないのは、Pinの設定がライブラリで行われていなかったことが原因と判明。

Screen Shot 2020-07-07 at 17.48.13.png

EEPROMの消去も同様に動作不能で、こちらもアドレス設定のミスマッチが疑わしい。

Screen Shot 2020-07-06 at 8.18.00.png

ポート設定を、pinMode(ledPin, OUTPUT); とすることで、オンボードLEDを認識させることが出来たが、Arduinoの開発環境ではExsampleCodeを始めとして、この手の初歩的な設定がきちんと行われていない可能性が高い。 

Screen Shot 2020-07-06 at 8.16.06.png

これはあくまでも個人的な見解ではあるが、このボードはオンライン上でプログラミングを行うことを前提にしているフシがあって、Arduino環境下の開発は今後もお留守である可能性が高そうだ。

mbedが性に合わなかった原因は、このオンライン上でプログラミングを行うスタイルにあったのだが、Arduinoもゆくゆくはオンライン化の方向を模索しているようだ。Teensyはその点で地に足がついている思想なのが良い。 

Daisyがオンラインに拘る理由は、OS依存によって発生するであろう問題の解消とUserの情報を吸い上げたいという意思によるものと想像しているが、IDEのオンライン化はブラウザ依存という更に間抜けな局面をクリアすることが出来ない。

要は開発者側の「やる気の問題」に見えてきたのだが、Arudinoのライブラリがまともなものに書き直されるまでは使い物にならない。 このまま開発環境の整備に進展がなければTeensy陣営の覇権は安泰だろう。 

DaisySeedはハードウエアの素材が良さそうなだけに大変に勿体無く思うのだが、ソフトウエアの運用は思想ベースに依るものなので、あまり期待はできそうにない。

posted by Yasuski at 17:54| DaisySeed

2020年07月06日

ArduinoIDEでDaisySeedのプログラミングを行う

ArduinoからDaisySeedにデータをアップロードするには、まずSTのProgrammerをインストールしなければならない。 

Screen Shot 2020-07-06 at 2.49.24.png

STのサイトからDLしたファイルを解凍し、右クリックでパッケージを開いて

Screen Shot 2020-07-06 at 2.49.32.png

Screen Shot 2020-07-06 at 2.08.41.png

Terminalでコマンドを叩き、

Screen Shot 2020-07-06 at 2.08.55.png

インストーラを起動する。

Screen Shot 2020-07-06 at 2.08.08.png

プログラマーのインストールを完了した後に、手順通りボードに delay(); を使ったLチカのスケッチをアップロードしたところ、アップロード自体は出来るものの、再起動後のボード上でプログラムエラーが発生、LEDは発光せず沈黙したままだった。

次に delay(); を使用せずに milles(); で点滅を制御するスケッチをアップロードしたところ、これもボード側でエラーが発生して正常な動作が行われない。 もしかすると、コンパイルの設定が問題と考えて、設定を SmallestCode から Fastest に変えて再コンパイルを行ったところ、IDEでボード側のエラーが検知されるものの、とりあえずLチカは達成出来た。

Screen Shot 2020-07-06 at 2.28.03.png

いまのところ不具合の原因を確定できないが、delay(); の実装が行われていない雰囲気もあって、挙動はかなり怪しい。
posted by Yasuski at 02:47| DaisySeed

2020年07月03日

CubeMXの導入について

なかなか導入ができなかったCubeMXがやっとインストールできたので、備忘録を残す。

このソフトウエアはJavaが必須なので、事前にこれをインストールしなければならない。
既にインストール済の場合はSystemPreferencesに項目が存在するので、それをクリックしてまずはアップデートを行う。

Screen Shot 2020-07-03 at 14.17.28.png

が、Javaを最新版に更新した後に、インストーラをクリックしても全く受け付けられない場合が報告されていて自分も同じ状況にハマってしまった。 仕方がないのでForumのスレッドを検索して調べると、Terminalを使った対処法が紹介されていたのだが、これも上手く行かない。

Screen Shot 2020-07-03 at 14.17.17.png

で、賢い人が、そもそもJDKをインストールしなきゃダメなんじゃないの?と書いていて、、、

Screen Shot 2020-07-03 at 14.10.09.png

早速これをインストールしたのだが、アイコンをクリックしても無反応な状況は変わらない。

Screen Shot 2020-07-03 at 14.10.31.png

もしやと思って、コンテンツを開示してフォルダ内のリンクをクリックしたところ、アプリケーションが認識されてインストールが始まった。

Screen Shot 2020-07-03 at 14.14.15.png

IDEを起動してまず行うことは、使用するチップの選択で、プロジェクトを生成するとチップのフットプリントが現れる。

Screen Shot 2020-07-03 at 0.26.27.png

チップをドライヴするクロックの設定は別のタブを開いて行う。

Screen Shot 2020-07-03 at 0.26.33.png

列挙された機能を選択して、ピンの割振りと昨日の設定を行うのだが、これが上手くいかない。

Screen Shot 2020-07-03 at 5.32.48.png

何故かピンのコンフリクトが発生するのだが、これはハードウエアの制限なのだろう。あと、GPIOのコンフィギュレーションが行えず、どうやってもpinを入力端子に設定することが出来ない。

Screen Shot 2020-07-03 at 5.54.09.png

作業がスタック気味になってきたので、以前導入にトライしたものの、CubeMXと同様の不具合が発生したためにインストールを諦めていたMCUExpressの起動を行ったところ、こちらもすんなりと稼働状態に持ち込むことが出来た。

Screen Shot 2020-07-03 at 6.35.31.png

このアプリの操作感はCubeMXよりも良いのだが、コードを吐き出させると無駄にライブラリを参照するクセがあり、回路の検討は行えるものの、実用には至っていない。 

何れにしても自分のスキル不足が問題と思われるが、それにしても、、、である。
posted by Yasuski at 14:32| DaisySeed

2020年06月26日

DaisySeedについて

KickStarterでPledgeしたオーディオ専用マイコン、DaisySeedがそろそろ届く頃合いなので、前準備を行っている。

DaisyPinoutRev4@4x.png

まずは、LaVoixskiに対応させることを目指して、搭載されているMCU”STM32H7”のマニュアルを読んでいるのだが、pinのALTを設定する項目になかなか辿り着けない。

Wikiが立ち上がっていたので、サンプルコードを調べてみたところ、現時点ではFrequencyCounterに該当するライブラリが存在していないようだ。 従って、周波数の測定を行うためのカウンタを選択し、独自に設定を行わなければならないが、今回はTeensy4.1と同様により精度が高い32bit幅のTIM2とTIM5の使用を目指すことにした。

Screen Shot 2020-06-26 at 8.49.47.png

Screen Shot 2020-06-26 at 6.02.57.png

GPT=汎用タイマーのトリガ入力は以下のポートに引き出されている。 TIM2/5が32bit幅で、残りの汎用タイマーTIM3/4/12/13/14/15/16/17は16bit。

Screen Shot 2020-06-30 at 21.08.39.png

Screen Shot 2020-06-30 at 21.08.50.png

Screen Shot 2020-06-30 at 21.08.58.png

Screen Shot 2020-06-30 at 21.09.05.png

Screen Shot 2020-06-30 at 21.09.15.png

Screen Shot 2020-06-30 at 21.09.21.png

Screen Shot 2020-06-30 at 21.09.27.png

Screen Shot 2020-06-30 at 21.09.37.png

対応表によると、複数の端子が該当しているが、

Screen Shot 2020-07-01 at 8.01.23.png

基板の回路図を見ると、D22とD25をALT1/2に変更することでカウンタのトリガ入力をアサインできるようだ。

Screen Shot 2020-07-01 at 8.00.29.png

黄色がTIM2_CH1/青がTIM5_CH1の入力端子で、何れもカウンタの幅は32bit。

赤紫のポートは個別に使用が可能なTIM12/13/14/15/16/17、緑のポートはTIM3_CH1/CH2とTIM4_CH1/CH2。

Screen Shot 2020-07-01 at 8.00.04.png

ALTを設定するコマンドは、GPIO関連の項目にそれらしいものを見つけた。

Screen Shot 2020-06-26 at 6.48.44.png

まず、GPIOの属性を設定するモードでALTに対応させた後、、、

Screen Shot 2020-06-26 at 6.57.46.png

該当するポートのALTの選択を個別に行う。

ボードに設定されているデフォルトの状態が不明だが、まずはALT対応に変更するための正しい記述法を見つけ出さなければならない。

オンボードに24bit幅のオーディオDACが搭載されているので、MixOutにはこれを使用する。残りの1〜2chは外部に出力することになるが、何れにしても信号のバイアスを変更するアナログ仕立てな非線形回路の追加が必須となる。MCUをマウントする基板にはオーディオ回路を追加することになるだろう。

Teensyとの棲み分けは端子の拡張性を考慮して、ADAT出力はTeensy/アナログオーディオはDaisyと出力形態で判断することになるか。

LEDをドライブするPWM出力はGPT12〜17を使用することを想定しているが、信号のアサインが可能な端子は、D9&D10、D11、D12、D13&D14、D16、D18、D19、D29 の計8本(&は並列ペア)で、LED2個分は確保できそう。 外部オーディオDACとの通信にはSAI2の端子群を使用する。 他にUSER_LED端子が使用可能なので、ラインは合計9本となる。

コンパイルを含めたDaisy上の動作確認が行えていない現段階では机上の空論に過ぎないが、DAC分のコスパの良さでコスト面はDaisyに軍配が上がるので、なんとかシステムの移植を完遂させたいところだ。

追記:

ハードウエアに依存するTimer系の実装が全く行えないだけでなく、avr系のライブラリは全く受け付けられず、Cli();Sei();も使用できないことが判った。

関連するHardwareTimerというClassの存在を確認しているのだが、ボードに該当するH7には対応していおらず、関数も認識されない謎仕様だった。 

自分の技量ではいまのところは全く刃が立ちそうになく、ライブラリが充実するまでLaVoixskiの移植に関してはペンディングとなってしまった。
posted by Yasuski at 09:11| DaisySeed