Forum: Mikrocontroller und Digitale Elektronik TV-B-Gone Dauerdurchlauf


von Jonas H. (fujitsu313)


Lesenswert?

Hey,

Vielleicht kennt ja jemand von euch die TV-B-Gone Fernbedienung von 
LadyAda..

Ich habe mir die v1.2 nachgebaut und habe mich mal gefragt, ob es 
mögliche wäre mit einem Jumper den Code im Dauerdurchlauf laufen zu 
lassen. Wenn der Kontakt vom Jumper geschlossen wird, soll der Code im 
Dauerdurchlauf gesendet werden, wenn der Kontakt aber offen ist, soll 
das ganze normal mit dem Schalter funktionieren.

Nun zu meiner Frage, wie lässt sich das ganze realisieren? Ich habe 
bisher das ganze nur mit einem Jumper zwischen RST und GND versucht, hat 
aber leider nicht funktioniert, oder muss ich den Code dazu ertwas 
ändern?

Hat jemand eine Idee, wie sich das ganze verwirklichen lässt?

Gruß Jonas

von Thomas K. (thkusch)


Lesenswert?

Hallo!

Unterstütz der Code diese Funktion? Was wie ein Jumper??

Ansonsten eine kleine Schaltung bauen (NE555), die einen periodischen 
Druck auf die Taste simuliert.

Gruss
Thomas

von Axel R. (Gast)


Lesenswert?

>Ich habe bisher das ganze nur mit einem Jumper zwischen RST und GND versucht

Redet euch dochnit immer um Kopf und Kragen ;)
Was solles bringen, den µC dauerhaft im Reset zu halten?

von Jonas H. (fujitsu313)


Lesenswert?

Ein Jumper ist ein kleines Stück Metall in Plastik, dass zb zwei 
Stiftleisten verbindet.

Jap, dass habe ich dann auch gemerkt.

Ich würde einfach gerne, sobald der Code ausgelaufen ist und der Jumper 
den Konatkt geschlossen hält soll der Code wieder ausgeführt werden. Ist 
der Kontakt aber offen so kann nur manuell der Code wieder ausgeführt 
werden.

von Karl H. (kbuchegg)


Lesenswert?

Dazu müsste man sich jetzt den Code ansehen, wie er geschrieben ist.
Ist er schlampig geschrieben, könnte es schon reichen parallel zum 
Taster einfach einen Schiebeschalter (oder einen Jumper) zu schalten. 
Ist er überbrückt simuliert er Dauerbetätigung des Tasters. Wenn die 
Software das als 'mach weiter' interpretiert, hast du schon gewonnen.

von Axel R. (Gast)


Lesenswert?

Ist doch drinn, der Loop, ich verstehe es nicht!
Du verwendest doch Version 1.2, oder?
Dann beschäftige Dich bitte nochmal damit
http://www.ladyada.net/make/tvbgone/download.html
1
Files for v1.2 
2
Here are the hardware and firmware files for v1.2, distributed under Creative Commons 2.5 Attribution, Share-Alike
3
4
•Schematic and Layout files in Eagle format
5
•Schematic in PNG
6
•Firmware for AVR-GCC
7
Caitsith modded the v1.2 firmware to support 'looping' if its set to US or EU only, check it out

1
  // determine region
2
#ifdef WORLD
3
  if (PINB & _BV(REGIONSWITCH)) { //Region switch determines which region to use. Loop is hardcoded.
4
    region = US; // US
5
    DEBUGP(putstring_nl("US"));
6
  } else {
7
    region = EU;
8
    DEBUGP(putstring_nl("EU"));
9
  }
10
#else
11
  if (PINB & _BV(REGIONSWITCH)) { //Region switch determines whether to loop or not, region is hardcoded.
12
    Loop = 0;
13
  } else {
14
    Loop = 1;
15
  }
16
  #ifdef US_CODES
17
    region = US; // US
18
    DEBUGP(putstring_nl("US"));
19
  #else
20
    region = EU;
21
    DEBUGP(putstring_nl("EU"));
22
  #endif
23
#endif

und später in main() am Ende
1
  } while (Loop == 1);

von Jonas H. (fujitsu313)


Lesenswert?

Das mit dem Jumper sieht jetzt so aus, erst wenn ich den Kontakt öffne, 
wird der Code gestartet.

Zum Code an sich kann ich nicht viel sagen, da ich eigentlich fast nur 
mit dem Arduino arbeite und mich nicht gut mit dem Code bzw der Sprache 
aus.

von Jonas H. (fujitsu313)


Lesenswert?

Muss ich jetzt den Code modifiziern oder geht das ganze auch nur mit 
Hardware und ohne Timer?

von Axel R. (Gast)


Lesenswert?

Hast Du Dir den Quellcode mal angesehen?
Kannst Du zwischen US-Code und EU-Code umschalten?
Hast Du einen Widerstand am PIN PB1?
Ist WORLD = 1 gesetzt?
Ist im Makefile NA-Code = 1 gesetzt?
Ist EU_CODE gesetzt?

NEIN!, Was steht im Makefile?
1
# Target file name (without extension).
2
TARGET = tvbgone
3
#NA_CODE = 1

Da ist eine Raute davor, also kein "NA_CODE = 1" . Das wiederum heisst, 
das der Pulldowm am PB1 nicht zwischen EU und AMILAND umschaltet, 
sondern zwischen Einzel- und Dauerfeuer.

