Archiv für den Monat: Dezember 2011

Leseempfehlungen

Politik &c.

(Nicht nur) Genderpopender

UI/UX

Podcasts

Fabbing und Hackerspaces

  • Mantis 9-1 — Guenstige (ca. 100 EUR) CNC-Minifraeskonstruktion, z.B. zum Platinen fraesen. Via ProtoSpace

Arduino und Co: µC fuer Dummies

Arduino Uno unboxing
arduino uno unboxing by bjepson
, cc-by-nc-sa

Wenn ich ein einzelnes Projekt benennen muesste, das meines Erachtens am Meisten fuer die breite Zugaenglichkeit von Mikrocontrollern (µCs) fuer die breite (Nicht-Experten-)Masse getan hat, dann duerfte das Arduino sein. Waehrend man frueher neben einem Evaluationsboard entweder einen Rechner mit klassischer serieller Schnittstelle oder gleich einen ISP zur Programmierung brauchte, und dann auch noch die Untiefen der µC-C-Programmierung erlernen musste, hat der Arduino die Huerden bis zum schnellen Bastelprojekt deutlich gesenkt.

Ich hatte auch ewige Zeiten das oben verlinkte Pollin-AVR-Evaluationsboard herumliegen und versucht, ATMega8-Controller zu programmieren — arg weit bin ich damit aber nie gekommen. Von Arduino hatte ich immer wieder einmal gehoert und Anfang des Jahres stiess ich auf diese Dokumentation — und wusste, dass ich mir so ein Teil kaufen wuerde 🙂

Arduino The Documentary (2010) English HD from gnd on Vimeo.

Der eine Trick, der bei Arduino alles anders macht, ist der eingebaute Bootloader. Nach dem Reset des Chips wartet dieser wenige Sekunden lang, ob jemand versucht, ihm ueber die eigene serielle Schnittstelle neue Software unterzuschieben, und programmiert sich gegebenenfalls mit dieser neu. Auf den Arduino-Platinen ist hierfuer nochmals ein eigener Controller verbaut, der zwischen USB-Anschluss und µC vermittelt, so dass man weder auf einen externen Programmer noch auf klassische serielle Schnittstellen auf Rechnerseite angewiesen ist. Einfach, aber genial.

Der zweite Trick ist die Entwicklungsumgebung, die auf Processing basiert und mittels ihrer Bibliotheken die hardwarenahen Operationen sehr weit wegabstrahiert. An die Stelle bitweiser Verschiebeoperationen treten Funktionen wie digitalWrite(7, HIGH) um beispielsweise an den Pin 7 ein ausgehendes 1-Signal anzulegen — das sollte kein Problem sein, wenn man jemals rudimentaer C oder Java zu programmieren gelernt hat.

Addendum, 2016-03-04: Der urspruengliche Entwickler von Wiring hat dieser Geschichte auch noch ein Scherflein beizutragen. Insbesondere die Doku sollte nicht ohne diesen Kontext gesehen werden.

Arduino Motion Detector
arduino motion detector by plamoni
, cc-by-sa

Mittlerweile sind knapp elf Monate vergangen, in denen ich in der Freizeit immer wieder mit dem Arduino Uno herumgespielt, eigene Shields gebastelt und Low-Cost-Nachbauten auf Lochraster aufgebaut habe. Und Zeit fuer ein wenig Gerante, was mir nicht so ganz gefallen hat.

Shields vs. Breadboard

Arduino ist modular erweiterbar ausgelegt: Ueber die Steckheader beidseitig der Platine sollen sogenannte Shields aufgesteckt werden koennen, die dem Controller beispielsweise Ein- und Ausgabemoeglichkeiten geben: LC-Displays, Taster, Drehregler, Ethernet-Schnittstellen, was auch immer man dort haben moechte.

Das ist an sich eine nette Idee, wenn man mal eben etwas zusammenstecken moechte — und gleichzeitig meines Erachtens der groesste Mist an der ganzen Plattform. Klar, ein LCD-Shield mit Buttons ist fuer 15 EUR zu haben und sofort, ohne weiteren Aufwand aufgesteckt und verwendbar. Das geht aber meines Erachtens nur so lange gut, wie man sich wirklich in dieser Shield-Welt aufhalten und mit Originalboards basteln moechte. Will man jemals mit Steckbrettern (Breadboards) arbeiten, um eigene Komponenten zu verwenden, wird’s mitunter haarig. Man kann sich entweder Prototyping-Shields kaufen (oder aetzen), auf denen man die Komponenten einsteckt, oder muss Arduino und Breadboard auf irgendeine Unterlage kleben, damit diese zueinander fixiert sind und nicht bei jeder Bewegung die Verbindungskabel auseinandergezogen werden.

