Forum: Mikrocontroller und Digitale Elektronik Wie Gerät mit RF-, IR- und Bluetooth-Fähigkeiten bauen


von Joni (Gast)


Lesenswert?

Hallo,

ich möchte mir die eZ430-Chronos von TI kaufen 
(http://focus.ti.com/docs/toolsw/folders/print/ez430-chronos.html) und 
als zentralen Computer für die Steuerung verschiedener Angelegenheiten 
in der Wohnung einsetzen. Dazu möchte ich ein Hausgerät bauen, dass 
folgende Anforderungen erfüllen müsste:
- mit eZ430-Chronos auf 868 MHz kommunizieren
- mit anderem Gerät über serielle Schnittstelle Daten austauschen
- per Bluetooth mit Handy kommunizieren
- Signale von Funkfernbedienungen auf 868 MHz nachahmen können, sofern 
dies mit eZ430-Chronos schlecht möglich ist (mir wurde gesagt, beim 
Ändern der radio settings wegen RF-Protokoll ist u.U. ein Reset 
notwendig, was beim Uhrgebrauch wohl unpraktisch wäre)
- IR-Signale lernen und aussenden können, ODER wenn einfacher: 
RF-Signale von IR-RF-IR-Wandlern auf 433 MHz lernen und nachahmen können
- ein paar MB Speicher haben

Meine Fähigkeiten:
- Programmieren
- Löten aus Technikunterricht damals in Schule
- kein größeres Verständnis von Elektronik (Zusammenhänge, 
Wirkungsweise)

Ist das machbar? Ich hoffe meine mangelnden Elektronikkenntnisse 
vereiteln das nicht! Ich dachte mir, es gibt ja Entwicklungsplatinen mit 
einer Reihe an Pins, an die man z.B. ein Bluetooth-Modul anschließen 
könnte.

Es wäre ganz toll, wenn mir da jemand helfen könnte, da mir die Sache 
echt wichtig ist.

Viele Grüße, Joni

von Joni (Gast)


Lesenswert?

Kann mir irgendjemand helfen? So ein Beitrag kommt hier aber auch 
verdammt schnell unter!

von abc (Gast)


Lesenswert?

wenn du ein paar Jahre Zeit hast kriegst du das sicher hin ;-)

wie immer: arbeite mal das Tutorial hier auf der Seite durch und lass 
ein paar LED´s blinken, dann bekommst du ein Gefühl wie groß der Aufwand 
ist

von Joni (Gast)


Lesenswert?

Hallo,
ich möchte das ganze auf der Basis eines Entwicklerboards realisieren. 
Es gibt da welche mit 100 Pins und mehr, die man meines Erachtens 
programmiertechnisch frei verwenden kann (GPIO?). Manche Boards machen 
den Eindruck, ein Motherboard zu sein. Bluetooth-, RF- und IR-Module 
sind da doch nur Peripherie. Somit kann das ganze doch nicht SO komplex 
sein. Oder was sehe ich da falsch, wenn ich etwas falsch sehe?

von MagIO (Gast)


Lesenswert?

Was hast du denn schon programmiert? Welche Sprachen? Welche Umgebung?
Was darf es denn kosten?

Zunächst mal solltest du dir Gedanken darum machen, welche Interfaces du 
nun brauchst. Wieviele serielle Schnittstellen z.B.? Wie hoch ist der zu 
erwartende Kommunikationsaufwand über alle Schnittstellen? Average und 
Maximum?!
So ein paar Grund-Parameter braucht man einfach um bewerten zu können, 
ob ein Controller denn genug Power/IOs hat das alles abzufackeln.

Kommen evtl. noch Dinge hinzu wie ein eigenes Display? Wenn ja, welches?

....

von Joni (Gast)


Lesenswert?

Hallo,

vor etwa 10 Jahren habe ich begonnen zu programmieren, und seitdem in 
PowerBasic für DOS, Visual Basic, C++, PHP und Java programmiert (immer 
unter Windows). Was ist immer eine doof zu beantwortende Frage: alles 
mögliche. :) Für Mikrocontroller habe ich noch nicht programmiert, ich 
sehe aber keine unüberwindbare Hürde, mich da einzuarbeiten, zumal die 
eZ430-Chronos sicher ein guter Einstieg ist.

