DSLR-Forum
AnzeigeTamron

Zurück   DSLR-Forum > Technik und Gestaltung > Fototechnik > Bastelecke

Hinweise

Anzeige

Antwort
 
Themen-Optionen Ansicht
Alt 16.01.2009, 16:04   #1
MasterFX
Benutzer
 
Registriert seit: 06.12.2008
Beiträge: 8.266
Standard DIY IR Remote: Canon RC-1 + Pentax IR F + Nikon ML-L3 + Olympus RM-1

Werbung


Zu viel Werbung?
Hier kostenlos bei DSLR-Forum.de registrieren!
Hallo zusammen,
ich habe mich mal gestern ein wenig hingesetzt und einen RC-1 Clone gebastelt. Größtenteils aus Reste die ich hier so rumliegen hatte. Habe von daher eigentlich nur die Mikrocontroller (ATtiny25) kaufen müssen. Für 1,25€ funktioniert das Ding echt gut.
Reichtweite ca. 3-4m. Schaltplan und Quellcode folgt...

UPDATE #1:
Ich habe jetzt versucht den Code so anzupassen, dass er auch für die Pentax Kameras geht (IR-Ferbedienung F). Dafür einfach das entsprechende "#define" auskommentieren. Falls das jemand testen kann, wäre es nett wenn er kurz Rückmeldung gibt, ob es klappt


UPDATE #2:
Ich habe jetzt auch die Codes für Nikon ML-L3 und Olympus RM-1 implementiert. Ich habe das jetzt einfach blind programmiert, da ich keine dieser Cams besitze. Also wenn jemand das testen und eben eine Rückmeldung geben könnte, wäre das sehr nett. Insbesondere bei der Olympus bin ich mir nicht sicher, ob das so klappt. Es ist von allen nur die sofortige Auslösung drin, also kein Zoom etc.


So hier nun der Schaltplan:



Der 18 Ohm Widerstand kann auch weggelassen werden, dadurch wird die Reichweite nochmals erhöht.
Der ATtiny25 wird mit dem internen 8MHz Oszillator betrieben. Der Haken bei CKDIV8 muss daher ENTFERNT werden, da er sonst nur mit 1MHz läuft.



Und der Quellcode:
Code:
#include <avr/io.h> 
#include <avr/interrupt.h>
#include <stdint.h>
#include <util/delay.h>
#include <avr/sleep.h>

/* Uncomment for your Camera Type */
#define CANON
//#define PENTAX
//#define NIKON
//#define OLYMPUS

/* defines for RC-1 IR Protocoll */
#define NR_PULSES 		16
#define DELAY_SHOT		7.33
#define DELAY_DSHOT 		5.36

/* Macros for IR LED */
#define LED_ON()		PORTB |= (1<<PB0) | (1<<PB1) | (1<<PB2)
#define LED_OFF()		PORTB &= ~((1<<PB0) | (1<<PB1) | (1<<PB2))


#define PULSE_36k()		LED_ON(); _delay_us(15.24);	LED_OFF(); _delay_us(15.24)
#define PULSE_38k()		LED_ON(); _delay_us(13.15);	LED_OFF(); _delay_us(13.15)
#define PULSE_38_4k()		LED_ON(); _delay_us(13.02);	LED_OFF(); _delay_us(13.02)
#define PULSE_40k()		LED_ON(); _delay_us(12.5);	LED_OFF(); _delay_us(12.5)


int main(){


	DDRB   = (1<<PB0) | (1<<PB1) | (1<<PB2); /* PB0-2 as Output for IR LED */
	PORTB |= (1<<PB3) | (1<<PB4);		/* Pullup for PB3 and PB4 */

	PCMSK  = (1<<PCINT3) | (1<<PCINT4);	/* Pin Change Interrupt for Pin3+4*/
	GIMSK |= (1<<PCIE);					/* Enable Pin Change Interrupt */

	sei();	/* Enable Interrupts */

	/* Power-down Mode until Key pressed */
	while(1){
	

		set_sleep_mode(SLEEP_MODE_PWR_DOWN);
		sleep_mode();

		/* Wait 100ms after Keypress */
		_delay_ms(100);

	}

	return 0;
}

