Hardware

Projekt Tutobar: Lessons Learned – für Neu-Arduino-Maker 3/3

Spaß? Klar. Frust? Aber Hallo! Ein paar Tipps für Arduino-/Make-Einsteiger.

Ja, ich hätte mich erstmal durch Referenzen, Foren, Best Practices und so weiter kämpfen können – ist aber nicht meine Art. Ich fange lieber einfach an komme dann mit Trial-and-Error zum Erfolg. Das mag manchmal schmerzhaft sein, aber der Lerneffekt ist groß. Wenn Euch mehr an Erfolg als an einem möglichst steinigen Weg liegt, habe ich hier mal einige Dinge zusammengestellt, die gegen die typischen Anfängerfehler helfen dürften.

Einkauf und Material

Vorab ein paar Links:

Apropos Links: Natürlich wimmelt es hier von Amazon-Partnerlinks – kleine Umverteilungsmaschinen, die Geld von Amazon zu uns transferieren. Sofern Ihr kräftig klickt und – irgendwas … – kauft. Dafür schon mal vielen Dank!

Ich für meinen Teil bin eher ungeduldig. Wenn sich die Idee zu einem Projekt einmal festgesetzt hat, will ich auch anfangen, möglichst sofort. Also fix ein paar Dinge bei Amazon in den Einkaufswagen gelegt, natürlich nur solche mit „Lieferung morgen“, und einfach mal drauf los geschraubt. Das ist suboptimal.

Das größte Problem, vor allem im Gegensatz zur reinen Softwareentwicklung, ist, dass benötigte Dinge nicht einfach aus der Leitung kriechen. Nein, man muss nochmal bestellen, nochmal warten … Von daher mein dringender Tipp: Bestellt sorgfältig! Wenn die Jumper-Kabel in 40 cm nicht verfügbar sind, wartet halt zwei Tage. Ich habe stattdessen die 20-cm-Versionen genommen und ein Crimp-Zangen-Set dazu bestellt – für die winzigen Arduino-Dinge ist das aber nicht wirklich geeignet. Stattdessen wurden es dann Klemmverbinder. Die funktionieren super, machen die Kabelbündel aber auch riesenhaft groß. Logisch, Jumper-Kabel gibt es nicht ohne Grund in den Ausführungen Männlich-Männlich, Weiblich-Weiblich und Weiblich-Männlich, aber wirklich gut halten so gesteckte Kabel nicht.

Ähnliche Probleme hatte ich bei Schaltern, Schrauben und diversem Kleinkram, so dass ich zweimal umplanen und nachbestellen musste. „Zweimal messen, einmal schneiden“ – ein Sprichwort, dass sich 1:1 auf die Materialbesorgung übertragen lässt ;)

aluschiene foto
Tja, dass die Schiene zu klein ist, ist wohl offensichtlich.

Kabelverbindungen

Ihr müsst nicht löten! Denkt Euch das als Mantra. Zum Verbinden von Kabeln gibt es mehrere Möglichkeiten. Mit einer Crimp-Zange lassen sich Kabel mit Stoßverbindern zusammenklammern und mit steckbaren Kabelschuhen versehen. Bei den winzigen Arduino-Bauteilen ist das aber nicht immer die beste Lösung.

crimpzange
Crimpen ist praktisch – aber nicht unbedingt auf Arduino-Größe ;)

Lüsterklemmen und sonstige Klemmverbinder sind die wohl einfachste Möglichkeit, Kabel zu verlängern.

In Steckbrettern sitzen die blöden Jumper-Kabel leider ziemlich locker – klar, eigentlich sind die auch nicht für den Praxiseinsatz gedacht, sondern zum Entwickeln. Später sollte solche Dinge eigentlich irgendwie verlötet werden. Mit Schraubterminals sitzen die Kabel aber wunderbar fest und wesentlich organisierter im Steckbrett. Und wenn Ihr echte Lötplatinen verwendet, könnt Ihr auch deutlich besser die Terminals verlöten, statt der Kabel direkt – so bleibt es austauschbar.

Im Übrigen lohnt es sich immer, Kabel zu gruppieren, um Chaos vorzubeugen – aber immer so, dass Ihr einzelne Kabel auch wieder aus der Gruppe entfernen könnt, wenn sie zum Beispiel defekt sind.

Gruppieren hilft, und sei es bloß mit Foldback-Klammern.

Löten!

Müssen, nein. Sollen, joa. Wollen, auf Jeden! Löten ist nicht schwierig, nach maximal einem Dutzend Versuchen solltet Ihr saubere Lötstellen hinbekommen. Und leider gibt es weitaus nicht alle Bauteile in vorverdrahteten Versionen, meine schicken Metall-Pushbuttons beispielsweise nicht. Es lohnt sich also, sich ein Lötset zuzulegen.

nein-foto
Ähh, nein. So wird es maximal drei, vier Versuche lang aussehen.

