전기적 동기화와 소프트웨어 동기화가 모두 필요합니다. 자세한 지침은 아래를 참조하세요.
전기 배선 가이드
- Leader-Follower 모드
- Follower-Only 모드 (외부 클록)
개요
이 모드는 외부 클록 신호를 사용하지 않는 구성을 위해 설계되었습니다.카메라 한 대를leader 모드(동기화 신호 출력)로, 나머지 카메라 모두를 follower 모드로 사용합니다.Leader/Follower 펌웨어 가이드
Leader와 Follower 모드 사이에서 카메라를 업데이트하는 방법에 대한 가이드를 보려면 여기를 클릭하세요.
배선
예시

프레임 동기화를 위해 연결된 두 대의 카메라의 배선 예시입니다.
개요
이 모드는 모든 카메라에 대한 동기화 신호를 출력하기 위해 외부 클록 신호를 사용하는 구성을 위해 설계되었습니다.이 모드에서는 모든 카메라를follower 모드로 설정해야 합니다.Leader/Follower 펌웨어 가이드
Leader와 Follower 모드 사이에서 카메라를 업데이트하는 방법에 대한 가이드를 보려면 여기를 클릭하세요.
배선
외부 프레임 동기화 사양은 특정 디바이스의 제품 페이지를 확인하세요.외부 클록 신호 생성
Arduino 통합
**Arduino Uno (ATmega328P)**는 현재 이 구성에서 작동이 확인된 유일한 보드입니다.
1
PWM 라이브러리 다운로드
PWM 라이브러리의 소스 코드를 여기에서 다운로드하세요: ArduinoPWM v1.0.0
2
.ZIP 라이브러리 추가
다운로드한 
.ZIP 라이브러리를 Arduino IDE로 가져오세요.
3
스케치 업로드
아래 두 개의 스케치 중 하나를 Arduino에 업로드하세요.이 코드를 사용하면 PWM 신호를 즉시 수정할 수 있습니다.
- Simple Control: 가장 빠르게 시작할 수 있는 방법이지만, FPS를 조정하려면 펌웨어를 다시 플래시해야 합니다.
- Serial Control: 다시 플래시하지 않고도 주파수와 듀티 사이클을 실시간으로 조정할 수 있습니다(디바이스 전원이 꺼지면 설정이 초기화됩니다).
- Simple Control
- Serial Commands
#include <PWM.h>
// Pin configuration
int pin = 9; // Pin
int value = 127; // Initial value for the PWM duty cycle
// SET FREQUENCY HERE
float frequency = 60; // Initial frequency in Hz
void setup()
{
// Initialize all timers except for timer0 to save timekeeping tasks
InitTimersSafe();
// Set the initial PWM frequency and duty cycle
if (SetPinFrequencySafe(pin, frequency))
{
pwmWrite(pin, value);
Serial.println("PWM frequency and initial duty cycle set.");
}
else
{
Serial.println("Failed to set frequency.");
}
}
#include <PWM.h>
// Pin configuration
int pin = 9; // Pin
int value = 127; // Initial value for the PWM duty cycle
float frequency = 60; // Initial frequency in Hz
void setup()
{
Serial.begin(9600);
// Initialize all timers except for timer0 to save timekeeping tasks
InitTimersSafe();
// Set the initial PWM frequency and duty cycle
if (SetPinFrequencySafe(pin, frequency))
{
pwmWrite(pin, value);
Serial.println("PWM frequency and initial duty cycle set.");
}
else
{
Serial.println("Failed to set frequency.");
}
}
void loop()
{
if (Serial.available())
{
// Read frequency and duty cycle values over Serial
String inputString = Serial.readStringUntil('\n');
inputString.trim();
int freqDutySplitIndex = inputString.indexOf(',');
if (freqDutySplitIndex != -1)
{
String freqStr = inputString.substring(0, freqDutySplitIndex);
String dutyStr = inputString.substring(freqDutySplitIndex + 1);
// Parse floats
float newFrequency = freqStr.toFloat();
int newDutyCycle = dutyStr.toInt();
// Validate frequency range
if (newFrequency >= 1 && newFrequency <= 2000000)
{
// Set the PWM frequency and apply duty cycle
if (SetPinFrequencySafe(pin, newFrequency))
{
value = map(constrain(newDutyCycle, 0, 100), 0, 100, 0, 255);
pwmWrite(pin, value);
Serial.print("Set frequency to: ");
Serial.print(newFrequency);
Serial.print(" Hz, duty cycle to: ");
Serial.print(newDutyCycle);
Serial.println("%");
}
else
{
Serial.println("Failed to set new frequency.");
}
}
else
{
Serial.println("Invalid frequency value.");
}
}
else
{
Serial.println("Invalid input format. Use frequency,dutycycle (e.g., 60,50).");
}
}
}
9600 보드에서 시리얼 모니터를 열고 {FREQUENCY},{DUTY_CYCLE} 형식(예: 60Hz에서 50% 듀티 사이클의 경우 60,50)을 사용하여 명령을 보내세요.소프트웨어
동기화된 비디오 Python 라이브러리
당사의 GitHub 가이드에 따라 커스텀 Linux Python 라이브러리를 설치하고 사용하세요. 향후에는 완전한 기능을 갖춘 SDK에 밀려 단계적으로 폐지될 수 있습니다.
dweOS를 통한 동기화된 스트리밍
dweOS로 네트워크를 통해 두 대의 동기화된 stellarHD 카메라를 스트리밍합니다.