Copyright 2021-2024 Moddable Tech, Inc.
改訂: 2024年4月20日
このドキュメントは、Moddable Fourに関する情報を提供します。ピンやその他のコンポーネントの詳細、アプリのビルドとデプロイ方法、その他の開発リソースへのリンクが含まれています。
Moddable Fourは、低消費電力のBluetooth LE開発ボードで、開発者がModdable SDKを使って実験するのを容易にします。Moddableのウェブサイトで購入できます。
Moddable Fourの主なコンポーネントは、nRF52840モジュールとミラーディスプレイの2つです。nRF52840モジュールには、BLEアンテナ、1 MBフラッシュ、および256 KB RAMが含まれています。シャープのミラーディスプレイは、ls013b4dn04ディスプレイドライバを使用する128x128の白黒ディスプレイです。
また、統合されたLIS3DH加速度計、ジョグダイヤル、およびCR2032バッテリコネクタも含まれています。
注意: LCD-PWR / GPIO23は一般的なGPIOとして使用しないでください。これはセンサーと画面に電力を供給するために使用されます。
- GPIO23に
0を書き込むと、LCD-PWRに3.3Vが出力され、画面にも電力が供給されます。 - GPIO23に
1を書き込むと、ピンと画面の電源がオフになります。
| 名前 | 機能 | 説明 |
|---|---|---|
| LCD-PWR GPIO23 |
電源 | GPIO23は、このピンに接続された画面とセンサーの電源をオンにするために使用されます。3.3v |
| GPIO3 ADC1 |
I/O アナログ |
nrf52 GPIO3に接続。ADCチャネル1 |
| GPIO4 ADC2 |
I/O アナログ |
nrf52 GPIO4に接続。ADCチャネル2 |
| GPIO5 ADC3 |
I/O アナログ |
nrf52 GPIO5に接続。ADCチャネル3 |
| GPIO17 | I/O | nrf52 GPIO17に接続 |
| GPIO22 | I/O | nrf52 GPIO22に接続 |
| GPIO28 ADC4 |
I/O アナログ |
nrf52 GPIO28に接続。ADCチャネル4 |
| GPIO29 ADC5 |
I/O アナログ |
nrf52 GPIO29に接続。ADCチャネル5 |
| GPIO30 ADC6 |
I/O アナログ |
nrf52 GPIO30に接続。ADCチャネル6 |
| GPIO31 ADC7 |
I/O アナログ |
nrf52 GPIO31に接続。ADCチャネル7 |
| GPIO27 SCL |
I/O I2C |
nrf52 GPIO27に接続 I2Cクロック 加速度計 |
| GPIO26 SDA |
I/O I2C |
nrf52 GPIO26に接続 I2Cデータ 加速度計 |
| RST | リセット | デバイスをリセット |
| VIN | 電源 | VINはModdable Fourに電力を供給するために使用できる5Vピンです。ボードがUSBで電源供給されている場合、このピンを使用してその5V電力を供給できます。これは未調整のピンであり、VINは5V入力ソースへの直接接続です。他の5V入力およびAP2112K電圧レギュレータに接続します。 |
| GND | GND | GNDに接続 |
| 3.3V | 電源 | 3.3V入力および出力。nRF52 3.3V入力および他の3.3Vデバイスに接続。ボードがマイクロUSB、VIN外部コネクタ、またはUSBで5V電源供給されている場合、調整された出力電力。3.3VはCR2032コインセルでも供給可能。 |
Moddable Fourは3.3Vデバイスです。5V電源はAP2112K-3.3電圧レギュレータによって3.3Vに調整されます(仕様についてはデータシートを参照してください)。Moddable Fourのテストは、一般的な5V 0.5アンペアのUSB電源で行われています。
Moddable Fourには以下の方法で電源を供給できます:
- 5V - Micro USBコネクタ
- 5V - ピン14または外部ヘッダのVIN
- 3.3V - 外部ヘッダのピン16の3.3V
- 3V - CR2032バッテリー
CR2032バッテリーコネクタから供給される電源は、スライドスイッチでオンとオフを切り替えることができます。
6ピンJTAGコネクタは、gdbデバッグや新しいブートローダーをModdable Fourにフラッシュするために使用できます。詳細については、nrf52プラットフォームドキュメントを参照してください。
Moddable Fourでアプリをビルドして実行するには、以下が必要です:
- Moddable SDKをインストールする
- nRF5ツールをインストールする
- 以下のアプリのビルドとデプロイセクションの指示に従う
環境とnRF5ツールをセットアップした後、以下の手順に従ってModdable Fourにアプリケーションをインストールします。
-
Moddable FourをマイクロUSBケーブルでコンピュータに接続します。
データ同期が可能なケーブルを使用していることを確認してください。電源供給のみのケーブルは使用しないでください。
-
RESETボタンをダブルタップしてデバイスをプログラミングモードにします。
プログラミングモードは、起動時にLEDインジケーターが定期的に点滅することで示されます。また、デスクトップに
MODDABLE4という名前のディスクが表示されます。注意: 短時間内にデバイスをプログラムしない場合、インストールされたアプリケーションに再起動されます。
-
mcconfigを使用してアプリをビルドおよびデプロイします。mcconfigは、マイクロコントローラおよびシミュレータ上でModdableアプリをビルドおよび起動するためのコマンドラインツールです。mcconfigの完全なドキュメントはこちらにあります。Moddable Four用にビルドするには、
mcconfigでプラットフォーム-p nrf52/moddable_fourを使用します。piu/ballsのサンプルをビルドします:cd $MODDABLE/examples/piu/balls mcconfig -d -m -p nrf52/moddable_fourexamples readme には、画面の回転などによく使用される他の
mcconfig引数に関する追加情報が含まれています。mcconfigでModdable Fourシミュレータ用にビルドするには、プラットフォーム -psim/moddable_fourを使用します。
Moddable Fourのハードウェアとソフトウェアは、追加のハードウェアなしで多くの種類のアプリケーションをサポートするように慎重に設計されています。ハードウェアの特徴には以下が含まれます:
- LED
- バックボタン
- ジョグダイヤル
- ディスプレイ電源
- ディスプレイディザー
- ディスプレイ回転
- 加速度計
- エネルギー管理
このコードスニペットは、バックボタンが押されたときにLEDを点灯させるためのModdable FourのHostオブジェクトの使用方法を示しています。
let led = new Host.LED.Default;
new Host.Button({
pin: Host.pins.button,
onPush() {
led.write(this.pressed);
}
});
new Host.JogDial({
onTurn(delta) {
trace(`Turn ${delta}\n`);
},
onPushAndTurn(delta) {
trace(`Push and Turn ${delta}\n`);
},
onPush(value) {
trace(`Button ${value}\n`);
}
});
注: ジョグダイヤルによって提供されるデルタ値は、画面の回転(ディスプレイ回転 を参照)を考慮しており、画面の回転が180度の場合には反転されます。
Moddable Fourのディスプレイを使用するには、LCDの電源ピンを有効にする必要があります。moddable_four/setup-target.js ファイルでは、autobacklight 設定変数が設定されている場合に画面が有効になります:
if (config.autobacklight)
Digital.write(config.lcd_power_pin, 0);
Moddable Fourのシャープメモリーディスプレイはls013b4dn04ディスプレイドライバを使用しています。デフォルトでは、ディスプレイドライバは8ビットグレーから白黒への変換時に画像をディザリングするように設定されています。ドライバは Atkinson dither アルゴリズムを使用しており、高速で高品質、アニメーションに適しています。
ディザリングのランタイムコストは低いですが、フレームレートを最大化し、計算を最小限に抑え、コードサイズとRAM使用量を削減したいアプリケーションでは、プロジェクトマニフェストで適切な定義を設定することで、ドライバ内のディザリングを完全に無効にすることができます:
"defines": {
"ls013b4dn04": {
"dither": 0
}
},
一部のアプリケーションでは、特定の画面でディザリングを有効にし、他の画面では無効にしたい場合があります。これらのアプリケーションは、ドライバ内でディザリングを有効にしたままにし、ランタイムでディザリングをオンおよびオフにするためにドライバの dither プロパティを使用します。
screen.dither = true;
screen.dither = false;
Moddable Fourのls013b4dn04ディスプレイドライバは、0度と180度の回転をサポートしています。180度の回転は、ディスプレイが逆さまに取り付けられている場合に便利です。デフォルトは0度です。回転はビルド時または実行時に設定できます。
ビルド時に回転を設定するには、マニフェストのconfigセクションにdriverRotationを含めます:
"config": {
"driverRotation": 180
},
実行時に回転を設定するには、グローバルのscreenのrotationプロパティを変更します。
screen.rotation = 180実行時にrotationを設定しても、ディスプレイはすぐには更新されません。回転を設定した後、アプリケーションは強制的に更新を行う必要があります。
import Timer from "timer";
let acc = new Host.Accelerometer;
Timer.repeat(() => {
let sample = acc.sample();
trace(`sample x: ${sample.x}, y: ${sample.y}, z: ${sample.z}\n`);
}, 100);
注意: 加速度計の値は画面の回転(ディスプレイの回転を参照)に従うため、画面の回転が180度の場合、xとyは反転します。
Moddable Fourは、コイン電池で長期間動作するように設計されています。ハードウェアは最大限のエネルギー効率を達成するために慎重に設計されています。以下は、さまざまな動作モードで使用されるエネルギーです:
- アイドルモード - 3.7 uA - RAMが維持され、ユーザー入力を待機中、画面やセンサーの読み取りの間。
- ディープスリープ - 1.85 uA - ソフトウェアは実行されていません。指定された期間後に自動的にウェイクアップします。保持RAMのみが維持されます。
- デジタルウェイク - 1.9 uA - ディープスリープと同様ですが、デジタル入力の状態変化でもウェイクアップします。
- アナログウェイク - 2.7 uA - ディープスリープと同様ですが、アナログ入力が指定された閾値を超えるとウェイクアップします。
Moddable Fourには多くのエネルギー管理APIが用意されています。これには以下が含まれます:
- ディープスリープ
- リテンションRAM
- デジタルウェイク
- タイマーウェイク
- アナログウェイク
- モーションウェイク(加速度計を使用)
詳細については、nRF52 Low Power Notesを参照してください。さまざまなスリープおよびウェイクアップモードの例は、$MODDABLE/build/devices/nrf52/examples/sleepにあります。
一般的な問題とその解決方法については、nRF52 ドキュメントのトラブルシューティングセクションを参照してください。
Moddable SDKシミュレーター、mcsimにはModdable Fourシミュレーターが含まれています。これを使用するには、mcconfig を使用してビルドする際に sim/moddable_four プラットフォームを使用します:
mcconfig -d -m -p sim/moddable_four
シミュレーターには、Moddable Fourの多くのユニークなハードウェア機能のコントロールが含まれています。表示メニューの「Show Controls」と「Hide Controls」を使用して、それらの表示を切り替えることができます。
また、コンピューターのキーボードを使用してジョグダイヤルとボタンを操作することもできます:
- ジョグダイヤル時計回り – 上矢印
- ジョグダイヤル反時計回り – 下矢印
- ジョグダイヤル押下 – エンター
- バックボタン – デリート
Moddable Fourシミュレーターは、Moddable Fourハードウェアがオフスクリーンで画像をレンダリングする方法に一致する8ビットグレースケールで画像をレンダリングします。Moddable Fourのディスプレイドライバは、表示のために8ビットグレースケール画像をモノクローム(1ビット)に変換し、オプションでディザリングを行います。
Moddable SDKには、その多くの機能を示す150以上のサンプルアプリがあります。これらの多くのサンプルはModdable Fourで動作します。
CommodettoとPiuを使用する多くのサンプルは、カラーQVGAスクリーン用に設計されています。これらはModdable Four上でも動作しますが、レンダリング時に色がディザリングされ、一部の画面が切り取られることがあります。すべてのサンプルがModdable Fourハードウェアと互換性があるわけではありません。一部のサンプルは、Moddable Fourディスプレイと互換性のない特定のディスプレイおよびタッチドライバをテストするために設計されており、ビルドエラーが発生します。
nRF5デバイスとSDKのドキュメントは、Nordic Semiconductor Infocenterで見つけることができます。特に興味深いのは、Nordic nRF5 SDK v17.0.2のドキュメントで、こちらから入手できます。
Moddable SDKのドキュメントはdocumentationディレクトリにあります。documentation、examples、modulesディレクトリは共通の構造を持っており、情報を簡単に見つけることができます。以下はそのハイライトの一部です:
- Using the Moddable SDK with nRF52では、開発のためのセットアップ方法、サポートされているデバイスなどについて説明しています。
- nRF52 Low Power Notesでは、消費電力を最小限に抑えてバッテリー寿命を最大化するための技術とAPIについて説明しています。
commodettodirectoryには、2DグラフィックスAPIを提供するビットマップグラフィックスライブラリであるCommodettoと、軽量レンダリングエンジンであるPocoに関連するリソースが含まれています。piudirectoryには、複雑でレスポンシブなレイアウトを作成するためのユーザーインターフェースフレームワークであるPiuに関連するリソースが含まれています。pinsdirectoryには、サポートされているハードウェアプロトコル(デジタル、アナログ、PWM、I²Cなど)に関連するリソースが含まれています。一般的な市販センサーのドライバと対応するサンプルアプリも多数利用可能です。
質問がある場合は、私たちがサポートします。バグに遭遇した場合は、issueを開くことをお勧めします。質問がある場合は、ディスカッションを開始するか、Gitterで私たちに尋ねてください。できるだけ早く対応し、他の開発者もあなたの質問に対する回答から助けを得ることができます。多くの質問はすでに回答されているので、新しい質問をする前に過去のissueやディスカッションを検索してみてください。
私たちの活動をフォローする最良の方法は、Twitter (@moddabletech) でフォローすることです。新しい投稿に関するお知らせや、ブログの他のModdableニュースを投稿しています。



