プロフェッショナル360°撮影用ターンテーブル:自動回転で美しい撮影を実現
必要な部品と材料
| 部品 | 数量 |
|---|---|
| Arduino UNO | 1 |
| プッシュボタン付きロータリーエンコーダー | 1 |
| Adafruit 標準LCD - 16x2 白文字/青背景 | 1 |
| SparkFun ステッピングモータードライバーボード A4988 | 1 |
使用するアプリとオンラインサービス
- circuito.io
プロジェクト概要
撮影用ターンテーブルは、写真家が物体や人物を360°撮影するために使用する円形の台です。物体をプレートの正確な中心に置き、手動または自動で回転させることで、あらゆる角度から製品の良いショットを得ることができます。
この撮影用ターンテーブルの特徴は?
- 全自動 – テーブルを回したりカメラのシャッターを切ったりする必要がありません
- カメラとテーブルの同期 – テーブルとカメラの両方をトリガーするようにプログラムされています(現時点ではCanonのみ対応、Nikonは申し訳ありません)。ボタンを押すだけで回転と撮影の両方を行うので、座って待つだけです
- 高精度でセットアップが簡単 – ステッピングモーターを使用し、撮影したい角度に対する高い精度と制御を実現
回路構築を開始するにはこちらをクリック。
メカニクス
レーザーカットパーツ
撮影用ターンテーブルには4つのレーザーカットパーツがあります。パーツによって3種類の厚みの白色アクリル(プレキシガラス)を使用しました。Pololuが手頃なレーザーカットサービスを提供しています。
パーツは以下の通り:
- 円形プレート – 10mm アクリル
- 2つのギア – 8mm アクリル
- ベースケース – 3mm アクリル
.aiファイルはThingiverseで入手可能です。

ギアはgeargenerator.comで設計し、Illustratorにエクスポートしてネジ穴を追加しました。
小さいギアのドリル穴は少し小さめにして、ステッピングモーターにしっかり固定できるようにしました。
ケースはmakercaseで設計し、Tスロットを選んで接着しました。ケース設計後、Illustratorにエクスポートし、LCDディスプレイ用のスペースを作りました。
材料とツール
プレート、ギア、ケースを接続するために必要なもの:
- レイジースーザンベアリング
- M3 12mmネジ × 4
- M3 16mmネジ × 4
- M4 12mmネジ × 8
- M4ナット × 8
- M3真鍮製インサートナット × 4
- M3 5mmメスネジ真鍮製六角スペーサー × 8 または M3 5mm真鍮製インサートナット × 8
材料:
- アクリル用接着剤
- 瞬間接着剤
ツール:
- 電動ドリル
- はんだごて
- ノギス
エレクトロニクス
メインコンポーネント
- Arduino Uno
- ステッピングモーター
- ロータリーエンコーダー
- LCD 16×2 I2C
- IR LED
セカンダリコンポーネント
- EasyDriver
- トランジスタ + 抵抗
- メスバレルジャック
配線
- EasyDriver
- トランジスタ + 抵抗
- メスバレルジャック
配線
詳細な配線図はこちら。

ステップバイステップガイドとコードについては、Bill of Materialsタブの「project guide」をクリックしてください。
すべてが正しく接続されて動作することを確認したら、小さなシールドを作成できます。シールドは永続的な回路に適しており、よりコンパクトです。一方、ブレッドボードはテストと計画に適しており、コンポーネントを簡単に接続・切断できます。
これらのコンポーネントを選んだ理由
- ステッピングモーター – 精度が高く使いやすい。角度間のステップ数をカウントするように設定できるため、プログラミングがはるかにシンプル
- カメラトリガー用赤外線LED – 最小限のセットアップでワイヤレス接続を実現したかった。CanonカメラのIRコードを見つけて設定しました。Nikonでも同じことができます
- ロータリーエンコーダー – メニュー操作のローカルオプションとして、LCD画面とロータリーエンコーダーを採用。WiFiモジュールを接続してIoTダッシュボードを作り、ワイヤレスで制御することも可能
コード
コードの使用手順
- circuito.ioからテストコードをアップロードして回路をチェック
- GitHubリポジトリにアクセス
- photo-turntable.inoをダウンロード
- 元のコードから「include libraries」と「pin definitions」を残して、16行目からコードをコピー
- ピンが正しく設定されているか確認
- 新しいコードをアップロード
コードのロジック
16×2 LCDとプッシュボタン付きロータリーエンコーダーを使用した基本的なメニューを実装しています。
Firmware.inoでは以下が見られます:
- ピン宣言
- コンポーネント設定
- コンストラクタ
- circuito.io提供のsetup()関数
loop関数は、ロータリーエンコーダーの状態(左または右)とボタンの読み取りから始まります。
メニューはswitch-case有限状態マシンで実装され、以下の状態をナビゲートします:
- VIDEO – 動画モードに入る
- CHANGESPEED – ターンテーブルの速度を設定 0-100%
- SPEED
- VIDSTART – 動画モードでターンテーブル開始
- VIDBACK – HOMEに戻る
- STILLS – 静止画モードに入る
- CHANGEANGLES – 角度数を設定
- ANGLES
- STILSTART – 静止画モードでターンテーブル開始
- STILBACK – HOMEに戻る
- HOME – アイドル状態
エンコーダーの回転で状態を切り替えます。
ボタンクリックで選択します。
SPEEDとANGLESの2つの状態で、静止画モードの停止ポイント数と動画モードの回転速度を担当する変数を変更できます。
VIDSTART – video()関数を呼び出します:
- IR LEDを使用してカメラに録画開始IRコードを送信
- 選択した速度でテーブルを1回転させる
- IR LEDを使用してカメラに録画停止IRコードを送信
注:スムーズな開始と停止のため、最初と最後の600ステップで3次加速・減速を実装しています。
STILSTART – stills()関数を呼び出します:
- 1回転を設定された角度数で分割
- 各角度でIR LEDを使用してカメラに単写撮影IRコードを送信
- 次の角度に達するまでテーブルを回転
注 – ここでも最初と最後の600ステップで3次加速・減速を実装しています。
組み立て
- 迅速かつ簡単な組み立てのため、プロトタイプシールドを使用。ジャンパーワイヤーとメスヘッダーでコンポーネントとArduinoを快適に接続できます
- ジャンパーワイヤー 2ピン – IR LED用
- ジャンパーワイヤー 4ピン – LCD用
- ジャンパーワイヤー 5ピン – ロータリーエンコーダー用
- 電源とArduinoの接続には、DCバレルジャックプラグ – オスとDCバレルジャック – パネルマウントを使用して延長コードを作成し、グランドとVCC間にワイヤーをはんだ付け。パネルマウントバレルジャックを背面パネルに、オスをArduinoに接続。これで電源を背面壁に接続できます
以下の画像とともに手順に従ってください:






















コード
撮影用ターンテーブルのコード
https://github.com/Circuito-io/photo-turntable
マルチカメラ制御(IR)
https://github.com/dharmapurikar/Arduino/tree/master/libraries/multiCameraIrControl
カスタムパーツとエンクロージャ
プレキシガラス設計ファイル
Thingiverse.comのCADファイル
ロータリーエンコーダーノブ
Thingiverse.comのCADファイル
回路図
https://bit.ly/photo-turntable-circuit
製造プロセス