Piを使用したアプリケーションの開発の違いは、ハードウェアの違いとソフトウェア開発ツールチェーンの違いにより、マイクロコントローラーを使用したアプリケーションの開発とは非常に異なる場合があります。
8ビットから64ビットのプロセッサーで、数Kから数ギガバイトのRAMを搭載した幅広いマイクロコントローラーが利用可能です。より高性能なマイクロコントローラーは、より多くのPiのような体験を提供します。性能の低いマイクロコントローラーにはありません。
また、Piを使用しても、Windows 10 IoTオペレーティングシステム向けの開発とRaspian、Mate、またはその他のLinuxベースのOS向けの開発には大きな違いがあります。Windows 10 IoTには、ユニバーサルWindowsプログラム(UWP)環境を対象とするリモートデバッガーを備えたVisual Studioツールチェーンを使用した開発PCが必要です。RaspianまたはMateの開発は、Piで使用可能なツールを使用して、実際にPiで実行できます。
制約アプリケーションプロトコルは、物事の環境のインターネットで使用されている小型、拘束されたデバイスのために使用されています。マイクロコントローラのさまざまなハードウェアおよびソフトウェアのアイデアを得るために、CoAPプロトコルの実装に関するこのページでは、対象となる環境のアイデアを提供します。iOS、OSX、Androidなどのよく知られているOSとともに漠然と聞いたことがあるContikiオペレーティングシステムに言及しています。言及されているプログラミング言語は、Java、JavaScript、C、C#、Ruby、Go、Erlang、Rust、およびPythonです。
マイクロコントローラを使用した開発に使用されるツールチェーンは、製造業者や、開発コミュニティやオープンソースイニシアチブから利用可能なリソースの種類によって異なります。クロスアセンブラーを取得する場合もあれば、Cクロスコンパイラーを取得する場合もあります。また、Windows 10 IoT向けのVisual Studioツールチェーンに類似した、すべての機能を備えた素晴らしいツールチェーンを取得する場合もあります。
マイクロコントローラーの実際の開発環境では、EEPROMプログラマーとソフトウェアツールを使用して新しいイメージを作成し、デバイスにプッシュするか、デバイスにシリアル接続または経由で新しいイメージをダウンロードできるように必要な接続性がありますネットワーク接続。
私の印象では、ほとんどのマイクロコントローラーにはCクロスコンパイラーがありますが、コンパイラーはK&RやC98などの古い標準のみをサポートします。マイクロプロセッサの特定は、例えば機能のためのCクロスコンパイラは、多くの場合、非標準のキーワードを持っているfar
し、near
そのセグメント化されたメモリと、古い8080および8086プロセッサを搭載したポインタのキーワードを。
FORTHプログラミング言語など、マイクロコントローラーをターゲットとする特殊言語もあります。多くの場合、これらの言語には、言語のランタイム以外のオペレーティングシステムがないように、ベアメタルを対象とするランタイムデザインがあります。
オペレーティングシステムは、実質的に存在しないものから、必要最低限の Linuxから、freeRTOSやWindows Embedded、本格的なLinuxやMicrosoft Windows などの特殊なOSにまで及びます。Raspberry PiのSourceForgeプロジェクトMINIBIANを参照してください。アセンブラーでのRaspberry Pi用の初歩的なOSの開発について説明しているこのeBook、Baking Pi:Operating Systems Developmentも参照してください。
Visual Studio Magazineの「Visual Studioでモノのインターネットをプログラミングする」のこの記事では、利用可能なさまざまなデバイスの概要に続いて、LinuxおよびWindowsの開発にVisual Studio IDEを使用する概要を説明します。
現在、利用可能な既製のプログラム可能なネットワーク対応マイクロコントローラーデバイスの巨大で成長している世界があります。非常に低いレベルでは、Texas Instrumentsなどのさまざまな従来のチップメーカーのさまざまな単純な16ビットおよび32ビットデバイスがあります。(SensorTag開発キットで少し遊んだのですが、とても楽しいので、Watch DevPackも素晴らしい学習ツールセットかもしれません。)
よく知られているマイクロコントローラーデバイスには、Arduino、BeagleBoard、Raspberry Piなどがあります。これらの環境はすべて、広範なコミュニティサポートを備えており、膨大な数の既成の外部センサー、モーター、サーボ、その他のあらゆるものにプラグインできます。Limor "Ladyada" Friedによって設立された電子学習スーパーストアであるAdafruitは、軽量フェザー開発ボードの独自のラインとともに、これらのボードのあらゆる種類の周辺機器を提供しています。
...
Microsoft .NET FrameworkとVisual Studioに精通している開発者にとって最も興味深いデバイスの世界は、Windows 10 IoT Core互換環境かもしれません。これらは、C#、Visual Basic、Python、Node.js / JavaScriptなどのさまざまな言語で記述されたユニバーサルWindowsプラットフォーム(UWP)アプリをサポートするx86およびARM搭載のデバイスです。Windows 10 IoTコアは、Raspberry Pi、Arrow DragonBoard 410C、Intel Joule、Compute Stick、MinnowBoardなどのデバイスをサポートしています。Askey TurboMate E1ウェアラブルなどの興味深い製品プラットフォームもあります。
マイクロコントローラーアプリケーションの具体例
これは、自動コーヒーメーカーのマイクロコントローラーボードの画像です。これは、中国で製造された自動コーヒーメーカーの標準コンポーネントのようです。メーカーのWebサイトはPCBに印刷されています。
画像は2つのビューで構成されています。左側の図は、マイクロコントローラーとサポート回路を含むボードの背面です。右側のビューは、LCDスクリーンと現在の時刻を設定したり、開始時刻のプログラミングなどのアクションを実行するために使用されるボタンのセットがあるボードの前面です。
右側のビューは、コーヒーメーカーの前面の開口部に収まるキャリアに収まります。下部PCBのスイッチは、ロッカーアームスイッチで作動します。特別な目的のように見えるLCDは、コーヒーメーカーの設定を変更するときに、現在の時間とステータスを表示したり、ユーザーインターフェイスを表示したりするために使用されます。赤いLEDは、コーヒーメーカーが実際にコーヒーを作っているときを示し、照明をオフに戻すことで完了したことを示します。
マイクロコントローラーは、8ビットマイクロコントローラーであるELAN Microelectronics Corp EM78P447NAM(データシート)です。基本的な統計のいくつかは、これがどんな小型で最小のデバイスであるかを示しますが、意図された目的にはうまく機能します。その目的は、ソフトウェアを開発し、製造の一環として1回だけ書き込み可能なROMにダウンロードすることです。
•低消費電力:
* Less then 2.2 mA at 5V/4MHz
* Typically 35 µA, at 3V/32KHz
* Typically 2 µA, during sleep mode
•チップROM上の4K×13ビット
•OTPメモリコードの侵入を防ぐための3つの保護ビット
•ユーザーの要件に対応する1つの構成レジスタ
•148×8ビットオンチップレジスタ(SRAM、汎用レジスタ)