🎡 観覧車 v7 — 自動回転・安全版(9/23 生成AIなんでも展示会)
7/24 AI Dev Day で展示した手回し観覧車(v6)を、モーター+ウォームギアで回転を完全に固定した自動回転システムに再構築します。既存の印刷パーツ(リム8・ハブ2・支柱・ゴンドラ4・Φ8鋼シャフト・LED一式)はそのまま流用し、追加するのは「支柱上部1個・モーターブラケット・制御基板+筐体」だけです。
7/24 に起きたこと(再設計の理由)
- 実機スタックチャン(K151・約190g)を乗せると ゴンドラが重く、来場者がクランクを速く回すと振り子が振れ切ってスタックチャンが飛び出すことがあった。
- クランク直結(減速なし)なので、子どもが触れば何回転でも回せてしまう。回転速度を機構で制限できないのが根本原因。
v7 の結論
- 駆動: JGY-370 12V ウォームギアモーター(3rpm) をΦ8シャフトに直結。ウォームは逆駆動不能(セルフロック)=外からリムを押しても回らない。回転速度は 3rpm 固定(1周20秒・リム周速 47mm/s)なので振り子は振れない。
- 安全: 非常停止(12V物理遮断)+モータードライバの電流制限(1.25A)+ホールセンサによるストール検知+モーター/カップリングは箱型ブラケットで覆う。
- 制御: EasyEDA で AtomS3R キャリア基板(電源・DRV8871・コネクタ)を作り JLCPCB へ発注。MCU は手持ちの AtomS3R を挿すだけ。LED ファームはそのまま統合。
- 印刷は先行: 新規パーツ 5 種(合計約 5 時間)を今週中に印刷する。基板が届く前に機構は組めるようにする。

cad/ferris/assembly.scad PART="all-v7"のレンダリング。3D組立シミュレーターにも「駆動」「制御」グループとして反映済み(モーターブラケット・カップリング・モーター・制御ボックス・基板・操作パネル・配線)。
内部構造(9/10 発注内容を反映)




