Microcontroller gestützte Fernbedienung für das CHDK

Kamera-Hardware, Selbstbaufernbedienung und sonstige Hardware-Erweiterungen

Microcontroller gestützte Fernbedienung für das CHDK

Beitragvon CHDKLover » 03.07.2008, 10:18

Hallo Bastler,
so wie ich gelesen habe, wird die Remote-Funktion des CHDK's sehr geschätzt. Deswegen hab ich mir, mit Rückenwind, eine Fernbedienung gebaut, die die Remotefunktionalität voll ausreizen soll. Dies ging nur mit Hilfe eines kleinen Microcontrollers, welcher eine serielle Kommunikation zur Kamera aufzubauen soll. Kosten des Projektes bisher knapp 25€ mit Infrarot-Empfänger (bisher nicht eingebaut und nicht programmiert, aber vorgesehen) + 35€ für das Programmiergerät des Microcontrollers.

Was braucht man dazu:
Auf der Kamera ist nur ein "gewöhnliches" CHDK notwendig und eine spezielles Script.
Auf der anderen Seite ist eine Fernbedienung mit folgenden Spezifikationen notwendig.

Details Zur Fernbedienung:
  • Fernbedienung mit 4 Tasten
  • 2 LED's zur visuellen Bestätigung
  • Die Spannung liefert eine RC2032 Knopfzelle mit 3V (Versorgt sowohl den Microcontroller als auch den Remote-Ausgang)
  • verbaut wurde ein ATtiny (ATTINY44V-10SSU) Microcontroller von AVR
Damit alles in das kleine Gehäuse passt mussten SMD-Komponenten verbaut werden. (Was leider den Nachbau nicht erleichtern dürfte)

Informationen zum verwendeten Protokoll (in meinem Fall werden 4 Bits für eine neue Aktion versendet):
  • zu Beginn einer neuen Aktion muss ein min. 70ms langer Highpegel als Startbit gesendet werden
  • Danach kann in Form einer seriellen Kommunikation eine 0 oder 1 gesendet werden
  • für eine 0 ist ein 10ms langer Highpegel erforderlich
  • für eine 1 ist ein 40ms langer Highpegel erforderlich
Anhand der Empfangenen Daten kann jetzt eine Aktion ausgeführt werden. (Siehe Script)

Besonderheiten:
  • Soll eine Aktion unmittelbar wiederholt werden, so kann die Taste auf der Fernbedienung gedrückt gehalten werden. Dadurch Sendet die Fernbedienung nicht wieder die 4 Bit für die jeweilige Aktion sondern nur ein Repeatbit. (Verwende ich zum Beispiel um bei gedrückter Taste zu Zoomen)
  • Um Strom zu sparen wird der Prozessor für einen Großteil der Zeit in einen Schlafzustand versetzt. Wird die Fernbedienung von der Kamera abgezogen, verfällt der Microcontroller in den "Tiefschlaf" und erwacht nur bei einstecken des USB-Kabels wieder zum leben. Ist die Fernbedienung mit der Kamera verbunden und es wird keine Taste gedrückt befindet sich der Microcontroller im Standby.


Bild :leer: Bild :leer: Bild

Im Anhang befindet sich der Schaltplan meiner Lösung und es CHDK-Script für die Kamera (nur für den Privaten gebrauch).

CHDKLover
Dateianhänge
teile.txt
Bestellliste
(1.03 KiB) 169-mal heruntergeladen
C_FB_LP_1.1.pdf
Layout
(109.1 KiB) 217-mal heruntergeladen
Bestellliste.jpg
Bestellliste
Bestellliste.jpg (105.62 KiB) 3198-mal betrachtet
splan_146.jpg
Schaltplan für die Fernbedienung v1.0
splan_146.jpg (44.46 KiB) 3764-mal betrachtet
sremote.bas
CHDK Script für die Kamera
(1.07 KiB) 266-mal heruntergeladen
avr_prog.c
Microcontroller Pogramm
(5.02 KiB) 211-mal heruntergeladen
Zuletzt geändert von CHDKLover am 02.03.2009, 01:03, insgesamt 4-mal geändert.
A610 100e CHDK-DE: aktuelle Version
Benutzeravatar
CHDKLover
Super-Mod
Super-Mod
 
Beiträge: 878
Bilder: 8
Registriert: 12.09.2007, 19:25
Wohnort: Dresden
Kamera(s): a610 100e

Beitragvon msl » 03.07.2008, 12:20

Coole Sache 8)

Das Ding sieht sehr professionell aus. :!:

Links oben auf der Platine ist eine Steckerleiste zu sehen. Wozu wird diese genutzt? Ist die IR-Fernbedienung mit einer Standardfernbedieung (z.B. TV) vorgesehen? Das Gehäuse sieht gut aus. Woher hast Du das bezogen?

Fragen über Fragen :D

Gruß msl
■ "Hey you, don't tell me there's no hope at all. Together we stand, divided we fall."CHDK inside FAQCHDK-Neuigkeiten auf Twitter
Benutzeravatar
msl
Super-Mod
Super-Mod
 