Als preisliches Maximum würde ich jetzt erstmal 200 Euro angeben, obwohl 
natürlich gerne günstiger.

Schnittstellen (in Klammern hauptsächlicher Datenverkehr):
- Serielle Schnittstellen brauche ich auf jeden Fall eine, um mit einem 
anderen Gerät, das fest ins System gehören soll, kommunizieren zu können 
(zeitweise am Tag wohl alle 30s Events erhalten und ab und zu Befehle 
geben). Jemand hat mir allerdings gesagt, IR ist evtl. gut über UART zu 
lösen, in dem Fall bräuchte ich wohl noch eine.
- IR (ab und zu Fernbedienungssignale nachahmen)
- Funk 868MHz (Kommunikation mit eZ430-Chronos, meister Datenverkehr, 
zeitweise andauernde Übermittlung von Daten des 
3-Achsen-Beschleunigungssensors möglich, normalerweise ab und zu einige 
Datenpakete; evtl. ab und zu Signale von Funkfernbedienungen nachahmen, 
wenn nicht mit Uhr gelöst)
- Bluetooth (ab und zu einfache Befehle ans Handy senden, um z.B. 
Audiosignale, die sich auf dem Handy befinden, ausgeben zu lassen)

Ein Display anzuschließen, habe ich nicht vor, nur eine Status-LED wäre 
wohl ganz sinnvoll. Dann bin ich mir nicht sicher, ob das ganze 
batteriebetrieben machbar ist, oder saugt das zu viel Strom?

Viele Grüße, Joni

von MagIO (Gast)


Lesenswert?

Natürlich gibt es keine unüberwindbaren Hürden, wenn man Spass an der 
Sache hat.

Nun, du musst dir bzgl. Plattform selbst ein paar Gedanken machen, in 
welche Richtung es gehen soll. Wenn du Boards mit GPIO ansprichst, dann 
denke ich an sowas wie Grasshopper und co. Gibt es natürlich auch für 
andere Processoren, wie z.B. ARM oder mit ATOM, die dann mehr PC-like 
sind - keine Ahnung, ob die dann auch GPIOs haben.

Das schwierige an diesen Teilen ist meines Erachtens nach eine 
funktionierende Toolchain aufzusetzen. Die meisten werden wohl mit einem 
Linux-System laufen, in das man sich dann auch erst mal einarbeiten 
muss, wenn man vorher nur Windows-Programmierung gemacht hat.

Ob es für diese Teile dann auch entsprechende Module (868MHz 
transceiver/Bluetooth...) und vor allem die dazu gehörenden Treiber 
gibt, würde ich in Vornherein versuchen herauszufinden. Das 
programmieren ist dann vergleichbar mit dem programmieren von PCs, da 
diese Teile ja mit einem Betriebssystem daher kommen. Allerdings werden 
die bzgl. Stromverbrauch auch etwas hungriger sein.

