Schlagwort-Archive: Nerdy

ASCII faces per CLI

asciiface

 

Textsmileys mit (fuer MitteleuropaeerInnen) abstrusen Zeichensaetzen sind ja voll in – Max Ogden hat eine node.js-Variante geschrieben, die auf der Kommandozeile funktioniert, unpassenderweise cool-ascii-faces heisst und natuerlich fuer allerlei Schabernack gebraucht werden kann.


(curl-freundliche Webfrontends gibt’s natuerlich auch schon)

Kindle als RasPi-Bildschirm

Via tante bzw theregister: Ein nicht genauer beschriebener Mensch hat einen jailbroken Kindle als Bildschirm fuer seinen RasPi verwendet, was abgesehen vom Kindle-Jailbreak einfachst zu bewerkstelligen scheint.

Die/der BastlerIn ist vom eigenen Werk noch nicht so ueberzeugt:

It was really fun to create the KindleBerry Pi and I even started using that setup for few weeks. But I quickly realized that if I wanted to do anything productive at this point it was better to get myself a computer. My skill in command line and programming might have been too low to completely move to a shell only lifestyle. So sadly the KindleBerry Pi at this point is only a proof of concept and could probably be really neat in a ‘end of the world’ scenario! There still might be some minimal hardcore coder out there who would enjoy such a platform!

Mir dagegen faellt sofort ein Anwendungsfall ein: Eine Live-Abfahrtanzeige, die nicht staendig einen stromfressenden TFT- oder LED-Bildschirm benoetigt! So etwas gibt es kommerziell bereits eine Weile, mit dem Kindle (und einer passenden Terminal-Anwendung — hallo ncurses, Qt und Co.) geht das nun auch fuer den Hausgebrauch 😉

Einziges Manko: Wenn, dann moechte man ja einen Kindle mit beispielsweise kaputter Tastatur dafuer verwenden. Dumm nur, dass wenn dann ausgerechnet die Displays als erstes kaputtgehen…

Physikerdubstep

Die Aufzeichnungen der Physik-Vorlesungen von Walter Lewin sind ja mittlerweile legendaer; vor allem auch wenn man bedenkt, zu welch frueher Zeit das MIT die bereits weltoeffentlich ins Netz stellte. Hier kommt nun der unvermeidliche Dubstep-Remix.

Und wer auch so schoene Strichellinien an der Tafel zeichnen koennen mag: Selbstverstaendlich gibt es ein Tutorial-Video dazu.

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

Pipe Logic

Mal ne ganz andere Anwendung fuer Pipes: Wenn man /dev/zero als Elektronenquelle und /dev/null als -senke betrachtet, waeren Pipes so etwas wie Leiter mit einer gewissen Kapazitaet. Und dann koennte man doch auch einen MOSFET damit bauen. Und sobald man einen Transistor hat, sind der Phantasie kaum mehr Grenzen gesetzt 🙂

Mehr: Pipe Logic.

(via Elias Weingaertner auf Facebook)

Hacking your Sleepcycle

Wir haben jetzt mal wieder eine vermutlich eher hirnlose Aktion angefangen. Beim herumstoebern im Metalab-Wiki war ich mal wieder ueber die Idee eines „alternativen“ Schlafzyklus gestolpert, und im Gegensatz zu bisher gibt’s dieses Mal Mitstreiter, die das durchziehen wollen — wenig verwunderlich aus dem ak-mis 😉

Ich weiss noch nicht, ob das so ganz klug ist, was wir da machen wollen: Drei Stunden „Kernschlafzeit“ von 0300-0900 0600 Uhr und nochmal zwei einzelne Nickerchen von 1200-1300 und 1930-2030 Uhr, was in den einschlaegigen Foren „Everyman Sleep Cycle“ heisst. Das wollten wir eigentlich erst im August anfangen, aber nachdem @gruenzeug und ich heute morgen wegen eines Aussentermins schon um 0445 aufstehen mussten, sind wir spontan schon heute eingestiegen — @taxilof macht dann nochmal irgendeine sonstige Variation, die ich noch nicht verstanden habe.

Was ich jetzt halt noch irgendwie lernen muss, ist bei den Nickerchen nicht einfach nur mit geschlossenen Augen dazuliegen und zu doesen, sondern tatsaechlich auch „richtigen“ Schlaf zu bekommen. Und waehrend die Variante mit den „nur“ zwei Nickerchen ein halbwegs angenehmes Timing erlaubt, gibt das vermutlich doch ab und zu noch Probleme — zum Beispiel, wie ich das morgen eigentlich mit dem #npbmuc vereinen soll, zu dem ich eigentlich wollte 😉

PS: Wir haben dafuer auch eine gemeinsame Soup 🙂

Arduino everywhere

Bei Hack-a-Day bezichtigen manche Kommentatoren die Autoren schon der erotischen Fixierung auf dieses Ding: Arduino heisst die Plattform, die einem in den letzten Jahren immer haeufiger ueber den Weg laeuft, wenn es um das sogenannte „Physical Computing“ geht — also den Umgang mit kleinen eingebetteten Rechner- oder Microcontrollersystemen, die sich in die Umgebung integrieren und mit dem Benutzer interagieren.

Im Wesentlichen steckt hinter den Arduino-Boards nichts weiter als ein Atmel-MegaAVR-Controller — der aber in standardisierten Entwicklungsboards fuer rund 25 EUR steckt, simpelst per USB zu programmieren ist und dessen Entwicklungstoolchain einem die Programmierung ermoeglicht, ohne dass man allzu tief in bitweises Registerschieben und sonstige Abgruende vorstossen muesste. Wer mag, kann das natuerlich trotzdem tun, der Einsteiger bekommt aber in kuerzester Zeit seine Programme zum Laufen, ohne zuerst tagelang herauszufinden, welche Register genau was anstellen.

Via Netzpolitik.org bin ich vorhin auf eine gut halbstuendige Reportage ueber den Arduino gestossen, und nachdem ich jetzt seit drei Jahren ein einfaches Developer-Board fuer die megaAVRs im Schrank versauern habe, weil es nur ueber die serielle Schnittstelle oder einen ISP zu programmieren ist (den ich nicht habe), werde ich mir nun wohl doch mal so ein Arduino-Board anschaffen. Vielleicht kann man das ja auch in den Kontext von Urban Sensing einbauen 😉

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

PS: Kleine Welt. Bei der Herumsuche bin ich dann wieder auf Eli Skipp aus Chicago gestossen, die zusammen mit fin bei der #journeyvienna unterwegs war, und die sich aus einem Arduino einen Handschuh fuer explosive High-Fives baut. Awesome.

Addendum 2016-03-04: Der urspruengliche Entwickler von Wiring hat der Arduino-Geschichte auch noch etwas hinzuzufuegen. Die Doku sollte im Kontext seiner Aussagen gesehen werden.