PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Meine Theorie - Umsetzbar ?



ShadowPhoenix
09.05.2004, 13:39
Hallo!
Ich beschäftige mich derzeit mit einer Lösung für eine Fernsteuerung meines Roboterfahrzeugs.

Meine Theorie, die ich aufgestellt habe:

Ein Mikrocontroller sendet einen 8-stelligen Binärcode an einen Sender.
Dieser Sender überträgt den Code an den Empfänger.
Der Empfänger wiederrum schickt den Code an den angeschlossenen Mikrocontroller, und dieser wertet aus und steuert beispielsweise einen
Transistor an.
Beispiel:

Taste1 -> Mikrocontroller -> 00000001 -> Sender - - -> Empfänger -> 00000001 ->
Controller -> Transistor1

Taste2 -> Mikrocontroller -> 00000011 -> Sender - - -> Empfänger -> 00000011 ->
Controller -> Transistor2

Somit wäre es möglich, eine Fernsteuerung zu bauen!
Könnt ihr diese Theorie kommentieren, Anregungen, Tipps usw. geben?

Ich würde gerne eine Fernsteuerung nach diesem Prinzip bauen!
Jedoch brauche ich einen Sender, der in der lage ist, 8stelligen Binärcode zu senden!
Notfalls gehen natürlich auch weniger als 8 stellen!

Vielen Dank im Vorraus!
MfG,
ShadowPhoenix

God
09.05.2004, 13:55
Eigentlich müsste das gehen.
Den Binärcode sollte man wohl seriell Senden. Also immer beim Sender 0 oder 1 rantun. Aber man müsste das irgendwie machen, das das Timing stimmt. So das der andere Controller am Empfänger das auch auswerten kann. Viellecht kann man dafür die Manchester-Codierung benutzen.

mfg God

Dino Dieter
09.05.2004, 13:59
Hallo

Klar geht das. Somit kannst du dann 255 verschiedene Taster übertragen. Womit willst du die Daten übertragen ?

Es bieten sich die 433 MHz Sender an, oder Infrarot oder oder.

Du solltest dir aber Gedanken machen, in Richtung Fehlerüberprüfung. Auch benötigst du für Funkübertragung eine Manchester Codierung.

MFG
Dieter

ShadowPhoenix
09.05.2004, 14:07
Natürlich kann ein Empfänger mit einem "Wirrwarr" aus Nullern und Einsern nicht viel anfangen ;) (Sprich: 001010010010101101001100)
Der Empfänger benötigt meines Wissens nach ein "Start und Endsignal"

Zum Beispiel:
start - 00000001 - ende
start - 00000011 - ende

Fragen:
1)Serielle Daten: Bestehen sie nur aus 0 und 1? Oder auch anderen Zeichenfolgen?
2)Wie kann ich ein Startsignal und ein Endsignal verwirklichen?

Meine aktualisierte Theorie:

Taster1 -> Mikrocontroller -> start - 00000001 - ende -> Sender - - -> Empfänger -> 00000001 -> Mikrocontroller -> Transistor1

Was haltet ihr davon?
MfG,
ShadowPhoenix

God
09.05.2004, 14:27
1.) Nein, die 0 und 1 stehen nur für Highpegel (zb 15 V) und Lowpegel (zb -15 V). Das hat nix mit der 0 und 1 als Zeichen zu tun. Und Zeichen bestehen aus diesen Lowpegel und Highpegel Signalen
(zb. 01100011 = Low-High-High-Low-Low-Low-High-High; Dezimalzahl = 99. Ergibt dann als Ascii-code: "c")

2.) Als Start- und Endcondition kann man einfach zwei Binärfolgen reservieren, die für keine Taste gedacht sind. (zb. 00000001 und 00000011)


mfg God

NumberFive
09.05.2004, 14:27
würde jetzt noch ein prüf byte einbauen
also
Taster1 -> Mikrocontroller -> start - 00000001 - 11111110 ende -> Sender - - -> Empfänger -> 00000001 -> Mikrocontroller -> Transistor1