/* Pin Change Interrupt ISR */
ISR(PCINT0_vect){

#ifdef CANON
	uint8_t i;
	/* Key pressed for undelayed Shot ? */
	if((PINB & 1<<PB3) == 0){
		for(i = 0; i < NR_PULSES; i++){
			PULSE_36k();
		}
		_delay_ms(DELAY_SHOT);
		for(i = 0; i < NR_PULSES; i++){
			PULSE_36k();
		}
	}
	/* Key pressed for delayed Shot ? */
	else if((PINB & 1<<PB4) == 0){
		for(i = 0; i < NR_PULSES; i++){
			PULSE_36k();
		}
		_delay_ms(DELAY_DSHOT);
		for(i = 0; i < NR_PULSES; i++){
			PULSE_36k();
		}
	}

#elif defined PENTAX
	uint16_t i;
	uint8_t	j;

	if((PINB & 1<<PB3) == 0){
		for(i = 0; i < 494; i++){
			PULSE_38k();
		}
		_delay_ms(3);
		for(j = 0; j < 7; j++){
			for(i = 0; i < 38; i++){
				PULSE_38k();
			}
			_delay_ms(1);
		}		

	}

#elif defined NIKON
	uint8_t i;
	uint8_t	j;

	if((PINB & 1<<PB3) == 0){
		for(j = 0; j < 2; j++){
			for(i = 0; i < 77; i++){
				PULSE_38_4k();
			}
			_delay_ms(27.83);
			for(i = 0; i < 15; i++){
				PULSE_38_4k();
			}
			_delay_ms(1.58);
			for(i = 0; i < 16; i++){
				PULSE_38_4k();
			}
			_delay_ms(3.58);
			for(i = 0; i < 16; i++){
				PULSE_38_4k();
			}
			if(!j)
				_delay_ms(63.2);
		}
	}


#elif defined OLYMPUS
	uint8_t i,j;
	/* Code for Shot */
	uint32_t code=0x61DC807F;
	uint32_t mask=0x80000000;

	if((PINB & 1<<PB3) == 0){
		for(i = 0; i < 152; i++){
			PULSE_40k();
		}
		for(i = 0; i < 22; i++){
			PULSE_40k();
		}
		_delay_ms(4);
		j = 32;
		while(j--){
			if(code & mask){
				_delay_ms(1.5); 
				for(i=0; i < 20; i++){ 
					PULSE_40k();
				}
			}
			else{
				_delay_us(500); 
				for(i=0; i < 20; i++){ 
					PULSE_40k();
				}
			}
			mask >>= 1;
		}

	}

#endif

}
Codegrößen: (AVR-GCC mit -O2)
Canon: 360 Bytes
Pentax: 316 Bytes
Nikon: 422 Bytes
Olympus: 444 Bytes

Da ist also noch genug Platz für mehr Funktionalität. Ich hatte mir schon überlegt, an den übrigen Pin einen weiteren Schalter anzubauen um so z.B. automatisiert Langzeitbelichtungen von >30s zu machen.
Die Stromaufnahme liegt bei weniger als 0.5µA wenn man keine Taste drückt. Die Lithiumbatterie hält so also über 20Jahre!

Wer nicht selber kompilieren will/kann, dem kann ich auch gerne das HEX-File schicken. Einfach ne PN schicken!

Hier nochmal die Timings:
Angehängte Grafiken
Dateityp: jpg rc1_top.jpg (92,8 KB, 437x aufgerufen)
Dateityp: jpg rc1_bottom.jpg (123,9 KB, 371x aufgerufen)
Dateityp: jpg rc1_top_battery.jpg (72,1 KB, 600x aufgerufen)
__________________
Canon 450D, Tamron 10-24mm f/3,5-4,5, Canon EF-S 18-55mm IS f/3,5-5,6, Tamron SP AF 28-75mm f/2.8, Canon EF 50mm f/1.8 II, Canon EF 85mm f/1.8 USM, Tamron 70-200 mm SP DI f/2.8, Canon EF-S 55-250 IS, YongNuo YN-568EX, YongNuo YN-460 II, YongNuo YN-560

