Forum: Mikrocontroller und Digitale Elektronik XY-Plotter Bildverarbeitung


von cihan7515 (Gast)


Lesenswert?

Hallo zusammen,

ich habe mir meinen eigenen XY-Plotter zusammen gebaut. Mit einem 
Arduino-Board, 2 Schrittmotoren und einer Magnetspule als 
Stifthalterung. Die Ansteuerung der Motoren geht über die Arduino 
Programmierung ziemlich gut. Ich kann einfach Zeichnungen durchführen 
(Kreise, Rechtecke, Dreiecke, etc.). Auch ein bestimmte Koordinate kann 
ich anfahren. Also soweit so gut.

Was mir bis jetzt fehlt ist, dass ich ein Bild als Vektor-Grafik senden 
und malen lassen möchte. Doch ich habe überhaupt keine Ahnung wie ich 
das im Ansatz machen könnte.

Hat jemand in der Hinsicht Erfahrung, um mir einige Start Tipps zu 
geben??

Freue mich auf eure Hilfe.

von Alexander (Gast)


Lesenswert?

Hallo,
den Wikipedia Artikel mit den Beispielen zu SVG schon durchgelesen ? 
http://de.wikipedia.org/wiki/Scalable_Vector_Graphics#Grafische_Elemente

Da steht eigentlich alle drin. Wenn du schon Kreise etc. zeichnen 
kannst, musst du dir nur ein kleines Script schreiben, was das SVG 
einliest und verarbeitet.

Das sollte nun kein Problem sein ...

von Karl H. (kbuchegg)


Lesenswert?

cihan7515 schrieb:

> Programmierung ziemlich gut. Ich kann einfach Zeichnungen durchführen
> (Kreise, Rechtecke, Dreiecke, etc.). Auch ein bestimmte Koordinate kann
> ich anfahren. Also soweit so gut.

Die grundlegenste aller Möglichkeiten hast du nicht erwähnt: beliebige 
Linien von einer Koordinate zu einer anderen Koordinate zeichnen.
Kannst du das?
Wenn nein: Grundlage ist der sog. Bresenham Algorithmus. Er sagt dir, 
welche Schritte in welcher Reihenfolge einzeln gemacht werden müssen, 
damit sich die vorgegebene Linie ergibt (als Treppenzug mit winzig 
kleinen Treppen).

> Was mir bis jetzt fehlt ist, dass ich ein Bild als Vektor-Grafik senden
> und malen lassen möchte. Doch ich habe überhaupt keine Ahnung wie ich
> das im Ansatz machen könnte.

So eine Vektorgrafik besteht im einfachsten Fall einfach nur aus einem 
Haufen Linien. Kannst du einzelne, beliebige, Linien zeichnen, kannst du 
schon mal eine Menge aufs Papier bringen.
Irgendwo musst du natürlich die Linieninformation herkriegen. Und da 
hast du jetzt ein kleines Problem, denn eine komplexere Zeichnung wirst 
du auf dem Arduino nicht speichern können. D.h. hier wird der PC 
aushelfen müssen. Im einfachsten Fall hast du eine Kommunkation zwischen 
einem PC Programm und dem Programm auf dem Arduino laufen, bei der der 
PC dem Arduino den Auftrag gibt eine Line von bis zu zeichnen. Der PC 
kann sich die Information zb aus einem auf dem PC gespeicherten File 
holen. Wenn du einfache Testbeispiele brauchst, gib Bescheid, dann geb 
ich dir ein paar Files in einem leicht zu lesenden Format.

: Bearbeitet durch User
von Soul E. (Gast)


Lesenswert?

guckst Du "HPGL", "Hewlett Packard Graphics Language".

Das ist für Plotter, was Apple/Adobe PostScript und Epson FX-80 Esc/K 
für Drucker waren. Der Quasi-Standard

von rickk (Gast)


Lesenswert?

Hallo cihan7515,

kein SVG. Mach's wie soul eye vorgeschlagen hat mit HPGL. Nimm dazu zum 
Beispiel Inkscape, male damit ein Rechteck, speichere es als HPGL und 
dann kannst Du direkt die Koordinaten anfahren und es steht drin "Pen 
UP" oder "Pen Down". Später kannst Du dann jede beliebige Grafik laden.

Hab mit HPGL selbst mal einen Treiber für ne CNC Graviermaschine 
gemacht.
Allerdings TurboPascal.

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.