さて、前回予告した様に、今日からは「ArduinoのM5Stack」を使って、iOS (iPhone, iPad)の各種機能と双方向にコミュニケーションするアプリを開発します。
実際の「Arduino-SwiftUI連携アプリbFaaaPコントローラー」はこんな感じです。顔の縦方向の動きでbFaaaPペダルアクチュエータを制御し、横方向の動きで譜めくりをします。その際に、M5Stackのボタン操作でiPadProの譜めくりもできて、逆方向のiPadの譜めくりシグナルで M5Stackの画面の色を変化させます。
このアプリを応用すれば、iOSのほぼ全ての機能(例、センサ、カメラ、音声デバイス)やAPIをArduino(例、M5Stack)からコントロールできて、また、逆にiOSをコントローラーとしてArduinoの機能(例、モータ、センサ、LED)を制御できると思います。
IoT装置としての Arduinoの単体での利用も面白いと思いますが、スマートフォン等のデバイスの様々な機能とArduinoの機能を複合的に利用することは両者の可能性をさらに伸ばすものであると確信しています。
M5Stackは、「M5StackGrey(9軸のモーションセンサとBLEが付属しているもの)」をこちらから購入できるようです。
Arduinoは私はあまり詳しくなく、困ったときは大瀧さんや成澤さんが家に来てインストールやり直しやボードやライブラリのつなぎ直しをしてくれてリカバーしてもらっています。
私は基本「引きこもりのヒッキー」ですが、大瀧さんはArduinoやSwiftの勉強会(もくもく会)に参加されていて、フットワークが軽く人当たりもいいので、疑問点や質問は大瀧さんに直接聞いてくださいね!(大瀧さん怒るかな?)。
大瀧さんによると、IT系の勉強会はあまり上下関係もなく、わからないことはお互い助け合う感じの雰囲気のよいものだそうですね!
さあ、雑談(オヤジになると脱線が多くなる)はさておき、Arduinoのプログラミング設定から始めましょう。SwiftUIの利用者はArduinoには少し距離があるとおもうので、Arduinoの設定から始めます(逆に、ArduinoユーザーはSwiftUIに多少距離があると思うので、Macの設定から少し後に解説しようかなと思います)。
ArduinoのM5Stackの設定は様々な人が設定から丁寧に解説しています。例えば、このサイトがあります。
これから紹介するbFaaaPコントローラのM5Stackの検証用のArduinoプログラミングは、藤さんと言う方が公開されているプログラムをそのまま利用しています(GitHubはこちら)。
紹介されている設定は、多くの場合、Windowsマシーンを使用しているので、ここではMacでの設定を順を追って紹介します(間違っている場合は大瀧さん直してくださいね(後記:やはり間違っていましたので、修正しました)。
まず、ArduinoはIDEのバージョンやMacの設定に結構依存するので、私の現在の環境を記載しておきます。Arduino IDEはバージョン1.8.12です。Mac環境は、iMacPro(2017) 3.2GHz 8コアIntel Xeon WをmacOS Catalinaバージョン10.15.4で走らせ、Xcodeバージョン11.4.1です。
最初に、Arduino IDEのインストールをこちらのサイトから行います。
Mac OS X 10.10 or newer
をDownloadして、Appフォルダに移動する(この時以前に作成したArduinoプログラムとライブラリはBackupして、Arduinoフォルダをからにすると良い)
次にUSBドライバーをインストールします。まずは、M5Stackのサイトに行き、CP2104 Driver (Mac)をdownloadしてインストールします。
次に、Arduino IDEを起動し、Preferencesに行って、追加のボードマネージャのところに
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
を追加する。
そして、Board Managerから「Esp32」を次のようにして追加します。
そして、ボードをM5Stack(Esp32)、M5Stack-Core-ESP32に変更する。
次に、シリアルポートを設定します。これは、お使いのパソコンに依存しているようですが、ここでは、/dev/cu.usbserial-*******を選択します。
そして、書き込み装置は “USBasp"を選択します。
その後、スケッチからM5Stackのライブラリをインクルードします。
bFaaaPのモーションセンサの制御では「Madgwickフィルタ」を使用しますので、このMedgwickも同時にインクルードします。
そして、様々なスケッチ(ArduinoではプログラムのことをSketchと呼ぶようですね)が利用できます。例えば、BLE双方向通信のArduinoプログラムは下の様にしてスケッチ例から選べますよ。
XcodeでいうBuildに関しては、ArduinoはデバイスをUSBでMacに接続後、左の丸の中のボタンを押すことで、それぞれ検証とM5Stackへの Loadができます。
また、右の丸の中でシリアルモニターを表示して実行状況をモニターできます。
次回は、実際のArduinoプログラミングをご紹介します。
コメント