piątek, 30 maja 2014

Mała, duża przyjemność.


Czasem małe rzeczy sprawiają dużą przyjemność.

Kupiłem (dokładniej - mój brat mi kupił) za 10zł chińskiego pilota do nikona D80. Okazuje się że pilot do tego aparatu to zwykły pilot na IR i kod już dawno został przez nich skopiowany. Sam pilot działa na guzik zwierający dwie nóżki scalaka o nieznanej mi nazwie, jako że została skrzętnie zmyta, szkoda bo z wiedzą jaki to scalak zabawa poszła by szybciej.

A zabawa była następująca - trzeba zrobić timer do timelaps'ów. Czemu zrobić, a nie kupić? Bo równie chiński timer jest odpowiednio droższy, a ja zawsze mam Atmegę8 pod ręką i... mam ochotę się pobawi :)

Od strony hardvare'u sytuacja wyglądała następująco:
→ Zasilanie 3V → Podczepiłem się od mojej płytki z zasilaniem 3.2V (Wahania
napięcia baterii są większe niż to.)
→ Zidentyfikowałem kierunek napięcia na nóżkach scalaka → Zdarłem soldermaskę → Wlutowałem p-mosfet. → Wyprowadziłem bramkę.
→ Zacisnąłem 3 konektorki - viola, mogę sterować tym ustrojstwem choćby attinym13.

By sprawdzić czy działa podpiąłem się do zasilania, załączyłem mosfeta i nakierowałem kamerę w komórce na diodę IR - okazuje się że kamera w telefonie spokojnie odbierze ten sygnał "na niebiesko".

Zostaje jeszcze kawałek softu. Odmierzanie czasu - zwykły _delay_ms(n) i wyświetlanie "Pstryk!" na ekranie - ot taki bajer ;] Naprawdę proste a cieszy, ustawienia jak widać są na zdjęcie co 1.5 min , w wolnym czasie dodam jeszcze potencjometr, do regulacji czasu (a wtedy same odmierzanie czasu będzie na timerze 1 lub 2. )


#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#include "ascii.h"
#include "spi.h"
#include "n5110.h"
#include "adc.h"
#define on(n) PORTC|=(1<<n)
#define off(n) PORTC&=~(1<<n)

int main()
{
  DDRC|=(1<<PC5);
  PORTC&=~(1<<PC5);
  spi_init();
  lcd_init();
  lcd_place(0,0);
   while(1)
   {
     lcd_clear();
     lcd_place(0,3);
     lcd_string("Pstryk! ");
     on(PC5);
     _delay_ms(200);
     off(PC5);
     lcd_clear();
    _delay_ms(900);
     _delay_ms(400);
  }
}

Zadziwiające jest to że nie znalazłem w necie nikogo kto zrobił by to wcześniej i się pochwalił. Nawet za pomocą arduino i przekaźnika :P



Brak komentarzy:

Prześlij komentarz