Forum: Mikrocontroller und Digitale Elektronik PIC mit IR Datenübermitteln


von Harald S. (sensibelchen)


Lesenswert?

Moin,


ich beschäftige mich seit einiger Zeit mit PICs, denn ich habe eine Idee 
für meine Modellbahn und die möchte ich umsetzen. Ich habe ein 
Entwicklungsboard, mit dem ich schon viel ausprobiert habe. Aber für 
meine Idee hilft es mir nicht weiter.

Zu meiner Idee.
Folgender Aufbau: Mehrere Waggons hintereinander (Reihenfolge beliebig) 
in jedem Waggon ein PIC mit 2 IR-Sendern und 2 IR-Empfängern (jedes Ende 
ein Paar), 2 LEDs und bis zu 6 Servos. (Entkuppler, Türen, Phantos,...)

jetzt soll ein PIC eine Zahl (1-255 reicht) per IR übertragen (Herkunft 
und Richtung der Zahl durch FunktionsAusgänge des Dekoders in einer Lok) 
der nächste PIC soll sie empfangen, zurücksenden als Bestätigung des 
Erhalts, ggf. Ändern der Zahl (Abhängig von der Zahl. Jede Zahl hat eine 
andere Bedeutung), dann ggf. über 2. IR-Sender (geänderte) Zahl weiter 
senden, auf Bestätigung warten, ggf. LED Schalten und evtl. Servo 
bewegen.

Wie bekomme ich eine IR-Übertragung von PIC zu PIC hin? Hat da jemand 
eine Idee?
Das ganze sollte Hardwareseitig sehr einfach und kostengünstig gehalten 
werden. Denn ich bräuchte, wenn es funktioniert über 100 Stück dieser 
Schaltungen.

Ich habe meine ersten Schritte in Assembler gemacht. "C" ist nicht so 
mein Ding.
Ich hoffe ich habe den Aufbau verständlich beschrieben.

Wenn mir jemand helfen könnte wäre ich froh.


Mit freundlcihem Gruß

Harald

von Michael (Gast)


Lesenswert?

Harald Stellner schrieb:
> Wie bekomme ich eine IR-Übertragung von PIC zu PIC hin? Hat da jemand
> eine Idee?

So wie jede IR-Fernbedienung
Code für den Empfänger findest du z.B. im Artikel IRMP

p.s. Und keine Angst vor C.

von Frank K. (fchk)


Lesenswert?

Das Zauberwort heißt IRDA. Da gibt es eine langsame, einfache Version 
namens SIR (Serial IR), und es gibt Transceiverbausteine wie zB den 
hier:

http://www.vishay.com/docs/82633/tfbs4711.pdf

Von der Sorte gibts noch viele andere, von Vishay, ROHM, Panasonic, 
Sharp. LiteOn, Zilog,...

Das Ansteuern mit einem PIC ist gar kein Problem. Da nimmst Du einfach 
einen kleinen PIC24, denn die können alle schon das IRDA SIR Protokoll 
in Hardware erzeugen und auch dekodieren, d.h. für Dich ist es dann 
einfach nur eine serielle Schnittstelle, der USART des PIC24 macht den 
Rest. Dir reicht dann schon ein PIC24F(V)16KA301 (die V-Version hat 
einen Portpin weniger, kann dafür aber mit 5V betrieben werden). Der hat 
zwei serielle Schnittstellen, d.h. für jede Seite eine. Oder ein 
PIC24F08KL301.

PIC12/PIC16/PIC18 haben keine IRDA-Unterstützung in Hardware, hier 
müsstest Du das alles in Software machen. Sooo schwer ist das nun nicht, 
aber es ist Arbeit und Zeitaufwand. Also nimm PIC24.

fchk

von Xx (Gast)


Lesenswert?

> PIC12/PIC16/PIC18 haben keine IRDA-Unterstützung in Hardware, hier
> müsstest Du das alles in Software machen. Sooo schwer ist das nun nicht,
> aber es ist Arbeit und Zeitaufwand. Also nimm PIC24.


Oder einen der vielen Pic Basic und C- Compiler die IRDA mit an Bord 
haben. Die Hardware ist da auch erklärt.

