Forum: Mikrocontroller und Digitale Elektronik Welchen Mikrocontroller???


von Michael Spitzl (Gast)


Lesenswert?

Hallo Leute.

Bin neu hier und erstaunt, wie schnell bei euch Antworten geschrieben
und weitergeholfen wird. Da kann sich manch anderes Forum was
abgucken!

Also zu meinem kleinen Problem.

Ich habe eine Waage, die eine serielle Schnittstelle zum Übertragen der
Messwerte hat.
Jetzt will ich die Messwerte an den µC schicken, der berechnet daraus
gewisse Zahlen, und diese sollen in einem vorgefertigtem Messprotokoll
(kann einfach sein, zb. Gewicht1: 2400g Absatz Gewicht2:2300g, usw.)
eingetragen werden. Sind alle Messungen vorgenommen, will ich den µC
einfach mittels serielle Schnittstelle an einen Drucker hängen und
dieses Messprotokoll einfach per Tastendruck (das ganze ohne Computer)
ausdrucken.

JEtzt meine Frage: Gibts da ne Microcontroller dafür? Ist es sehr
schwirieg das Messprotokoll in den µC zu bekommen und wie schwer ist es
mit dem Drucker?

Ich danke euch im Voraus für eure Antworten!

Ps: Ich programmiere im µ Vision (C)!

MfG, Michael

von Läubi (Gast)


Lesenswert?

Also wenn ein Nadeldrucker Okay ist ist das ganze relativ leicht
zumachen, du müßtest aber eventuell je nach Umfang der Messung ein
Externes EEPRom anhängen um die Daten zu speichern bis sie gedruckt
werden.

von Michael U. (Gast)


Lesenswert?

Hallo,

ausdrucken ist auf eigentlich jedem Drucker recht problemlos, der
entweder eine serielle oder eine parallele Schnittstelle hat und kein
GDI-Drucker ist (die haben sozusagen nichts drin und wollen die
fertigen Druckdaten von Rechner bekommen.
Eine Beschreibung des Kommandosatzens ist hilfreich, wenn er z.B. ESC/P
kann (Epson Standard) findet man alles nötige sicher im Netz oder in
einem alten Druckerhandbuch (Epson LX400 usw.).
Die meisten dieser Drucker (Star, Citizen, Philips,...) lassen sich auf
ESC/P einstellen.
HP (HP500 usw.) können PCL (HP-Standard), da findet mach auch die
nötigen Unterlagen.

Ist für einen AVR kein Problem, 2k Flash reichen da immer. Was die
Datenmege angeht, siehe voriges Posting von Läubi.

Gruß aus Berlin
Michael

von Joe (Gast)


Lesenswert?

Du schreibst du programmierst in uVision, also ist die Wahl des MC schon
getroffen. Aber mehr als ein bischen Datenempfang auf der seriellen
Schnittstelle sowie deine Berechnungen sowie Ausgabe auf den Drucker
steckt ja nicht drin.

Wenn du dein Anliegen konkreter formulieren könntest, dann kann dir
geholfen werden.

Woran arbeitest du nun oder was ist die Frage ?

UART ?
Rechnen ?
Ausgabe auf den Drucker ?

von Peter D. (peda)


Lesenswert?

µ Vision heißt vermutlich 8051.

Eines der Flagschiffe der 8051-er ist der AT89C51RE2 (128kB Flash, 8kB
SRAM). Auf jeden Fall sollte es einer mit Bootloader sein, damit man
ihn  bequem programmieren kann.

Ob Du den großen wirklich brauchts, hängt davon ab, wieviel Daten Du
speichern willst, ehe Du druckst.

Der Drucker sollte noch nen LPT-Anschluß haben, da kann man dann pures
ASCII ausgeben. USB ist zu kompliziert, es gibt kaum MCs mit
USB-Master.


Peter

von Sonic (Gast)


Lesenswert?

Wenn Du die Daten mit minimalem Puffer über LPT direkt an den Drucker
gibst (LPT ist einiges schneller als COM), dann brauchst Du keine
großen Datenmengen zwischenzuspeichern. Über PCL (HP-Format) geht das
mit sehr vielen Druckern problemlos!

von Michael Spitzl (Gast)


Lesenswert?

Hallo.

Also erstmal DANKE für eure schnellen Antworten!

Ich arbeite an einer Diplomarbeit. Es sollen über die Waage etwa 5
Werte eingegeben werden und daraus werden etwa 7-8 Werte berechnet.
Diese Sollen dann auf ein Blatt Papier, wenns geht mit Tabelle,
Schriftkopf usw.. Dann werden wieder Messwerte gemessen und das Spiel
geht von vorne los nur mit anderen Zahlen.

In der Schule arbeiten wir mit dem Philips 89C51RD2 und µVision. Also
kann ich diesen µC verwenden?

Wie mach ich das mit der Messtabelle in die die Werte gespeichert und
dannn ausgedruckt werden?

Danke!

Michael

von .... (Gast)


Lesenswert?

http://www.mehto.roboterbastler.de/?Projekte:Drucker_ansteuern

Sieht sehr nett aus, werd ich wohl auch mal nachbauen ;)

