nRF52840を使ってみる その1(Seeed Studio XIAO nRF52840 Sense)
はじめに
今回はSeeed Studio XIAO nRF52840というマイコンを使ってみました。小型でありながらBLE、加速度センサー、マイクなどを搭載しています。最近はSeeed Studioの小型マイコンを愛用しています。
このマイコンを使って何がしたいのかというと、倒立振り子の小型ロボを作りたいんですよね。小型マイコンで加速度センサーも使えるので、作れるかもしれません。ひとまずお試しです。
▼こちらのサイトに製作例がありました。一軸制御モジュールって作れるんですね...
プログラムを書きこむ際の注意点
今回のnRF52840は、書き込みの際に注意点があります。まずは下記のブログを一読することを強くお勧めします。
▼こちらのブログにて指摘されていました。
シリアルポートが認識しないときは、リセットボタンを2回押してください!
初回は認識していたと思うのですが、後から認識しなくなって困っていたところ、上記のブログにたどり着きました。どういう仕様なんでしょうね。本当に壊してしまったのかと思って、買いなおすところでした。
プログラムを書き込む際に認識していない場合は、リセットボタンを押してみてください。
▼ちなみに、リセットボタンはすごく小さいです。タクトスイッチと並べると一目瞭然です。
▼Seeed StudioのGetting Startedはこちら
https://wiki.seeedstudio.com/XIAO_BLE/
ひとまずLチカ
小型のマイコンでありながら、ボード上にフルカラーLEDが搭載されています。状態確認に便利そうです。
なお、LOWで点灯、HIGHで消灯になっているみたいです。感覚的にはHIGHで点灯、LOWで消灯ですよね。
内部的にプルアップされているのでしょうか。そちらの方が電流を多く引き込めるとは聞いたことがありますが、専門ではないので詳しいことは分かりません。
▼プログラムはこちら。赤、緑、青、白の順に点灯します。
▼実際に光らせたときの様子はこちら。
作ったもの
XIAO系のマイコンが小型であることを活かして、
- コンパクトに収まり、
- いろんなモジュールを使えて、
- あわよくば倒立振り子ができること
を目指して箱に収めました。倒立振り子は余計だったかなと思っています。一応サーボモータを取り付けることはできます。
▼箱に収めたものがこちら。Type-Cの給電端子が便利でいいですね。
オーディオ機器でよく見るようなツマミをお店で見つけて、取り付けてみました。なんだか高級感があります。
▼I2C通信用の端子は多めに出しているので、いろいろ使えないかなと思っています。画像ではI2C通信で使えるジェスチャーセンサーと、フルカラーのディスプレイを差しています。
サーボモータのKnobのサンプルプログラムを増やしただけの簡単なプログラムを作成しました。ツマミを回して、サーボモータを4つまで制御できます。
なお、nRF52840用のServo.hは、Arduino用のものとは違うみたいで、コンパイルエラーが出ます。私はnRF52840用のライブラリをインストールして、Arduino用のライブラリを削除したところ書き込めました。
▼プログラムはこちら。
▼実際に使ったときの動画がこちら。ちょうど映っていないのですが、サーボモータの制御はツマミを回しています。
最後に
今回は簡単なプログラムしか試していませんが、他にもサンプルがありました。マイコン上の加速度センサーも使ってみたいところです。
他のXIAO系のマイコンだとESP32C3を使っていますが、動作確認用のフルカラーLEDが無くて、発注した基板には取り付けたことがあります。nRF52840だとそれが省略できそうです。
製作した箱は、TechSeeker Hackathonというハッカソンのときに使いました。サーボモータを差して、ツマミを回すだけで動作確認できるのは便利でした。特に短期間での開発だったので、試作を手軽に行えると良いですね。
▼ハッカソンのときの記事はこちら
今の所 BLE 使っていないみたいですが、電波使うなら アルミケースより樹脂ケースにした方がいいと思います。感度が凄く悪くなると思います。
コメントありがとうございます。
そういえば電波の遮蔽とかの話がありましたね。
ケースは3Dプリンターで作りなおそうかなと思っています。