Files
p5-wallplotter/plotter.svg
T
2026-09-06 00:47:31 +02:00

112 lines
6.5 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1080 640" width="1080" height="640" role="img" aria-labelledby="title desc">
<title id="title">Wandplotter: Geräte und Signalweg</title>
<desc id="desc">Medientechnische Zeichnung. Laptop mit Chrome sendet G-code per USB an die SKR Mini E3 V3. Dort läuft Marlin und steuert zwei Schrittmotoren und den Stift-Servo der Gondel.</desc>
<defs>
<marker id="arrow" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="8" markerHeight="8" orient="auto-start-reverse">
<path d="M 0 1.5 L 10 5 L 0 8.5 Z" fill="#1a1a1a"/>
</marker>
<style>
.label { font-family: Helvetica, Arial, sans-serif; fill: #1a1a1a; }
.small { font-size: 12px; }
.tiny { font-size: 11px; fill: #333; }
.title { font-size: 18px; font-weight: 700; }
.box-title { font-size: 13px; font-weight: 700; }
.muted { fill: #555; }
.line { fill: none; stroke: #1a1a1a; stroke-width: 1.6; }
.thin { fill: none; stroke: #1a1a1a; stroke-width: 1.2; }
.dash { fill: none; stroke: #1a1a1a; stroke-width: 1.2; stroke-dasharray: 5 4; }
.fill-paper { fill: #f7f5f0; }
.fill-device { fill: #ffffff; }
.fill-marlin { fill: #f3efe4; }
</style>
</defs>
<rect width="1080" height="640" fill="#faf9f6"/>
<text x="40" y="36" class="label title">Wandplotter  Geräte und Signalweg</text>
<text x="40" y="56" class="label tiny muted">p5.js im Browser sendet G-code. Marlin auf dem Controller bewegt die Motoren.</text>
<!-- Wall / plotter -->
<rect x="40" y="78" width="1000" height="268" class="fill-paper" stroke="#1a1a1a" stroke-width="1.2"/>
<text x="52" y="98" class="label tiny muted">Wand / Polargraph</text>
<!-- Motor X -->
<rect x="88" y="112" width="118" height="56" class="fill-device" stroke="#1a1a1a" stroke-width="1.6"/>
<circle cx="147" cy="140" r="11" fill="none" stroke="#1a1a1a" stroke-width="1.6"/>
<circle cx="147" cy="140" r="3" fill="#1a1a1a"/>
<text x="147" y="186" text-anchor="middle" class="label box-title">Motor X</text>
<text x="147" y="202" text-anchor="middle" class="label tiny muted">links · Riemen links</text>
<!-- Motor Y -->
<rect x="874" y="112" width="118" height="56" class="fill-device" stroke="#1a1a1a" stroke-width="1.6"/>
<circle cx="933" cy="140" r="11" fill="none" stroke="#1a1a1a" stroke-width="1.6"/>
<circle cx="933" cy="140" r="3" fill="#1a1a1a"/>
<text x="933" y="186" text-anchor="middle" class="label box-title">Motor Y</text>
<text x="933" y="202" text-anchor="middle" class="label tiny muted">rechts · Riemen rechts</text>
<!-- Idler line -->
<line x1="206" y1="140" x2="874" y2="140" class="thin"/>
<text x="540" y="128" text-anchor="middle" class="label tiny muted">Umlenkrollen · Abstand 1660 mm</text>
<!-- Belts -->
<line x1="147" y1="168" x2="540" y2="268" class="line"/>
<line x1="933" y1="168" x2="540" y2="268" class="line"/>
<!-- Gondola -->
<rect x="502" y="258" width="76" height="40" class="fill-device" stroke="#1a1a1a" stroke-width="1.6"/>
<line x1="540" y1="298" x2="540" y2="318" stroke="#1a1a1a" stroke-width="1.6"/>
<line x1="532" y1="318" x2="548" y2="318" stroke="#1a1a1a" stroke-width="2"/>
<text x="540" y="338" text-anchor="middle" class="label box-title">Gondel + Stift</text>
<text x="540" y="354" text-anchor="middle" class="label tiny muted">Position aus zwei Riemenlängen</text>
<!-- ========== Signal row ========== -->
<!-- Laptop -->
<rect x="40" y="380" width="280" height="200" class="fill-device" stroke="#1a1a1a" stroke-width="1.8"/>
<rect x="58" y="398" width="244" height="118" fill="#eceae4" stroke="#1a1a1a" stroke-width="1.2"/>
<text x="180" y="428" text-anchor="middle" class="label box-title">Laptop · Chrome</text>
<text x="180" y="450" text-anchor="middle" class="label small">p5.js · WallPlotter.js</text>
<text x="180" y="470" text-anchor="middle" class="label tiny muted">zeichnet Linien in Millimetern</text>
<text x="180" y="488" text-anchor="middle" class="label tiny muted">Web Serial</text>
<rect x="120" y="524" width="120" height="12" fill="#ddd" stroke="#1a1a1a" stroke-width="1"/>
<text x="180" y="562" text-anchor="middle" class="label tiny muted">1 Host</text>
<!-- USB arrow -->
<line x1="320" y1="480" x2="398" y2="480" class="line" marker-end="url(#arrow)"/>
<text x="360" y="466" text-anchor="middle" class="label box-title">G-code</text>
<text x="360" y="500" text-anchor="middle" class="label tiny muted">USB</text>
<!-- Controller / Marlin -->
<rect x="400" y="380" width="300" height="200" class="fill-device" stroke="#1a1a1a" stroke-width="1.8"/>
<text x="550" y="408" text-anchor="middle" class="label box-title">Controller SKR Mini E3 V3</text>
<rect x="422" y="424" width="256" height="88" class="fill-marlin" stroke="#1a1a1a" stroke-width="1.4"/>
<text x="550" y="452" text-anchor="middle" class="label box-title">Marlin (Polargraph)</text>
<text x="550" y="472" text-anchor="middle" class="label tiny">liest G1 X& Y& · inverse Kinematik</text>
<text x="550" y="490" text-anchor="middle" class="label tiny muted">Riemenlängen ’ Schrittimpulse</text>
<text x="550" y="536" text-anchor="middle" class="label tiny">Netzteil 24 V · USB nur Daten</text>
<text x="550" y="562" text-anchor="middle" class="label tiny muted">2 Steuerung</text>
<!-- Cables to motors -->
<path d="M 480 380 V 220 H 206" class="dash" marker-end="url(#arrow)"/>
<text x="250" y="214" class="label tiny">Schritte X</text>
<path d="M 620 380 V 220 H 874" class="dash" marker-end="url(#arrow)"/>
<text x="780" y="214" text-anchor="end" class="label tiny">Schritte Y</text>
<!-- Servo -->
<line x1="550" y1="380" x2="550" y2="300" class="dash" marker-end="url(#arrow)"/>
<text x="562" y="248" class="label tiny">Servo Stift</text>
<text x="562" y="262" class="label tiny muted">M280</text>
<!-- Legend -->
<rect x="740" y="380" width="300" height="200" class="fill-device" stroke="#1a1a1a" stroke-width="1.2"/>
<text x="756" y="408" class="label box-title">Ablauf</text>
<text x="756" y="436" class="label small">1 Chrome zeichnet den Pfad</text>
<text x="756" y="458" class="label small">2 G-code geht per USB raus</text>
<text x="756" y="480" class="label small">3 Marlin auf der SKR rechnet</text>
<text x="756" y="502" class="label small">4 Motoren wickeln die Riemen</text>
<text x="756" y="524" class="label small">5 Gondel fährt, Stift hebt / senkt</text>
<text x="756" y="554" class="label tiny muted">Antwort: Marlin sendet ok zurück</text>
</svg>