4

これは、stackoverflow に関する私の最初の投稿です。この Web サイトについて聞いたことがあり、素晴らしいと思います! プロジェクトを開始する方法についてのガイダンスが得られるかどうか見てみましょう。

アイデア: 基本的には、独自のカスタム OSC コントローラーを構築したいと考えています (OSC は、MIDI を置き換えることを目的とした UDP に基づくプロトコルです)。これの興味深い点は、コントローラーをギターとして作成したいということです。これにより、コントローラーをシンセとして使用し、典型的な MIDI コントローラー ハードウェアをギターの本体に組み込むことができます。これには、ベロシティ センシティブ パッド、オプティカル エンコーダー、LCD パネル、ベロシティ センシティブ ストリング、タッチ センシティブ フレットが含まれます。ここに例があります。

私の質問:この規模と複雑さのプロジェクトを開始する方法について混乱しています。基本的な低レベルでは、ファームウェアは基本的な整数と適切な OSC 信号への変換を処理しているように見えます。ハードウェアとプログラミング言語の選択方法、またはこのプロトコルの実装方法さえもわかりません。噛み切れないほど食べているのかもしれませんが、これは、組み込みハードウェアがどのように機能するかをよく理解し、低レイテンシーの並行システムをプログラミングするための良いプロジェクトだと思います。

  1. このデバイスのベースとなる適切なハードウェア プラットフォームは何ですか? OSC は最新のプロトコルであるため、PIC18 では OSC の処理が遅すぎると思います。OSCの実装に対応できるマイクロコントローラのタイプは何ですか?
  2. このプロトコルを実装するのに適した言語は何ですか? C が組み込みソフトウェアに一般的に使用されていることは理解していますが、Ada は私の興味をかき立てました。ここでの目標は、ユーザーからの複数の入力を処理できる低レイテンシ ファームウェアを作成することです。Ada はこの種の状況の多くで使用されており、「より安定している」ことを理解していますか? これについてどう思いますか。
  3. 物理的なハードウェアがなくても、ハードウェアとマイクロコントローラーをシミュレートすることはできますか? ハードウェアが自分のニーズに合った適切なセットアップであることを知らずに、ハードウェアに数百ドルを投資するのは少し不安です (私は学生の予算内です)。ハードウェアがなくてもすべての入力をシミュレートし、ファームウェアを書き込むことができれば、このプロジェクトを完了する能力にはるかに自信を持つことができます. 私のアイデアの基本的なバージョンをシミュレートできることでさえ、何もないよりは理想的です.

ハードウェアに関する私の質問がこのサイトにふさわしくない場合は、ハードウェアの側で私にアドバイスするのをためらっている人がいることを理解しています.

再度、感謝します!

4

4 に答える 4

2
  1. 手始めに、ArduinoとMakeControllerの両方を見てください。どちらもオープンソース(hw&sw)マイクロコントローラーモジュールであり、OSCを処理でき、強力なユーザーコミュニティを持っています。両方のサンプルビデオはYouTubeで見つけることができます。

  2. CとAdaはどちらもマシンコードにコンパイルされるため、ハードウェアを最大限に制御したい場合は、アセンブリ言語を検討することをお勧めします。ただし、絶対に必要になった場合に限ります。それまでは、Cに固執します。かなり遠くまで行きます。

  3. はい、ソフトウェアで回路をシミュレートすることは可能です。ただし、実際のハードウェアを使用した方が簡単な場合もあります。ただし、いくつかの優れたソフトウェアの例については、Cycling'74WebサイトのMax/MSPチュートリアルを参照してください。Max / MSPは、コンピューターとハードウェアの相互作用に頻繁に使用される一種のグラフィカルプログラミング言語です。この記事では、それが何ができるかについていくつかのアイデアを提供します。

  4. Max / MSPと同様に、Pdと呼ばれるオープンソース製品があります。Max / MSPほど洗練されていませんが、自由に利用できるので、いつでもいじり始めることができます。

  5. 初心者向けの優れた本は、TomIgoeによるPhysicalComputingと、PaulScherzによるPracticalElectronicsforInventorsです。トムイゴエも非常に有益なウェブサイトを持っています。

  6. あなたが役立つと思うかもしれないいくつかの良い雑誌は、Make、Circuit Cellar、Nuts&Voltsです。これらはすべて、このようなプロジェクトに使用する電子機器の種類にある程度対応しています。

  7. 商業ベンチャーのプロトタイピングをしているのでない限り、オープンソースプロジェクトの開始を検討するかもしれません。これは素晴らしいアイデアのように聞こえます、そしてそれはたくさんの興味を生み出すと確信しています。

