HD WingCam Automatic AVout MOD

HD WingCam (aka Redleaf RD32) è una videocamera il cui rapporto prezzo/prestazioni è di tutto rispetto, con circa 30euri è possibile averla tra le mani, le sue caratteristiche sono:

  • lente “wide” a 120°
  • sensore CMOS da 5megapixels
  • risoluzione video 1280 x 720p a 30fps
  • risoluzione foto 2560 x 1920
  • quattro modalità (VideoRecording, FotoSnapshot, VideoMotionDetection, FotoMotionDetection)
  • batteria al litio da 900mAh (fino a 3ore di autonomia)
  • supporto SDcard fino a 32GB
  • connettore miniUSB per trasferire i files e per ricaricare la batteria
  • uscita video per visualizzazione video sul televisore
  • dimensioni compatte (74mm x 28mm x 15mm)
  • solamente 29,4 grammi

E’ possibile attivare l’uscita audio/video di questa telecamerina inserendo il cavetto con jack audio da 2,5mm fornito in dotazione. Così facendo la telecamera entra in modalità “AV Settings” permettendo all’utente di modificare varie impostazioni oltre che avviare la riproduzione dei video presenti in memoria.

L’uscita video in tempo reale è disponibile solamente nella modalità “MotionDetection” sia video che foto.

Per avere disponibile l’uscita video in tempo reale anche durante la modalità normale di registrazione video bisogna effettuare una sequenza di operazioni per ingannare la videocamera e permettere di registrare il video e contemporaneamente avere disponibile l’uscita video.

La sequenza di operazioni è la seguente:

  • accendere la videocamera mantenendo premuto il tasto “power” per almeno due secondi
  • passare alla modalità “FotoSnapshot” premendo una volta il tasto “power”
  • passare alla modalità “Video Motion Detection” premendo ancora una volta il tasto “power”
  • inserire il jack ed aspettare la comparsa del segnale video in uscita
  • rimuovere il jack
  • velocemente passare alla modalità “Foto Motion Detection” premendo una volta il tasto “power”
  • velocemente passare alla modalità “Video Recording” premendo ancora una volta il tasto “power”
  • velocemente reinserire il jack pena lo spegnimento della videocamera

Se la sequenza viene eseguita correttamente, specialmente le ultime tre operazioni in modo rapido, la videocamera resterà accesa in modalità “Video Recording” ma questa volta con l’uscita video in tempo reale disponibile.

Per automatizzare il tutto ho scelto di utilizzare un PIC10F222 della Microchip, il microcontrollore ha questa piedinatura:

 

 

Qui sotto potete vedere lo schema di collegamento:

 

 

Una volta rimossa la guaina termorestringente che ricopre tutta la videocamera, ho rimosso il connettore del jack da 2,5mm femmina ed ho installato un piccolo deviatore a due posizioni per selezionare la modalità (classica/automatica) ed un piccolo pulsantino normalmente aperto per simulare la presenza del jack e poter avviare la videocamera in modalità “AV Settings”:

 

Qui sotto potete vedere il lavoro ultimato:

 

 

Mentre qui potete vedere il codice C scritto per Hi-Tech PICC compiler:

 

/**************************************\
|	WingCam MOD - AjK(c)2012
|	PIC10F222 working @ 8MHz intosc
|
|	version:	1.0 - 27/11/2012
|	
\**************************************/
#include <htc.h>
#define _XTAL_FREQ 8000000

//definizioni connessioni
#define RECORDBUTTON	GP1
#define JACKSENSE		GP0
#define POWERBUTTON		GP2
#define MODE			GP3

#define RECORDBUTTON_BIT	1
#define JACKSENSE_BIT		0
#define POWERBUTTON_BIT		2
#define MODE_BIT			3

//macro imposta TRIS
#define setTRIS();	TRIS=TRISREG&0b1111;

//macro sui bit del registro TRIS :)
#define clearBit(reg,bitt);			reg=reg&(~(1<<bitt));
#define setBit(reg,bitt);			reg=reg|(1<<bitt);