Arduino LED Modulearduino led module by lenp17, cc-by-nc-sa

Dazu kommt, dass die Arduino-Boards seit Generationen einen Designfehler mitschleppen, der aus Abwaertskompatibilitaetsgruenden beibehalten wird (sic!): Auf einer Seite haben zwei der Anschlussheader einen nicht standardkonformen Abstand, was zur Folge hat, dass man bei Lochrasteraufbauten Dinge verbiegen (oder seinen Arduino umbauen) muss. So etwas nervt tierisch, vor allem, wenn man bedenkt, dass das alles ganz anders gehen koennte.

Selbstbau auf Steckbrett

Die simpelste Variante, sich einen Arduino-kompatiblen Aufbau zusammenzustecken, bedarf naemlich nur einer kleinen Handvoll Bauteile fuer knapp 10 EUR, von denen die Haelfte fuer den Spannungsregler noetig ist. Noch einmal knapp 12 EUR gehen fuer einen Adapter mit dem FTDI-Chip drauf, der fuer die Signalwandlung von USB auf Serielle Schnittstelle zustaendig ist — den man aber frueher oder spaeter ohnehin einfach haben will. Mit diesem lassen sich naemlich auch die integrierteren „offiziellen“ Arduino-Varianten ohne eingebauten USB-Port programmieren, wie der oben abgebildete Arduino Pro Mini oder seine Klone. Mit dem simplen Steckbrettaufbau laesst sich prima basteln und experimentieren (Sets dafuer gibt’s natuerlich auch bei umtriebigen Haendlern zu kaufen), und das fertige Produkt kann spaeter 1:1 auf Lochraster oder z.B. mittels Fritzing auf „richtige“ Platine uebertragen werden.

Die einzigen zwei Nachteile der Steckbrett-Variante sind, dass ein „Overhead“ mit Quarz und Kondensatoren (bzw. einem Resonator) und dem Reset-Button samt Pull-Up-Widerstand „mitgeschleppt“ bzw. jedes Mal haendisch aufgebaut werden muss, und dass man wissen muss, welcher physikalische µC-Pin mit welchem Arduino-Pinout korrespondiert. Fuer letzteres kann man sich einfach einen Aufkleber fuer den Controller-Ruecken drucken (oder kaufen) — fuer ersteres gibt es gleich mehrere Loesungen.

Arduino-based remote
arduino-based remote by cibomahto
, cc-by-sa

Die Bare-Bones-Varianten

Die simpelste und spassigste mir bekannte Loesung, Reset, Takt und Status-LEDs fuer ein Steckbrett zu optimieren, ist das Ardweeny, das „huckepack“ auf den Controllerruecken gesetzt wird — Pinout-Bezeichnungen gleich inklusive.

Andersherum, mit sehr kompakten Boards, auf denen der AVR-Controller sitzt, gibt es gleich mehrere: DorkBoard, Boarduino und das BareBonesBoard/BBB (Foto oben). Letzteres hat dann zwei Weiterentwicklungen hervorgebracht, die ich momentan von allen Arduino-Clones am interessantesten finde: Einmal das ReallyBareBonesBoard/RBBB, das ueber JeeLabs auch in Europa mit 14 EUR noch recht erschwinglich zu haben ist. Bei dieser Variante kann man (je nach Geschmack) die Platine gegebenenfalls noch um den Hohlstecker oder gar die gesamte Spannungsregelung „kuerzen“, falls man diese nicht braucht. JeeLabs hat sich dann auch dieser Variante noch einmal angenommen und die kaugummiriegelgrossen JeeNodes daraus weiterentwickelt, die von Haus aus mit einem RFM12-Funkmodul fuer drahtlose Kommunikation daherkommen.

