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
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
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?
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?
....
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
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.
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.
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.
@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
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)
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.
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
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