Drei von Vier

Habe versucht ein Modul zu „verbessern“: drei Änderungen haben geklappt, eine habe ich vermurkst. Zuerst habe ich den falschen Widerstand genommen, 200 anstelle von 200k, dann eben diesen beim rauslöten gebacken. Oh Mann!

Und hier noch ein paar neue „Töne“:

Gleichzeitig

Ich habe zwei Sequencer: der Acid Stepper kann kurze Melodien mit bis zu 256 Noten speichern und abspielen. Den A-155 habe ich eher für die Begleitung vorgesehen, er kann nur 8, dafür komplexere Signale nacheinander abgeben.

Bis gestern konnte ich die beiden zwar dazu bringen gleich schnell zu sein, im Takt zu arbeiten, sie waren aber nicht synchron: während der eine eben begonnen hat, war der andere bereits beim zweiten Ton oder umgekehrt. Das Problem: Zwar kann der Acid Stepper sagen, wann er loslegt, der A-155 springt dann tatsächlich zum ersten Ton, aber spielt ihn nicht, sondern beim nächsten Impuls und dann gleich den zweiten. Nun gäbe es ein Zusatzmodul A-154, das interpretiert das Zurücksetzen (Reset) anders, und springt beim darauffolgenden Impuls zum ersten Ton, aber das Modul habe ich nicht.

Heute und nach vielen Versuchen habe ich dann eine feine Lösung gefunden: Immer wenn der A-155 mit seinen 8 Schritten fertig ist, stoppt er erst mal. Das kann man auf unterschiedliche Arten machen, bei mir triggert der letzte Schritt den Stop-Schalter. Läuft die Melodie, wird ständig und im Takt der Start aktiviert, und alles beginnt von vorne. Ist sie aber fertig, bleibt der A-155 wie gewünscht beim letzten Schritt stehen. Beim nächsten Start kann er direkt und wie gewünscht mit dem Ersten beginnen. Mit dieser kleinen Logik starten die beiden Sequencer – ausser beim allerersten Mal, da muss der eine den letzten Schritt suchen – synchron, und, als Zugabe, schaltet der eine den anderen ein und aus. Das ohne den eigentlich für diese Aufgabe vorgesehenen „Reset“ zu nutzen.

So sieht die Verkabelung aus, und die beiden Signale: Unten in Blau der Acid Stepper, oben in Gelb der A-155:

Erste Software

Habe die Hardware etwas erforscht: im Inneren des simblee ist ein nRF51822 von Nordic, in der dritten Revision, beim RFduino war es die erste. Der nRF51822 ist sehr preisgünstig (3, 4 Franken), dazu kommt noch die Antenne. Der simblee kostet viel mehr, 20 Franken, hat aber schon alles dabei, und ein Bootloader, ein kleines Stück Software auf dem Chip, das beim Programmieren hilft. Auch dadurch ist er sehr gut in Arduino integriert, einem Werkzeug, um Mikrocontroller zu programmieren, das viel von der Komplexität verpackt und versteckt.

Die Programmierung erfolgt in C, wobei eigentlich ist es C++ (dessen Eigenheiten aber kaum genutzt werden), oder besser einem Ardunio-Derivat davon: So sind die Einstiegspunkt die Funktion setup und loop, anstelle des klassischen main, auch hilft Arduino mit praktischen Konstanten und Funktionen. Der Prozess, wie der Code zu etwas maschinenenlesbarem umgewandelt und dann auf den Chip übertragen wird, ist bei Arduino zwar untransparent aber auch einfach.

Ich möchte mich irgendwann davon emanzipieren, also auf dem reinen, preisgünstigen Chip aufbauen und „nur“ die Entwicklungswerkzeuge von Nordic nutzen – aber erst im nächsten Projekt: aktuell bin ich dankbar für die einfache Welt von simblee und Arduino.

Heute habe ich an zwei Bereichen weitergearbeitet:

  • Für den Mac eine Software (in Swift) geschrieben, die alle Bluetooth Geräte in der Umgebung findet, vor allem natürlich die Amulette. Wenn seit dem letzten Advertising mehr als 20 Sekunden vergangen sind, werden sie nicht mehr angezeigt, sonst sauber aufgelistet. Diese Software wird am Ende die Geräte beim Ein- und Ausgang auslesen, die Begegnungen sammeln und visualisieren.
  • Das Amulett mit dieser zentralen Software verknüpft: Um Strom zu sparen begibt es sich für 10 Sekunden in einen Tiefschlaf, dann weckt es sich selbst, sendet 0.3 Sekunden recht intensiv, insgesamt 10 Impulse – und geht wieder schlafen. In diesem Signal (dem sogenannten Advertising) ist auch gleich die Information verpackt, wieviele Begegnungen es seit dem letzten Auslesen gespeichert hat und der Zentrale übermitteln möchte. Gut gefällt mir: Da diese Information bereits beim Advertising mitgegeben wird, erspare ich mir viel Kommunikation. Denn nur wenn wirklich Daten vorhanden sind, muss sich der Mac mit dem Amulett verknüpfen um es auszulesen. Diese Funktion kommt nun als nächstes an die Reihe.

Hardware

Die Hardware ist gekommen: Soweit ich verstanden habe ist simblee (RFD77101) der Nachfolger vom RFduino, von der gleichen Firma gemacht und aktueller: Ich versuche es mit dem. Das Programmieren hat fast auf Anhieb geklappt, ich nutze dafür Arduino und ein USB-Shield, das ursprünglich für den RFduino gedacht war. Ich wollte zuerst meinen eigenen Programmer nutzen (USBTinyISP), aber der hat 5V und der RFD77101 läuft mit 3V.

