V-Plotter: Unterschied zwischen den Versionen

Aus C3D2
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Zeile 19: Zeile 19:
=== Aufbau ===
=== Aufbau ===


Ein [[Raspberry Pi 2]] steuert über 8 Pins 2 [[wikipedia:de:Schrittmotor|Steppermotor]]en 28BYJ-48 (5V DC) via 2 passender H-Brücken. Und ein
Ein [[Raspberry Pi 2]] steuert über 8 Pins 2 [[wikipedia:de:Schrittmotor|Steppermotor]]en 28BYJ-48 (5V DC) via 2 passender [[wikipedia:de:Vierquadrantensteller|H-Brücken]]. Und ein


; Pinbelgung:
; Pinbelegung:
:; MOTOR_LEFT:
:; MOTOR_LEFT:
:*          _pins[0] = 11
:*          _pins[0] = 11

Version vom 9. November 2015, 21:00 Uhr

Ein V-Plotter, auch hanging wall plotter genannt, ist

  • eine Wand zum Befestigen von Papier,
  • zwei Rollen mit ansteuerbaren Motor,
  • eine Halterung für ein Zeichengerät, die an den Fäden der Rollen hängt und
  • eine Steuerung von den Motoren (mit Stromversorgung).

plotbert

Zur Codeweek EU#2015, wurde in einem Workshop für Kinder und Jugendliche begonnen ein V-Plotter, gesteuert von einem entsprechenden Raspberry Pi zu bauen.

#plotbert steht dem HQ für allerlei Spielereien zur Verfügung.

Grundsätzlich ist #plotbert als Stiftplotter angedacht.

Aufbau

Ein Raspberry Pi 2 steuert über 8 Pins 2 Steppermotoren 28BYJ-48 (5V DC) via 2 passender H-Brücken. Und ein

Pinbelegung
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()
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-∞])