10cm / 15cm の人型ぬいぐるみに内蔵するロボット骨格システム
🧸 ぬいぐるみに命を吹き込もう!
ぬいぐるみの中に3Dプリント製の骨格とサーボモーターを組み込み、 スマホアプリからBluetooth経由で制御して「ちょっと動く」を実現します。
- 手振り動作 - 両腕を前後に振る(左右独立制御)
- 直立補助 - 足裏に重りと磁石で安定して立つ
- 呼吸動作 - 胸部が上下して呼吸しているように見える
┌─────────────────────────────────────────────────────────┐
│ スマホアプリ (Flutter/React Native) │
│ ・プリセット動作ボタン │
│ ・Bluetooth BLE接続 │
└─────────────────────────────────────────────────────────┘
│ BLE
▼
┌─────────────────────────────────────────────────────────┐
│ ESP32-WROOM-32 / ESP32-C3 │
│ ・BLE Server │
│ ・PWMサーボ制御 (3ch) │
└─────────────────────────────────────────────────────────┘
│ PWM信号
▼
┌─────────────────────────────────────────────────────────┐
│ SG90 マイクロサーボ × 3 │
│ ・左腕用 (GPIO 13) │
│ ・右腕用 (GPIO 12) │
│ ・呼吸用 (GPIO 14) │
└─────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────┐
│ 3Dプリント骨格 (PLA) │
│ ・胴体フレーム │
│ ・肩関節(サーボマウント) │
│ ・腕ボーン │
│ ・呼吸機構(リンク式) │
│ ・足(重り+磁石ホルダー) │
└─────────────────────────────────────────────────────────┘
| 部品 | 型番/仕様 | 数量 | 備考 |
|---|---|---|---|
| マイコン | ESP32-C3-DevKitM-1 | 1 | 小型、BLE対応 |
| サーボ | SG90 (9g) | 3 | トルク1.8kg/cm |
| 電池ホルダー | 単3×3本用 | 1 | 4.5V出力 |
| 単3電池 | アルカリ乾電池 | 3 | - |
| 磁石 | ネオジム φ5×2mm | 4 | 足裏用 |
| 重り | 鉛/タングステン粒 | 適量 | 足裏バランス用 |
- 入力: 4.5V (単3×3本)
- ESP32: 3.3V (内蔵レギュレータ使用)
- SG90: 4.5V直結(動作電圧4.8-6V、4.5Vでも動作可)
- 消費電流(概算):
- ESP32 (BLE動作時): 約80mA
- SG90 × 3 (動作時): 約600mA (最大)
- 合計: 約700mA (ピーク時)
- 予想稼働時間: 約2-3時間(動作頻度による)
15cm版(標準)
- ぬいぐるみサイズ: 高さ15cm
- 骨格最大幅: 約4cm(胴体部)
- 骨格最大厚: 約2.5cm
- 腕の長さ: 約3.5cm
- サーボ: SG90 (9g)
10cm版(コンパクト)
- ぬいぐるみサイズ: 高さ10cm
- 骨格最大幅: 約2.4cm(胴体部)
- 骨格最大厚: 約1.4cm
- 腕の長さ: 約2.2cm
- サーボ: SG51R (5g) または 振動モーター
- BLE GATT Server
- PWMサーボ制御
- プリセット動作シーケンス
- BLE接続管理
- プリセット動作ボタンUI
- 対応: iOS / Android
| 動作名 | 説明 |
|---|---|
| 挨拶 | 右手を振る(3回) |
| バイバイ | 両手を振る(交互に3回) |
| 呼吸ON | ゆっくり胸が上下し続ける |
| 呼吸OFF | 呼吸を停止 |
| 元気 | 両手を大きく振る + 速い呼吸 |
| おやすみ | 動作を全て停止 |
nuibone/
├── README.md # このファイル
├── ASSEMBLY.md # 組み立てガイド
├── hardware/
│ ├── 3d_models/ # OpenSCAD/STLファイル
│ │ ├── config.scad # 15cm版 共通設定
│ │ ├── config_10cm.scad # 10cm版 共通設定
│ │ ├── body_frame.scad # 15cm版 胴体フレーム
│ │ ├── body_frame_10cm.scad # 10cm版 胴体フレーム
│ │ ├── arm_bone.scad # 15cm版 腕ボーン
│ │ ├── arm_bone_10cm.scad # 10cm版 腕ボーン
│ │ ├── breathing.scad # 呼吸機構
│ │ ├── foot.scad # 15cm版 足
│ │ ├── foot_10cm.scad # 10cm版 足
│ │ ├── full_assembly.scad # 15cm版 フルアセンブリ
│ │ ├── full_assembly_10cm.scad # 10cm版 フルアセンブリ
│ │ ├── print_plate.scad # 15cm版 印刷用
│ │ └── print_plate_10cm.scad # 10cm版 印刷用
│ └── wiring/ # 配線図
├── firmware/
│ └── nuibone_esp32/ # ESP32 Arduinoプロジェクト
└── app/
└── nuibone_app/ # Flutterアプリ
| サイズ | 推奨サーボ | 推奨電源 | 推奨マイコン |
|---|---|---|---|
| 15cm | SG90 (9g) | 単3×3本 | ESP32-C3 |
| 10cm | SG51R (5g) | LiPo 1S 150mAh | XIAO ESP32C3 |
| 10cm (簡易) | 振動モーター | LiPo 1S 100mAh | XIAO ESP32C3 |
MIT License