V-Plotter: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Keine Bearbeitungszusammenfassung |
Vater (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
Zeile 1: | Zeile 1: | ||
= V-Plotter / Hanging Wall Plotter "Plotbert"= | == V-Plotter / Hanging Wall Plotter "Plotbert" == | ||
Zur Codeweek 2015, wurde in einem Workshop für Kinder und Jugendliche begonnen ein [https://www.raspberrypi.org/blog/hanging-wall-plotter/ V-Plotter, auch hanging wall plotter] zu bauen. | Zur [[Codeweek EU]] 2015, wurde in einem Workshop für Kinder und Jugendliche begonnen ein [https://www.raspberrypi.org/blog/hanging-wall-plotter/ V-Plotter, auch ''hanging wall plotter'' genannt,] zu bauen. | ||
Der [[V-Plotter]] steht dem [[HQ]] für allerlei Spielereien zur Verfügung. | |||
[[Bild:V-Plotter1_2.jpg|100px]] | [[Bild:V-Plotter1_2.jpg|100px]] | ||
Zeile 9: | Zeile 9: | ||
[[Bild:V-Plotter3.JPG|100px]] | [[Bild:V-Plotter3.JPG|100px]] | ||
= Aufbau = | == Aufbau == | ||
Ein Raspberry2 steuert über 8 Pins 2 StepperMotoren 28BYJ-48 (5V DC) via 2 passender H-Brücken. Und ein | Ein Raspberry2 steuert über 8 Pins 2 StepperMotoren 28BYJ-48 (5V DC) via 2 passender H-Brücken. Und ein | ||
Zeile 27: | Zeile 27: | ||
= Verwendung = | == Verwendung == | ||
Verbinden mit [[plotbert]] | |||
: <source lang="bash">ssh pi@172.22.99.103</source> | |||
<tt>raspberry</tt> | |||
Starten des [[C++]] Kommandointerpreters | |||
: <source lang="bash">vplotter</source> | |||
* l <length> // direct control, left motor | |||
* r <length> // direct control, right motor | |||
* m <dx> <dy> // move relative to current position | |||
* g <x> <y> // move to absolute coordinate | |||
* c // calibrate printer position | |||
* u // move pen up | |||
* d // move pin down | |||
* w <time> // wait for a given time (in ms) | |||
* s <level> // set servo to this pwm level | |||
* h // move to calibration point | |||
Parameter der Zeichenfläche und des Plotters sind in der main.cpp hard gecodet: (Koordinatenursprung ist 0:0) | |||
* Position des Kalibrierungspunktes | |||
* Entfernung der Motoren vom Kalibrierungspunkt aus | |||
* Größe der Zeichenfläche | |||
; Quellen sind unter | |||
* <code>/home/pi/V-Plotter</code> | |||
; Oder bei Github: | |||
* [https://github.com/schwarzchristian/v-plotter V-Plotter C++ Repo] | |||
Oder bei Github: | |||
== script interface: Klassen Definition (Ruby) == | == script interface: Klassen Definition (Ruby) == | ||
Um bessere damit spielen zu können, haben wir eine Ruby Schnittstelle gebaut: | Um bessere damit spielen zu können, haben wir eine Ruby Schnittstelle gebaut: | ||
<source lang="ruby">class VPlotter</source> | |||
; Laden der richtigen Konfiguration (config) für unseren Plotter | |||
: <source lang="ruby">VPlotter.selectPlotter("plotbert")</source> | |||
; Aufsetzen vom Stift | |||
: <source lang="ruby">VPlotter.penUp()</source> | |||
; Absetzen vom Stift | |||
: <source lang="ruby">VPlotter.penDown()</source> | |||
; Rotieren lassen vom (linken oder rechten) Motor: | |||
:: Wert>0 = abrollen | |||
;: Wert<0 = aufrollen | |||
: <source lang="ruby">VPlotter.rotateLeftMotor( int Entfernung in 1/10 mm)</source> | |||
: <source lang="ruby">VPlotter.rotateRightMotor( int Entfernung in 1/10 mm)</source> | |||
; absolute Bewegung vom Koordinatenursprung aus | |||
: <source lang="ruby">VPlotter.goto(x,y)</source> | |||
; relative Bewegung von aktueller Position | |||
: <source lang="ruby">VPlotter.move(x,y)</source> | |||
; Fahren zum Kalibrierungspunkt | |||
: <source lang="ruby">VPlotter.home()</source> | |||
; Schreiben des Wortes ''Test'' an der aktuellen Position | |||
: <source lang="ruby">VPlotter.test()</source> | |||
servo motor position für definierte Stiftposition | |||
: <source lang="ruby">VPlotter.setPen(int 0-100)</source> | |||
; Neues Kalibieren der Stiftspitze: | |||
:: Fahren zum Kalibrierungspunkt und Ausführen von <code>calibrate()</code> | |||
: <source lang="ruby">VPlotter.calibrate()</source> | |||
; unter Angabe der Rahmenparameter ist es auch möglich andere Plotter damit zu steuern | |||
: <source lang="ruby">VPlotter.customConfig(posMotorRight(x,y), posMotorLeft(x,y), calibrationPoint(x,y), height, width)</source> | |||
; Ändern der Geschwindigkeit vom Zeichen: | |||
:: default=10 | |||
:: langsam=1 | |||
:: Werte über 10 sind möglich aber können zu übersprungenen Steps führen die die Zeichnung zerstören | |||
: <source lang="ruby">VPlotter.printSpeed(int [1-10-∞])</source> | |||
[[Kategorie:C++]] | |||
[[Kategorie:Hardware]] | |||
[[Kategorie:Projekt]] | |||
Version vom 8. November 2015, 20:40 Uhr
V-Plotter / Hanging Wall Plotter "Plotbert"
Zur Codeweek EU 2015, wurde in einem Workshop für Kinder und Jugendliche begonnen ein V-Plotter, auch hanging wall plotter genannt, zu bauen.
Der V-Plotter steht dem HQ für allerlei Spielereien zur Verfügung.
Aufbau
Ein Raspberry2 steuert über 8 Pins 2 StepperMotoren 28BYJ-48 (5V DC) via 2 passender H-Brücken. Und ein Die Pinbelgung auf dem Raspberry:
MOTOR_LEFT:
- _pins[0] = 11
- _pins[1] = 10
- _pins[2] = 13
- _pins[3] = 12
MOTOR_RIGHT:
- _pins[0] = 5
- _pins[1] = 4
- _pins[2] = 9
- _pins[3] = 8
Verwendung
Verbinden mit plotbert
ssh pi@172.22.99.103
raspberry
Starten des C++ Kommandointerpreters
vplotter
- l <length> // direct control, left motor
- r <length> // direct control, right motor
- m <dx> <dy> // move relative to current position
- g <x> <y> // move to absolute coordinate
- c // calibrate printer position
- u // move pen up
- d // move pin down
- w
- s <level> // set servo to this pwm level
- h // move to calibration point
Parameter der Zeichenfläche und des Plotters sind in der main.cpp hard gecodet: (Koordinatenursprung ist 0:0)
- Position des Kalibrierungspunktes
- Entfernung der Motoren vom Kalibrierungspunkt aus
- Größe der Zeichenfläche
- Quellen sind unter
/home/pi/V-Plotter
- Oder bei Github
script interface: Klassen Definition (Ruby)
Um bessere damit spielen zu können, haben wir eine Ruby Schnittstelle gebaut:
class VPlotter
- Laden der richtigen Konfiguration (config) für unseren Plotter
VPlotter.selectPlotter("plotbert")
- Aufsetzen vom Stift
VPlotter.penUp()
- Absetzen vom Stift
VPlotter.penDown()
- Rotieren lassen vom (linken oder rechten) Motor
-
- Wert>0 = abrollen
- Wert<0 = aufrollen
VPlotter.rotateLeftMotor( int Entfernung in 1/10 mm)
VPlotter.rotateRightMotor( int Entfernung in 1/10 mm)
- absolute Bewegung vom Koordinatenursprung aus
VPlotter.goto(x,y)
- relative Bewegung von aktueller Position
VPlotter.move(x,y)
- Fahren zum Kalibrierungspunkt
VPlotter.home()
- Schreiben des Wortes Test an der aktuellen Position
VPlotter.test()
servo motor position für definierte Stiftposition
VPlotter.setPen(int 0-100)
- Neues Kalibieren der Stiftspitze
-
- Fahren zum Kalibrierungspunkt und Ausführen von
calibrate()
- Fahren zum Kalibrierungspunkt und Ausführen von
VPlotter.calibrate()
- unter Angabe der Rahmenparameter ist es auch möglich andere Plotter damit zu steuern
VPlotter.customConfig(posMotorRight(x,y), posMotorLeft(x,y), calibrationPoint(x,y), height, width)
- Ändern der Geschwindigkeit vom Zeichen
-
- default=10
- langsam=1
- Werte über 10 sind möglich aber können zu übersprungenen Steps führen die die Zeichnung zerstören
VPlotter.printSpeed(int [1-10-∞])