Beiträge: 4507
Bilder: 271
Registriert: 22.02.2008, 12:47
Wohnort: Leipzig
Kamera(s): A720 1.00c
SX220 1.01a

Beitragvon CHDKLover » 03.07.2008, 12:29

Hallo msl,
msl hat geschrieben:Links oben auf der Platine ist eine Steckerleiste zu sehen. Wozu wird diese genutzt?

Der Port oben links ist für die Programmierung des Microcontrollers über ein speziellen Programmieradapter.
msl hat geschrieben:Ist die IR-Fernbedienung mit einer Standardfernbedieung (z.B. TV) vorgesehen?

Ja, so hab ich mir das vorgestellt. Aber bis her ist der IR-Empfänger noch nicht da.
msl hat geschrieben:Das Gehäuse sieht gut aus. Woher hast Du das bezogen?

Das Gehäuse (Art-Nr: TEKO 1112-4) hab ich, wie die restlichen Teile, bei Reichelt Elektronik bestellt.

CHDKLover
A610 100e CHDK-DE: aktuelle Version
Benutzeravatar
CHDKLover
Super-Mod
Super-Mod
 
Beiträge: 878
Bilder: 8
Registriert: 12.09.2007, 19:25
Wohnort: Dresden
Kamera(s): a610 100e

Beitragvon PhyrePhoX » 04.07.2008, 22:33

geile sache! Planst du davon die Schaltpläne und den Code irgendwann zu veröffentlichen?
Benutzeravatar
PhyrePhoX
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 490
Registriert: 04.07.2008, 22:31

Beitragvon CHDKLover » 05.07.2008, 11:39

Hallo PhyrePhoX,
hab alles Veröffentlicht! (Musst nur eingelockt sein)

CHDKLover
A610 100e CHDK-DE: aktuelle Version
Benutzeravatar
CHDKLover
Super-Mod
Super-Mod
 
Beiträge: 878
Bilder: 8
Registriert: 12.09.2007, 19:25
Wohnort: Dresden
Kamera(s): a610 100e

Beitragvon PhyrePhoX » 05.07.2008, 11:50

ach genau, das wars, danke! :)
Benutzeravatar
PhyrePhoX
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 490
Registriert: 04.07.2008, 22:31

Beitragvon ducky » 25.07.2008, 21:26

Moin...

is ne super Idee und die Umsetzung sieht auch Klasse aus ... :)


was mir aber am Schaltplan als Frage offen bleibt ... wie gehst Du auf den USB ???
einfach auf Plus und Minus ... oder D+ D- ???

vielleicht kann man die ganze Angelegenheit schnurlos realisieren
Als Empfänger
http://www.eldat.de/easy-rcd14.htm
oder ähnliches ...
als Sender wäre vielleicht der Atmel AT5750 gut ... und alles sollte auch in Dein kleines
Gehäuse rein passen ...

Gruß Ducky
Benutzeravatar
ducky
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 1
Registriert: 25.07.2008, 21:16

Beitragvon jetzt » 04.08.2008, 13:35

Ich denke er wird die V+ und V- bzw. GND verwenden, denn soweit ich weiß kann CHDK bis jetzt noch
nichts mit den D+ und D- Leitungen anfangen.

Funktioniert die Übertragung denn stabil, bei allen bis jetzt getesteten spezial CHDKs, kam das Kommando
eher zufällig an, und die Kamera wurde völlig ausgebremst, selbst wenn das Skript nicht lief.
(Menü kaum bedienbar.)
Deine Lösung funktioniert wirklich blos mit einem skript?
A710IS(SD200/ixus30)
jetzt
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 3
Registriert: 04.08.2008, 13:14

Beitragvon CHDKLover » 04.08.2008, 16:45

Hallo ihr 2,
@ducky:
Das CHDK kann nur V+ und V- auswerten, wie es jetzt schon geschrieben hat. Ich habe einen Infarotempfänger in die Fernbedienung eingebaut, er muss jetzt nur noch Programmiert werden. Den Empfänger den du mir angeboten hast sprengt meine Spannungsversorgung. :o

@jetzt:
Ja die Übertragung ist sehr stabil und schnell. Außer meiner Fernbedienung brauch ich nur ein CHDK und mein Script das wars. :D

Ich halte euch auf dem Laufenden wenn ich mit dem IR-Empfänger fertig bin.

CHDKLover
A610 100e CHDK-DE: aktuelle Version
Benutzeravatar
CHDKLover
Super-Mod
Super-Mod
 
Beiträge: 878
Bilder: 8
Registriert: 12.09.2007, 19:25
Wohnort: Dresden
Kamera(s): a610 100e

Beitragvon tk-germany » 06.08.2008, 09:18