von querdenker (Gast)


Lesenswert?

hallo harald,
tschuldige, wenn ich deine idee so umdenke, aber ich glaube das mit der 
ir-verbindung solltest du dir nochmal ueberlegen. was passiert z b in 
einer kurve oder durch sonstige stoerquellen. ich an deiner stelle, 
wuerde da lieber zb einen rfduino nehmen und alle wagons direkt 
ansteueren. dann haste auch nicht das laestige problem, dass die 
komplette steuerung ueber die loks laufen muss.

gruesse

von Xx (Gast)


Lesenswert?

Harald Stellner schrieb:
> Ich habe meine ersten Schritte in Assembler gemacht. "C" ist nicht so
> mein Ding.

Dann evtl. Basic oder Pascal? Gibt es ja alles


> Wenn mir jemand helfen könnte wäre ich froh.

Mikroe hat komplette Demos inkl Schaltung Software und Video.

Die wollen natürlich ihre Compiler verkaufen, aber da zwingt dich ja 
keiner zu. Deren Demoversion würde vermutlich reichen.

Nur Infrarot:
http://www.mikroe.com/click/ir/

Irda (Datenübertragung)
http://www.mikroe.com/click/irda2/

von Frank K. (fchk)


Lesenswert?

Xx schrieb:

> Irda (Datenübertragung)
> http://www.mikroe.com/click/irda2/

Ein reichlich dummer Vorschlag. Da wird das IRDA-Protokoll durch einen 
extra Decoderchip gemacht, und der allein kostet fast so viel wie ein 
PIC24F08KL301, der zwei IRDA-Verbindungen und die ganze restliche 
Steuerung gleichzeitig handhaben kann. Ganz zu schweigen von dem 
benötigten Platz, der im Modellbau immer knapp ist.

fchk

von Xx (Gast)


Lesenswert?

Frank K. schrieb:
> Da wird das IRDA-Protokoll durch einen
> extra Decoderchip gemacht, und der allein kostet fast so viel wie ein
> PIC24F08KL301, der zwei IRDA-Verbindungen und die ganze restliche
> Steuerung gleichzeitig handhaben kann.

Ist ja Ok, nur brauchst du dann wohl auch einen IRDA Stack was für einen 
Anfänger doch eher schwierig ist.

querdenker schrieb:

> was passiert z b in
> einer kurve oder durch sonstige stoerquellen. ich an deiner stelle,

Na eine Fernbedienng funktioniert auch in der Kurve, nur eine Frage der
Sendeleistung

> wuerde da lieber zb einen ...

oder unter jeden Waggon einen Bar- bzw. QRCode kleben. Der wird dann im 
Gleisbett gelesen. Spart die ganze wireless Arie und kostet nur 
Bruchteile.

von Frank K. (fchk)


Lesenswert?

Xx schrieb:
> Frank K. schrieb:
>> Da wird das IRDA-Protokoll durch einen
>> extra Decoderchip gemacht, und der allein kostet fast so viel wie ein
>> PIC24F08KL301, der zwei IRDA-Verbindungen und die ganze restliche
>> Steuerung gleichzeitig handhaben kann.
>
> Ist ja Ok, nur brauchst du dann wohl auch einen IRDA Stack was für einen
> Anfänger doch eher schwierig ist.

Nein, brauch ich nicht. Ein Bit im USART, und der PIC24 macht IRDA SIR.

fchk

von Harald S. (sensibelchen)


Lesenswert?

Moin,


Danke für die vielen Antworten.

hier ein paar Gedanken von mir dazu. Etwas unsortiert, so wie es mir 
gerade einfällt.


- Einen Bar- oder Qrcode unter jeden Wagen würde bedeuten, daß ich die 
Aktion immer nur an der Stelle auslösen kann, wo der Code im Gleisbett 
liegt. Ich möchte es ja auf der gesamten Anlage an jeder beliebigen 
Stelle tun können.