Was ich von den JeeNodes halten soll, weiss ich noch nicht so ganz: Die Erweiterungsmoeglichkeiten sind wirklich durchdacht, beispielsweise Adapter mit Inverswandlern, mittels dessem man die Nodes mit nur einer AA-Zelle betreiben kann (das Blog ist uebrigens riesig und sehr lesenswert!), andererseits bringen die JeeNodes wieder ihr eigenes Port-System mit sich, das man zwar nicht mitspielen muss, aber eben doch wieder eine eigene Welt definiert. Gut gefallen mir die RFM12-Module, die spottbillig sind und fuer die meisten Anwendungen den viel teureren ZigBee-Modems kaum etwas nachstehen.

Und was soll ich jetzt kaufen?

Tja, die Qual der Wahl. Lipoly.de verkauft gerade Restbestaende der DFRduino Duemilanove, also Klone der letzten Arduino-Generation, fuer 15 Euro — das ist meines Erachtens ein No-Brainer, wenn man einfach nur unkompliziert einsteigen will. Und falls man sich irgendwann zum Steckbrett noch einen FTDI-Adapter kauft, kommt’s letztlich auf den eigenen Geschmack und die eigenen Anforderungen an, ob es nun ein reiner Steckbrett-Aufbau wird, ein RBBB, JeeNode… oder ob man doch einen Original-Arduino Mega haben moechte, um seinen Roomba fernzusteuern, wie das aktuell in der Medieninformatik der Uni Ulm passiert 🙂

Anmekung: Wer vor dem Henne-Ei-Problem steht, wie der Arduino-Bootloader auf den ATmega kommen soll, kann ihn sich gerne von mir flashen und an der Uni oder im frrm hinterlegen lassen.

Dieser Text steht unter einer cc-by-nc-sa-Lizenz

Fuer die Zeit bis zum Herbst

…und wieder ein WTF-Staffelfinale, und wieder ein Dreivierteljahr ohne Dexter. Wem die Zeit bis dahin zu lang ist: In Wien hatte ich auf dem Buechertisch Dexter – An Omnibus* mit den ersten drei Dexter-Originalromanen gefunden und gleich mal weggeputzt. Wem die Serie gefaellt, dem kann ich diesen Sammelband sehr ans Herz legen: Die ersten drei Serienstaffeln basieren auf den Buechern, und selbst wer sie schon gesehen hat, duerfte Gefallen an dem Roman finden. Erstens folgt die Serie den Buechern teilweise nur sehr lose (Charaktere sind zum Teil anders, sterben frueher/anders/gar nicht,…), zweitens ist der Dexter aus dem Buch noch ein ganzes Stueck emotionsloser, teuflischer und dunkler, und drittens sind die Buecher voller schoener Formulierungen:

“In my life long study of human beings, I have found that no matter how hard they try, they have found no way yet to prevent the arrival of Monday morning. And they do try, of course, but Monday always comes, and all the drones have to scuttle back to their dreary workday lives of meaningless toin and suffering.”

“In fact, from what I had observed it was quite possible for one to actively dislike one’s girlfriend, although of course true hatred is reserved for marriage.”

“I am not shy about admitting my modest talents. For example, I am happy to admit that I am better than average at clever remarks, and I also have a flair for getting people to like me. But to be perfectly fair to myself, I am ever-ready to confess my shortcomings, too, and a quick round of soul-searching forced me to admit that I had never been any good at all at breathing water. As I hung there from the seat belt, dazed and watching the water pour in and swirl around my head, this began to seem like a very large character flaw.”

Hach… 🙂

* Amazon-Affiliate-Link. Wer darueber bestellt, macht mich unsaeglich reich und treibt Buchhaendler in den Ruin. Wer stattdessen beim oertlichen Nicht-Ketten-Buchhaendler bestellen mag: ISBN 1409100650. Faend ich auch nett.

Hunde in der Ukraine und Nacht in Ulm

Erinnert ihr euch noch an die aufgebrachten Facebook-Kommentare, die die Toetung von Strassenhunden in der Ukraine beklagten und einen Boykott der Fussball-EM forderten? Turns out: War gar nicht so. Jedenfalls nicht so, wie das kolportiert wurde.

Irgendwo wurden tatsaechlich Hunde getoetet. Die Huendin mit den herzzerreissenden Welpen oben: Erschossen. 2003. Offenbar in Zenica, Bosnien. Und dergleichen Ungereimtheiten gibt es mehr — kobuk.at hat sie zusammengefasst und legt die Vermutung nahe, dass hier oesterreichische Boulevardzeitungen einfach Auflage schaffen wollten.

