Strandbeest im c’t uplink 10.6

Peter König stellt das Strandbeest im c’t uplink Podcast vor. Das Modell der Make Redaktion ist schon ein wenig flügel- oder eher beinlahm – da ist wohl mal ein Service fällig ;-)

Was genau das Problem ist, kann ich so aus der Ferne noch nicht sagen, aber eine Vermutung steuere ich schon mal bei: Beim Transport kann es passieren, dass die Beinmechanik ein eine Position gedrückt wird, die sie im normalen Bewegungsablauf nicht erreicht. Dann blockiert das Bein und es kann vorkommen, dass das Servo mit seinem Drehmoment die Verschraubungen der Zahnräder löst.

Der Strandbeest Arduino Sketch

Ursprünglich sollte der Quelltext eigentlich beim Make Magazin auf der Seite gehostet werden, ich übernehme das jetzt mal hier. Die nachfolgenden Zeilen machen zusammengefasst folgendes: Nach der Initialisierung in setup() wird in loop() zunächst geprüft, ob an einem der beiden RC Kanäle (hier: chA) überhaupt ein Puls anliegt. Falls nein, so ist das (mindestens) beim FlySky Receiver das Signal dafür, dass keine Verbindung zum Sender besteht. Dann bekommen die Servos ein Stoppsignal.

Ist auf Kanal A ein Puls messbar, so wird auch noch der zweite Kanal gemessen. Je nach Wertebereich werden dann die Servos angesteuert.

// Strandbeest RC V1.1 -- 2016-01-19
// OHNE 45° Steuerknüppel-Stellungen
// FlySky Receiver

#include <Servo.h> 

Servo links;
Servo rechts;

#define RechtsFwd 180
#define RechtsBck 0
// Neutral kann angepasst werden, wenn Servos "kriechen"
#define RechtsNeutral 90

#define LinksFwd 0 
#define LinksBck 180
// Neutral kann angepasst werden, wenn Servos "kriechen"
#define LinksNeutral 90

#define RCchA 9
#define RCchB 8

long chA;
long chB;

void setup()
{
  // Pins für den RC Receiver auf Input
  pinMode(RCchA, INPUT);
  pinMode(RCchB, INPUT);

  //Servos anmelden und auf Neutral stellen
  rechts.attach(5);
  rechts.write(RechtsNeutral);
  links.attach(6);
  links.write(LinksNeutral);
}

void loop()
{
  //Fernbedienungskanal A abfragen
  chA = pulseIn(RCchA, HIGH, 30000);
  //Wenn =0, dann kein RC Connect
  if (chA==0)
  {
    //Servos stoppen, falls keine RC Verbindung
    rechts.write(RechtsNeutral);
    links.write(LinksNeutral);
    chA = pulseIn(RCchA, HIGH, 30000);
  }
  else
  {
    //RC Verbindung vorhanden, also auch noch 
    //Fernbedienungskanal B abfragen
    chB = pulseIn(RCchB, HIGH, 30000);
    
    if (chB < 1200) //Steuerknüppel nach links 
    { 
      if ((chA > 1300)&&(chA < 1600)) 
      // Vor/Rück in etwa in Mittelstellung? 
      { //rechtes Servo vorwärts, linkes Servo rückwärts 
        rechts.write(RechtsFwd); 
        links.write(LinksBck);
      }
    } 
    else if (chB > 1700) //Steuerknüppel nach rechts
    {
      if ((chA > 1300)&&(chA < 1600)) 
      // Vor/Rück in etwa in Mittelstellung? 
      { //rechtes Servo rückwärts, linkes Servo vorwärts 
        rechts.write(RechtsBck); 
        links.write(LinksFwd); 
      } 
    } 
    else //Steuerknüppel Kanal B etwa auf Mitte 
    { 
      if (chA > 1700) //Steuerknüppel nach vorn
      {
        //Rechtes und linkes Servo vorwärts
        rechts.write(RechtsFwd);
        links.write(LinksFwd);  
      }
      else if  (chA < 1200) //Steuerknüppel nach hinten
      {
        //Rechtes und linkes Servo rückwärts
        rechts.write(RechtsBck);
        links.write(LinksBck);        
      }
      else // Kanal A und B etwa auf Mitte - also Stopp
      {
        //Beide Servos Stopp
        rechts.write(RechtsNeutral);
        links.write(LinksNeutral);
      }
    }
  }
}

Die gedruckte Strandbeest Bauanleitung…

Achtung, es folgt Werbung ;-)100

Über meine lokale offene Werkstatt und über Twitter hatte ich schon seit einer Weile immer mal wieder lose Kontakt mir der Make Redaktion beim Heise Verlag. Eine erste Seite im Heft kam dann auch durch einen Tweet zustande. Gedruckt wurde sie in der Ausgabe 4/2015. Nichts großes, aber fühlte sich schon ganz witzig an, sich selbst mal in der Zeitung zu lesen.

