Forum: Mikrocontroller und Digitale Elektronik Steuerung eines Mikrokontrollers und die Visualisierung der Daten am PC


von GS (chromosoma)


Lesenswert?

Hello.
Ich bin  neu hier, und warne sofort, dass duetsch nicht meine 
Muttersprache ist.;)
Also bitte Antworten wie:"...lern erstmal Deutsch" ersparen.

So, nun stelle ich mich kurz vor.
Mein Name ist Anton, und  ich komme aus der Ukraine:)
In zwei Monaten bekomme ich meinen Bachelor of Science in 
NanoEngineering.

Zunehmend interessiere ich mich für die Mikrokontroller-Programmierung, 
da ich das Gefühl habe, dass jeder Ingenieur oder Wissenschaftler das 
mal können muss/soll.
Ich finde es ganz praktisch, dass man die routine Laborarbeit(z.b 
Messungen oder Produktion) automatisieren oder verbessern kann, in dem 
man einen  µC für eigenen Zweck programmiert.

Soooo.

Im moment besitze ich Arduino Mega 2560(Ich hoffe das reicht für den 
Anfang), die ich mit Hilfe von Processing programmieren und ansteuern 
kann.
Ich habe sogar es geschaft, die Daten aus einem Thermosensor  als Graph 
zu plotten, und als TXT-Datei zu speichern. Geil, nicht?!:))
Nun habe ich erfahren, dass Processing nur mit Arduino funktioniert, und 
eigentlich  nicht für µC gedacht ist.

Nun merke ich, dass ich einen Rat brauche.

Was ich will:

-µC Programmieren können ( C/Java Grundkentnisse sind vorhanden)
-eine Benutzeroberfläche für die Steuerung eines µC erstellen können 
(geht mit Arduino und Processing)
-Ablesen, visualisieren und verarbeiten von Daten.

Frage:

Gibt es eine (also wirklich nur EINe) Software, die das alles kann. Ich 
suche also ein Programm, die es wirklich lohnt, zu erlernen. Nicht so 
wie  bei Processing, die nur mit Arduino funktioniert.

PS.
Nehmen wir an, ich interessiere mich erstmal nur für AVR-Processoren.


Vielen dank im voraus für ihre strukturierte und sachlich wertvolle 
Antworten

von Mitleser (Gast)


Lesenswert?

Eine Antwort kann ich Dir leider nicht geben, da ich BASCOM programmiere 
und von C keine Ahnung habe. Aber da bist Du hier sicher gut aufgehoben, 
denn hier sind einige sehr kompetente Leute unterwegs.

Aber ich muß mal sagen, gerade weil deutsch nicht Deine Muttersprache 
ist, schreibst Du nahezu perfekt und deutlich besser als manche Andere 
hier in Internetforen. Dein Anliegen ist sachlich und verständlich 
beschrieben und ich wünsche Dir hier viele vernünftige Antworten und 
Vorschläge. Leider kann ich Dir keine bieten.

von spess53 (Gast)


Lesenswert?

HI

Als notorischer Assemblerprogrammierer muss ich mal fragen was 
'Processing' ist.

MfG Spess

von Spitzbube (Gast)


Lesenswert?

Natuerlich gibt es nichts Durchgaengiges. Ich verwende AVRCo Pascal auf 
den AVR und Delphi auf dem PC. Mit C/C++ hab ich wenig am Hut.
Mach aber genau das was du beschreibst. Der Controller ist das Hardware 
Frontend des PC, das eine Funktion sicher und praezise ausfuehrt.

von kelle (Gast)


Lesenswert?

Ich verstehe nicht wirklich was du willst, aber hier gibt es diverse 
Projekte im Wiki an denen du dich orientieren kannst bzw. dir 
Möglichkeiten aufgezeigt werden,
Bsp:
USB IO Expander

Wenn du wirklich eine Entwicklungs-Umgebung suchst, mit der du einen AVR 
und einen PC beschicken kannst, wirst du wohl enttäuscht werden.

von GS (chromosoma)


Lesenswert?

spess53 schrieb:
> Als notorischer Assemblerprogrammierer muss ich mal fragen was
> 'Processing' ist.