Hallo zusammen,
plant irgendwer ein solche professionelles Projekt vielleicht zum Verkauf zu realisieren?
Ich habe derzeit leider weder Zeit noch Mittel und ich denke auch nicht die ausreichenden Kenntnisse, dies umzusetzen (von meinem handwerklichen Geschick ganz zu scheigen :) )
hätte aber trotzdem gern eine solche Ferbedienung und würd auch gern für Kosten und Umstände aufkommen.
Viele Grüße,
TK
tk-germany
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 5
Registriert: 02.03.2008, 14:32

Beitragvon jogi44 » 23.09.2008, 17:25

Hallo,
ich hab deine FB mal nachgebaut. Die Hardware generiert die Pulse am USB Ausgang.
Nur bekomme ich sie mit dem VB Script nicht angesteuert.
Hast Du da Tips?

Gruß
jogi44
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 2
Registriert: 10.09.2008, 17:44
Wohnort: Osnabrück

Beitragvon CHDKLover » 23.09.2008, 18:01

Hallo jogi44,
herzlich willkommen im Forum.
Hast dir für ein 1. Beitrag schon recht viel Vorarbeit geleistet. :D
Es freut mich, dass du versuchst die FB nachzubauen oder nachgebaut hast. Wenn du den AVR richtig programmiert hast generiert er, wie du schon beschrieben hast, Pulse beim drücken einer Taste. Wenn ich deine Frage richtig verstanden habe liegt dein Problem auf der Seite der Kamera.
Ich nehme an das du das obige Script heruntergeladen und auf deine Speicherkarte abgespeichert hast. Dann musst du nur noch das Script in den "Script-Einstellungen" laden und starten. Wenn du alles richtig gemacht hast sollte "---AKa remote---" in der CHDK Konsole stehen.

Wenn es immer noch nicht geht, einfach noch einmal nachharken

CHDKLover
A610 100e CHDK-DE: aktuelle Version
Benutzeravatar
CHDKLover
Super-Mod
Super-Mod
 
Beiträge: 878
Bilder: 8
Registriert: 12.09.2007, 19:25
Wohnort: Dresden
Kamera(s): a610 100e

Beitragvon jogi44 » 28.09.2008, 10:44

Hallo CHDKLover,

ja, ich denke auch, das es auf seiten der Kamera liegt. Hab mir die Tage mal die Pulsse genauer angeschaut. Zuerst kommt ein ca. 70ms langer und dann je Taste mit einer Pause von ca. 20mm ein 40ms Puls. Anschließend kommt ein 10ms Puls und dann nocheinmal die 40ms Pulse.
In der Kamera kann ich das Script starten und habe dann 3 Variabelen (a,b,c), die ich belegen kann.
Wenn ich das Script starte sehe ich AK remote, aber es tut sich leider nichts.
Muss ich parallel noch die Funktion USB aktivieren? Wenn ja, dann tut sich leider immer noch nichts.
Hast Du noch Tips für mich?

Jogi44
jogi44
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 2
Registriert: 10.09.2008, 17:44
Wohnort: Osnabrück

Beitragvon CHDKLover » 29.09.2008, 01:31

Hallo jogi44,
in der Version versende ich mit meiner Fernbedienung 4 Bit + Startbit.
Die ersten beiden Bits symbolisieren die aktive Bedienebene. (Ich habe meine Fernbedienung in 4 Bedienebenen eingeteilt, umschalten kann man mit der 1.Taste (oben links)).
Die letzten beiden Bits symbolisieren die eigentliche Taste.
Bsp:
Bedienebene 0: 00
Taste 2(oben rechts): 01
=0001(bin) entspricht 1(dec) (ist das r im Script)

Für eine 0 wird für 10 ms Strom auf den USB-Port gegeben.
Für eine 1 wird für 40 ms Strom auf den USB-Port gegeben.
Zwischen jeden Bits wird eine Pause von 30ms angefügt.

Das ist die grundsätzliche Funktionsweise der Fernbedienung.

Zum Script:
Hast du ein aktuelles CHDK installiert? Dann solltest du keine Parameter (a,b,c) mehr sehen (die haben nichts zu sagen). Wichtig beim Script ist nur dem jeweiligen r die gewünschte Funktion zuzuordnen. Zum Test würde ich das Skript aber so belassen, da es Funktioniert.

Ich hoffe ich konnte dir ein wenig weiter helfen, wenn du noch Fragen hast, kein Problem

CHDKLover
A610 100e CHDK-DE: aktuelle Version
Benutzeravatar
CHDKLover
Super-Mod
Super-Mod
 
Beiträge: 878
Bilder: 8
Registriert: 12.09.2007, 19:25
Wohnort: Dresden
Kamera(s): a610 100e

Beitragvon HansDampf » 01.03.2009, 23:14

Hallo,

würde gerne die Fernbedienung nachbauen..
Sehe aber keinen Link zum Layout??
Bei der Teileliste wäre es nicht schlecht wenn man sie als Textform hätte um leichter die Artikelnummer zu kopieren und bei Reichelt zu bestellen...

Danke und viele Grüsse,
Thomas
HansDampf
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 21
Registriert: 20.12.2008, 15:56

Nächste

Zurück zu Technik-Ecke

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast