V-Plotter: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(Die Seite wurde neu angelegt: „== Einleitung == =Klassen Definition (Ruby)= class VPlotter() VPlotter.selectPlotter("plotBerd"); VPlotter.customConfig(posMotorRight(x,y), posMotorLeft(x,…“) |
Keine Bearbeitungszusammenfassung |
||
Zeile 1: | Zeile 1: | ||
= | = 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. | |||
Dieser steht dem HQ für allerei Spielereien zur Verfügung. | |||
[[Bild:V-Plotter1_2.jpg|100px]] | |||
[[Bild:V-Plotter2_2.jpg|100px]] | |||
[[Bild:V-Plotter3.JPG|100px]] | |||
= 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 = | |||
$ ssh pi@172.22.99.103 (pw: raspberry) | |||
starten des c++ Kommandointerpreters | |||
$ vplotter | |||
VPlotter.test() - | * 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 Kalibrierungspunkt | |||
* Entfernung der Motoren vom CalibrierungsPunkt aus | |||
* Größe der Zeichenfläche | |||
Quellen sind unter: | |||
/home/pi/V-Plotter | |||
Oder bei Github: | |||
[https://github.com/schwarzchristian/v-plotter V-Plotter C++ Repo] | |||
== script interface: Klassen Definition (Ruby) == | |||
Um bessere damit spielen zu können, haben wir eine Ruby Schnittstelle gebaut: | |||
'''class VPlotter''' | |||
'''VPlotter.selectPlotter("plotbert")''' | |||
lädt die richtig config für unseren Plotter | |||
'''VPlotter.penUp() | |||
'''VPlotter.penDown() | |||
Stift auf und absetzen | |||
'''VPlotter.rotateLeftMotor( int Entfernung in 1/10 mm) | |||
'''VPlotter.rotateRightMotor( int Entfernung in 1/10 mm) | |||
Wert<0 = aufrollen, Wert>0 = abrollen | |||
'''VPlotter.goto(x,y) | |||
absolute Bewegung vom Koordinaten Ursprung aus | |||
'''VPlotter.move(x,y) | |||
relative Bewegung von aktueller Position | |||
'''VPlotter.home() | |||
zum Kalibrierungspunkt fahren | |||
'''VPlotter.test() | |||
schreibt das Wort Test an die aktuelle Position | |||
'''VPlotter.setPen(int 0-100) | |||
servo motor position für definierte Stiftposition | |||
'''VPlotter.calibrate()''' | |||
zum neu kalibieren des V-Plotters die Stiftspitze | |||
zum Kalibrierungspunkt bringen und calibrate() ausführen | |||
'''VPlotter.customConfig(posMotorRight(x,y), posMotorLeft(x,y), calibrationPoint(x,y), height, width)''' | |||
es ist unter Angabe der Rahmenparameter auch möglich andere Plotter damit zu steuern | |||
'''VPlotter.printSpeed(int [1-10-∞])''' | |||
ändert die Zeichengeschwindigkeit, default=10, langsam=1, | |||
Werte über 10 sind möglich aber können zu übersprungenen | |||
Steps führen die die Zeichnung zerstören |
Version vom 8. November 2015, 17:56 Uhr
V-Plotter / Hanging Wall Plotter "Plotbert"
Zur Codeweek 2015, wurde in einem Workshop für Kinder und Jugendliche begonnen ein V-Plotter, auch hanging wall plotter zu bauen.
Dieser steht dem HQ für allerei 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
$ ssh pi@172.22.99.103 (pw: 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
Quellen sind unter:
/home/pi/V-Plotter
Oder bei Github:
V-Plotter C++ Repo
script interface: Klassen Definition (Ruby)
Um bessere damit spielen zu können, haben wir eine Ruby Schnittstelle gebaut:
class VPlotter VPlotter.selectPlotter("plotbert") lädt die richtig config für unseren Plotter VPlotter.penUp() VPlotter.penDown() Stift auf und absetzen VPlotter.rotateLeftMotor( int Entfernung in 1/10 mm) VPlotter.rotateRightMotor( int Entfernung in 1/10 mm) Wert<0 = aufrollen, Wert>0 = abrollen VPlotter.goto(x,y) absolute Bewegung vom Koordinaten Ursprung aus VPlotter.move(x,y) relative Bewegung von aktueller Position VPlotter.home() zum Kalibrierungspunkt fahren
VPlotter.test() schreibt das Wort Test an die aktuelle Position VPlotter.setPen(int 0-100) servo motor position für definierte Stiftposition VPlotter.calibrate() zum neu kalibieren des V-Plotters die Stiftspitze zum Kalibrierungspunkt bringen und calibrate() ausführen
VPlotter.customConfig(posMotorRight(x,y), posMotorLeft(x,y), calibrationPoint(x,y), height, width) es ist unter Angabe der Rahmenparameter auch möglich andere Plotter damit zu steuern VPlotter.printSpeed(int [1-10-∞]) ändert die Zeichengeschwindigkeit, default=10, langsam=1, Werte über 10 sind möglich aber können zu übersprungenen Steps führen die die Zeichnung zerstören