Konnte man das nicht aus meinem Post oben herauslesen oder denke ich nur 
wieder mal so quer? Dann sorry.

Wenn Du also den CAITSITH Mod der V1.2 geflashed hast, musst Du Pin B1 
auf Masse legen, damit Du Dauerfeuer hast.
Zeile 266:
1
do {  //Execute the code at least once.  If Loop is on, execute forever.

>

>Muss ich jetzt den Code modifiziern oder geht das ganze auch nur mit
>Hardware und ohne Timer?

Nichts von alledem, PB1 beim Start mindestens 5ms an GND.


@all

Ist das wirklich soo schwer? Was ist ein "Arduino" und warum muss man 
daher nichts mit Code und der Sprache am Hut haben? Was muss man denn 
dann mit einem "Arduino" machen, wenn nicht programmieren?

Man, ich kenn mich doch auch nicht soo doll aus.
GEschweige, das ich das Projekt schonmal compiliert habe. Aber das sieht 
man doch, was die hier mit dem TV-BE-GONE Dingens machen. Bin ich der 
einzige, was seht ihr? Auf welchen Schwierigkeitsgrad stuft ihr das ein?

Ich finds jedenfalls blöd, das immer mehr nur irgentwas nachbauen, ohen 
auch nur das geringste Interesse an der Sache zu zeigen.

Axelr.

von Karl H. (kbuchegg)


Lesenswert?

Axel Rühl schrieb:

> @all
>
> Ist das wirklich soo schwer?

Ernsthafte Antwort?

Nein. WEnn man das schon mal gemacht hat, ist es eine Sache auf 2 
Minuten.

> Was ist ein "Arduino" und warum muss man
> daher nichts mit Code und der Sprache am Hut haben?

Sprache stimmt so nicht. Auch für den Arduino schreibt man Programme. 
Sieht sogar sehr ähnlich wie C aus.

Ansonsten ist ein Arduino eine Kombination aus definierter Hardware und 
einem Programmiersystem, gedacht für Leute die sonst nichts mit 
Programmierung am Hut haben. Künstler, etc ...

> man doch, was die hier mit dem TV-BE-GONE Dingens machen. Bin ich der
> einzige, was seht ihr? Auf welchen Schwierigkeitsgrad stuft ihr das ein?

Um ehrlich zu sein, tendiere ich immer mehr dazu, mich aus den Threads 
rauszuhalten, bei denen es im Wesentlichen darum geht, dass wieder mal 
jemand Wollen mit Können verwechselt. Wenns möglicherweise eine einfache 
Möglichkeit gibt, die übersehen wurde, geb ich mal meinen Senf dazu. 
Aber ansonsten lass ich es.

Ich will auch vieles. Aber wenn ich es nicht kann, dann hab ich nur 2 
Möglichkeiten: darauf verzichten oder lernen.

> Ich finds jedenfalls blöd, das immer mehr nur irgentwas nachbauen, ohen
> auch nur das geringste Interesse an der Sache zu zeigen.

Du sagst es.


(Und tschüss in diesem Thread. Ich bleib meiner Maxime treu)

von Jonas H. (fujitsu313)


Lesenswert?

Natürlich habt ihr recht und ich führe mich hier so auf, aber ich weiß 
halt nicht wie das geht und habe mich auch nicht mit dem Code 
beschäftigt. Ich wollte das ganze "nur mal so" kurz erledigen, da ich 
nur aus Spaß den TV-B-Gone nachgebaut habe und mich eigentlich auch 
nicht weiter mit beschäftigen wollte.

Ich habe wie nach dem Schaltplan den 10K Widerstand zwischen PB1 und GND 
geschaltet, wenn ich das richtig verstanden habe muss ich jetzt noch den 
CAITSITH Mod der V1.2 auf den Chip flashen. Kann mir entweder die 
HEX-File aus den Daten machen oder mir eine Erklärung geben in der es 
beschrieben steht?

Ich denke ich unterschätze das grad und merke, dass ich erst noch viel 
lernen muss um das von selbst zu verstehen und zu bauen.

Jonas

von Axel R. (Gast)


Angehängte Dateien:

Lesenswert?

Du kannst auch die "normale" Version 1.2 verwenden, musst aber in der 
"main.c" die lokale Variable "LOOP" auf "1" setzen und das ganze neu 
compilieren.
1
int main(void) {
2
  uint16_t ontime, offtime;
3
  uint8_t i,j, Loop;
4
  uint8_t region = US;     // by default our code is US
5
  
6
  //Loop = 0;              // by default we are not going to loop
7
  Loop = 1;                // now we are going into loop
8
  TCCR1 = 0;       // Turn off PWM/freq gen, should be off already
9
  TCCR0A = 0;
10
  TCCR0B = 0;

hexfile mit gesetztem "LOOP-Bit" ungetestet im Anhang.

von Jonas H. (fujitsu313)


Lesenswert?

Vielen Dank, werde es gleich mal flashen...

von Jonas H. (fujitsu313)


Lesenswert?

Okay habe mal den Code auf den Chip geflasht und dann ganze getestet. 
Leider ohne Erfolg...

von Axel R. (Gast)


Lesenswert?

Janee, ich habe auch keine Ahnung, was da jetzt nicht geht bei Dir, 
sorry.

von Jonas H. (fujitsu313)


Lesenswert?

Kein Problem, ich werde mich jetzt mit dem 555 Timer bauteil befassen 
und diesen in die Schaltung einbauen, aber danke euch.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.