- 駆動部: 前支柱の外面に箱型ブラケット(M3×4)。内部で Φ8 鋼シャフトの突出 20mm にアルミ フレキシブルカップリング(6×8)を通し、JGY-370 の Φ6 D 軸と接続。ギアボックスはブラケット外面にフランジ固定、モーター缶は下向き。
- 制御ボックス: 左に基板 80×60(JLCPCB 発注レイアウトの部品位置を CPL から取り込み)。AtomS3R は縦向き 2 本のメスヘッダ(列間 15.24mm)に装着し、画面が蓋の窓の直下に来る。右の操作部ベイに非常停止・ツマミ・ボタン。コネクタは全て基板の上辺(ホイール側)。
- 3D 組立シミュレーターでは「制御」グループの 蓋・トレイ・基板・AtomS3R・操作パネル、「駆動」グループの ブラケット・カップリング・モーター が別パーツになっており、パーツ名クリックで非表示、「透視(内部構造)」でスケルトン表示、「分解距離」で分解ビューにできる。
制御の構成(PCB は「土台」・頭脳は AtomS3R)
- AtomS3R を基板のソケットに挿す。モーター PWM・ポット・ホール・ボタン・非常停止検知は Atom の底面 6 GPIO、LED は従来通り Grove から出す。
- 基板に載るのは接続部分だけ: 12V 入力(ジャック・ヒューズ・逆接保護)→ モータードライバ DRV8871 → モーター用コネクタ、12V→5V 降圧(LED・Atom 給電)、LED データのレベルシフタ、各パネル部品用の XH コネクタ。マイコン・無線・書込み回路は基板に無い。
- 非常停止・速度ツマミ・RUN/STOP ボタンは筐体の蓋の操作部ベイ(基板の隣)に付け、基板へは XH ケーブルで接続。基板の上には何も垂れないので部品高さの制約なし。
「ギアで固定」の解釈と方式選定
| 方式 | 回転の固定 | 実装量 | 判定 |
|---|---|---|---|
| ウォームギアモーター直結(採用) | モーター停止中もリムは動かない(セルフロック)。速度はモーターで固定 | 支柱1・ブラケット1・基板 | ✅ 最小変更で要件を満たす |
| 印刷平歯車+DCモーター | 逆駆動できてしまう(減速比を上げれば重いが固定ではない) | 大歯車+ピニオン+軸受 | ✖ 固定にならない |
| ステッピングモーター(28BYJ-48 等) | 通電中は保持。トルク 0.03N·m で不足(必要 0.52N·m) | 追加減速機構が必要 | ✖ トルク不足 |
| ゴンドラ水平保持ギア(太陽歯車+アイドラ) | ゴンドラの振れを機構で禁止 | 歯車 12 枚+固定歯車支持 | ⏸ 低速回転なら不要。9/23 後の拡張候補(付録) |
必要トルクの見積り: 最悪ケース=片側 2 台・反対側 0 台 → 2 × 0.19kg × 9.81 × 0.14m = 0.52 N·m(5.3 kgf·cm)。JGY-370 12V 3rpm の定格トルクは約 10 kgf·cm(RobotShop 仕様・Amazon 掲載値は 25 kgf·cm)→ 余裕 1.9〜4.7 倍。4 台満載の通常運用では不均衡はほぼゼロ。
挟まれリスク: 定格 10 kgf·cm がリム外周 r=150 に出す力は 0.98 N·m / 0.15 m ≈ 6.5 N(0.67 kgf)。さらに DRV8871 の電流制限で実トルクはこれ以下。指を挟んでも怪我にならない領域で、かつ 47mm/s の低速。
機構設計
配置(組立座標・cad/ferris/assembly.scad PART="all-v7")
後支柱 前支柱(旧クランク側)
|‖ ハブ リム ゴンドラ リム ハブ ‖| ブラケット(47) ギアボックス(21.5)
|‖ ● ║ ▢ ║ ● ‖|▓▓▓▓▓▓▓▓▓▓▓|■■■■■|
───────────────── Φ8 シャフト ──────────────────╪══ Φ6 D ══
y=-118 y=98 (カップリング 106..131) y=145 ギアボックス面| 項目 | 値 | 根拠 |
|---|---|---|
| モーター位置 | 前支柱(旧クランク側)の外面、シャフト同軸 | 既存の Φ9 すべり軸受・ハブ・シャフトを無改造で流用 |
| シャフト | 12mm 後ろへずらす(両端の突出を 20mm に揃える) | v6 はクランク側 32・後 8 だった。ハブの M3 を緩めてスライドするだけ。実棒長を要実測 |
| カップリング | アルミ フレキシブルカップリング 6×8mm D20 L25(Amazon) | 印刷軸受の芯ずれを吸収。フォールバック=印刷リジッドカプラー motor-coupler |
| ブラケット | 箱型 48×68×47(支柱プレート4 + 側壁5×2 + 天板 + モーターフランジ4)、下面開放 | カップリングを覆う=挟まれガード兼用。下からモーター缶が垂れ、六角レンチも下から入る |
| 支柱への固定 | tower-upper-motor = 従来の上支柱 + 外面に Φ2.9 パイロット 4 点(±14, ±14) | M3×12 セルフタップ×4(既存の Φ2.9 実績)。旧上支柱を使うなら、ブラケットをテンプレートにΦ2.5 で穴あけしても可 |
| モーター固定 | フランジ 4 穴(18×33 ピッチ・軸は上列の 9mm 下)→ ギアボックスのM3 ねじ穴へ M3×8(手持ち) | JGY-370 図面(Seeed 108990007) |
| モーター向き | 缶が下向き(ギアボックス長辺が鉛直)。缶下端 z≈211 で干渉なし | 上向きより重心が低く、見た目も隠れる |
| 基板筐体 | 131×67×42 のトレイ+蓋。左に基板 80×60(Atom 窓)、右の操作部ベイに非常停止・速度ツマミ・RUN/STOP。モーター側ベース端の外に置く | 基板寸法・穴位置は params.scad pcb_* / panel_* で先に固定 |
干渉チェック(assembly.scad の側面・上面図で確認済み): ブラケット y=98..145、ギアボックス y=145..166.5。ゴンドラ可動域 |y|≤45、リム |y|≤65 → 十分離れている。テーブル占有はモーター側に +70mm(350→約 420mm 幅)。
新規印刷パーツ(今週中に印刷)
STL(make -C cad ferris) | 個数 | 目安時間 | 色 | 備考 |
|---|---|---|---|---|
ferris/tower-upper-motor.stl | 1 | 2.2h | アッシュグレー | 前支柱の上半分と差し替え。既存プロファイル厳守(0.4ノズル・0.2mm・実績設定) |
ferris/motor-bracket.stl | 1 | 1.0h | アッシュグレー | 支柱プレート面を下にして印刷。フランジ下 45° 面取りでブリッジ 26mm |
ferris/motor-coupler.stl | 1 | 0.3h | 任意 | 保険(アルミカップリング未着時)。立てて印刷、M3 直タップ×2 |
ferris/ctrl-box-tray.stl | 1 | 2.4h | 任意 | 基板より先に印刷可(寸法は params で固定済み)。内寸高 40・右に操作部ベイ |
ferris/ctrl-box-lid.stl | 1 | 0.6h | 任意 | Atom 窓 25×25・ベイに非常停止 Ø22・ポット Ø7・ボタン Ø16・通気スリット |
| 合計 | 約 6.5h | 7/24 で破損・紛失したパーツがあればここに追加して同時に流す |
再生成: make -C cad ferris && python3 cad/check_dims.py print/files/ferris(5 パーツとも ≤250・接地・寸法 OK 確認済み)。
電装設計(制御基板 = AtomS3R キャリア)
MCU を新規に基板へ載せず、手持ちの AtomS3R をソケットに挿す構成にします。理由: (1) 既存 LED ファームと書込み環境をそのまま使える、(2) 画面とボタンが付いてくる(状態表示・現場操作)、(3) JLC 組立部品が電源とドライバだけになり、基板の失敗リスクが最小。
詳細(ネットリスト・BOM・発注手順・プラン B)は hardware/ferris-ctrl-pcb/README.md と bom-jlcpcb.csv。
12V 2A ACアダプタ ─ 2Aポリスイッチ ─ 逆接保護 ─┬─ [非常停止 常閉] ─ DRV8871 (ILIM 1.25A) ─ JGY-370
└─ LM2596S-5.0 (3A) ─┬─ AtomS3R 5V
└─ SK6812 60LED ×2(既存)
AtomS3R: G5/G6=PWM → DRV8871、G7=速度ポテンショ、G8=ホールセンサ、G38=RUN/STOPボタン、G39=非常停止検知
Grove G1/G2 → 74AHCT1G125 → LED Din(既存配線・JST SM ピグテールをそのまま接続)| 項目 | 仕様 |
|---|---|
| 基板 | 80×60mm・2層・M3×4(角から4mm)・Atom 中心 (20,30)・コネクタは +Y 辺 ← cad/params.scad の pcb_* と同期 |
| モータードライバ | TI DRV8871DDAR(JLC C75864)3.6A・R_ILIM=51kΩ で 1.25A チョッピング=ストール時のトルク上限 |
| 電源 | 12V 2A(モーター定格 0.2A・LED 上限 0.9A・Atom 0.3A → 余裕大) |
| 非常停止 | 22mm キノコ型(1NC+1NO)。NC でモーター 12V を物理遮断、NO で Atom に検知 |
| 速度 | 10kΩ ポテンショ → 30〜100% デューティ(ウォームは低デューティで止まるため下限あり) |
| ストール検知 | ハブ外周に Ø5 磁石 1 個 + A3144 ホール。想定周期(20s)の 2.5 倍パルス無しで停止・赤表示 |
基板レイアウト(EasyEDA・2026-09-09)


