PDA

Zobacz pełną wersję : Własny pilot do nikon D5000 i inne ML-L3



cfaniak
31-03-2011, 21:19
Witam!
Tak na wstępie, nie wiem czy dobry dział, ale...
w wolnym czasie udało mi się zrobić pilot do aparatów które obsługuje pilot serii ML-L3.
Może przyda się komuś, kto posiada podstawową znajomość elektroniki, bo koszt samego nadajnika jest naprawdę mały, częsci ok 5 zł + płytka, do tego co prawda dochodzi jeszcze mikrokontroler, ale to też nie duży wydatek rzędu 10 zł ( PIC, AVR). Co prawda nie będzie on taki mały, jak gotowy kupiony choćby na allegro, ale być może komuś umożliwi jakieś zdalne sterowanie apratu, poprzez kabel do mikrokontrolera na odległość kilkudziesięciu metrów albo i lepiej, który to z kolei będzie wyzwalał spust migawki z odległości kilku metrów bezprzewodowo ( może się przydać do fotografowania zwierząt z zostawionym gdzieś apratem-w polu widzenia) .
Poniżej zamieszczam schemat ideowy pilota, oraz kod źródłowy na mikrokontroler serii ARM7 AT91SAM7


https://forum.nikoniarze.pl//brak.gif
źródło (http://img816.imageshack.us/img816/5435/pilotnikonmll3.png)

kod źródłowy:



#define signal_freq 38000 //wave signal frequency in kHz

//-------------------------------------------------------------------------------
// Function set line in low for time in time_us
//-----------------------------------------------------------------------------------
void set_low(uint16_t time_us)
{
LED_IR_OFF;
delay_us(time_us);
}
//-----------------------------------------------------------------------------------
//Function set line in high and low for time in time_us
//-----------------------------------------------------------------------------------
void set_high(uint16_t time_us)
{
uint16_t num_period=(1000/(signal_freq/1000))+1;
uint16_t half_period=num_period/2;

num_period=time_us/num_period;

for (uint16_t j=0;j<num_period;j++)
{
LED_IR_ON;
delay_us(half_period);
LED_IR_OFF;
delay_us(half_period);
}
}
//-----------------------------------------------------------------------------------
//Function send two times a frame of data (command "take photo") for IR diod, proper to ML-L3 IR Remote (Nikon D5000, etc)
//-----------------------------------------------------------------------------------
void take_photo(void)
{
for (uint8_t i=0;i<2;i++)
{
set_high(2000);
set_low(27830);
set_high(390);
set_low(1580);
set_high(410);
set_low(3580);
set_high(400);
set_low(63200);
}
LED_IR_OFF;
}
//-----------------------------------------------------------------------------------
//Initialize function
//-----------------------------------------------------------------------------------
void init(void)
{
// enable peripheral clock for PIO controllers
AT91C_BASE_PMC->PMC_PCER = (1<<AT91C_ID_PIOA);

// enable reset-key on board
AT91C_BASE_RSTC->RSTC_RMR = (0xA5000000 | AT91C_RSTC_URSTEN);

//initialize IR diod
LED_IR_INIT;
}

//-----------------------------------------------------------------------------------
//Main function, which wait for press switch
//-----------------------------------------------------------------------------------
int main(void)
{
init();
for (;; )
{
if (SW1_PRESSED)
{
take_photo();
}
}
return(0);
}

Skibek
01-04-2011, 10:37
Ja bym to umieścił tu: http://forum.nikoniarze.pl/forumdisplay.php?f=78
A może wkleisz jeszcze wzór płytki? Bo nie każdy ma zdolności w projektowaniu ścieżek ;)

cfaniak
01-04-2011, 21:19
A oto i schemat płytki PCB samego pilota:


https://forum.nikoniarze.pl//brak.gif
źródło (http://img204.imageshack.us/img204/4324/pilotmll3.th.png)

Pilot ten wymaga dołączenia do mikrokontrolera.

To może moderatorzy przeniosą temat do odpowiedniego działu.

snnaap
02-07-2011, 11:57
Do cfaniak - zrobiłem podobnego pilota w całości zasilanego z bateryjki CR2032. Dla oszczędności baterii przycisk do zrobienia zdjęcia jest na zasilaniu uK, jego wciśniecie powoduje zasilenie uK. Po restarcie uK "robi zdjęcie" i przechodzi w nieskończoną pętle.