MODE 10 — MEM 6SLOT

Hard · 1h · Fast kostenlos

Ziel & Anwendung

Drei Achsen, sechs Speicher-Slots — jede Position festhalten und auf Abruf wiederholen! Der Steuerknüppel und die Geräteneigung bewegen drei Achsen gleichzeitig. Eine Berührungsfläche friert die aktuelle Position ein und speichert sie zusammen mit der aktuellen linearen Stellung. Der Joystick-Knopf ruft alles wieder ab. Ein Positions-Kopierer für komplexe Arm-Stellungen.

  • Drei Achsen gleichzeitig steuern: Joystick links/rechts, Joystick vor/zurück und die Geräteneigung
  • 6 Slots per Dreh-Regler wählen — Berührungsfläche speichert Servo- und lineare Position gemeinsam, Joystick-Knopf ruft ab
  • Zweite Berührungsfläche aktiviert Live-Modus: alle Achsen folgen direkt den Eingaben ohne Speicher

Anschluss & Funktion

Motoren am Board

AnschlussMotorAufgabe
S1180°-ServoAchse 1 (JoystickX)
S2180°-ServoAchse 2 (JoystickY)
S3180°-ServoAchse 3 (Gyro)
S4360°-ServoSlot-Anzeige links
S5360°-ServoSlot-Anzeige rechts
S6180°-ServoSechster Slot-Indikator
STEPPERSchrittmotorSpeichert eine vierte, lineare Position pro Slot
DCDC-MotorKurze Vibration beim Speichern einer Position

Materialliste

  • Karton-Arm-Struktur (20 cm gesamt) mit drei Gelenk-Punkten als Servo-Basis
  • Drei Karton-Segmente (je 6 cm) als Arm-Teile
  • Sechs farbige Papier-Kärtchen (Slot 0–5) als Speicher-Anzeige
  • Holzstäbchen als Versteifung der Arm-Segmente, Klebeband

Step-by-Step Tutorial

  1. Drei-Achsen-Arm aufbauen

    Baue einen dreistufigen Arm aus Karton-Segmenten. Das erste Gelenk dreht die Basis: Plastik-Horn aufschrauben, erstes Segment (6 cm) flächig draufkleben. Das zweite Gelenk am Ende des ersten Segments: neigt das zweite Segment. Das dritte Gelenk am Ende des zweiten Segments: dreht die Arm-Spitze. Gesamtlänge 18 cm: schweres Objekt an der Basis kleben damit der Arm nicht kippt.

    Check: Das erste Gelenk dreht horizontal, das zweite neigt vertikal, das dritte dreht die Arm-Spitze — alle unabhängig

    Tipp: Arm-Gesamtlänge 18 cm: Gegengewicht am Sockel notwendig! Schweres Objekt (Stein, Batterie) an der Basis befestigen

  2. Live-Steuerung mit drei Eingaben

    Im gehaltenen Live-Modus: Achse 1 folgt dem Steuerknüppel direkt (links-rechts Drehung), Achse 2 folgt der Vor-zurück-Bewegung des Steuerknüppels (Neigung), Achse 3 folgt der Geräteneigung (Kipp-Winkel). Alle drei gleichzeitig steuern: komplexe Arm-Positionen per Hand einstellen. Die beiden Slot-Anzeigen zeigen den aktuell gewählten Slot als Referenz.

    Check: JoystickX nach rechts: Achse 1 dreht. JoystickY nach oben: Achse 2 neigt. ProtoPeaks kippen: Achse 3 dreht — alle gleichzeitig steuerbar

    Tipp: Die zweite Berührungsfläche gedrückt halten aktiviert den Live-Modus: alle Achsen folgen sofort den Eingaben ohne Verzögerung

  3. Position speichern und abrufen

    Der Dreh-Regler wählt den aktiven Slot: der sechste Slot-Indikator zeigt zusätzlich an, ob gerade der letzte Slot aktiv ist. Arm in eine interessante Position bringen. Berührungsfläche antippen: ein Bestätigungston ertönt, die Achsen-Positionen und die aktuelle lineare Zusatzposition werden gemeinsam gespeichert. Arm woanders hinbewegen. Den Joystick-Knopf drücken: Arm und Zusatzachse fahren automatisch zur gespeicherten Position zurück. Alle 6 Slots mit verschiedenen Arm-Positionen belegen.

    Check: Antippen der Berührungsfläche speichert den aktuellen Arm-Zustand inklusive linearer Zusatzposition im gewählten Slot

    Tipp: Arm gut positionieren, dann die Berührungsfläche kurz antippen — der Slot wird sofort gespeichert

  4. Leichtgängigkeitstest des Arm-Systems

    Bevor Strom eingeschaltet wird: erste Achse manuell drehen — dreht das erste Segment leicht? Zweite Achse drehen — neigt das zweite Segment ohne zu klemmen? Dritte Achse drehen — dreht die Spitze frei? Gesamtarm: neigt die Basis beim Bewegen? Gegengewicht ausreichend? Erst nach OK Strom einschalten.

    Check: Arm bewegt sich in allen drei Achsen frei — kein Segment blockiert ein anderes, kein Kippeln der Basis

    Tipp: Jedes Gelenk einzeln testen bevor der komplette Arm bewegt wird — so findet man Probleme leichter

  5. Positions-Speicher Demo: Choreographie

    Strom einschalten. Sechs verschiedene Arm-Positionen einlernen (zweite Berührungsfläche für Live-Steuerung gehalten, erste zum Speichern antippen). Nach dem Einlernen: die zweite Berührungsfläche loslassen (kein Live-Modus mehr). Dreh-Regler auf den ersten Slot: Joystick-Knopf drücken → Arm fährt zur ersten Position. Die restlichen Slots der Reihe nach durchschalten. Arm-Choreographie auf Knopfdruck — immer exakt dieselben Positionen!

    Check: 6 verschiedene Arm-Positionen gespeichert — Joystick-Button ruft sie der Reihe nach ab

    Tipp: Sechs markante Positionen wählen — so ist der Unterschied zwischen den Slots klar erkennbar

