こちらの記事について、内容・翻訳・視点・長さなど、皆様のご意見をお送りください。今後の記事製作の参考にしたいと思います。
Thank you! Your feedback has been received.
There was a problem submitting your feedback, please try again later.
こちらの記事の感想をお聞かせください。
「ハンマーしか持ってないと、あらゆるものが釘に見える」
『Toward a Psychology of Being』、Abraham H. Maslow著(1962年)
「ハンマーしか持ってないと、あらゆるものが釘に見える」というフレーズは、心理学者のAbraham Maslow氏(「人間の欲求の階層」で有名)の言葉と思われがちですが、実は、Maslow氏が古代にさかのぼって、英語の古いことわざを言い換えた言葉です。これは、問題に取り組む際に確証バイアスを問う際のヒントになると同時に、新たなプロジェクトを開始する際、お気に入りのシングルボードコンピュータ(SBC)に手を伸ばそうとしているときに考慮すべきフレーズでもあります。SBCは、本当に頭の中にある仕事に適したツールでしょうか?
多くの場合、SBCは最適な選択肢となります。安価でプログラミングが簡単なため、すばやく部品を配線してアイディアを試すことができます。しかし、より永続的なものを求めていたり、プロジェクトの商品化計画があったりする場合には、必ずしも最適とは言えません。
その時こそがおそらく、概念実証の構築に組み込みのマイクロコントローラ開発ボードの使用を検討するタイミングです。主要なシリコンメーカーはいずれも、マイクロコントローラ製品に使用できる開発ボードを持っています。こうした開発キットはいずれも非常に用途が広く、低コストであるため、通常、利用を考えている特定のテクノロジー(Cypress Semiconductorに備わっている最新の静電容量型センシングテクノロジーなど)や、そのボードに対応する開発環境に基づいてボードを選択することになります。商品の製作を計画している場合は、開発ボードのベースとなるシステムオンチップ(SoC)の単価もまた検討材料になります。
組み込み用SoCデバイスに最適な新規プロジェクトへの着手を検討しているのであれば、開発ボードとして検討すべきキットはCypress PSoC 6 WiFiパイオニアキット (175-4669) です。
Cypress PSoC 6 WiFi-BTパイオニアキット
PSoC 6デバイスは低電力のプログラマブルな組み込み用システムオンチップ(SoC)で、IoT製品やウェアラブル製品の開発者を対象に作成されています。100MHz ARM Cortex CM0+を搭載しているため、それを使用して超低電力の動作を維持できるほか、高電力の処理が必要な場合に、より強力な150MHz ARM Cortex M4コプロセッサを動作させることができます。
パイオニアキットについては、PSoC 6がボードに実装されており、すべての内部機能(オンボードのKitProg2プログラマハードウェアを使用)と、以下の便利な外部機能へのアクセスを実現します。
- ユーザーLED (もちろん!)
- 静電容量型センシングスライダ、ボタン、近接ヘッダ
- 4GHz WLAN及びBluetooth機能モジュール
- 4インチTFTディスプレイ
- モーションセンサ
- 周辺光センサ
- 32ビットオーディオコーデック
- PDMマイクロホン
- Arduino 3.3Vシールド及びDigilent Pmod対応ヘッダ
さらにこのキットには、電源用のUSB (タイプAからタイプC)ケーブル、アップロードプログラム、4 x 4インチジャンパワイヤ、2 x 5インチ近接センサ用ワイヤが付属しています。
プログラミング
現時点でのMCUのプログラミングに関する懸念は、人々の熱意にどのようにすればブレーキをかけられるかです。難しいものになりそうか、さらには複雑なMCUの専門知識を理解する必要があるかどうかなどが心配されています。
ここではっきりさせておきましょう。PSoC 6は、機能が満載されているため、プログラミングの達人になるには時間がかかります。ただし、すでに何かをSBCのGPIOピンに接続して有意義な結果を得ていれば、ほとんどのMCUのI/Oと主な機能をマスターするための機知が備わっていると言えます。
PSoC Creatorの統合開発環境(IDE)を理解する必要があるほか、Wi-Fiを使用したい場合は、EclipseベースのWICED Studio IDEを理解する必要があります。さらに、Cプログラミング言語についても精通する必要がありますが、苦闘する必要はありません。Cypressでは多数のチュートリアルビデオ、サンプルプログラム、サポートを提供しているほか、質問を投稿できる活気のあるコミュニティーもあります。
最初のステップ
しかしながら、最初にすべきことは、PSoC 6をWi-Fiに接続することです。プロセスを簡素化するため、ボードには「WICED Config」のSSIDを用いてWi-Fiアクセスポイントとして設定するプログラムがあらかじめロードされています。
Windowsパソコンで、タスクバーのWi-Fi接続アイコン(通常はバッテリアイコンと音声ボリュームアイコンの間にあります)をクリックし、「WICED Config」という接続を選択します。又は、スマートフォンで[設定] -> [Wi-Fi]を見つけ、「WICED Config」ネットワークを選択します。パスワードは、「12345678」です。
接続が完了したら、Webブラウザを開けるようになるため、アドレスバーに「http://192.168.0.1」と入力します。すると、ご使用のネットワークハブの詳細を選択し、入力できるシンプルなページが表示されます。
ボードがネットワークに接続すると、HTTPサーバーが起動し、タイムサーバーと同期されます。TFT画面に、現在のPWMデューティサイクルの設定と光センサの出力電圧が表示されます。PWMデューティサイクルはCapSenseスライダを使用して増減させることができ、LED5の輝度はCapSenseボタンを使用して変更できます。
PSoC 6のWi-Fiホットスポットへの接続に使用したデバイスに戻り、ブラウザバーにTFT画面に表示されたアドレス(今度はご使用のネットワークのアドレス)を入力します。時刻、光センサ電圧、PWMデューティサイクルを知らせる小さなWebページが表示されます。
こうしたシンプルなプロビジョニングシステムの長所は、ソースコードとその他の特徴を知ることができる点です。CE222494の例が示すように、簡単に実行してプロジェクトをすぐに軌道に乗せることができるほか、センサとCapSenseの読み取り方法、TFT画面への書き込み方法、さまざまな方法でのWi-Fiの使用方法に加え、それらすべての要素をまとめるために必要なものは何かが表示されます。
サンプル
サンプルソフトウェアについて説明する前に、それを最大限に活用するために、WICED Studio IDEをダウンロードしてインストールする必要があります。必要なソフトウェアとドキュメントはすべて、Cypress Webサイトのこちらで見つけることができます。
WICED Studioには標準のWindowsインストーラ(及び『PSoC 6 WiFi-BTパイオニアキットガイド』PDF文書)が搭載されているため、インストレーション手順を読む必要はありません。代わりに、WICED Studio IDCに慣れるために使用できるサンプルプログラムを見てみましょう。
最初のプログラムを構築してロードする前に、次の3つの注意事項に気をつける必要があります。
- WICED Studio 6.1を使用する場合は、OpenOCDの実装時の既知の課題にこちらの修正プログラムを適用する必要があります。ただし、この記事を読むまでにそれ以降のバージョンを使用している場合は、おそらく適用する必要はないでしょう。
- 付属のUSBケーブルが適切なUSB Cコネクタに接続されていることを確認します。両方ともボードに電源を供給しますが、プログラミングのためには、標準USB Aコネクタ(J28)の横の上端のものよりも、ボード(J10)の右側にあるUSB Cコネクタを使用するのが適切かと思われます。
- LED2がオフになっていることを確認します。これは、「KitProgモード」になっていることを示しており、このモードではPSoC Programmerソフトウェアを使用して、フラッシュメモリなどで低レベルのデバッグを実行できます。ただし、WICED Studioの使用時にはそれは必要ないため、SW3を押して、キットを「CMSIS_DAPモード」にします。これが適切なモードで、LED2がオフになります。
設定が完了すると、『PSoC 6 WiFi-BTパイオニアキットガイド』の指示に従って、最初のプログラムの作成を開始できるようになります。
最初にすべきことは、WICED Studioを起動することです。WICED Studioは、Windowsのスタートボタンから見つけることができます。スタート > [すべてのプログラム] > [Cypress WICED-Studio]の順にクリックします。
Target Selectorのドロップダウンメニューで、[43xxx_Wi-Fi]を選択します。
これから、Wi-Fiアクセスポイントをスキャンし、USBポート経由で端末の検出リストをプリントアウトする「スキャン」サンプルを構築します。このアプリケーションを構築し、実行するには、コンパイラとリンカーにアプリケーションの構築方法と、構築されたら何を実行するかを伝えるmakefileを構成する必要があります。これは、[Make Target]ウィンドウで「instruction」の行を追加することで、簡単に実行できます。
最初に入力するものは、ターゲットパスです。これは、コンパイラにコードがある場所を伝えるものです。WICED Studioのすべてのアプリケーションは、/appsディレクトリ下にある必要があるため、ターゲットパスには/appsディレクトリ下からアプリケーションのある場所までのサブディレクトリ階層をすべて含める必要があります。使用するサンプルはapps/snip/scanにあります。makefileはドット(.)をセパレータとして使用するので、次のとおり場所を指定します
snip.scan
次に、ハイフンの後にプラットフォーム名を入力する必要があります。そうすることで、コンピュータは、どのマイクロコントローラに対してコードをコンパイルしているかを把握します。
snip.scan-CY8CKIT_062
次に、アプリケーションが構築されたら、ソフトウェアにそのアプリケーションで何を実行すべきかを知らせます。「スキャン」サンプルでは、アプリケーションリソースをフラッシュメモリにロードし、アプリケーション自体をダウンロードしてPSoC 6をリセットし、アプリケーションの実行が開始されるようにします。
snip.scan-CY8CKIT_062 download_apps download run
これが、[Make Target]ウィンドウに追加する完全な行となります。これを実行するには、[Make Target]ウィンドウの[43xxx_Wi-Fi]を右クリックし、表示されたメニューの[New…]をクリックします。
これで、[Target Name]フィールドに作成したmakefile情報をアドインできるようになります。
これが既存のmakefileのリストに追加されます。プロジェクトを構築する前に、[Make Target]で[clean]をダブルクリックすることをお勧めします(又は、右クリックして[Build Target]を選択します)。この操作により、中間段階と以前のあらゆるビルドからの出力が消去されるため、ビルドを白紙の状態から開始し、すべてを一からコンパイルしてリンクできます。
これで、アプリケーションの構築とロードが可能になります。[Make Target]のリストから[snip.scan-CY8CKIT_062 download_apps download run]ターゲットを見つけてダブルクリックします(又は、右クリックして[Build Target]を選択)。
Resources Filesystemは、ダウンロードに数分程度かかる場合があるため、時間がかかっても慌てないでください。最後に、すべてがスムーズに完了したことを知らせる青色の「Build Finished」メッセージが表示されます。
PSoC 6の出力内容を表示するには、Tera TermやPuttyなどの端末エミュレータが必要になります。どの「COMポート」に端末エミュレータを接続しているかを知る必要があります。これは、Windowsデバイスマネージャーを使用して確認できます(Windows 10の場合は、Windowsボタンの横の検索ボックスに「Device Manager」と入力)。COMポートのリストの下の方を見て、該当するエントリを展開します。
これで、COM5を使用していることがわかりました。これをPutty設定に入力できます。
シリアル通信セッションを実行する設定になっていることを確認する必要があります。この設定は、後で利用できるよう保存できます。
Open]をクリックすると、次の画面が表示されます。
アプリケーションは設定どおり実行されていますが、コードのデバッグが必要な場合は「デバッグ」バージョンを構築できます。これは、コンパイラ最適化を使用せずに作成し、コードにブレークポイントを追加できます。このブレークポイントで実行を停止し、コードのその箇所で変数が予想通りになっていることを確認できます。このデバッグバージョンは、次のターゲットを使用して作成できます。
snip.scan-CY8CKIT_062-debug download_apps download
コードのデバッグを行う方法に関する手順については、キットのユーザーガイドに記載されています
最後に考えてもらいたいこと
ArduinoやRaspberry Piにある程度自信のある人に、一般にはマイクロコントローラ、具体的にはCypress PSoC 6 Wi-Fiが怖れるべきデバイスではないことを示すことができていればうれしく思います。どうしても必要な学習曲線を少々我慢すれば、これらのデバイスの強力なリソースをプロジェクトで使い始めることができます。