Wichtig dabei, auch wenn man vielleicht meint, es für den Anfang lassen zu können:

  • Dritte Hand: Kabel, Schalter, Lötkolben, Lötzinn – vier Dinge funktionieren nicht mit zwei Händen.
  • Lötpumpe: Saugt Lötzinn von versauten Lötstellen ab – spart Zeit und Geld.
  • Schrumpfschläuche: Isolieren und sorgen für Zugentlastung – ansonsten werden die Kabel aus den Lötstellen reißen, garantiert.

Ich habe mir ein billiges 20-Euro-Lötset gekauft, samt Pumpe, Zinn, Abisolierer und Pinzette – alles ein wenig ramschig, aber es genügt für den seltenen Gebrauch, zumal der Lötkolben selbst noch das Beste im Set war.

loetset
Für 17 Euro reicht es für ein einmaliges Projekt.

Testen, Testen, Testen

Es stand schon im ersten Teil des Artikels: Trial-and-Error macht mit Software Spaß, nicht immer mit Hardware. Es ist einfach ärgerlich, wenn Ihr Schalter verlötet, verschraubt, verlängert, gruppiert, mit Breadboard und Arduino verbindet und dann feststellt, dass die Schaltung im Innern defekt ist. Gleiches gilt für Denkfehler: Testet jede noch so popelige Schaltung, jeden Widerstand, jedes Kabel, immer wieder und wieder.

Am besten baut Ihr Euch eine kleine Testplatine auf: Steckbrett mit eigener Stromversorgung (ist in wohl jedem Arduino-Set enthalten), eine Diode und ein simpler Stromkreis, der sich mit Schaltern unterbrechen lässt – für Schalter, Kabel und solchen Kleinkram genügt das schon. Auch ein Spannungsprüfer ist ein echter Segen, um mal eben zu gucken, wo denn genau ein Stromkreis hinüber ist, ohne Kabel und Anschlüsse tauschen zu müssen.

tutobar arduino-projekt
Mehr braucht es gar nicht als Testumgebung für neue Schalter.

Zusammenbau

Wenn Euer Projekt wirklich praktisch im Alltag eingesetzt werden soll, vergesst nicht, Euch mit passendem Material einzudecken. Schon eine simple Holzplatte könnte genügen, um Breadboard und Arduino zumindest temporär fest zu verankern. Aber ganz generell solltet Ihr darauf achten, genügend Selbstverständlichkeiten daheim zu haben – selbst wenn sie bei der Planung scheinbar nicht gebraucht werden. Gemeint sind Schrauben, Muttern, Unterlegscheiben, Bits, Bohrer, Kabelbinder, Kleber und so weiter. Oder auch winziges Werkzeug.

schraubendreher
Kleine Schraubterminals verlangen nach winzigen Schraubendrehern.

Schalter

Wenn möglich, kauft Schalter vorverdrahtet – bei drei Schaltern ist das ziemlich egal, bei 15 Schaltern hingegen … Nun, vor allem, wenn man die falschen Schalter hat ;) Das musste ich auf die harte Tour lernen: Die blöden Switches/Kippschalter haben drei Anschlüsse. Zum Einsatz kommen in der Tutobar ON-OFF-Kippschalter, vorverdrahtet an zwei Anschlüssen – der dritte bleibt frei!

Ich hatte zunächst aber ON-ON-Kippschalter gekauft, weil: Ich wollte zwei Aktionen ausführen, “ rel=“noopener“ target=“_blank“>ON-ON-Schalter liefern zwei Zustände (LOW, HIGH), also gekauft, ohne weiter drüber nachzudenken. ON-ON-Schalter werden mit Plus und Minus verbunden und das dritte Beinchen mit einem GPIO-Anschluss, um den Status mitzuteilen. Also Schalter genommen, drei Kabel angelötet – natürlich ohne Schrumpfschläuche, was sich noch rächen sollte – und getestet. Alles super, funktioniert wie gewünscht. Zur Sicherheit einen zweiten Schalter hinzugefügt – alles supi.

Bei Schalter drei oder vier war dann aber Schluss: Zum Testen hatte ich erfreulicherweise einen Elektromotor angeschlossen. Und der dreht sich von Schalter zu Schalter langsamer – irgendwo schien Strom zu verschwinden. Klar, wenn man das Hirn auch nur marginal nutzt: Bei ON-ON ist eben immer ein Stromkreis geschlossen. Und der Arduino liefert so wenig Power, dass nach ein paar wenigen ON-ON-Schaltern einfach Schluss ist, wenn irgendwelche (Test-)verbraucher dran hängen, beziehungsweise irgendwelche halbdefekten Teile … Da waren die Schalter schon verlötet und in die Aluschiene gebaut – 10 Schalter wieder ausbauen, 30 Lötstellen umsonst gemacht, einen Tag warten auf neue Schalter … Gut, verbindet man bei ON-ON-Schaltern nur zwei der drei Pins, verhält er sich wieder wie ein ON-OFF-Schalter. So’n Quatsch entgeht, wenn jegliche Erfahrung mit den Dingern fehlt ;) Aber wie soll man auf folgende Abkürzungen achten, wenn man von ihnen keinen Schimmer hat: SPST, SPDT, DPDT, XPYT etc.