so ähnlich über trägt ürbigenes der RCX die daten per infarot also kann es nicht so schlecht sein gibt es nicht funkmodule die selbst um den takt kümmern ?

ShadowPhoenix
09.05.2004, 14:31
Vielen Dank schonmal!
Ich denke, jetzt geht es mehr in die Praxis. Bleibt dran, ihr müsst mir helfen ;) :

Taster1 -> Mikrocontroller -> 00000001,11111110,00000011 -> Sender - - -> Empfänger -> 11111110 -> Mikrocontroller -> Transistor1

Na, wie schaut das aus?
Jetzt brauche ich nur noch den Sender / Empfänger:
-500m Reichweite
-nicht all zu teuer

MfG,
ShadowPhoenix

recycle
09.05.2004, 20:10
Als "Trockenübung" könntest du vielleicht auch erst mal mit einer Infrarot-Fernbedienung anfangen. Irgendeine Infrarot Fernbedienung hast du ja sicherlich und als Empfänger brauchst du nur einen TSOP1736. Der kostet bei Reichelt weniger als einen Euro und ist mit seinen insgesamt 3 Pinnen schnell aufgelötet.

Klar, dass du damit lange keine 500m Reichweite erzielst. Aber du könntest dann erst mal mit der Programmierung, Steuerung usw. herumexperimentieren bevor du viel Geld für Funksender und Empfänger ausgibst.

Vielleicht kannst du dir da dann auch gleich was für dein Übertragungs-Protokoll abgucken, bei Infrarot Fernbedienungen werden die Daten ja auch seriell übertragen.

Matthias
09.05.2004, 20:15
Der Addlink schafft zwar "nur" 300m, ist aber das günstigste Tranceivermodul, das ich kenne (für die Leistung).

Matthias

ShadowPhoenix
09.05.2004, 21:14
Das heißt also, der TSOP1736 ersetzt sozusagen einen Empfänger?
Aber wie steuert man IR-Dioden (Die Sender) an?

Ihr meint, ich soll wieder im Bitmuster übertragen?
Und am Sender und Empfänger hängt je ein AVR ?

MfG,
ShadowPhoenix

klucky
09.05.2004, 21:56
Also ich hatte in etwa das selbe für meinen Robotor vorgesehen, ich wollte einen Funksender am PC anschließen, auf dem PC sollte dann eine Steuerungssoftware laufen und die Daten sollten dann per Funk an den Robotor übertragen werden. Dafür hört sich der Addlink ja recht interessant an. Aber leider hab ich noch net so wirklich viel ahnung von elektronik...

Dino Dieter
09.05.2004, 22:16
Hallo ShadowPhoenix

Als Einstieg ist IR doch erstmal gut. Als Empfänger ein TSPO 1736 und als IR Diode z.B. eine LD274-3 zu 30 Cent.

Schaltungen dazu gibt es ja genug im Internet. Die Diode mußt du mit 36 KHz betreiben. Als Protokoll würde ich mir mal das RC5 rein ziehen, klappt damit ganz gut.

Auf jeder Seite einen AVR und das nächste Wochenende ist wieder gerettet.

Klar mußt du dein Byte Bit für Bit übertragen, es gibt ja nur Diode an für eine Zeit oder Diode aus für eine Zeit.

MFG
Dieter

ShadowPhoenix
09.05.2004, 22:22
Ok vielen Dank für die Info!
Werde mich mal demnächst damit beschäftigen!
MfG,
ShadowPhoenix

recycle
10.05.2004, 02:37
Das heißt also, der TSOP1736 ersetzt sozusagen einen Empfänger?
Aber wie steuert man IR-Dioden (Die Sender) an?

