新しい I2C デバイス(GPIO・SPI デバイスも同様)のドライバを追加する手順です。
feat/<デバイス名>)packages/hello-world をコピーして新パッケージを作成するpackage.json / index.js / README.md を編集するnpm install して package-lock.json を更新する1. ブランチの作成
共通の Git ワークフロー に従い、feat/<デバイス名> という名前のブランチを作ります。
git checkout master
git pull upstream master
git checkout -b feat/example-sensor
2. テンプレートからパッケージを作成
最小構成のテンプレート packages/hello-world/ をコピーして、新しいディレクトリを作ります。ディレクトリ名はデバイス型番の小文字にします(例: adt7410, mpu6050)。
cp -r packages/hello-world packages/example-sensor
3. ファイルの編集
| ファイル | やること |
|---|---|
package.json |
name, description, version, repository.directory を更新。I2C ドライバなら peerDependencies に node-web-i2c を追加 |
index.js |
センサーの読み取りロジックをクラスとして実装 |
README.md |
仕様・使い方・API リファレンスを記述(日本語推奨) |
package.json と index.js のテンプレートは 付録 を参照してください。
実装の参考ドライバ:
| 難易度 | パッケージ | 特徴 |
|---|---|---|
| 最小構成 | packages/hello-world/ | パッケージ構造の雛形 |
| シンプル | packages/adt7410/ | I2C 温度センサー |
| 複雑 | packages/amg8833/ | 赤外線アレイセンサー |
4. フォーマット
npx prettier --write packages/example-sensor/
5. package-lock.json の更新
新パッケージを workspace に追加したため、リポジトリのルートで以下を実行します。
cd /path/to/chirimen-drivers
npm install
6. コミットと PR
git add packages/example-sensor/ package-lock.json
git commit -m "feat: add example-sensor driver"
git push origin feat/example-sensor
共通の Git ワークフロー に従い、GitHub で Pull Request を作成します。PR がマージされると、GitHub Actions が自動的に npm へ公開します。
7. サンプルコードと写真の追加(推奨)
実機での動作確認を兼ねて、chirimen.org リポジトリ に CHIRIMEN 用のサンプルを追加します。初めてデバイスを使う人がすぐに試せるようになるので、動作するハードウェアがある場合はぜひ追加してください。
7-1. サンプルコードを作成する
pizero/src/esm-examples/ 以下に新しいディレクトリを作り、既存のサンプルを参考に次の 2 ファイルを置きます。
main.js — 動作するサンプルコードreadme.md — 説明文。実体配線図(Fritzing)の掲載を推奨します。デバイスの Fritzing パーツが存在しない場合は、パーツコンテンツの作成も推奨します7-2. サンプル一覧を更新する
index_examples.csv に、他の行を参考にレコードを 1 行追加します。
7-3. パーツリストと写真を追加する