于 2009-10-09T14:13:14.633 に答える
2
  1. イーサネットと利用可能なネットワーク スタックをサポートするものは賢明に思えます。既製のボードをお探しですか、それとも独自のボードを開発していますか? 多くの ARM マイクロコントローラには、オンチップ イーサネット コントローラが含まれています。ネットワーク ハードウェアのサポートと、そのサポート (または実際にはアプリケーション自体) に OS または RTOS が必要かどうかを検討する必要があります。

  2. C コンパイラは、8 ビットから 64 ビットまでのほぼすべてのアーキテクチャで広く使用されています。ただし、数十キロバイトを超える RAM を備えた 32 ビット パーツを使用する場合は、C++ が実行可能であり、ほぼどこにでもあります。エイダはあまりサポートされていないまれな獣であり、軍事/航空宇宙以外では珍しい選択です。ネットワークスタックやイーサネットドライバーなどのサードパーティのサポートが必要になる場合があります-それらはAdaで利用できるようになりますか; 合理的なコストで?

  3. 命令またはサイクル レベルでハードウェアをシミュレートする必要がない場合があります。C または C++ を使用している場合は、PC 上で多くのコードのプロトタイプを作成できます。利点は、PC がすでにネットワークをサポートしていることです。多くの組み込み開発ツール チェーンには命令シミュレータが含まれており、オンチップ ペリフェラルをシミュレートするものもありますが、その使用は限られています。それらはリアルタイムで実行されず、外部 I/O のシミュレートは複雑で非現実的です。

**[編集]** C++ について (Jason S のコメントへの回答)。C++ が必ずしもより多くのメモリを必要とするわけではありません。使用する機能に対して料金を支払います。ただし、C++ が簡単で魅力的なものにすると、隠れたリソース コストが発生する可能性があるため、注意が必要です。私は組み込みシステムで C++ を使用しますが、たとえば C++ 標準ライブラリを使用することはめったにありません。これは優れており、多くの時間を節約できますが、一部のシステムでは余裕がないリソースと決定論の点でコストが高くなります。私は 8 ビット システムと 16 ビット システムで C++ をうまく使用しましたが、使用するサブセットが非常に制約されていて、コード本体が小さい場合、利点はそれほど重要ではありません。たとえば、8 ビット システムで使用するためだけに C++ を学習することはお勧めしません。ただし、すでに C++ を知っている場合は、先に進んでください (注意してください)。現在、dsPICF33 デバイスに取り組んでいます。

于 2009-10-08T21:18:03.497 に答える
1

あなたはgumstixのようなものを見たいかもしれません。小型、低電力、Linux、ワイヤレス、安価で動作します!

LinuxOSCライブラリが利用できるようです。Linux PCでアプリのプロトタイプを作成してから、組み込みLinuxプラットフォームでクロスコンパイルすることもできます。

于 2009-10-08T21:57:43.533 に答える
1

MIPS CPU に基づく PIC32 もあります。リアルタイム機能にはAdaを使用すると思いますが、実行可能なゼロフットプリントプロファイルランタイムで言語を使用しない限り、ランタイムを移植する必要があります。

于 2011-03-08T21:45:13.263 に答える