- Mit dem rfduino habe ich das so verstanden, das die Komunikation über 
Bluetooth funktioniert und ich dann alle Wagen einzeln ansprechen kann. 
Dies wäre kontraprduktiv, dann könnte ich in jeden Wagen einen 
DCC-Dekoder einbauen. Wäre einfacher und billiger. Ich müßte dann aber 
immer von jedem Wagen die Adresse wissen. Nach 2 Stunden Rangieren wäre 
es ein Hütchenspiel mit 20 Hütchen.

- Der Sinn meiner Schaltung soll ja sein, die Information von Wagen zu 
Wagen weiter zugeben. So kann ich (so meine Idee) z.B. 5 mal eine 
Funktionstaste der ziehenden Lok drücken, diese gibt eine 5 weiter der 
nächste Wagen eine 4, der nächste eine 3 usw. und an der Stelle mit der 
1 werden bei beiden Wagen die Entkuppler betätigt und der Zug wird 
getrennt.
Und wenn diese Verbindung schon mal da ist kann man sie auch für andere 
Dinge missbrauchen.

- Kurvenfahrt soll ja durch Rücksenden des Signals als "ich habe 
Verstanden" kompensiert werden.

- Reichweite braucht/muß max. 20cm betragen, möglichst auch im Freien.

- Ist IRDA nicht mit Kanonen auf Spatzen schießen in meinem Fall? Oder 
macht es die Sache beim Programmieren einfacher?

- Ich bin vom Hobby Modellbahner und Elektronik ist für mich ein 
Hilfsmittel. Ich habe nichts dadegen C zu lernen, nur leider fehlt mir 
die Zeit und jemand, der es mir vernünftig zeigt. Ich habe es schon 
öfters mal probiert und bin an den Büchern gescheitert.

- gibt es für den PIC24F(V)(16/08)KL301 evtl. ein Entwicklerboard? Wäre 
dann wohl einfacher, oder?

- leider ist Englisch für mich ein Buch mit 6 Siegeln. Windoof 
Fehlermeldungen und Ähnliches bekomme ich schon noch entschlüsselt aber 
ein Datasheet zu verstehen ist eine Tortour für mich.


Gruß

Harald

von Frank K. (fchk)


Lesenswert?

Harald Stellner schrieb:

> - Ist IRDA nicht mit Kanonen auf Spatzen schießen in meinem Fall? Oder
> macht es die Sache beim Programmieren einfacher?

In diesem Fall macht es Dir die Sache einfach, weil Du es wie ein 
serielles Kabel benutzen kannst.

> - Ich bin vom Hobby Modellbahner und Elektronik ist für mich ein
> Hilfsmittel. Ich habe nichts dadegen C zu lernen, nur leider fehlt mir
> die Zeit und jemand, der es mir vernünftig zeigt. Ich habe es schon
> öfters mal probiert und bin an den Büchern gescheitert.

Oh. Schade. Das sind keine guten Voraussetzungen.

> - gibt es für den PIC24F(V)(16/08)KL301 evtl. ein Entwicklerboard? Wäre
> dann wohl einfacher, oder?

Nein. Das ist so primitiv, das kannst Du selber. Du brauchst nur einen 8 
MHz Quarz, 2*22pf von den Quarzpins gegen Gnd, 1*100nf zwischen Vdd und 
Gnd, und das wars. Beim FV kommt noch ein 10uF gegen Gnd dazu. Siehe 
Seite 25 des Datenblattes.

> - leider ist Englisch für mich ein Buch mit 6 Siegeln. Windoof
> Fehlermeldungen und Ähnliches bekomme ich schon noch entschlüsselt aber
> ein Datasheet zu verstehen ist eine Tortour für mich.

Oh, das ist dann in der Tat ein Problem. Wenn Du in diesem Bereich 
Erfolg haben willst, musst Du die Primärliteratur lesen können. Und die 
ist halt in English. Ist halt so.

fchk

von Harald S. (sensibelchen)


Lesenswert?

Moin,


Okay, ich habe mir ein Entwicklerboard mit einem Pic18 besorgt und werde 
jetzt erst einmal intensiv (zumindest so was meine Zeit zuläßt) C lernen 
im Zusammenhang mit einem Pic.


Für das Datasheet werde ich mir dann jemanden Suchen müssen, der mir die 
Dinge übersetzt, die ich nicht verstehe.


Gruß

Harald

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.