Geändert von MasterFX (29.01.2009 um 20:16 Uhr) Grund: Update für Nikon ML-L3 + Olympus RM-1
MasterFX ist offline   Mit Zitat antworten
Alt 16.01.2009, 20:17   #2
blacky123
Benutzer
 
Registriert seit: 01.09.2008
Ort: Graz
Beiträge: 69
Standard AW: RC-1 Clone (IR Fernauslöser für Canon EOS)

Hi!

Ich wollt ihn mir auch mal nachbauen, bin dann allerdings irgendwie nicht dazugekommen. Vielleicht bau ich ihn mir jetzt aber in nächster zeit mal nach, da ich zurzeit nur den RC-5 hab und der nur mit 2sek Verzögerung auslöst.
Danke für die Anleitung!

Lg
__________________
"Trying is the first step towards failure" -Homer Simpson

Meine Website
blacky123 ist offline   Mit Zitat antworten
Alt 16.01.2009, 21:43   #3
luka
Benutzer
 
Registriert seit: 19.01.2007
Ort: Berlin
Beiträge: 105
Standard AW: RC-1 Clone (IR Fernauslöser für Canon EOS)

Hallo,

So etwas habe ich auch mal gebaut, siehe

http://www.doc-diy.net/photo/eos_ir_remote

Ich denke Du kannst den Widerstand vor der IR-LED komplett weglassen, vielleicht ist dann noch ein Meter mehr drin. Die 4uA Ruhestrom ist ganz schön viel, laut Datenblatt kommt man unter 0.5uA (40 Jahre. Hast Du alles ausgeschaltet? Watchdogtimer? Vielleicht leckt der Elko.

Grüße,
Lukasz
__________________
www.doc-diy.net
luka ist offline   Mit Zitat antworten
Alt 16.01.2009, 23:05   #4
MasterFX
Benutzer
 
Threadstarter
 
Registriert seit: 06.12.2008
Beiträge: 8.266
Standard AW: RC-1 Clone (IR Fernauslöser für Canon EOS)

Hallo Lukasz,
ja das habe ich gesehen. Dir habe ich es ja zu verdanken, dass ich überhaupt wusste wie das Protokoll aussieht. Vielen Dank dafür!
Ich bastel halt lieber selber, darum habe ich den Schaltplan von dir nicht übernommen. Das mit dem Widerstand stimm natürlich. Aber ob nun 5 oder 3 Meter, was solls. Ist ja auch nur der erste Versuch.

Stimmt, sind eher 0.4µ. Ich hatte mich zunächst nur auf den Wert in der Tabelle gestützt, da steht das mit Watchdog.
__________________
Canon 450D, Tamron 10-24mm f/3,5-4,5, Canon EF-S 18-55mm IS f/3,5-5,6, Tamron SP AF 28-75mm f/2.8, Canon EF 50mm f/1.8 II, Canon EF 85mm f/1.8 USM, Tamron 70-200 mm SP DI f/2.8, Canon EF-S 55-250 IS, YongNuo YN-568EX, YongNuo YN-460 II, YongNuo YN-560
MasterFX ist offline   Mit Zitat antworten
Alt 18.01.2009, 16:47   #5
firebuster
Benutzer
 
Registriert seit: 30.07.2008
Ort: Wiesbaden
Beiträge: 109
Standard AW: RC-1 Clone (IR Fernauslöser für Canon EOS)

Hat jemand von euch den Code auch auch in VB geschrieben ?
bzw kann mir jemand dabei mal helfen

habe einen Auslöser mit einem Atmega8 gebaut und würde es dort integrieren
Danke
firebuster ist offline   Mit Zitat antworten
Alt 18.01.2009, 17:24   #6
MasterFX
Benutzer
 
Threadstarter
 
Registriert seit: 06.12.2008
Beiträge: 8.266
Standard AW: RC-1 Clone (IR Fernauslöser für Canon EOS)

VB ??
Wenn dann meinst du Bascom oder?
Kompilier doch einfach mit WinAVR und gut
__________________
Canon 450D, Tamron 10-24mm f/3,5-4,5, Canon EF-S 18-55mm IS f/3,5-5,6, Tamron SP AF 28-75mm f/2.8, Canon EF 50mm f/1.8 II, Canon EF 85mm f/1.8 USM, Tamron 70-200 mm SP DI f/2.8, Canon EF-S 55-250 IS, YongNuo YN-568EX, YongNuo YN-460 II, YongNuo YN-560
MasterFX ist offline   Mit Zitat antworten
Alt 18.01.2009, 17:34   #7
firebuster
Benutzer
 
Registriert seit: 30.07.2008
Ort: Wiesbaden
Beiträge: 109
Standard AW: RC-1 Clone (IR Fernauslöser für Canon EOS)

Zitat:
Zitat von MasterFX Beitrag anzeigen
VB ??
Wenn dann meinst du Bascom oder?
Kompilier doch einfach mit WinAVR und gut
ja in Bascom ;-)