Falsche Schalter mies verlötet – gut, dass das schiefgegangen ist.

Daher: Testen, testen, testen – und bei Bauteilen wirklich genau auf Details achten.

Arduino-Sketch: Bibliotheken

Dass die Neuerfindung des Rads nicht so schlau ist, ist schon sprichwörtlich. In Anleitungen, Foren und der Referenz findet Ihr immer Wege, wie Ihr zum Beispiel Schalter in Arduino ansprecht – und ja, das funktioniert. Aber es genügt einfach nicht zu sagen: Schalter ist auf PIN 4 und beim Drücken erledige Dieses oder Jenes. Pin-Modi müssen gesetzt werden, das Debouncing wird benötigt und weiterer „Kleinkram“.

Für Standardaufgaben gibt es aber fast immer Bibliotheken, die alles Redundante im Hintergrund erledigen und Euch direkt Eure eigenen Funktionen anlegen lassen. In der Praxis heißt das zum Beispiel, dass es genügt, ein Pushbutton-Drückerchen mit „onPressed“ anzusprechen, dank Button-Bibliothek von RBD. Ganz ohne jeden Arduino-Bezug ist das bei der Softwareentwicklung immer eine gute Idee, Bibliotheken sind genau dafür gedacht – und vor allem im Open-Source-Bereich omnipräsent.

arduino bibliotheken
Die Arduino-IDE liefert etliche nützliche Bibliotheken.

Autohotkey: Details …

Schalter haben einen Status (ON, OFF oder HIGH, LOW), der eine 1 oder eine 0 zurückgibt. Und sie haben eine bestimmte GPIO-PIN-Nummer. Was läge also näher, als die Tastenkürzel in der Art STRG+Status+Pin-Nummer zu generieren? Das wären dann eindeutige Signale wie 10, 11, 20, 21, 30, 31 und so weiter. Leider verträgt Autohotkey keine Shortcuts mit mehreren Zeichen und Modifier-Tasten. Aber ein Kürzel wie STRG+1+0 funktioniert nicht, das Kürzel 1 & 0 hingegen schon, aber nur ohne Modifier. Mehr als zwei Tasten sind zudem nicht möglich. Schalter 10 ließe sich also nicht mit 10 & 1 ansprechen. Und noch mehr Probleme bringen solche individuellen Kürzel: Angenommen das Ganze würde auf das Alphabet gemappt, mit Kürzeln wie a & 1 und a & 2 und so weiter. Dann erkennt Autohotkey zwar a und 1 gleichzeitig gedrückt als Hotkey – allerdings lassen sich a und 1 dann nicht mehr als normale Tasten nutzen … Die Lösung: Man mappt das Loslassen der a-Taste auf das Senden des Zeichens a. Nicht verstanden? Macht nichts: Hier soll das nur heißen, dass man sich ein vernünftiges, belastbares Konzept ausdenken muss – Querschläger lauern überall. Und wenn doch jemand wissen möchte, was mit diesem a-bei-a-Taste-loslassen auf sich hat: Schreibt’s in einen Kommentar unten, dann mache ich einen Artikel dazu.

Naheliegend wäre bei Autohotkey auch der Einsatz von Gosub: Mit der Anweisung wird schlicht gesagt „Gehe zu Label ABC und führe den Code darunter aus“. Gosubs sind sowas wie Functions, nur ein paar Runden einfacher. Aber wenn man das in ein anderes Skript (hier die Config-Datei) auslagert und dieses mit include in das Hauptskript lädt, wird der hinter den Gosub-Labels hinterlegte Code sofort ausgeführt – nicht erst bei Betätigung eines der Schalter. Mit den Funktionen ist das kein Problem.

Sofern es am Ende des Tages nicht mehr als 26 schaltbare Aktionen sind, bietet sich daher das Alphabet für die Kürzel an – auch wenn es nicht schön sein mag, dass nun Kippschalter 3 mit den Hotkeys c und d belegt ist. Wie gesagt, der ganze Code könnte hübscher sein, aber so ist er verständlich und gut lesbar.

Mirco Lang

Freier Journalist, Exil-Sauerländer, (ziemlich alter) Skateboarder, Dipl.-Inf.-Wirt, Einzelhandelskaufmann, Open-Source-Nerd, Checkmk-Handbuchschreiber. Ex-Saturn'ler, Ex-Data-Becker'ler, Ex-BSI'ler. Computer-Erstkontakt: ca. 1982 - der C64 des großen Bruders eines Freunds. Wenn Ihr hier mehr über Open Source, Linux und Bastelkram lesen und Tutonaut unterstützen möchtet: Über Kaffeesponsoring via Paypal.freue ich mich immer. Schon mal im Voraus: Danke! Nicht verpassen: cli.help und VoltAmpereWatt.de. Neu: Mastodon

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

Schaltfläche "Zurück zum Anfang"
Schließen

Ooopsi!

Bitte deaktiviere Deinen Adblocker.