Arduinoのような開発キットで何か動かせるのかについて質問されたことはありますか?私はその質問を何度も目にしたことがありますし、自分でも疑問に思ったことさえあります。この投稿では、調査する必要のある情報と、実行可能な情報を判断するのに役立つ情報について説明します。H.
シールド
Arduinoには非常に幅広い機能があり、ボードをメスのヘッダーに直接取り付けるためにシールドと呼ばれるカスタムデバイスが開発されています。 通常、これらのシールドには、シールドに含まれるテクノロジと連携するように特別に設計された、明確に定義されたライブラリがあります。Arduino、Raspberry Pi、ARTIK、MegaPi、Pioneer、Qwiicで動作するドーターカード/シールドのリストは次のとおりです。
つぎの投稿にシールドについての参考になる情報がありますのでご覧下さい。
Arduino以外にも利用できるオプションがあることを忘れないでください。リストは単なる例です。 これらのシールドはすべてこの事実を中心にしています。Arduinoには設計上の制限と仕様があります。 すべての開発ボードには制限があり、バージョンごとに仕様が異なり、データシートまたはWebサイトのドキュメントに記載されています。 開発ボードの仕様に適合するあらゆる種類の回路を作成するための空のプロトタイピングボードを提供するシールドもあります。 BeagleboneやRaspberryPiなどの開発キットが他にもあるため、シールドはArduinoに固有のものではありません。
電気的制限事項
以下の仕様は、ほとんどのArduinoモジュールで一般的に当てはまると思われますが、各モデルに適用されるデータシートで定格を確認するのがベストです。. ドキュメントによると、ピンあたりの絶対最大定格はI/Oピンあたり40mAで、USB接続を使用する場合はUSBポートが500mAに電流を制限するため、5V出力は約400mAに制限する必要があります。 バレルジャックで外部電源を使用する場合は、最大定格1Aのレギュレータをオンボードで使用するため、最大電流は約900mAに増加します。 これは、ピンやボードを損傷する可能性がありますので、最大電流、またはその近くで使用することはお勧めしません。また、ボードの寿命を延ばすために安全係数を使用してください。開発キットがArduinoと異なる場合は、必ずデータシートを読んで推奨事項を確認してください。
データと速度の制限
データストレージ
使用する開発キットのモデルに応じて、アプリケーションで考慮すべき最大のストレージスペースとRAMの仕様があります。 Arduino Unoには最大32KBのストレージスペースと3KBのEEPROM + SRAMの組み合わせがあり、Megaには256KBのストレージスペースと12KBのEEPROM + SRAMの組み合わせがあります。 RAMの容量によって、一度に実行される同時アクションの数が決まります。 ストレージスペースの量によって、保存するデータの量が決まります。
内部クロック周波数
Arduino UnoとMegaの内部発振器は、動作に16MHzの水晶を使用しています。より高いデータ速度を必要とするデザインでは、非同期化により情報が多少失われたり、完全に失われたりします。また、内部回路がそのレベルの周波数向けに設計されていないため、デバイスの予期せぬ動作が発生する可能性があります。すべてのマイクロコントローラは、データシートに定格クロック周波数(内部または外部)が記載されています。
インターフェースオプション
Arduinoにはまともなマイクロプロセッサが搭載されていますが、データインターフェイスの数は限られています。 使用したいテクノロジが現在シールドまたはピンを介して利用できない場合、そのテクノロジをArduinoと互換性を持たせることは困難になります。データシートでどのようなオプションが利用可能かを常に読むことをお勧めします。要件が開発キットの範囲を超えている場合は、より幅広いデータインターフェースのオプションがある業界標準のマイクロコントローラをお勧めします。 Microchip, Analog Devices, Infineon, Intel など、様々なメーカーが製造しています。
ライブラリの実装
ウェブ上には、特定の技術のために既に存在しているオープンソースのライブラリがたくさんあります。もしこれがまだアップロードされていない場合は、オンラインで検索して、あなたが望むアプリケーションのための既存のライブラリがすでに存在するかどうかを確認してください(シールドが含まれている場合もあります)。私は、印刷用にカスタマイズされたインクジェットライブラリ、高速フーリエ変換ライブラリ、ステッピングモータドライバライブラリ、LEDライトストリップライブラリなどのライブラリを見たことがあります。既存のライブラリを使うと、一から作るのではなく、コードを書くのがとても楽になります。これもArduinoに限ったことではありません。
必要な技術のためのライブラリがない場合は、一から開発しなければなりません。多くの開発キットは一般的にオープンソースで、独自のライブラリを開発できるようになっていますが、それは私の理解の範囲外です。
最後の注意:
問題の解決策を一つに絞るのではなく、常に複数の解決策を検討してください。例えば、何かがArduinoでは実現できないことが判明した場合は、アプリケーションが必要とするものに対してより良い仕様を持つ他の開発キットを探してみましょう。Arduinoは、ある問題に対しては本当に簡単に実装できるかもしれませんが、他の問題では不可能に近い、または実用的ではないことが判明するかもしれません。