Troubleshooting

  • Arm fährt nach Joystick-Button in falsche Position — Gyro-Wert beim Speichern prüfen: ProtoPeaks ruhig halten wenn touch1 gedrückt wird — Gyro schwingt bei Bewegung nach
  • touch2 Live-Modus und Joystick-Button interferieren — Beide Eingaben getrennt testen — Live-Modus loslassen, bevor Joystick-Button zum Abrufen gedrückt wird
  • Arm kippt bei bestimmten Positionen die Basis um — Gegengewicht erhöhen: mehr Steine oder ein schweres Objekt an der Basis — Schwerpunkt muss unter der Standfläche bleiben

Modifikationen & Sicherheit

  • Pro-Tipp: Automatik-Modus fährt alle 6 Slots der Reihe nach ab — Arm führt eine programmierte Choreographie aus
  • Pro-Tipp: Encoder-Button löscht den aktuellen Slot — für einfaches Neu-Einlernen ohne Reset

Wichtige Code-Teile

// Live-Steuerung (touch2 gehalten)
if(touch2) {
    servocontroller.setServoPulse(1, mapJoystickX);
    servocontroller.setServoPulse(2, mapJoystickY);
    servocontroller.setServoPulse(3, mapGyroX);
}

// Slot-Auswahl (6 Slots)
curSlot = constrain(curSlot + (int)EncoderPos, 0, 5); EncoderPos = 0;

// Speichern per touch1: Servo- UND Stepper-Position gemeinsam
if(isButtonPressed(touch1, lastT1)) {
    memSlots[curSlot][0] = mapJoystickX;
    memSlots[curSlot][1] = mapJoystickY;
    memSlots[curSlot][2] = mapGyroX;
    stepperSlots[curSlot] = stepper.currentPosition();
    Buzzer.setMode(HEARTBEAT);
}

// Abrufen per Joystick-Button
if(isButtonPressed(JoystickButton, lastJoyBtn)) {
    if(!ismoving[1]) servocontroller.startMove(1, memSlots[curSlot][0], 600);
    if(!ismoving[2]) servocontroller.startMove(2, memSlots[curSlot][1], 600);
    if(!ismoving[3]) servocontroller.startMove(3, memSlots[curSlot][2], 600);
    stepper.moveTo(stepperSlots[curSlot]);
    Buzzer.setMode(SHORT_BLINK);
}

// S4/S5/S6: Slot-Anzeige
servocontroller.setServoPulse(4, map(curSlot, 0, 5, 1100, 1900));
servocontroller.setServoPulse(5, map(curSlot, 0, 5, 1900, 1100));
servocontroller.setServoPulse(6, map(curSlot, 0, 5, 1900, 1100));

Ähnliche Projekte

  • MODE 7 — INDEXER — Einmal einlernen, immer wieder exakt treffen! Der Antrieb merkt sich sechs verschiedene Positionen — eingelernt per Steuerknüppel und gespeichert per Berührungsfläche. Danach fährt er auf Knopfdruck blitzschnell zu jeder gespeicherten Position. Wie ein CNC-Werkzeugwechsler im Miniformat.
  • MODE 8 — EMERG RST — Wenn alles außer Kontrolle gerät — ein Knopf bringt alles zurück in die Mitte! Alle Servos fahren gleichzeitig in ihre Neutral-Position zurück, der Schrittmotor kehrt zum Ausgangspunkt zurück, alle Motoren stoppen. Der Joystick-Knopf oder beide Berührungsflächen gleichzeitig lösen den Notfall aus. Im Normalbetrieb folgen alle Servos synchron dem Joystick.
  • MODE 4 — GESTE LOCK — Hoch, rechts, runter, links — und das Schloss öffnet sich! Nur wer die richtige Joystick-Geste in der richtigen Reihenfolge eingibt, öffnet den Mechanismus. Falsche Geste: zurück auf Start. Richtige Sequenz: der Schloss-Riegel öffnet sich feierlich. Das einfachste Geheimschloss der Welt — ganz ohne Schlüssel.