Skip to content

Das Programm

Nugman edited this page Jul 29, 2016 · 11 revisions

Das Steuerungsprogramm der Waschimmo (die sogenannte Firmware) kann unter https://github.com/Nugman/Waschimmo/blob/master/Waschimmo/Waschimmo.ino heruntergeladen werden. Natürlich kann man auch das GIT-Repository clonen (git clone). Um das Programm der Waschimmo in den Arduino laden zu können, benötigt man die Ardunio-Software. Diese kann man unter https://www.arduino.cc/en/Main/Software herunterladen. Nach der Installation der Software und ggf. der USB-Treiber kann man das Programm öffnen.

Libraries

Zum Kompilieren des Programms werden folgende externe Bibliotheken benötigt:

Die Libraries müssen als ZIP-File heruntergeladen und über die Arduino-Software installiert werden (Menüpunkt "Sketch" -> "Bibliothek einbinden" -> ".ZIP Bilbiothek hinzufügen").

Lokale Anpassungen

Je nach Aufbau der Hardware muss die Firmware noch den Gegenbenheiten angepasst werden:

Tonarm

In Zeile 55 muss die Variable innerPos so gesetzt werden, dass der Absaugarm am äußeren Rand des Plattenlabels steht. In meinem Fall muss das Servo dazu auf 96° stehen (0° ist die Ruheposition über dem Tonarmhalter).

int innerPos = 96; // inner arm positon (right before the record label)

Lift

Lift: Zeile 522, 530, 531 (mein Wert: 40)

void liftArm() {
  int pos = 0;
  for(pos = 0; pos < 40; pos += 1)
  {
    liftServo.write(pos);
    delay(25);
  }
}
void lowerArm() {
  int pos = 40;
  for(pos = 40; pos>=0; pos-=1)
  {                               
    liftServo.write(pos);
    delay(25);
  }
}

Bürste

Zeile 539 (mein Wert: 90)

void liftBrush() {
  for(brushPos; brushPos < 90; brushPos += 1)  
  {
     brushServo.write(brushPos);
     delay(25);
  }
}

Die korrekten Werte müssen experimentell ermittelt werden. Ich habe mir dazu ein kleines Hilfsprogramm geschrieben, das die Servos an die jeweilige Position fährt. Die so ermittelten Werte übernimmt man in das Waschimmo-Programm.

Programmieren des Arduino

Das Programm kann über die Arduino-Software ganz einfach per USB an den Arduino übertragen werden. Detaillierte Anleitungen dazu gibt es z.B. auf https://www.arduino.cc/en/main/howto.

Clone this wiki locally