Für das, was Du machen willst sollte aber auch ein Mikrocontroller 
locker reichen (wozu brauchst du die "paar MB Speicher"?.

Das schwierige an Mikrocontrollern ist, dass man hier das Gesamt-System 
komplett selbst entwickeln muss. Natürlich gibt es Bibliotheken, aber am 
Ende muss man meist auch da Hand anlegen, z.B. weil ein Interrupt von 2 
verschiedenen Modulen benötigt wird.

Interrupts sind sowieso die Haupt-Schwierigkeit, die selbst bei 
profesionellen Projekten noch viel "Freude" bereiten können.

Also, was denkst Du macht dir mehr Spaß? Rumärgern mit Toolchains und 
Linux oder eher Low Level Entwicklung?

Zu Grasshopper & Co. kann ich nix weiter sagen, da ich so ein Board auch 
noch nicht habe.
Bzgl. Mikrocontroller habe ich schon einige durch. 8051er, AVR, PIC und 
den Propeller.
Da der Propeller NICHT mit Interrupts arbeitet hat man hier gerade als 
Anfänger eine Sorge weniger. Durch Multi-Core fällt auch die Anpassung 
von Fremd-Modulen (beim Propeller Objekte genannt) weg. Einfach einen 
Core mit dem 868er Objekt füttern und es läuft ohne Einfluss auf den 
eigenen Code. Die Entwicklungsumgebung ist (wie auch bei anderen 
Mikrocontrollern) umsonst und die benötigte Hardware ist sowas von 
minimal ... Breadboard, Propeller und ein paar Transistoren/Widerstände 
für ein serielles Interface reichen.
Besser ist USB 2 Serial statt seriell und zusätzlich noch 64kB 
EEPROM+5MHz Quarz. Für deine "paar MB" kann man dann z.B. eine SD-Karte 
dranklemmen.

Ok, ich weiß, dass der Propeller hier im Forum nicht gerade häufig 
genannt wird - und ich verstehe, dass viele Profis Controller bevorzugen 
von denen es eine Heerschaar an verschiedenen Ausprägungen gibt ... mehr 
Leistung, OK, nehmen wir die nächst höhere Version ...
Aber ich kenne bisher keinen anderen Mikro, mit dem man in so kurzer 
Zeit soviel zum Laufen bekommt. In den ersten paar Tagen habe ich 
folgendes einfach mal ausprobiert:
- serielle Schnittstelle
- 7 Segment-Anzeige
- TV
- VGA-Monitor
- Encoder
- Servo
- Temperatur-Sensor
- SD Karte
- Schieberegister (mit dem video-generator vollgepumpt ;o)
- AD Wandlung (sigma delta-also ohne externen AD-Wandler)
- Keyboard
- Lautsprecher
- Mikrofon
- Text LCD display
... nochmal ... alles in nur wenigen Tagen!

Und nicht zu vernachlässigen ist das 1a Forum.

von Georg (Gast)


Lesenswert?

@MagIO

Welches Propellerboard hast Du denn? Das für 95€?

von MagIO (Gast)


Lesenswert?

Ich hab mit nem simplen Breadboard angefangen und einem USB2Serial vom 
großen C. Seit ca. 2 Wochen hab ich ein ebenso simples Board von 
Gadgetgangster. Huckepack ein kleines Breadboard draufgepackt, wieder 
ein USB2Serial vom C - fertig.

Gadgetgangster gab es vor Weihnachten zusammen mit nem SD-Modul und 
kostet $35 + $6 Porto + €4,5 Zoll

Mein nächstes Board wird dann vermutlich eine Eigenentwicklung.

von Georg (Gast)


Lesenswert?

Danke für die Informationen.

>Ich hab mit nem simplen Breadboard angefangen

Ja stimmt, es gibt ja den 40-poligen DIL-Propeller.
Ich würde gerne etwas mit SD-Card und 16-bit Audio machen, dafür wäre
der Propeller bestimmt gut geeignet.

von Joni (Gast)


Lesenswert?

@MagIO:

Vielen Dank für die Hilfe! Ich brauchte ein bisschen, um mir das alles 
durch den Kopf gehen zu lassen und mich umzusehen.

> wozu brauchst du die "paar MB Speicher"?

Eine der größten Speicheranforderungen besteht wohl im stundenlangen 
Sichern von Daten des Beschleunigungssensors. Vielleicht 8, oder 16 MB, 
was ist möglich und leicht genug einzurichten?

> Für das, was Du machen willst sollte aber auch ein Mikrocontroller locker 
reichen

Das ist, denke ich, auch das, was ich nehmen möchte. Mit einem 
Mikrocontroller wäre es doch dasselbe Prinzip wie bei der 
Windows-Programmierung mit Message loop und WinProc, oder? Die 
Interrupts setzen einfach eine Statusvariable, dass was geschehen ist, 
und puffern Daten. Dann registriert die Message loop die veränderte 
Statusvariable und Hauptcode mit der Verarbeitung von Daten wird 
ausgeführt. Stelle ich mir das richtig vor? Vielleicht könnte man es von 
der Programmierstruktur auch mit meiner DOS-Entwicklung von damals 
vergleichen, wo ich richtig schöne Programme mit Benutzeroberfläche 
programmiert habe. :)

