112 lines
6.5 KiB
XML
112 lines
6.5 KiB
XML
<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>
|