hier: http://processing.org/


Gehört zwar nich an den Thread, aber ich habe schon mehrmals gehört, das 
assemlber  einfach veraltet  und sehr unübersichtlich ist.Stimmt es?=)

von GS (chromosoma)


Lesenswert?

kelle schrieb:
> Ich verstehe nicht wirklich was du willst, aber hier gibt es diverse
> Projekte im Wiki an denen du dich orientieren kannst bzw. dir
> Möglichkeiten aufgezeigt werden,
> Bsp:
> USB IO Expander
>
> Wenn du wirklich eine Entwicklungs-Umgebung suchst, mit der du einen AVR
> und einen PC beschicken kannst, wirst du wohl enttäuscht werden.

Das st nah dran, aber "unsportlich":)

Ok, ich versuche es genauer zu erklären was ich will:

Beispiel aus meiner Bachelor Arbeit:


Im Labor läuft eine Messung:
Die Probe wird mit einem Laser bestrahlt.
Wegen Vibration der Umgebung wandert der Stahl langsam aus der Probe.
 Manuelle Lösung: Ein Mensch sitzt die ganze Zeit, und schiebt die Probe 
in die richtige Richtung.
Da die Messung über vielen Stunden läuft, ist diese lösung lange nicht 
optimal

Hi-Tech Lösung:
Ein CCD Sensor verfolgt die Bewegung des Strahles, und korrigiert mit 
einem Schrittmotor die XYZ Postion der Probe.
Außerdem soll die Intesität und Position des Strahles in Abhängigkeit 
von der Zeit graphisch auf dem PC dargestellt werden.
Die manuelle XYZ soll auch vom PC möglich sein.

Theoretisch könnte man das alles mit einem µC realisieren, der die CCD 
ansteuert, daten analysiert und nötige korrekturen vornimmt.Gleichzeitig 
sendet er die nötige Info an PC, die auch graphisch visualisiert wird.
Außerdem muss amn in der Lage sein, den µC auch manuell, von einer 
Benutzeroberfläche zu steuern.

Kann man das alles mit einer Software realisieren?

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

Anton R. schrieb:

> ich habe schon mehrmals gehört,
> das  assemlber  einfach veraltet und sehr unübersichtlich ist

uh, da trittst du eine Lawine los.

Ich hab auch schon mehrmals gehört, daß diese  Geschichte mit Jesus und 
Engeln und Himmel und so einfach veraltet ist. Es gibt dennoch manche 
Menschen, die das für ziemlich wichtig halten, und andere Menschen die 
das alles für total unwichtig halten.

Ich persönlich bin übrigens "Assembler-Agnostiker" ;-)

http://de.wikipedia.org/wiki/Agnostiker

von ivan (Gast)


Lesenswert?

Hi Anton,

also ich denke, dass du so ein programm nicht findest (oder ich kenne es 
einfach auch nicht), aber du kannst so ein programm (kommunikation µC 
und PC) selbst schreiben, oder probieren zu schreiben. Gui in Java 
programmieren , µC in asm oder C programmieren.

von Thomas E. (thomase)


Lesenswert?

Anton R. schrieb:
> Gibt es eine (also wirklich nur EINe) Software, die das alles kann.
Klar gibt es die. Aber das ist eine Programmiersprache und die heisst C.

Beantworte dir selbst erstmal die Frage, ob du wirklich µC programmieren 
möchtest oder ob du mit irgendeinem Programm möglichst schnelle 
Ergebnisse erzielen möchstest, die zwar tolle Sachen machen, aber du 
hast keine Ahnung, warum sie das machen.

Für letzteres bist du in diesem Forum falsch.

Arduino ist keine µC-Programmierung, sondern Arduino besteht aus einer 
Hardware-Platform mit einem µC.

Zur µC-Programmierung brauchst du ein Entwicklungsboard, dafür kannst du 
das Arduino, das du schon hast nehmen, eine Entwicklungsumgebung, z.B 
AVR-Studio, einen ISP-Programmer und das Datenblatt des Controllers, den 
du verwendest. Dazu kommt dann noch ein Steckbrett und ein paar 
Elektronikteile. Für den Anfang tun es da ein paar Widerstände, 
Transistoren, LEDs, Kondensatoren. Und natürlich einen Lötkolben.

DAS ist die Welt der Mikrocontroller.

Ob du deine ersten Programme nun in C, Bascom, Assembler oder was auch 
immer schreibst, ist eigentlich völlig egal. Klick mal oben links auf 
AVR. Darunter findest du dann zwei Tutorials. Eins für Assembler das 
andere für C. Die guckst du dir erstmal an. Dann bekommst du einen 
ersten Eindruck, was dich erwartet. Wahrscheinlich wirst du erstmal gar 
nichts verstehen, aber das ist normal.

Und wenn die ersten (Test-)Programme auf dem µC laufen, kümmerst du dich 
darum, wie du Daten an den PC schickst und wie der PC diese Daten 
empfängt und auswertet.
Üblicherweise macht man das mit einer virtuellen RS232-Schnittstelle 
über
USB. So ein Teil ist auch auf deinem Arduinoboard drauf.

Und die Auswertung auf dem PC machst du in einer Programmiersprache 
deiner Wahl. C++, C#, Visual Basic, Java oder was weiss ich.

Anton R. schrieb:
> Kann man das alles mit einer Software realisieren?
Na klar. Aber die musst DU entwickeln. Und dazu musst DU wissen, wie ein 
µC und er ganze andere Kram, den du dazu brauchst ticken. Oder 
irgendjemand hat das schon vor dir programmiert und das als 
Arduino-Sketch oder sonstwelcher Open Source veröffentlich.
Aber da du weder einen MP3-Player noch einen LED-Cube brauchst, bleibt 
das wohl an dir hängen.

Die Umsetzung deines Beispiels schüttelt dir aber auch kein Profi mal 
eben am Wochenende aus dem Ärmel.

mfg.

PS
Anton R. schrieb:
> ( C/Java Grundkentnisse sind vorhanden)
Ein C-Buch ist auch dringend zu empfehlen.

von ivan (Gast)


Lesenswert?

Embedded C Programming & Microchip Pic ist aber in english

von GS (chromosoma)


Lesenswert?

Thomas Eckmann schrieb:
> Beantworte dir selbst erstmal die Frage, ob du wirklich µC programmieren
> möchtest oder ob du mit irgendeinem Programm möglichst schnelle
> Ergebnisse erzielen möchstest, die zwar tolle Sachen machen, aber du
> hast keine Ahnung, warum sie das machen.

So sehe meine Problemlösung für das oben erwähntes Problem:

-Ich kaufe mir eine fertige Board, wie z.B. STM32F4-DISCOVERY.
-Schließe meine Sensoren/Motoren an das Board an.
-Schreibe ein Programm, das die oben genannte Lösung ausführt.


Nein, ich will nicht  das Rad neu erfinden, mir reicht schon ein 
fertiges Board.

von Thomas E. (thomase)


Lesenswert?

Anton R. schrieb:
> -Ich kaufe mir eine fertige Board, wie z.B. STM32F4-DISCOVERY.
> -Schließe meine Sensoren/Motoren an das Board an.
> -Schreibe ein Programm, das die oben genannte Lösung ausführt.
Was denn auch sonst?

> Nein, ich will nicht  das Rad neu erfinden, mir reicht schon ein
> fertiges Board.
Das ist leider immer das Universalargument derer, die meinen man könne 
auf das Erlernen der Grundlagen verzichten und dann irgendein Tool 
suchen, mit dem man sich alles zusammenklicken kann.

Das fertige Board gibt es auch nicht. Ob jetzt ein STM..., Arduino oder 
sonstwas. An keines dieser Boards wirst du einfach so deine Sensoren und 
Motoren anschliessen können. Richte dir schon mal deine Bastlerecke ein.

mfg.

von GS (chromosoma)


Lesenswert?