du meinst den QT der Oben steht?
ich würde es gerne in die Schaltung integrieren die ich momentan schon aufgebaut habe ( Zeitverzögerung, Display usw. ) deswegen würde ich es gerne in Bascom programmieren.

oder kann ich einfach eine Zeichenfolge über "print" ausgeben
firebuster ist offline   Mit Zitat antworten
Alt 18.01.2009, 17:42   #8
MasterFX
Benutzer
 
Threadstarter
 
Registriert seit: 06.12.2008
Beiträge: 8.266
Standard AW: RC-1 Clone (IR Fernauslöser für Canon EOS)

Naja eigentlich kann das doch nicht so schwer sein. Sind doch nur ein paar Schleifen und Zuweisungen, das sollte doch recht flott umgesetzt sein.
__________________
Canon 450D, Tamron 10-24mm f/3,5-4,5, Canon EF-S 18-55mm IS f/3,5-5,6, Tamron SP AF 28-75mm f/2.8, Canon EF 50mm f/1.8 II, Canon EF 85mm f/1.8 USM, Tamron 70-200 mm SP DI f/2.8, Canon EF-S 55-250 IS, YongNuo YN-568EX, YongNuo YN-460 II, YongNuo YN-560
MasterFX ist offline   Mit Zitat antworten
Alt 18.01.2009, 18:18   #9
firebuster
Benutzer
 
Registriert seit: 30.07.2008
Ort: Wiesbaden
Beiträge: 109
Standard AW: RC-1 Clone (IR Fernauslöser für Canon EOS)

Zitat:
Zitat von MasterFX Beitrag anzeigen
Naja eigentlich kann das doch nicht so schwer sein. Sind doch nur ein paar Schleifen und Zuweisungen, das sollte doch recht flott umgesetzt sein.
kannst mir ja helfen ;-)
ich weiß nicht genau wie ich das richtig umsetzen muss :-(
firebuster ist offline   Mit Zitat antworten
Alt 18.01.2009, 18:27   #10
MasterFX
Benutzer
 
Threadstarter
 
Registriert seit: 06.12.2008
Beiträge: 8.266
Standard AW: RC-1 Clone (IR Fernauslöser für Canon EOS)

Kannst du denn Bascom?
Dann weißt du doch wie man Register setzt und Schleifen (do... until oder for...next) macht oder? Siehste und mehr brauchst du doch gar nicht. _delay_ms ist in Bascom doch Waitms, oder nicht? Und dann hast du es doch schon fast.
Ich kann leider kein Bascom.
__________________
Canon 450D, Tamron 10-24mm f/3,5-4,5, Canon EF-S 18-55mm IS f/3,5-5,6, Tamron SP AF 28-75mm f/2.8, Canon EF 50mm f/1.8 II, Canon EF 85mm f/1.8 USM, Tamron 70-200 mm SP DI f/2.8, Canon EF-S 55-250 IS, YongNuo YN-568EX, YongNuo YN-460 II, YongNuo YN-560
MasterFX ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
infrarotfernbedienung , selbstbau


Zurück   DSLR-Forum > Technik und Gestaltung > Fototechnik > Bastelecke
Themen-Optionen
Ansicht

Nutzungsbedingungen
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu



Alle Zeitangaben in WEZ +2. Es ist jetzt 23:15 Uhr.

Anzeige


* * *

Zu viel Werbung?
Kostenlos registrieren!

* * *

Anzeige

Powered by vBulletin® Version 3.8.7 (Deutsch)
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Copyright ©2003 - 2014, DSLR-Forum.de