von Marko (Gast)


Lesenswert?

Das ganze steht und fällt mit dem einzusetzenden Drucker.
USB-Drucker kannste ziemlich knicken, weil Du dann
nen kompletten Treiber in Deinen µC schreiben mußt
und das ist nicht ganz ohne.
HP-Drucker mit Parallelportschnittstelle also LPT
sind da ne andere Sache. Die sind meist
DOS-Kompatibel, bedeutet er hat seinen Zeichensatz
eingebaut, meist Times und da kannste über ASCII die
Kiste direkt ansteuern.

von Joe (Gast)


Lesenswert?

Also, der Controller ist OK. Das Wesentliche ist zunächst die Aufgabe
mal genau zu formulieren. Welche Informationen kommen über die serielle
Schnittstelle ? was soll mit den Werten passieren ? dann wird gedruckt.

Einen Link zum Drucken hast du bereits, ich empfehle dir ebenso die
parallele Schnittstelle zu verwenden, USB kannst du erst einmal
vergessen.

Bitte strukturiere mal dein Vorhaben und lass mal erkennen wo dein
Wissensstand ist.

>>> Wie mach ich das mit der Messtabelle in die die Werte gespeichert
und dannn ausgedruckt werden? <<<

Beschreibe wie du es gerne machen möchtest, insgesamt gibst du noch zu
wenig Informationen.

von Michael Spitzl (Gast)


Lesenswert?

Wie kann ich eine fertige Tabelle in den µC laden und dann Messwerte,
welche über die Schnittstelle kommen, in die zb. 1 Zeile Spalte 2
einfügen?

von Joe (Gast)


Lesenswert?

So ganz einfach machst du es einem nicht gerade.

Also, in ASM:
Tabelle1: DB 'Eine Zeile deiner Tabelle'

In C:
const char Tabelle[] = "Eine weitere Zeile deiner Tabelle";

Nun nen Pointer drauf, ausgeben sowie den Meßwert einfügen.

Das ist nicht die Antwort die du hören wolltest ?

Dann beschreibe bitte konkret ein Beispiel. Mir ist das immer noch zu
wenig. Einen Versuch hast du noch. Mich würde interessieren:

Datenformat deiner Meßwerte ? Baudrate ? Einheit etc. Dann könnte man
die Schnittstelle beschreiben.

Tabelle ? gib doch einfach ne Beispieltabelle.

Drucker ? parallele Schnittstelle ? ASCII ?

von Michael Spitzl (Gast)



Lesenswert?

Hallo.

Eigentlich schon...

Baudrate dachte ich an 9600, Einheit werden Gramm sein. Datenformat
weis ich noch nicht genau, da ich erst übermorgen die Waage bekomme.

Aber ich weis  das es sich um eine RS-232 SS bei der Waage handelt.

Drucker ist egal....für irgendeinen billigen von ebay (hp 710C oder so)
Ascii zeichen.

Im Anhang ist ein Screenshot der Tabelle die am µC gespeichert und in
die die Waerte eingetragen werden sollen.

LG, Michael

von Klaus (Gast)


Lesenswert?

Du möchtest also die "Tabelle" wie in Deiner .JPG Datei erkennbar
ausdrucken und gleichzeitig die Messwerte von der Waage da
reinschreiben ?

Also nicht nur ASCII- oder ECS-Zeichen drucken, sondern vollgraphische
Daten, eben die "Tabelle".

==> Einfache Antwort bzgl. 8051 oder sonstigen Einfach-uP:
    Vergiss' es !

Etwas ausführlichere Antwort:
Der ROM (Flash-) und/oder RAM Speicherbereich eines solchen uP reicht
nicht aus, um die Tabelle darin "als Bild" zu halten (ROM) bzw.
irgendwie aufzubauen (RAM).
Auch ist die Ansteuerung im Grafikmodus, z.B. über PCL5 ziemlich
aufwendig (Pixel-zeilenweise)und man muß sämtliche verwendete
Zeichensätze (Schriften) im ROM haben und selbst per Software erzeugen.

Mit der Farbe deines Beispielblatts will ich micht garnicht
befassen...

Rat:  Einen (alten) PC hernehmen, das dann dort in einer höheren
Programmiersprache schreiben.
Die "Tabelle" mögichst als gängige Grafikdatei (.BMP) vorgeben ;
Programm liese direkt aus dieser Datei, füllt die Messwerte rein,
fertig.

