﻿==================================================================
Fröhliche Wissenschaft
==================================================================

Software für einen Kreide- und Schwamm-Plotter (Tafel ca. 10x2m) 
von Wolfgang Spahn  9. Oktober 2014

www.dernulleffekt.de



Algemein:
1. Firmware auf dem Paper-Duino-Pi
2. Programm für das Kreidenachfüllmagazin
3. Zwei G-Code Interpreter
	- ein automatischer Interpreter
	- ein  Interpreter für eine manuelle Eingabe
4. Programm für Signal LED
5. Programm für einen Stop- und Reset-button
5. Modifiziertes RaspianWheezy für den Paper-Duino-Pi

Lizenz:
Alle oben erwähnten Programme sind von Wolfgang Spahn und unterliegen der GNU-Lizenz für freie Dokumentation.


Manuelles Eingabeprogramm:
1. Raspberry herunterfahren, dafür 4 Sekunden lang
   den Resetbutton auf dem Paper-Duino-Pi Board drücken.
2. Autostart Jumper entfernen.
3. Tastatur einstecken
4. Raspberry Pi hochfahren,
   dafür Resetbutton am Raspberry Pi kurz drücken.
5. Einloggen mit:
	user: pi
	password: raspberry
6. In das Verzeichnis wechseln:
	cd /froehliche_wissenschaft
7. Programm starten:
	sudo python froehliche_wissenschaft_manuell.py
8. Eingabe der G-Code Befehle (siehe unten)
   sowie der folgenden Befehle:
	h für Hilfe
	d für Einlesen von G-Code Dateien
		z.B.: d Kreis_CW.txt (startet die Datei "Kreis_CW.txt")
9. das Programm kann G-Code Dateien starten die im Ordner
   /boot/froehliche_wissenschaft/Test liegen.

Automatisches Programm:
Das Programm startet alle 24 Stunden zufällig ein G-Code Programm aus dem Ordner:
/boot/froehliche_wissenschaft/G-Code/
Wobei erst eine zufällige Reihenfolge ermittelt wird, dann eine Datei nach der anderen abgearbeitet wird.
Beim betätigen des Pause-Schalters unterbricht das Programm.
Achtung:
Der bereits angefangene Zeichenschritt wird trotzdem zu Ende geführt!
Wird der Pause-Schalter abermals betätigt wird das Programm fortgeführt.

Sollte sich das Programm in der 24 Stunden Pause befinden kann durch betätgung des Schalters der nächste G-Code sofort gestartet werden.


Eigenschaften der G-Code Dateien:
Alle G-Code Dateien müssen die Endung .txt haben und im Ordner /boot/froehliche_wissenschaft/G-Code/ liegen.
Oder für die manuelle Eingabe im Ordner /boot/froehliche_wissenschaft/Test/ liegen.

Es dürfen nur bekannte G-Code Befehle verwendet werden (siehe untern).

Für komplexe Zeichnungen muss die Circulare Interpolation mit dem Befehl M73 ausgeschaltet werden.


G-Code Befehle:
die folgenden standard G-Code Befehle werden interpretiert:
- G 00  rapid possitioning
		z.B.: G00 X03 Y999
- G 01  linear interpolation
		z.B.: G01 X21 Y44
- G 02  circular interpolation clockwise
		kann nur 1/8 und 1/4 Kreise interpolieren
		z.B.: G02 X10 Y10 I-0 J-5
- G 03  circular interpolation counterclockwise
		kann nur 1/8 und 1/4 Kreise interpolieren
		z.B.: G03 X1032 Y995 I-533 J-0
- G 28  return to home possition
- G 30  return to secondary home possition
		Kreide Magazin
- M 02  end of program
- M 03  spindle on  - tool down
- M 05  spindle stop - tool up

die folgenden speziellen G-Code Befehle werden interpretiert
- M 70 Kreidezeichnen
- M 71 Schwammzeichnen
- M 72 Skalieren + Fakor
		z.B.: M72x5
- M 73 zur linearen Interpolation wechseln
- M 74 zur circularen Interpolation wechseln
- M 77 neuer Nullpunkt
- M 78 manual control, 1 = right, 2 = up, 3 = left, 4 = down
		z.B.: M78x1
- M 79 alles zurücksetzten
- M 80 Kreidenachschub, 1 = rein, 2 = raus
		z.B.: M80x1
- M 81 Entfernung des Kreideschlitten Messen

SSH Verbindung:
IP Adresse des Raspberry Pi: 192.168.0.111
Im Terminal eingeben:
	ssh -XY pi@192.168.0.111
	password:raspberry


Betriebssysthem und Software des Raspberry Pis:
- OS RaspianWheezy (für Paper-Duino-Pi modifiziert)
- Arduino IDE (für Paper-Duino-Pi modifiziert)


Pinbelegung des Raspberry Pi:
GPIO 02: frei für I2C SDA
GPIO 03: frei für I2C SCL
GPIO 10: Pause Schalter
GPIO 14: TX (Paper-Duino-Pi)
GPIO 15: RX (Paper-Duino-Pi)
GPIO 18: Autoreset Paper-Duino-Pi
GPIO 23: Shutdown und Reset Button
GPIO 24: Autostart Jumper

Pinbelegung des Paper-Duino-Pi:
Pin 00: RX (Raspberry Pi)
Pin 01: TX (Raspberry Pi)

Pin 02 (Input):	Positionssensor Kreideschlitten
Pin 03 (Input):	Positionssensor Schwammschlitten
Pin 04 (Output): 	Kreidemotor Richtung IN1

Pin 05 (Output):	X-Steppermotor CW/CCW 
Pin 06 (Output):	X-Steppermotor Clock X-Y 
Pin 07 (Output):	Steppermotor Enable
Pin 08 (Output):	Schwammmotor

Pin 09 (PWM):		Getriebemotor Kreideschlitten
Pin 10 (PWM):		Getriebemotor Schwammschlitten
Pin 11 (Output):	Y-Steppermotor Clock
Pin 12 (Output):	Y-Steppermotor CW/CCW
Pin 13 (Output):	Kreidemotor Richtung IN2

Pin 14 (A0):		Kreideschlittensensor (IR Abstand)
Pin 15 (A1):		Kreidesensor (Mikroschalter)
Pin 16 (A2):		X-Homing (Mikroschalter)
Pin 17 (A3):		Y-Homing (Mikroschalter)
Pin 18 (A4):		X-Endabschalter (Mikroschalter)
Pin 19 (A5):		Y-Endabschalter (Mikroschalter)

Sonstige Einstellungen:
- Pollin Monitor auf 1024x600
- Bildschirmschoner Aus
- Monitorausschalten Aus


