c3d2-wiki/V-Plotter.mw

104 lines
3.0 KiB
Plaintext
Raw Normal View History

2015-11-08 18:56:30 +01:00
= V-Plotter / Hanging Wall Plotter "Plotbert"=
2015-11-08 18:56:30 +01:00
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.
2015-11-08 18:56:30 +01:00
Dieser steht dem HQ für allerei Spielereien zur Verfügung.
2015-11-08 18:56:30 +01:00
[[Bild:V-Plotter1_2.jpg|100px]]
[[Bild:V-Plotter2_2.jpg|100px]]
[[Bild:V-Plotter3.JPG|100px]]
2015-11-08 18:56:30 +01:00
= Aufbau =
2015-11-08 18:56:30 +01:00
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:
2015-11-08 18:56:30 +01:00
MOTOR_LEFT:
* _pins[0] = 11
* _pins[1] = 10
* _pins[2] = 13
* _pins[3] = 12
2015-11-08 18:56:30 +01:00
MOTOR_RIGHT:
* _pins[0] = 5
* _pins[1] = 4
* _pins[2] = 9
* _pins[3] = 8
2015-11-08 18:56:30 +01:00
= Verwendung =
2015-11-08 18:56:30 +01:00
$ ssh pi@172.22.99.103 (pw: raspberry)
2015-11-08 18:56:30 +01:00
starten des c++ Kommandointerpreters
$ vplotter
2015-11-08 18:56:30 +01:00
* 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