Forum: Mikrocontroller und Digitale Elektronik Welcher Microcontroller?


von Jan-W. K. (lofwyr)


Lesenswert?

Huhu!

Ich hatte eine kleine Bastelei im Kopf, dafür brauchts einen passenden 
Controller. Da ich mit selbigen bisher keine Erfahrung habe kann ich die 
verschiedenen Datenblätter nicht wirklich vergleichen.

Zuerst mal was das Ding tun soll:

- min 4 High-Power LEDs steuern, einmal RGB-Mischung zuzüglich Weiß zum 
aufhellen.

- 4 normale LEDs, gleiche Farbe und aufhellen wie die HP-LEDs

- 8-16 normale LEDs, die nach Programm blinken, einen Status anzeigen 
oder ähnliches.

- Zugriff auf eine SD-Karte von der verschiedene Profile geladen werden

- Abspielen von WAV-Datein

- Auswerten von einem Beschleunigungs- und einem Lagesensor

- anhand der Werte dieser Sensoren die LEDs Dimmen und die entsprechende 
WAV-Datei von der SD-Karte lesen und abspielen

Das ganze sollte mit möglichst wenig zusätzlichen teilen auskommen. 
Bisher hatte ich mich soweit durch die Datenblätter gewühlt das ich 
entweder ein XMC oder einen PIC 24 nehmen wollte, aber da die Feinheiten 
auseinanderhalten krieg ich leider nicht mehr hin.

Hätte da irgendwer einen Tip welcher MC geeignet währe?

MfG

Jan

von Cyblord -. (cyblord)


Lesenswert?

Mal so aus Neugier:
Was tust du, sobald dir ein passender Controller empfohlen wurde?

Du baust die Schaltung mal schnell auf und schreibst mal kurz das 
Programm dafür? Ohne Erfahrung? Oder kommt dann als Frage 2: Wie muss 
ich Komponenten verbinden und als Frage 3: Wer kann mir ein Programm 
dafür schreiben?

Denn diese ganzen Threads (ja du bist Nr. 50.000) mit dem vorgeblichen 
Inhalt "Welcher Microcontroller?", sind in Wirklichkeit ein 
Offenbarungseid. man will XYZ bauen hat aber null und gar keine 
Erfahrung oder Befähigung dazu. Also fragt man halt mal nach einem 
Controller. Unsinnig sowas.

: Bearbeitet durch User
von bal (Gast)


Lesenswert?

Ich mag cyblord nicht, er ist ein Kasperl.

Aber, hier hat er wohl recht. Du übernimmst dich. Kauf dir ein STMF4 
Discovery Board (mit dem kannst du in 2 Jahren auch WAVs abspielen) und 
fang erstmal an, LEDs nacheinander blinken zu lassen.

von Coder (Gast)


Lesenswert?

Fang mit nem Blink-Programm an. 8 Steuerbare Leds könnte man zum 
Beispiel mit 8 PWM Ausgängen machen. Also würdest einen Controller mit 
nicht zu wenig Timern benötigen. Es gibt ja auch Spezial uC für LED 
Anwendungen.

von St M (Gast)


Lesenswert?

Also ich würde, bevor man mit soetwas anfängt erstenmal ein 
Grundlagentutorial durcharbeiten und erstenmal eine LED zum Blinken 
bringen. Danach kannst du mal probieren einen Motor am mC zum laufen 63 
bringen. Danach probierst du dich mit dem SPI Bus auseinanderzusetzen 
(Sd Karte). Und danach kannst du probieren Audiodateien abzuspielen. Für 
diese simplen Aufgaben ALLEINE kannst du jeden mC verwenden. Ich würde 
einen 8 Bit PIC oder AVR verwenden. Als letztes kannst du dir für deine 
Aufgabe einen 32 bitter raussuchen (Cortex M oder PIC). Vorher solltest 
du dich aber mal zum Stichwort Multiplexing informieren.

von Max H. (hartl192)


Lesenswert?

Jan-W. Kettwich schrieb:
> Hätte da irgendwer einen Tip welcher MC geeignet währe?
Der z.B. PIC24FJ64GA004, abhängig davon wie aufwendig die Sensoren 
verrechnet werden sollen vllt. besser ein PIC32

http://www.microchip.com/wwwproducts/Devices.aspx?product=PIC24FJ64GA004
Eine Lib für die SD Karte gibts von Microchip.

Nachtrag: Ansonsten gibts auch den dsPIC33FJ64GP804 mit 16bit Audio DAC:
http://www.microchip.com/wwwproducts/Devices.aspx?product=dsPIC33FJ64GP804

: Bearbeitet durch User
von Jan-W. K. (lofwyr)


Lesenswert?

Na mal eben schnell wird das nichts, das ist mir klar. Bisher hab ich 
mal mindestens ein Jahr angepeilt um mich da mehr einzuarbeiten bevor 
ich wirklich mit basteln anfange. Notfalls hab ich dafür auch noch 2 
Elektro-Ingenieure im Bekanntenkreis, die haben aber von 
Microcontrollern auch keine Ahnung.
Es währe für mich halt nur deutlich einfacher mich auf einen oder 2 MCs 
zu konzentrieren und mich über die Schlau zu machen als über mehrere 
Prozessorfamilien.
Programmieren in C und C++ kann ich einigermassen.

Bisher war angedacht die HP-LED Treiber über PWM-Signale anzusteuern, 
die restlichen LEDS nach Möglichkeit direkt mit je einem Widerstand an 
I/O Ports anschliessen und über PWM bzw Timer die Ports entsprechend 
schalten.
Audio an einen Klasse D Verstärker auch über PWM.

Die Sensoren sind eigentlich nicht so kompliziert zu verarbeiten, es 
geht fast nur darum ob sich das Teil bewegt oder nicht.
2 Sensoren deshalb weil es auch Drehbewegungen geben kann und die über 
den Beschleunigungssensor nicht unbedingt erfasst werden.


MfG

Jan

von Norbert M. (Gast)


Lesenswert?

Jan-W. Kettwich schrieb:
> Ich hatte eine kleine Bastelei im Kopf, dafür brauchts einen passenden
> Controller. Da ich mit selbigen bisher keine Erfahrung habe kann ich die
> verschiedenen Datenblätter nicht wirklich vergleichen.

> Zuerst mal was das Ding tun soll:
> - min 4 High-Power LEDs steuern, einmal RGB-Mischung zuzüglich Weiß zum
> aufhellen.

Lässt sich praktisch auf jeder Billigstcontroller-Familie erledigen. Für 
die High-Power-LEDSs braucht's wahrscheinlich noch externe Transistoren. 
Oder dezitierte LED-Treiber verwenden. Alles problemlos.

> - 4 normale LEDs, gleiche Farbe und aufhellen wie die HP-LEDs

Auch kein Problem.

> - 8-16 normale LEDs, die nach Programm blinken, einen Status anzeigen
> oder ähnliches.

Ebenfalls Problemlos. Eventuell wegen der vielen Ausgänge ein 
Schieberegister dranflanschen.

> - Zugriff auf eine SD-Karte von der verschiedene Profile geladen werden

Wird schon kniffliger. Bzw. kann's knifflig werden. Einfachster Fall: 
Die SD-Karte wird roh vom Controller ausgelesen und die "Profile" 
beschränken sich auf ein paar Bytes an Binärdaten. Schwieriger Fall: Die 
Profile auf der SD-Karte werden von einem Rechner exportiert. Dazu muß 
der Controller dann das Filesystem lesen können. Im einfachsten Fall ist 
das dann eine einzelne Textdatei auf FAT16, wenn's blöd hergeht sind die 
Profile 17.000 XML-Dateinen nebst Schema in 500 Unterverzeichnissen auf 
irgendeiner logischen NTFS-Partition.

> - Abspielen von WAV-Datein

Das braucht entweder genügend Rechenpower (und die passende Library, 
denn ich denke kaum, daß Du das selbst zusammenprogrammieren kannst), 
oder einen externen Chip.

> - Auswerten von einem Beschleunigungs- und einem Lagesensor

Das ist demgegenüber wieder saueinfach, dazu muß man nur das Interface 
des Sensors (wahrscheinlich I2C oder etwas SPI-ähnliches) ansprechen 
können.

> - anhand der Werte dieser Sensoren die LEDs Dimmen und die entsprechende
> WAV-Datei von der SD-Karte lesen und abspielen

Wie gesagt: Sensoren ansprechen und LEDs dimmen: sehr einfach bis 
einfach.
SD-Karte und die Soundgeschichte: mittelmäßig bis unlösbar.

> Das ganze sollte mit möglichst wenig zusätzlichen teilen auskommen.

Ohne mit der Architektur gearbeitet zu haben: ARM mit ensprechenden 
(vorprogrammierten) Softwarebibliotheken.

> Bisher hatte ich mich soweit durch die Datenblätter gewühlt das ich
> entweder ein XMC oder einen PIC 24 nehmen wollte,

XMC kenne ich nicht, PIC24 dürfte das gewünschte aber (wie gesagt: mit 
der entsprechenden Software, die Du bestimmt nicht selbst programmieren 
willst) können.

> aber da die Feinheiten auseinanderhalten krieg ich leider nicht mehr hin.

Die Datenblätter der Controller sind eben auch nur eine Seite, die es zu 
beachten gibt. Viel wichtiger in Deinem Fall: Welche Software gibt's? 
Wie sehen die Lizenzen dafür aus? Kann ich die zur Verfügung gestellten 
Libraries programmiertechnisch (meistens wahrscheinlich über C) 
überhaupt ansprechen oder fehlen mir dazu die Programmierkenntnisse?

