Este modo está diseñado para configuraciones que no utilizan una señal de reloj externa.Utilizarás una cámara en modo leader (emitiendo una señal de sincronización) y todas las cámaras restantes en modo follower.
Guía del firmware Leader/Follower
Haz clic aquí para ver nuestra guía sobre cómo actualizar tu cámara entre los modos Leader y Follower.
Este modo está diseñado para configuraciones que utilizan una señal de reloj externa para emitir la señal de sincronización de todas las cámaras.En este modo, todas las cámaras deben estar configuradas en modo follower.
Guía del firmware Leader/Follower
Haz clic aquí para ver nuestra guía sobre cómo actualizar tu cámara entre los modos Leader y Follower.
El Arduino Uno (ATmega328P) es actualmente la única placa confirmada que funciona en esta configuración.
1
Descarga la librería PWM
Descarga el código fuente de la librería PWM aquí: ArduinoPWM v1.0.0
2
Añade la librería .ZIP
Importa la librería .ZIP descargada a tu Arduino IDE.
3
Carga el sketch
Carga uno de los dos sketches a continuación en tu Arduino.
Simple Control: La forma más rápida de empezar, pero requiere reflashear el firmware para ajustar tus FPS.
Serial Control: Te permite ajustar la frecuencia y el ciclo de trabajo en tiempo real sin necesidad de reflashear (los ajustes se restablecerán si el dispositivo pierde energía).
Simple Control
Serial Commands
#include <PWM.h>// Pin configurationint pin = 9; // Pinint value = 127; // Initial value for the PWM duty cycle// SET FREQUENCY HEREfloat frequency = 60; // Initial frequency in Hzvoid 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 configurationint pin = 9; // Pinint value = 127; // Initial value for the PWM duty cyclefloat frequency = 60; // Initial frequency in Hzvoid 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)."); } }}
Este código te permite modificar la señal PWM sobre la marcha. Abre tu monitor serie a 9600 baudios y envía comandos con el formato {FREQUENCY},{DUTY_CYCLE} (por ejemplo, 60,50 para 60 Hz con un ciclo de trabajo del 50%).
Sigue nuestra guía de GitHub para instalar y usar nuestra librería personalizada de Python para Linux. Esta puede ser reemplazada en el futuro por el SDK con funcionalidades completas.
Transmisión sincronizada con dweOS
Transmite dos cámaras stellarHD sincronizadas a través de la red con dweOS.
Assistant
Responses are generated using AI and may contain mistakes.