Thomas Eckmann schrieb:
> Das fertige Board gibt es auch nicht. Ob jetzt ein STM..., Arduino oder
> sonstwas. An keines dieser Boards wirst du einfach so deine Sensoren und
> Motoren anschliessen können. Richte dir schon mal deine Bastlerecke ein.

Das ist mir klar.
Für mein Arduino habe ich schon ein breadboard, Widerstände, 
LED'S,Dioden, Sensoren,H-Bücken etc gekauft.
Das man seinen Board nachrüsten muss, ist vollig ok.
Nur will ich nicht von Null anfangen,sprich die evaluation board selber 
entwerfen, alles  zusammenlöten etc.

So.
Jetzt zurück zur meiner Frage.
Nehmen wir an, ich habe schon ein fertiges E-Board, kann ich mithilfe 
einer Software das E-Board und die Benutzeroberfläche programmieren?

von Dennis S. (dspo)


Lesenswert?

Klare Antwort: Nein. Controllersoftware wie PC-Benutzeroberfläche wirst 
Du mit verschiedenen Programmen entwickeln müssen, dazu ist beides zu 
unterschiedlich.

von GS (chromosoma)


Lesenswert?

Thomas Eckmann schrieb:

> Zur µC-Programmierung brauchst du ein Entwicklungsboard, dafür kannst du
> das Arduino, das du schon hast nehmen, eine Entwicklungsumgebung, z.B
> AVR-Studio, einen ISP-Programmer und das Datenblatt des Controllers, den
> du verwendest. Dazu kommt dann noch ein Steckbrett und ein paar
> Elektronikteile. Für den Anfang tun es da ein paar Widerstände,
> Transistoren, LEDs, Kondensatoren. Und natürlich einen Lötkolben.
>
> DAS ist die Welt der Mikrocontroller.
>
> Ob du deine ersten Programme nun in C, Bascom, Assembler oder was auch
> immer schreibst, ist eigentlich völlig egal. Klick mal oben links auf
> AVR. Darunter findest du dann zwei Tutorials. Eins für Assembler das
> andere für C. Die guckst du dir erstmal an. Dann bekommst du einen
> ersten Eindruck, was dich erwartet. Wahrscheinlich wirst du erstmal gar
> nichts verstehen, aber das ist normal.
>
> Und wenn die ersten (Test-)Programme auf dem µC laufen, kümmerst du dich
> darum, wie du Daten an den PC schickst und wie der PC diese Daten
> empfängt und auswertet.
> Üblicherweise macht man das mit einer virtuellen RS232-Schnittstelle
> über
> USB. So ein Teil ist auch auf deinem Arduinoboard drauf.
>
> Und die Auswertung auf dem PC machst du in einer Programmiersprache
> deiner Wahl. C++, C#, Visual Basic, Java oder was weiss ich.



So. Nach langen googeln hab ich entschieden das richtiges programmieren 
zu erlernen, nichts mit Arduino IDE.
Habe schon AVR Studio installiert, und kaufe in kürze einen AVR 
Programmer MK2, um arduino  durch ISP zu programmieren.
Der Datenaustausch wird durch USB erfolgen.
Die Visualisierung  und Steuerung am PC wird mit Hilfe von Processing 
realisiert, der ja sowieso die serielle Kommunikation unterstützt,und 
somit ist es egal, ob der mit Arduiono oder STM oder einen anderen µC 
spricht.

ich frage mich nur, ob  man durch eine serielle Kommunikation (USB) den 
µC Befehle erteilen kann.Zum Beispiel ich sende  vom PC einen Befehl 
"LED3.on",und der µC führt diese Funktion aus. Vorausgesetzt natürlich, 
dass der µC diesen Befehl auch kennt.
Mal sehen ob ich auf dem richtigem Weg bin:)

von besucher (Gast)


Lesenswert?

im avr tutorial ( 
http://www.mikrocontroller.net/articles/AVR-Tutorial:_UART )gibt es 
einen artikel über datenaustausch über rs232
dann kanst du dir ja für den rechener in VB oder worin auch immer ein 
programm schreiben das die schnitstelle ausliest.
wenn du umbedingt alles über usb machen willst dann kauf dir ne usb 
rs232 wandler oder googel v-usb

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.