Für einen ersten Versuch habe ich eine RGB-LED angeschlossen: Der RFD77101 kann nur 5mA Strom und auch nur an 3 Pins ausgeben, das reicht aber knapp. Da mir noch  die passenden Wiederstände fehlen, ist alles noch etwas zu blau, aber immerhin im erlaubten Spannungsbereich. Am Ende möchte ich alle Farben „mischen“ können: ein Prozessor kann zwar kein analoges Signale ausgeben, aber durch einen Trick (PWM, man schaltet den Strom schnell an und aus) und weil LEDs etwas träge sind, kann man variablen Strom, oder in diesem Fall mehr oder weniger von jeder Farbe, doch erzeugen.

Hier der Zwischenstand: zuunterst das Breadboard, mit LED, Wiederständen und Verkabelung, darauf der eigentliche Prozessor und obendrauf das Interface zum Computer. Am Ende wird dann alles schrumpfen und nur der eigentliche Prozessor, die LED, eine Knopfzellenbatterie und etwas Kleinzeug auf einer massgeschneiderten Platine übrig bleiben.

IMG_3584

Mikrocontroller

Meine letzten beiden Projekte habe ich abgeschlossen:

  • Messung der Geschwindigkeit einer Billardkugel
    Zuerst kallibrieren sich eine Zentrale mit Display und drei Aussenstellen, verbunden mit nRF24. Dabei werden die Distanzen der Aussenstellen zueinander ausgemessen und die internen Uhren geeicht. Anschliessend hören sie den Stoss, und bestimmen daraus Position und Geschwindigkeit der Kugeln.
  • Virtuelles Schaufenster
    Wenn man in die Nähe dieses Bluetooth-Gerätes kommt, notifiziert es die zugehörige iOS-App. Diese erkennt die vier LEDs des Gerätes und projiziert eine Augmented Reality in das Kamerabild.

IMG_3529IMG_3546

Beide Projekte nutzen einen ATmega32-Mikroprozessor, mit Arduino-Bootloader, extern getaktet und mit 3V versorgt.

Ein drittes Projekt, Amulett, habe ich gestoppt. Das Ziel des Projektes war – wie der Name schon sagt – ein Amulett, das man sich um den Hals hängen kann. Es versorgt mit einer kleinen Batterie oder Solarzelle den Prozessor und das Bluetooth-Modul im Innern. Alles soll sehr leicht und sparsam sein. Das Amulett kann – mit eingebauten LEDs – in mehreren Farben leuchten und lässt sich über eine App konfigurieren; man kann etwa einstellen, welche „Interessen“ man hat. Ist man in der Nähe eines anderen Amulettes, das von einer Person getragen wird oder an einer speziellen Stelle positioniert ist, leuchten beide Amulette eine kurzen Zeit in der gleichen Farbe. Alle solche Begegnungen können über die App ausgelesen und an einer zentralen Stelle gesammelt und ausgewertet werden. Als Hardware habe ich Simblee versucht. Die Software darauf war fast fertig, aber der (Test-)aufwand für verschiedenen, gleichzeitig aktive Geräten war zu viel für mich.

Es war schön

Heute war der letzte Wandertag, morgen geht es zurück, erst nach Nara, dann in die Schweiz. Ich bin 980 Kilometer gelaufen, an 41 Tagen, habe zudem an 8 pausiert (Schmerzen, Wetter, Hundebiss, Schlafen!). Die durchschnittliche Strecke war mit 24 Kilometer etwa gleich lange wie 2012, da waren es Total 1505 Kilometer, pro Wandertag 23.

Und, wie war es? Ich kennen jetzt Japan ein bisschen besser, und auch mich. Einige Etappen – vor allem am Anfang und bei Regen und am Ende in der Hitze – waren anstrengend. Am Ende war auch etwas Routine dabei, auch Ok.

Letztes Mal war es nicht ganz einfach zurückzukommen: die Zeit draussen, im Wetter, an der Sonne hat mir nach der letzten Wanderung sehr gefehlt. Auch die aufmerksamen, ruhigen Japaner vermisst bestimmt jeder, der sie kennengelernt hat, vielleicht schon in Kloten, am Gepäckband. Am häufigsten zurückdenken werde ich aber bestimmt an die vielen kleinen Dinge: Am Morgen, die ersten Meter laufen, die Blumentöpfe vor den Häusern, die Reisefelder, die Freude, wenn ein Getränkeautomat am Wegrand steht, und auch das Lieblingsgetränk hat. Nach der Wanderung ein heisses Bad. Dann dass gute Essen, die gesellige Stimmung in einem Isakaya.

Danke an meine liebe Frau und brave Familie; danke an die Leserschaft.

R1000445

R1000454

R1000456

IMG_3446

Mittelland

Ich laufe bei schönem Wetter durch das japanische „Mittelland“. Auf breiten Strassen, mit Trot­toir. Jeden Tag zwischen 25 und 35 Kilometer. Ist angenehm, einfach, braucht wenig Navigation. Der Shinkansen geht hier durch, alles ist bebaut, ein Haus neben dem anderen.

Das Gebäude auf dem zweiten Bild, das aussieht wie die Trutzburg eines Superschurken, ist übrigens ein Hotel für Paare, es heisst „Belle Grave“. Auf Französisch bedeutet das bestimmt etwas schönes & tiefsinniges, mir fiel nur „Schönes Grab“ ein.

IMG_3443

R1000434

R1000443

Nachbarschaft

Gleich neben meinem Hotel heute befinden sich Solarparks, ein Stahlwerk, Fabriken diverser Autozulieferer – und ein Werk von Toyota: Hier werden Lexus hergestellt, jede Minute einer. Das ganze Areal hat eine Fläche von 2 Quadratkilometern, die Fabrikhallen bedecken etwa die Hälfte davon. 1 Quadratkilometer!

plant