Ende vergangenen Jahres gab es dann Gespräche zum Thema Strandbeest. Das ganze bewegte sich zwischen „wir machen mal zwei Seiten“ und „ich hab hier mal eine etwas längere Gliederung für Euch“. In den Weihnachtsferien habe ich mich dann mal hingesetzt und angefangen das Projekt zu beschreiben.

Was soll ich sagen: Es ist dann doch eher ausführlich geworden ;-) Das Resultat gibt es spätestens ab morgen am Kiosk!

Make Magazin 01-2016

Der Strandbeest Bausatz

Hier (also eigentlich weiter unten in diesem Artikel) sind sie, die Dateien um die Bauteile für meine Strandbeest Adaption auszuschneiden. Die Dateien stehen unter der Creative Commons Lizenz CC-BY-NC-SA – sinngemäß: Die Dateien sind nicht-kommerziell frei verwendbar. Änderungen und Weiterentwicklungen am Bausatz sind erwünscht. Die Resultate müssen – wenn veröffentlicht – ebenfalls nicht-kommerziell nutzbar sein.Strandbeest V1.5 - Teil 1 (release)

In der deutschen Ausgabe des Make Magazins, Heft 1/2016 gibt es auf acht Seiten die Anleitung für den Zusammenbau. Auf der Stückliste im Heft steht, dass zwei MDF Zuschnitte 30cm*38cm, 3mm Stärke benötigt werden. Im Prinzip reichen die Abmessungen, aber da ich nach wie vor am Strandbeest-Bausatz entwickele, sind seit der Einreichung meines Artikels noch mal ein paar Teile hinzugekommen. Es handelt sich um Verstärkungen, die auf die Trägerplatten für die Beinpaare geklebt werden können. Die Teile sind optional, sie haben sich aber als sinnvoll erwiesen. Daher: Besser zwei Zuschnitte 41cm*30cm kaufen! Die neuen Teile sind in beiden Zeichnungen am rechten Rand hinzugefügt, so dass man auch mit 38cm auskommt, wenn man sie nicht mit ausschneidet.

Thema Sperrholz: Sperrholz empfehle ich ausdrücklich nicht! Sperrholz verbiegt und verzieht sich gerne mal etwas und ist manchmal nicht vollständig gefüllt. Da die Funktion des Modells davon abhängt, dass die Bauteile gut voreinander laufen, muss alles möglichst plan bzw. gerade sein. Also MDF kaufen und auch dabei darauf achten, das alles schön gerade ist.

Strandbeest V1.5 - Teil 2 (release)Bei den folgenden Links handelt es sich um Archive, die die Dateien als PDF, SVG und RLD Versionen beinhalten. In allen Fällen kann es sein ist es wahrscheinlich, dass die Dateien auf den zu verwendenden Lasercutter angepasst werden müssen. Je nach Gerät werden Linienbreiten oder Linienfarben unterschiedlich als Schnittlinien oder Gravurflächen interpretiert.

Wer einen Lasercutter sein Eigen nennt, weiß höchstwahrscheinlich, wovon hier die Rede ist. Alle Anderen sind gut beraten, im Makerspace oder FabLab ihres Vertrauens nach den besonderen Eigenschaften bzw. Eigenheiten des dort vorhandenen Gerätes zu fragen und die Dateien dann zuhause passend vorzubereiten. Sitzt man im FabLab erstmal vor dem Laser, ist die gebuchte Zeit oft schneller um, als einem lieb ist.

Tipp für Erst-Laser: Im Makerspace oder FabLab gibt es i. d. R. Geräteeinweisungen, die vor der Benutzung obligatorisch sind. Die habe ich damals auch belegt und mir in diesem Rahmen Musterdateien in verschiedenen Formaten mitgeben lassen. Damit konnte ich dann zuhause schauen, mit welchen Files sowohl ich, als auch das FabLab umgehen können.

Hier die Dateien:

cc-by-nc-saStrandbeest V1.5 PDF
Strandbeest V1.5 SVG
Strandbeest V1.5 RLD
Namensnennung bei Verwendung im Rahmen der Lizenz: Joachim Haas, BlaueStun.de

Die RLD Dateien sind für die beliebten „China Laser“ und die dazugehörige Software RDWorks in der Version 8.01.12 vorbereitet. Aber auch hier kann nicht gleich losgelegt werden. Mindestens die Zuordnung der verwendeten Ebenen zu Schnitt bzw. Gravur und die zugehörigen Schnittgeschwindigkeiten sind noch einzustellen.

Und wo sind die DXF Files? Tja, die liegen noch nicht in brauchbarer Form vor. Die Exporte, die ich bisher gemacht habe, sind alle unterschiedlich unvollständig. Mal fehlt hier etwas, mal fehlen da ein paar Teile. Aber ich habe Hilfe diesbezüglich angeboten bekommen und ich arbeite daran ;-)

Was ist neu in Version 1.5?

Ein weiteres Mal habe ich am Strandbeest-Bausatz herumoptimiert. Ich hatte ja bereits Verstärkungen für die Trägerplatten der Beinpaare eingeführt, aber was soll ich sagen: Einem Achtjährigen halten die so noch nicht Stand.

Also habe ich die Platten noch ein wenig größer gemacht. Gewissermaßen als Bonus gibt es Halter für die Muttern der Zahnradachsen inklusive, so dass es jetzt ausreicht, die Achsen von einer Seite mit einem Inbus nachzuziehen, ohne gleichzeitig auf der anderen Seite die Mutter halten zu müssen. Außerdem neu: die Muttern, mit denen die Deck- und die Bodenplatte gehalten werden, können nun nicht mehr durchfallen. Die Ausschnitte in der Verstärkung sind ein wenig kleiner gewählt, so dass die Muttern alle zusammen vor dem Einbau eingelegt werden können. Neu auf die Teileliste kommt dafür Holzleim, außerdem sind ein paar Spann- oder Klemmzwingen hilfreich. Notfalls tun es auch Wäscheklammern ;-)Material

Mit auf dem Bild: Schrauben und Muttern. Weshalb? Nun, wenn die Verstärkung aufgeklebt wird, ist es wichtig, dass sie überall genau passend sitzt. Daher mein Tipp: Schrauben und Muttern anbringen, Verstärkungsplatte ausrichten, Schrauben festziehen, Platte abnehmen, mit Leim einstreichen und dann zurück damit auf die Muttern. Passt.

So sieht das aus:7K2_40967K2_40987K2_4101

Formatfragen

Irgendwann möchte ich mein Strandbeest in die freie Wildbahn entlassen und die Basis für weitere Entwicklungen legen. So ganz loslassen kann ich gefühlt aber nicht. Genauso wie ich keinen Reibach mit den Modellen machen will, soll niemand anders sich die Files schnappen und auf eBay Bausätze verkaufen. Stellt sich also die Frage nach der korrekten Lizenz. Erster Schuss ins Blaue: CC-BY-NC-SA. Ich werde mal versuchen, das zu verifizieren.

Dann wäre da noch die Formatfrage zu klären:

Ich habe die Dateien in Adobe Illustrator gezeichnet. Okay, das ist jetzt nicht das State-of-the-art CAD Programm, aber erstens besitze ich eine Lizenz und zweitens fallen hinten Files raus, die ich in meiner offenen Werkstatt direkt verwenden kann. Für mich super. Für alle anderen, die nicht in meine offene Werkstatt gehen oder keine Adobe Illustrator Lizenz haben nicht so toll.

Meine AI Dateien lade ich in der offenen Werkstatt in eine betagte Corel Draw Version, die wiederum direkt mit dem Lasercutter spricht. Vereinbarungen dabei: Alle Haarlinien werden geschnitten, alles was breiter als eine Haarlinie ist oder als gefüllte Fläche daher kommt, wird graviert.

Neulich habe ich probehalber mal einen DXF Export aus Illustrator zu einem anderen Lasercutter getragen. Das Ergebnis war eher ernüchternd: Die Zeichnung war nach dem Import unvollständig. Einige Bauteile fehlten, und alle Beschriftungen waren weg.  Dabei gelernt: Die Beschriftungen kann man durch das vorherige Umwandeln in Pfade retten. Allerdings muss man dann noch irgendwie die Unterscheidung in Gravur und Schnitt hinbekommen, denn die Buchstaben sollen aus den Verbindungsstäben ja nicht herausfallen. Nächster Schritt ist also, den DXF-Export vollständig hinzubekommen oder ein besseres Exportformat zu finden.

Strandbeest Bausatz auf dem Weg zu Version 1.4

Okay, die Trägerplatten für die Beinpaare sind möglicherweise etwas gewagt konstruiert. Durch die sich gegenüberliegenden tiefen Einschnitte, die die Schrauben der oberen und unteren Abdeckung aufnehmen, wird das Material zu sehr geschwächt. Mäßiger Druck gegen ein Bein reicht aus, um so eine Trägerplatte durchzubrechen. Ein unachtsamer Tritt tut es natürlich auch. Ich experimentiere jetzt mal mit der nachfolgend abgebildeten Verstärkung, die einfach auf die Innenseite einer Trägerplatte geleimt wird und mehr oder weniger unsichtbar unter Deckel bzw. Boden verschwindet.

Oben im Bild die durchgebrochene Version 1.2, unten (eigentlich) eine V1.3 mit abgeschrägten Ecken, aus der mit der aufgeleimten Verstärkung eine V1.4 wird.

Strandbeest im Rundfunk

In der heute erschienenen Freakshow 169 gibt es einen kleinen Bericht über meine Strandbeesten, die ich nach einigem Überlegen dann doch mit nach Hamburg zum 32C3 genommen hatte.

Hätte ich gewusst, dass Linus mich da erwähnen würde, hätte ich hier im Blog natürlich ein paar mehr Inhalte parat gehabt, als nur Fragmente aus meinem Twitterfeed.

Echt.

Ehrlich.