Theremin? Bleh! Dorthin? Ja! (Teil 3)
Clive 'Max' Maxfield | 01. Mai 2023
In Teil 1 dieser ständig wachsenden Mega-Miniserie „Wir stellen den bald legendären Therebone vor“ haben wir besprochen, wie ich derzeit eine Reihe von „Arduino Bootcamp“-Kolumnen für alle schreibe, die lernen möchten, wie das geht Mikrocontroller funktionieren. Diese Kolumnen erscheinen unter meiner Überschrift „Cool Beans“ in Practical Electronics, dem führenden Hobbymagazin für Elektronik und Computer in Großbritannien.
Wir haben darüber gesprochen, wie ich eine Reihe von Experimenten auf einer klassischen einstelligen 7-Segment-LED-Anzeige mit gemeinsamer Kathode in Verbindung mit einer Vielzahl von Sensoren und Aktoren aufbaue. Zusätzlich zu Eingabegeräten wie Drucktastenschaltern und einfachen Sensoren wie lichtabhängigen Widerständen (LDRs) und Thermistoren plane ich auch, mit einem Ultraschall-Entfernungssensor wie dem HC-SR04 zu experimentieren, der einen Bereich von 2 bis 400 liefern kann -cm berührungslose Messfunktion mit einer Genauigkeit von etwa ±3 mm.
Wir besprachen auch einige interessante Instrumente, darunter das Sarrusophon, die Glasharmonika und das Theremin. Im letzteren Fall steuern wir die Lautstärke und Frequenz dieses kleinen Rackers, indem wir unsere Arme in der Luft bewegen (Kinder lieben das und ich auch). Dies brachte uns auf die Idee, ein eigenes Instrument zu bauen, das wir Therebone nannten, weil seine Funktionsweise an eine Posaune erinnern wird. In diesem Fall verwenden wir einen piezoelektrischen Summer oder einen kleinen Lautsprecher, um den Ton abzuspielen, und verwenden die von unserem Ultraschall-Entfernungssensor zurückgegebenen Werte, um die Tonhöhe zu steuern.
Eigentlich komme ich mir wie ein alter Idiot vor (aber wo sollen wir um diese Tageszeit einen finden?). Der Grund, warum ich das sage, ist, dass ich in Teil 1 den Theremin-Bausatz auf Steckbrettbasis (kein Löten) erwähnt habe, der von MicroKits Theremin erhältlich ist. Ich erinnere mich, dass ich dachte: „Ich sollte mir selbst eines davon zulegen.“ Sie können sich also meinen Kummer vorstellen, als ich, während ich in einer meiner Kisten voller Krimskrams wühlte, feststellte, dass ich das schon vor so vielen Monden getan hatte.
Sobald ich einen freien Moment hatte, verbrachte ich glückliche 30 Minuten damit, diese kleine Schönheit zusammenzubauen. Ich möchte dem Schöpfer des Kits, David Levi, für seine gute Arbeit danken. Die mitgelieferte Bedienungsanleitung ist nicht nur mit allem ausgestattet, was Sie brauchen, einschließlich der Batterien (die nach ihrem unbestimmten Aufenthalt im Boden meiner Box noch funktionierten), sondern auch äußerst gut geschrieben. Dazu gehören mehrere Zwischentestpunkte, an denen der Benutzer eine Pause einlegt, um zu überprüfen, ob alles wie geplant funktioniert.
Aber wir schweifen ab ... In Teil 2, „Auf der Jagd nach dem bald legendären Therebone“, habe ich erklärt, wie ich meine 7-Segment-Anzeige angeschlossen und ein Array erstellt habe, das die Segmente darstellt, die den Zahlen 0 bis 9 entsprechen . Außerdem habe ich die Segmente definiert, die verwendet werden, um eine fröhliche „HALLO“-Nachricht auf dem Display anzuzeigen.
Lernen Sie meine MicroKits kennen.
Unser erstes Experiment beinhaltete eine automatische Sequenz, die wiederholt von 0 bis 9 zählte. Als nächstes fügten wir ein paar 2-polige Drucktastenschalter mit zugehörigen Pull-up-Widerständen hinzu. Wir richten die Dinge so ein, dass das Drücken eines Schalters dazu führt, dass der Zähler erhöht wird, während das Drücken des anderen Schalters ihn verringert. Dabei haben wir auch die Auswirkungen des Schalterspringens kennengelernt und eine einfache Softwarelösung implementiert, um das Problem zu entschärfen (siehe auch „So verhindern Sie, dass ein umgelegter Schalter wie ein vom Dach fallengelassener Golfball abprallt“).
Unsere neueste Ergänzung ist ein passiver piezoelektrischer Summer, der auf einem kleinen Breakout-Board (BOB) montiert ist. Ein aktiver piezoelektrischer Summer hat nur zwei Pins und erfordert nur das Anlegen von Strom (z. B. 5 V) und Masse (0 V), um einen störenden Ton zu erzeugen. Im Vergleich dazu hat ein passiver piezoelektrischer Summer wie der, den wir verwenden, drei Pins: Strom, Masse und ein Eingangssignal. Durch Anlegen einer Rechteckwelle an den Eingang wird ein Ton erzeugt. Durch Variieren der Frequenz der Rechteckwelle wird die Tonhöhe der Note verändert. Aufgrund all dieser Modifikationen sieht unser Breadboard-Aufbau derzeit wie folgt aus:
Der aktuelle Stand in Bezug auf unser Steckbrett.
Bisher haben wir lediglich eine Funktion erstellt, die explizit bewirkt, dass das Signal, das den Summer antreibt, fünfmal auf HIGH und LOW geht, mit einer Verzögerung von 1 Millisekunde zwischen den Übergängen. Das Ergebnis klingt wie ein blechernes „Klick“. Immer wenn wir einen unserer Druckknöpfe drücken, rufen wir diese Funktion auf, um seine Aktivierung hervorzuheben (vielleicht sollte ich die Funktion auch aufrufen, wenn der Druckknopf losgelassen wird – das muss ich versuchen, wenn ich Zeit habe).
Obwohl wir jetzt verstehen, dass es unser höchstes Ziel ist, unsere Ohren mit dem klagenden Klang des Therebones zu kitzeln, gehen wir auf und ab und führen nebenbei viele kleine Experimente durch.
Angenommen, wir hätten nur einen einzigen Druckknopfschalter für unsere 7-Segment-Anzeige. Was könnten wir mit diesem Setup machen? Tatsächlich gibt es unzählige Möglichkeiten. Zum Beispiel könnten wir mit der Implementierung eines einfachen zufälligen Würfelprogramms beginnen. In diesem Fall könnte die Anzeige ein Muster darstellen, das die Aktionsbereitschaft anzeigt. Vielleicht könnten wir einfach das mittlere G-Segment beleuchten. Vielleicht könnten wir dieses Segment zum Blinken bringen. Wenn der Benutzer die Taste drückt, könnte unser Programm einen Zufallswert zwischen 1 und 6 generieren und diesen Wert auf dem Display anzeigen. Nach einigen Sekunden Verzögerung könnte die Anzeige wieder in den „einsatzbereiten“ Zustand zurückkehren.
Natürlich könnten wir das immer noch ein wenig verschönern. Anstatt beispielsweise einfach unsere neu generierte Zufallszahl anzuzeigen, könnten wir zunächst eine Zufallsfolge auf dem Display anzeigen, bevor wir den endgültigen Wert erreichen. Als nächstes könnten wir eine kleine Modifikation einführen, so dass die Zufallssequenz beginnt, Werte schnell zu ändern, sich dann allmählich verlangsamt, bis sie sich schließlich auf dem Endwert einpendelt.
Als nächstes könnten wir dem Tastendruck einen Klickeffekt hinzufügen, gefolgt von weiteren hörbar unterschiedlichen Klicks, die die sich ändernden Ziffern begleiten. Vielleicht könnten wir zur letzten Ziffer einen fröhlichen Jingle spielen. Dies führt uns wiederum zur Funktion „tone()“ des Arduino, mit der sich alles erzeugen lässt, von einzelnen Noten bis hin zu kompletten Showmelodien (sofern diese Melodien jeweils eine Note nach der anderen gespielt werden können).
OK. Ich habe den Ball (oder die Würfel) ins Rollen gebracht. Was könnten wir sonst noch mit einem einzigen Knopf und unserer 7-Segment-Anzeige machen? Wie wäre es mit den beiden Knöpfen, die wir bereits auf unserem Steckbrett haben? Angenommen, ich erzähle Ihnen, dass ich vorhabe, vier weitere Tasten hinzuzufügen, sodass wir insgesamt sechs haben – wie viele verschiedene Anwendungen und Spiele können Sie sich vorstellen, die wir mit dieser Fülle an Tasten umsetzen könnten? Können Sie außerdem eine Liste mit einfachen Jingles und Soundeffekten (SFX) erstellen, die Ihrer Meinung nach nützlich sein könnten? Mit welchen Klängen oder Tonfolgen könnten wir beispielsweise Erfolgs- oder Misserfolgsbedingungen anzeigen?
Wenn Sie irgendwelche Gedanken haben, die Sie mitteilen möchten, posten Sie sie bitte unten in den Kommentaren oder senden Sie mir eine E-Mail an [email protected] (und vergessen Sie nicht, einen Blick auf meinen Cool Beans-Blog zu werfen). Bis zum nächsten Mal, lasst es euch gut gehen!
Weitere Informationen zu Textformaten