Es folgte ein Spendenaufruf fuer den Schutz der ukrainischen Hunde, ein Entschliessungsantrag der oesterreichischen Bundesregierung — und jede Menge Facebook-Posts mit der Bitte um Weiterleitung. Laut einem der Kommentatoren habe die ukrainische Regierung zu der Zeit jedoch schon insgesamt die Toetung der Strassenhunde verboten gehabt…

(via @miinaaa)

 ♦

Zur Wiederaufmunterung: datalove-Kollege Michael Mueller hat eine Timelapse von Ulm gemacht. Inklusive Originalnebel.

Ulm Timelapse from Michael Müller on Vimeo.

Wie das ganze gebaut wurde, gibt’s auf Michis Blog und beim CineAStA

Warum ich mich ueber die FS-ET aergere

Es folgt ein uni-ulm-spezifischer Rant. Wer mit der uulm nix zu tun hat, kann dies ohne Probleme skippen.


Update vom 12.12.— Dieser Artikel sollte eigentlich hauptsaechlich dazu dienen, meine Gedanken nach der StuVe-Sitzung vom 7.12. zu ordnen, hat aber mittlerweile mehr Staub aufgewirbelt als ich dachte und ist zudem rein auf meine Eindruecke von der Sitzung zurueckzufuehren, von denen sich einige mittlerweile als falsch herausgestellt haben. Deswegen kann er nicht weiter ohne diese Ergaenzungen hier stehen bleiben:

  • Ich habe auf die Angelegenheit sehr emotional reagiert. Ich weiss nicht, woran das lag (sachdienliche Hinweise gerne an mich), aber es hat zu unsachlichem und unangebrachtem Verhalten meinerseits gefuehrt. Dies bedaure ich zutiefst, weil es zu genau dem Effekt fuehrte, den vermeiden zu wollen ich vorgab.
  • Ich habe hier mehrmals „Die Fachschaft Elektrotechnik“ bzw. „Der FS-ETPSY e.V.“ geschrieben, weil ich durch entsprechende Aussagen auf der Sitzung den Eindruck hatte, dass die Entscheidung der Kellerorgs von der Fachschaft und dem Traegerverein bestaetigt und mitgetragen wurde. Es hat sich herausgestellt, dass diese Entscheidung nie auf einer FS-Sitzung thematisiert wurde und die meisten FS-ETler offenbar auch nicht mehr zur wussten als der Rest der Fachschaften. Es war nicht meine Absicht, die an der Entscheidung nicht beteiligten FS-ETler hier zu Unrecht in „Sippenhaft“ zu nehmen, kann den Unmut hierueber sehr gut verstehen und bitte um Entschuldigung dafuer.

Als gestern die Vertreter der Fachschaft Elektrotechnik — die zum Sommersemester ersatzlos ihren Unipartymaterialverleih für Externe einstellen — und der Rest der vielfach davon betroffenen Studierendenvertretung ueber die dadurch entstandene Problematik diskutierten, hat mich das bodenlos geaergert. Genauer gesagt richtet sich der Aerger zu 100% auf die FS-ET und ihr Verhalten in der Sache, und der Aerger geht gerade so weit, dass ich momentan keinerlei Lust habe, mich in der Naehe ihres Bueros aufzuhalten oder irgendwie zu deren heutiger O27-Party beizutragen. Wer mich kennt, weiss, was das heisst.

Und ich moechte jetzt einmal aufschreiben, warum das so ist. Weil ich den Eindruck habe, dass alle Aspekte dieser Sache einmal aufgeschrieben werden sollten.

Weiterlesen

Wenn das Netbook unter Ubuntu das WLAN verliert, sobald das Netzteil ausgesteckt wird…

…liegt das an den Power-Management-Einstellungen der Netzwerkkarte. Ist mir neulich an einer Arbeitsmaschine aufgefallen und hat mich jetzt hinreichend geaergert, um mich damit zu beschaeftigen. Ob das daran liegt, laesst sich mit $iwconfig auf der Konsole verifizieren: Wenn nach dem Ausstecken dort Power Management: On steht, laesst sich das wie hier beschrieben loesen.