Was ich meinte, war eigentlich, dass du den Sender erst mal nicht selber baust, sondern einfach irgendeine Infrarot-Fernbedienung die du zuhause rumliegen hast nimmst. Falls die dann nicht irgendein ganz exotisches Modell ist, sendet die RC5 Code.
An deinen Robby lötest du dann einen TSOP1736. Der braucht nur 5V, GND und einen Pin vom Controller, ist also schnell gemacht.
Eine "normale" Infrarot-Fernbedienung die mit RC5 Codes arbeitet, sendet bei jedem Tastendruck 2 Byte. Das erste Byte bestimmt für welches Gerät der Befehl ist, z.B. für den Fernseher, den Videorecorder usw. Das zweite Byte ist der eigentliche Befehl und bei jeder Taste unterschiedlich.

In BASCOM kannst du RC5 Signale mit getrc(adress, command) empfangen. Da "adress" bei einer einfachen Fernbedienung immer gleich ist, brauchst du nur "command" richtig auswerten.

Je nachdem was in dem Byte drin steht, lässt du deinen Robby dann so wie du es oben geplant hast irgendeinen Befehl ausführen.
Das kostet dich dann erst mal nur knapp 70 Cent für den TSOP1736 und du kannst die Steuerungssoftware für die Roboterseite schon mal mehr oder weniger fertig machen.

Ob du dann anschliessend auch noch einen Infrarot-Sender selber baust oder gleich auf ein Addlink-Modul oder igendein anderes Funkmodul übergehst, kannst du dir dann ja noch immer überlegen.
Dass du den TSOP später bei Steuerung über Funk nicht mehr brauchst, lässt sich bei 70 Cent und 3 Lötpunkten sicherlich verschmerzen.

Solange der Roboter dann weiterhin jeweils ein Byte als Kommando erhält, brauchst du die Software nur noch ganz minimal anpassen.

Manf
10.05.2004, 07:39
Schaltungen dazu gibt es ja genug im Internet. Die Diode mußt du mit 36 KHz betreiben. Als Protokoll würde ich mir mal das RC5 rein ziehen, klappt damit ganz gut.

Welcher link zu dem Thema wäre denn gut für Einsteiger?
Manfred

Dino Dieter
10.05.2004, 07:59
Hallo Manf

Ich finde den folgenden Link ganz gut.

http://www.sprut.de/electronic/ir/rc5.htm

und die Schaltung

http://www.sprut.de/electronic/pic/programm/irrc/irrc.html


Auch sonst eine sehr gute Seite.

MFG
Dieter

Manf
10.05.2004, 09:03
Oh ja, sie Seiten sehen gut aus,
schön was es alles gibt.

Ich staune nur immer, wenn ich mir überlege, daß mein Fernsehr das schon seit Jahren gewußt hat.

Manfred

klucky
10.05.2004, 13:23
Ich habe nochmal ne Frage zu dem Addlink. Das Ding kann ja senden und empfangen also brauch ich sowiso schonmal 2 davon 1 dass ich an meinen PC hänge und 1 das auf den Robotor setze. Ist es da nicht auch möglich noch ein Videosignal (z.b. von dieser Kamera KAMERA-MODUL B-CAM10) vom Robotor zum PC zu senden?

groelu
14.05.2004, 11:01
Ich würde die ganze Datenübertragung per I2C-Bus (Bei Atmel TWI genannt) lösen...
I2C löst nicht nur das Zeitkritische problem (Der Master (sender) gibt den Takt vor, der vom Slave(empfänger) automatisch übernommen wird), sondern auch die Fehlerüberprüfung...
Zudam kannst du später mit der selben fernbedienung bis zu 126 Roboter ansteuern, einzeln oder alle zusammen....

Jedoch weiss ich nicht, wie der I2C- Bus auf infrarot reagiert...

Es würde dann etwa so aussehen...
Master -----> Startsignal mit adresse (8bit)
Slave bestätigt mit einem acknowledge
Master ------> Datenübertragung (soviele Byte wie du willst)
Slave -----> bestätigt nach jedem Byte
Master ----> Stopsignal

I2C ist jedoch nicht besonders leicht zu realisieren (programmieren), aber wenn es mal funktioniert, ist es sehr komfortabel...