Skip to content

Latest commit

 

History

History
319 lines (225 loc) · 19.2 KB

File metadata and controls

319 lines (225 loc) · 19.2 KB

Moddable Four 開発者ガイド

Copyright 2021-2024 Moddable Tech, Inc.
改訂: 2024年4月20日

このドキュメントは、Moddable Fourに関する情報を提供します。ピンやその他のコンポーネントの詳細、アプリのビルドとデプロイ方法、その他の開発リソースへのリンクが含まれています。

Table of Contents

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を書き込むと、ピンと画面の電源がオフになります。

ピン情報

16ピン外部ヘッダの説明

名前 機能 説明
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コネクタ

6ピンJTAGコネクタは、gdbデバッグや新しいブートローダーをModdable Fourにフラッシュするために使用できます。詳細については、nrf52プラットフォームドキュメントを参照してください。

SDKとホスト環境のセットアップ

Moddable Fourでアプリをビルドして実行するには、以下が必要です:

  1. Moddable SDKをインストールする
  2. nRF5ツールをインストールする
  3. 以下のアプリのビルドとデプロイセクションの指示に従う

アプリのビルドとデプロイ

環境とnRF5ツールをセットアップした後、以下の手順に従ってModdable Fourにアプリケーションをインストールします。

  1. Moddable FourをマイクロUSBケーブルでコンピュータに接続します。

    データ同期が可能なケーブルを使用していることを確認してください。電源供給のみのケーブルは使用しないでください。

  2. RESETボタンをダブルタップしてデバイスをプログラミングモードにします。

    プログラミングモードは、起動時にLEDインジケーターが定期的に点滅することで示されます。また、デスクトップにMODDABLE4という名前のディスクが表示されます。

    Moddable Four disk

    注意: 短時間内にデバイスをプログラムしない場合、インストールされたアプリケーションに再起動されます。

  3. mcconfigを使用してアプリをビルドおよびデプロイします。

    mcconfigは、マイクロコントローラおよびシミュレータ上でModdableアプリをビルドおよび起動するためのコマンドラインツールです。mcconfigの完全なドキュメントはこちらにあります。

    Moddable Four用にビルドするには、mcconfigでプラットフォーム-p nrf52/moddable_fourを使用します。piu/ballsのサンプルをビルドします:

    cd $MODDABLE/examples/piu/balls
    mcconfig -d -m -p nrf52/moddable_four
    

    examples readme には、画面の回転などによく使用される他の mcconfig 引数に関する追加情報が含まれています。

    mcconfig でModdable Fourシミュレータ用にビルドするには、プラットフォーム -p sim/moddable_four を使用します。

Moddable Four の使用

Moddable Fourのハードウェアとソフトウェアは、追加のハードウェアなしで多くの種類のアプリケーションをサポートするように慎重に設計されています。ハードウェアの特徴には以下が含まれます:

  • LED
  • バックボタン
  • ジョグダイヤル
  • ディスプレイ電源
  • ディスプレイディザー
  • ディスプレイ回転
  • 加速度計
  • エネルギー管理

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
	},

実行時に回転を設定するには、グローバルのscreenrotationプロパティを変更します。

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度の場合、xyは反転します。

エネルギー管理

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ディレクトリにあります。documentationexamplesmodulesディレクトリは共通の構造を持っており、情報を簡単に見つけることができます。以下はそのハイライトの一部です:

  • Using the Moddable SDK with nRF52では、開発のためのセットアップ方法、サポートされているデバイスなどについて説明しています。
  • nRF52 Low Power Notesでは、消費電力を最小限に抑えてバッテリー寿命を最大化するための技術とAPIについて説明しています。
  • commodetto directoryには、2DグラフィックスAPIを提供するビットマップグラフィックスライブラリであるCommodettoと、軽量レンダリングエンジンであるPocoに関連するリソースが含まれています。
  • piu directoryには、複雑でレスポンシブなレイアウトを作成するためのユーザーインターフェースフレームワークであるPiuに関連するリソースが含まれています。
  • pins directoryには、サポートされているハードウェアプロトコル(デジタル、アナログ、PWM、I²Cなど)に関連するリソースが含まれています。一般的な市販センサーのドライバと対応するサンプルアプリも多数利用可能です。

サポート

質問がある場合は、私たちがサポートします。バグに遭遇した場合は、issueを開くことをお勧めします。質問がある場合は、ディスカッションを開始するか、Gitterで私たちに尋ねてください。できるだけ早く対応し、他の開発者もあなたの質問に対する回答から助けを得ることができます。多くの質問はすでに回答されているので、新しい質問をする前に過去のissueやディスカッションを検索してみてください。

更新情報

私たちの活動をフォローする最良の方法は、Twitter (@moddabletech) でフォローすることです。新しい投稿に関するお知らせや、ブログの他のModdableニュースを投稿しています。