//macro inserimento/rimozione jack
#define JACK_IN();	clearBit(TRISREG,JACKSENSE_BIT);setTRIS();JACKSENSE=0;
#define JACK_OUT();	setBit(TRISREG,JACKSENSE_BIT);setTRIS();

//macro pressione/rilascio powerbutton
#define POWERBUTTON_PUSH();		clearBit(TRISREG,POWERBUTTON_BIT);setTRIS();POWERBUTTON=1;	
#define POWERBUTTON_RELEASE();	POWERBUTTON=0;setBit(TRISREG,POWERBUTTON_BIT);setTRIS();

//macro pressione/rilascio recordbutton
#define RECORDBUTTON_PUSH();	clearBit(TRISREG,RECORDBUTTON_BIT);setTRIS();RECORDBUTTON=0;	
#define RECORDBUTTON_RELEASE();	setBit(TRISREG,RECORDBUTTON_BIT);setTRIS();

//macro delay con timer0
#define TIMEOUT	125		// (1/8MHz)*4*prescaler*timeout = 1ms
#define delay1ms();		TMR0=2;while(TMR0<TIMEOUT);
#define delay_ms(x);	tempo=x;while(tempo>0){delay1ms();tempo--;}

//variabili globali
unsigned char TRISREG;	//usata come backupTRIS visto che il registro TRIS non è mappato in memoria
unsigned int tempo;		//usata per i delay_ms()

void main()
{
	unsigned char i;					//contatore generico

	CLRWDT();							//resetto il watchdog timer
	TMR0=0;								//resetto il timer0
	OPTION=0b11010011;					//timer0 con prescaler 1:16, Fosc/4
	ANS0=0;								//GP0 digitale
	ANS1=0;								//GP1 digitale
	FOSC4=0;							//GP2 digitale

	TRISREG=0b1111;						//imposto tutti i pin come input
	setTRIS();							//aggiorno il registro TRIS

	if(JACKSENSE==0)					//se avvio con pulsante jacksense premuto
	{
		JACK_IN();						//simulo l'inserimento del jack
		while(1)
		{
										//modalità AV settings
		}
	}

	if(MODE)							//se sono in modalità automatica
	{
		delay_ms(5000);					//aspetto 5sec per la completa accensione

		for(i=0;i<2;i++)
		{
			POWERBUTTON_PUSH();			//vado in modalità foto e successivamente
			delay_ms(500);				//in modalità video motion detection
			POWERBUTTON_RELEASE();
			delay_ms(1000);
		}

		JACK_IN();						//simulo l'inserimento del jack
		delay_ms(5000);					//aspetto 5secondi per visualizzare l'immagine

		JACK_OUT();						//simulo la rimozione del jack

		for(i=0;i<2;i++)
		{
			POWERBUTTON_PUSH();			//vado in modalità foto motion detection e 
			delay_ms(500);				//successivamente in modalità video recording
			POWERBUTTON_RELEASE();
			delay_ms(1000);
		}

		JACK_IN();						//reinserisco il jack
		delay_ms(2000);

		RECORDBUTTON_PUSH();			//inizio la registrazione		 
		delay_ms(500);	
		RECORDBUTTON_RELEASE();

		while(1)
		{
										//modalita AVoutput e video recording allo stesso tempo :)
		}

	}else{								//altrimenti non faccio nulla, modalità normale
		while(1)
		{
										//modalità normale
		}
	}//end if(MODE)

}//end main

Per chi volesse replicare il progetto qui è disponibile l’HEX pronto da caricare nel microcontrollore.

 

Dopo aver testato il corretto funzionamento della modifica ho solamente ricoperto nuovamente la videocamera con della nuova guaina termorestringente:

 

 

Ecco una dimostrazione del funzionamento:


3 Risposte a “HD WingCam Automatic AVout MOD”

  1. ciao scusatemi l’ignoranza dove si può comprare o come si puo costruire? ne vorrei uno grazie

I commenti sono chiusi.