> Hätte da irgendwer einen Tip welcher MC geeignet währe?

Jeder und keiner. Ohne überheblich wirken zu wollen: Die Frage könnte 
man zum Beispiel mit dieser vergleichen: "Ich möchte gerne auswandern 
und die Sprache von dort lernen. Ich habe keine Erfahrung, aber ich habe 
mir Chinesisch und Arabisch angehört, deshalb werde ich nach China oder 
Arabien gehen."

> MfG
> Jan

LG, N0R

von Simon S. (-schumi-)


Lesenswert?

Ich glaube du würdest dich ein vielfaches leichter tun, wenn du einen 
Raspberry Pi nähmest.

Die schwierigen Sachen (SD-Karte, Musik) sind dort ganz einfach. Für die 
LEDs gibt es bistimmt schon fertige Boards zum aufstecken, ansonsten 
könntest du ein paar PWM-Chips benutzen, welche du via I²C oder SPI 
ansteuerst. Gleiches gilt für den Beschleunigungssensor

von Max H. (hartl192)


Lesenswert?

Norbert M. schrieb:
> SD-Karte und die Soundgeschichte: mittelmäßig bis unlösbar.
Für die SD-Karte gibt's für den PIC24 von Microchip eine Bibliothek.
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2680&dDocName=en537999
WAV Files sind nicht so kompliziert, die Audiodaten stehen 
roh/unkomprimiert auf dem Datenträger, so etwas kann sogar ein ATtiny 
wiedergeben.

: Bearbeitet durch User
von Frank K. (fchk)


Lesenswert?

Max H. schrieb:
> Norbert M. schrieb:
>> SD-Karte und die Soundgeschichte: mittelmäßig bis unlösbar.
> Für die SD-Karte gibt's für den PIC24 von Microchip eine Bibliothek.
> 
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2680&dDocName=en537999
> WAV Files sind nicht so kompliziert, die Audiodaten stehen
> roh/unkomprimiert auf dem Datenträger, so etwas kann sogar ein ATtiny
> wiedergeben.

... und wenn Du statt dem PIC24 einen dsPIC33FJ128GP802 verwendest, kann 
der selber Stereo Audio mit 14 Bit und 100 kHz abspielen - 
DMA-unterstützt. Im Datenblatt steht alles, was Du dazu wissen musst.

fchk

von klausro (Gast)


Lesenswert?

Jan-W. Kettwich schrieb:
> - Zugriff auf eine SD-Karte von der verschiedene Profile geladen werden
>
> - Abspielen von WAV-Datein
>
> - Auswerten von einem Beschleunigungs- und einem Lagesensor

Ich würde mit einem STM32F4 Discovery anfangen. Das ist preiswert, um 
nicht zu sagen billig, und hat zumindest den Audio-DAC fürs 
WAV-abspielen und einen Beschleunigungssensor schon auf dem Board. Es 
gibt auch Libs für das Lesen/schreiben von SD-Cards. Genug Ports für 
deine LEDs sind auch vorhanden. Es hat auch genug RAM, um was 
zwischenspeichern zu können.
Und jetzt das wichtigste: Es ist sehr populär, dass heißt man findet 
genug Leute, die einem helfen können, wenn man nicht weiter kommt.

von Gaestchen (Gast)


Lesenswert?

Norbert M. schrieb:
> SD-Karte und die Soundgeschichte: mittelmäßig bis unlösbar.

Dafür könnte man dann ja die fertig Elm Lösung mit dem ATtiny13 nehmen. 
damit wäre der Punkt schön gelöst. :)

von Jan-W. K. (lofwyr)


Lesenswert?

STM32F4 klingt ganz interessant ... gleicher Kern wie der XMC, Timer 
sollten langen und wenn es für den mehr Infos gibt hilfts ja nur ;-)

Mit den fertigen Boards hat es nur leider immer Platzprobleme, ich muss 
das ganze auf 25-30mm Breite unterbringen.
Ich werd mich denn mal in den STM32 einlesen und schauen ob ich das 
damit hinbekomm.

MfG

Jan

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Zum STM32 gibt es hier die ersten Infos:

Artikel:
STM32 die Übersicht
STM32 für Einsteiger

Und für die ersten Schritte (Blink-LED) auch das Beispiel:
STM32 CooCox Installation

von Dirk K. (dekoepi)


Lesenswert?

STM32 geht auch in klein. Ich habe grad STM32F030F4 im Zulauf - 32 
Bit-ARM-Kern, man kann einfach die STM Peripheral Lib verwenden, mit 
TSSOP20 noch beherrschbares Gehäuse. Externe Beschaltung ist auch 
minimal.

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.