EasyEDA プロジェクト stackchan-ferris-ctrl-v7。Nets 25/25・DRC 0。AtomS3R ソケットは公式 3D モデルと回路図から列間隔 15.24mm・ピン並び(5 ピン列 3V3/G5/G6/G7/G8、4 ピン列 G39/G38/5V/GND)を確定。Gerber・BOM・CPL は
hardware/ferris-ctrl-pcb/fab/に書き出し済み(JLCPCB 発注待ち)。
ファームウェア firmware/ferris_ctrl/ferris_ctrl.ino(コンパイル済み・AtomS3R)
- 起動=STOP。外部ボタン短押し/画面ボタン長押しで RUN⇄STOP。RUN は 2 秒ソフトスタート。
- 画面: 状態(STOP/RUN/STALL/E-STOP)・速度%・LED 輝度・周回数。画面ボタン短押しで LED 輝度 50/25/100/OFF(従来と同じ)。
- LED レインボーは
led_rainbow.inoと同一(電流上限 900mA)。 - 非常停止中は PWM=0 かつ 12V も遮断。復帰は非常停止解除→ボタン。
安全設計まとめ(子ども対応)
| リスク | 対策 |
|---|---|
| 手でリムを回される | ウォームのセルフロック=回らない(無理に回すとモーターの歯を痛めるので、リム外周に「さわらないでね」表示+スタッフ声かけ) |
| ゴンドラを押す・引く | 3rpm で振り子は自然に静止。ゴンドラは従来通り自由振子(ロックすると逆さになる)。搭乗機はゲルテープ+2段ポケット+ラップバー |
| 指を挟む | トルク上限(電流制限)・周速 47mm/s・カップリング/モーター軸はブラケットで密閉 |
| 暴走・故障 | 非常停止(物理遮断)・ストール検知・ポリスイッチ・逆接保護 |
| 発熱 | JGY-370 定格 0.2A・連続運転 4h 想定でも問題なし。筐体に通気スリット |
🛒 購入リスト(Amazon・今日発注)
| 品目 | 数量 | 目安 | リンク/メモ |
|---|---|---|---|
| BRINGSMART JGY-370 12V 3rpm ウォームギアモーター | 1(+予備1推奨) | ¥2,400 | dp/B0H4LVSYVV または dp/B01HGCSBDM(7/15 調査品) |
| フレキシブルカップリング 6×8mm D20 L25(アルミ・ビーム or ジョー型) | 1 | ¥600〜1,000 | 「カップリング 6mm 8mm」で検索(Saipor/uxcell 等)。ジョー型なら芯ずれ吸収大 |
| AC アダプタ 12V 2A(5.5×2.1mm センタープラス・PSE) | 1 | ¥1,400 | 7/15 調査 dp/B00AJDAPM6 |
| 非常停止スイッチ 22mm キノコ型 1NC+1NO | 1 | ¥800 | パネル取付け。筐体蓋 or 木板に取り付け |
| 10kΩ ボリューム+ツマミ、モーメンタリ押しボタン(16mm) | 各1 | ¥600 | |
| A3144 ホールセンサ+ネオジム磁石 Ø5×2 | 各数個 | ¥500 | 任意(無ければファームの HALL_ENABLED=false) |
| M3×12 なべ小ねじ(50本) | 1 | ¥300 | 支柱→ブラケット(既存 M3×8 はフランジ→ギアボックス用に流用) |
| JST XH 2/3/4P コネクタ+コンタクト+ケーブル | 一式 | ¥800 | 基板⇄パネル部品。手持ちがあれば不要 |
| 小計 | 約 ¥7,500 | ||
| JLCPCB 基板 5 枚+PCBA(Economic)+DHL | 1 | ¥7,000〜9,000 | 9/8 までに発注 |
📅 スケジュール(9/3 水 → 9/23 水)
| 日 | 作業 | 成果物・判断 |
|---|---|---|
| 9/3(水) | 設計凍結(本ページ)・Amazon 発注・印刷開始(tower-upper-motor → bracket → 筐体) | 部品着荷 9/5〜9/7 |
| 9/4(木)〜9/6(土) | EasyEDA 回路図→レイアウト→DRC。params.scad pcb_* と外形・穴・Atom 位置を一致 | Gerber/BOM/CPL |
| 9/8(月) | JLCPCB 発注(PCBA Economic・DHL) ← ここが最終期限 | 着荷見込み 9/15〜9/18 |
| 9/6〜9/10 | モーター着荷 → ブラケット組付け・カップリング接続・ブレッドボード+DRV8871 モジュール(プランB回路)で回転テスト・ファーム実機確認 | 1周 20 秒・4 台満載で 30 分連続運転 |
| 9/11〜9/14 | 非常停止・ポテンショ・ボタンの筐体組込み、ホール取付け、LED 統合、ケーブル長確定 | |
| 9/15〜9/19 | 基板着荷 → THT はんだ → 実装差し替え → 2 時間連続運転試験・ストール/非常停止試験 | 合否記録 |
| 9/20〜9/22 | 予備品準備(モーター・カップリング・M3・ACアダプタ)・搬入梱包・当日手順更新 | |
| 9/23(水) | 展示 |
基板が 9/19 までに届かない場合: プラン B(DRV8871 ブレイクアウト+LM2596 モジュール+ユニバーサル基板)で同じ筐体に組む。回路とファームは共通なので切替コストは半日。
未確定・要実測(ユーザー確認事項)
- Φ8 鋼シャフトの実長(設計上 236mm 想定)。両端 20mm 突出が取れるか。短ければ
shaft_protrudeを下げる(最小 14)。 - AtomS3R 底面ヘッダの実ピッチ・列間隔(EasyEDA ライブラリ "M5Stack ATOM" のフットプリントを使い、印刷前にノギス確認)。
- 7/24 で破損・紛失したパーツの有無(あれば印刷リストに追加)。
- 会場の電源(AC100V)の有無。無ければ 12V モバイル電源(PD トリガー 12V)に変更。
付録: ゴンドラ水平保持ギア(オプション・9/23 後)
固定太陽歯車(支柱に固定・シャフトと非結合)+各ゴンドラ軸の同歯数歯車をアイドラ 1 枚で結ぶと、リムが回ってもゴンドラ歯車は世界座標で回転せず、ゴンドラが常に水平に機構固定されます(ω_gondola = ω_rim × (1 − N_sun/N_gondola) = 0)。m1.5 で 太陽 40T(r30)・ゴンドラ 40T(r30)・アイドラ pitch Ø80 の 3 段が半径 140 に収まります。歯車 12 枚(約 6h 印刷)とリム片側の再設計が必要なため、v7 では採用せず低速回転で代替します。