Kann es sein, dass, wenn das Interruptsystem z.B. gerade sehr 
beschäftigt ist mit Funk, IR-bezogene Interrupts unterkommen, oder steht 
alles brav Schlange bzw. wird durch Unterbrechen auch anderer Interrupts 
sicher verarbeitet?

> Wenn du Boards mit GPIO ansprichst

Das mit GPIO war nur ein erster Gedanke von mir. Hauptsache, ich kann 
die erwünschten Kommunikationswege einrichten. Ich habe mittlerweile 
gesehen, dass viele Module über UART kommunizieren können (z.B. 
http://amber-wireless.de/files/amb2300_ds.pdf oder 
http://www.bluegiga.com/files/bluegiga/Pub%20files/WT12_Datasheet.pdf). 
Eine andere Möglichkeit wäre wohl SPI. Bloß, gibt es diese Ausstattung 
in der benötigten Menge an Boards? Senden kann ja mal warten, aber ich 
brauche ja auf jeden Fall fürs serielle Port (5 Pins übrigens) und RF 
Verbindungen, die immer empfangsbereit sind. Muss man mangels 
Ausstattung manche angestrebte Kommunikationswege (IR, Bluetooth) auf 
ein Interface vereinen und macht sich so zeitweise "auf einem Auge 
blind"?

Viele Grüße, Joni

von MagIO (Gast)


Lesenswert?

Siehe meine erste Antwort:
"Zunächst mal solltest du dir Gedanken darum machen, welche Interfaces 
du
nun brauchst."

In der Regel sollte ein gewöhnlicher Controller die Hardware-Ausstattung 
mitbringen, die zu der Aufgabe passt. Dann hat er nämlich entsprechend 
viele UARTs. Die buffern die Daten bis sie von dem Interrupt-Handler 
abgeholt werden und nichts geht verloren.

Beim Propeller ist das anders. Wenn man da 10 serielle Schnittstellen 
braucht, dann startet man 3 controller-kerne - von denen jeder 4 
serielle Schnittstellen zur Verfügung stellt. Da die sich nur darum 
kümmern müssen geht da auch nix verloren. Und jetzt such mal nen anderen 
Controller, der 10 serielle Schnittstellen hat ;o)

von MagIO (Gast)


Lesenswert?

Ach so ... vergessen ... zum loggen braucht man ja kein RAM. Das macht 
man eh besser auf ner SD-Karte. Dann kann man es auch einfach auf nem PC 
bearbeiten.

von Joni (Gast)


Lesenswert?

Hi,
die letzten 2 Wochen hatte ich leider überhaupt keine Zeit. Es ist 
ärgerlich, aber die nächste Woche wird nochmal genauso. Nicht das du 
denkst, ich hätte aufgegeben. :) Werde mich dann nochmal melden.

Viele Grüße

von Joni (Gast)


Lesenswert?

Sorry, nachdem ich nun auch noch krank war, mal wieder zurück zum Thema.

Mit Datenspeicherung auf SD-Karte brauche ich nun 3x UART und 1x SPI.

Mit IR habe ich mir das nun folgendermaßen gedacht: eine Fotodiode 
verwenden in der 3. Betriebsart gemäß 
http://de.wikipedia.org/wiki/Fotodiode (wg. Reaktionszeit). Das Board 
braucht einen ADC mit mind. 100ksps, womit ich dann IR-Signale samplen 
und somit auch lernen kann. Dann ist nur noch das Aussenden mit einer 
IR-LED nötig.

Ich habe mit 'nem Tool von TI 
(http://focus.ti.com/en/multimedia/flash/selection_tools/mcu/mcu.html) 
nach einem passenden Controller gesucht. Doch ich habe nur ein Board 
gefunden, das mit einem Controller ausgestattet ist, der die nötigen 
Schnittstellen besitzt: 
http://wiki.davincidsp.com/index.php/MSP-EXP430F5438_Experimenter_Board 
. Ist mit um die 130 EUR vielleicht n bisschen teuer angesichts dessen, 
dass da noch ein bisschen was zukommt. Überhaupt finde ich keine guten 
Verzeichnisse von Boards. Hast du irgendwelche Tipps, wie ich ein 
entsprechendes Board finden kann, oder ist das Board wohl doch das 
beste?

Viele Grüße, Joni

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.