von Joe (Gast)


Lesenswert?

Das was Klaus hier darlegt ist im Prinzip korrekt, auf Farbe und Grafik
solltest du verzichten. Der Rest ist allerding kein Problem. Sämtliche
Texte sowie das Einfügen der entsprechenden Meßwerte geht in Ordnung.

Baudrate ist absolut easy, du solltest deine Waage zuvor mit einem
Terminal Programm wie z.B. TeraTerm einmal "abhören". Auf diese Art
und Weise kann man sehr schnell herausfinden was diese aussendet.

Im Prinzip braucht es dann für den Anfang einen Ablaufplan und los
gehts.

Wenn also die genannten Dinge für dich kein KO. Kriterium sind dann laß
von dir hören. Wir können dann mal ein Beispiel für die Tabelle
entwerfen.

von Michael U. (Gast)


Lesenswert?

Hallo,

wenn man unbedingt wollte, kann man es machen...
Tabelle passend zerlegen, nur Druckerfonts benutzen, keine Bildchen.

Texte im Flash, Im Loop Text raus, Anzahl Punkte im Loop.
Tabelle so aufbauen, das sie zur Druckerauflösung in x/y passt und auch
mit Schleifen und mit wenigen identischen Flash-Daten ausgeben.
An den richtigen Stellen die Werte senden. Beachten und berechen, das
zwischenText- und Grafikmode nicht beliebig gewechselt werden kann usw.
usw.

Erinnert mich an C64-Zeiten. ;-)

Naja, reizvoll, aber ob ich es heute nochmal so machen würde????

Gruß aus Berlin
Michael

von Michael Spitzl (Gast)


Lesenswert?

Danke für eure Antworten!

Mal gucken ob ich es mitn alten PC mache oder ob ich doch auf meinen
Jocker greife. Ist zwar ein bisschen "fad" weils so einfach ist
aber......

Laptop oder PC mit LAbView oben.....Tabelle als Bild einfügen,
grafische Programmierelemente drüberschieben usw. Wenn die MEssung
fertig ist einfach auf drucken gehn.....

ALso DANKE nochmal für eure Hilfe!

Tschau, Michael

von Peter D. (peda)


Lesenswert?

Man kann sich doch einfach entsprechende Vordrucke in Farbe drucken
lassen und dann haut der 8051 nur die Zahlen an die entsprechenden
Stellen.


Peter

von Hans (Gast)


Lesenswert?

uVision für arm holen, arm-board von olimex oder wem auf immer mit
linux-image+usb-host und fertig???

ist aber sicher aufwendiger wenn man dazu nicht schon ein fertiges
projekt hat... usb-drucker unter linux können richtig böse sein...


aber was machbar sein sollte wär aufbereitung als postscript und das
dann an z.b nen hp-laser per paralleler schicken ;)

dann host sogar grafik ;)

73

von Hans (Gast)


Lesenswert?

schlafdefizit ist böse.. vorletzte zeile sollte lauten:

dann hast du sogar grafik ;)

sry, 73

von Manos (Gast)


Lesenswert?

Mein Problem ist die Aufgabenstellung an sich...

Du sollst 5 Werte von einer Waage seriell einlesen, daraus 7-8 Werte
machen und diese dann (als Tabelle) auf einem Drucker ausgeben.

Wenn ich ehrlich bin klingt das für mich nach einer Übungsaufgabe und
nicht nach einer Diplomarbeit. Aber vielleicht ist es auch nur ein
Teilbereich der Diplomarbeit.

Das Schwierigste ist - wie es sich immer mehr rausstellt - wohl eher
die ansprechende Ausgabe der Daten, nicht die Umwandlung. Über einen PC
sollte das auch kein Problem sein, da muß man sich noch nicht mal große
Gedanken über die Druckersprache machen.
Man kann sowas bestimmt auch mit einem einfachen uC machen indem man
z.B. die gesamte Datenstrom für die Grafik aus einem externen SPI- oder
I2C-EEPORM ausliest und an den Drucker sendet - allerdings würde ich
diesen Aufwand nicht treiben wenn es nicht gefordert ist.

von Hans (Gast)


Lesenswert?

wenn du mit postscript nur linien zeichnest und keine grafiken
verwendest dürfte das damit und dem richtigen drucker(laser.. aber
nicht die billigen 100e dinger) nicht allzuviel arbeit sein.. reine
ASCII-Art sachen sind auch nicht das problem aber alles andere ist für
nen uC meinermeinung nach einfach zuviel.. vor allem wenn man nicht
einen ARM und entsprechende tools hat...

bei PS und ascii könnte man schon am pc die routinen testen... alles
andere ist dann von der hardware abhängig (daten im eeprom,...) und
damit schon komplizierter zum debuggen....

73

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.