Multiplo Music

Geef mij iets dat geluid maakt en ik kan het niet laten om er een melodietje uit te halen. Of het nu om de kerstkaart van Zandwacht gaat of het trollen van arduino-noobs.

Dus toen ik ontdekte dat de Duinobot (het robotbrein van Multiplo) een ingebouwd piëzo-element had, begon er in mijn achterhoofd vanalles te rinkelen. Wat zou ik deze keer doen?

Muziek maken met Minibloq

selecting a note in Minibloq can be quite a taskNu is de Multiplo niet direct een ideaal muziek-instrument, zeker niet als je het programmeert via minibloq. ( Het is dan ook in de eerste plaats bedoeld om robotjes aan te sturen en visueel te programmeren en we zitten aan versie 0.81 Beta, ook niet onbelangrijk)

Een algemene moeilijkheid is dat je iedere noot apart moet programmeren door de toonhoogte en de lengte in te stellen. In Minibloq is dat nog net iets moeilijker doordat je niet rechtstreeks in de code kan werken (en dus echt alles aan moet klikken) en doordat je  ook de noten niet kan kopiëren (zodat je bijvoorbeeld de lengte al niet iedere keer zou moeten instellen).

Daarenboven is Minibloq duidelijk niet door een muzikant gemaakt, maar door een Sheldonachtige nerd: de noten staan alfabetisch gerangschikt. Je krijgt dus eerst de la in 7 octaven (A1, A2, A3, …), dan de la kruis in 7 toonaarden (As1, As2, …), dan de si, …

Aangezien die zo in een lijstje onder elkaar staan, is dat lijstje enorm lang en het spelen van fa nogal een scrollwerkje zoals je hier links kan zien.

Maar goed, genoeg gezaagd, tijd voor muziek.

Baseball tune: Charge!

Het is eerste waar ik aan dacht was dat spanningsopbouwend orgelmuziekje dat je weleens hoort tijdens baseballwedstrijden[link]. Dat leek me wel iets om mijn robotje mee te doen vertrekken. Of toch het einde ervan. Dat heeft zo iets retteketet-achtig waar ik steevast “Charge!” achter wil roepen, de ideale strijdkreet voor een robot die in een vierkant rijdt.

Een beetje gegoogle leverde dit filmpje op:

Gemakkelijk genoeg om de noten te pikken.
void setup()
{
initBoard();

toneWithDelay(BuzzerPin, NOTE_C3, 200);
toneWithDelay(BuzzerPin, NOTE_F3, 200);
toneWithDelay(BuzzerPin, NOTE_A3, 200);
toneWithDelay(BuzzerPin, NOTE_C4, 200);
delay(200);
toneWithDelay(BuzzerPin, NOTE_A3, 200);
toneWithDelay(BuzzerPin, NOTE_C4, 1200);
}

void loop()
{
}

Dus sindsdien vertrekt mijn robotje pas na een streepje retteketet. (Download de baseballtune-code)

Tada!

En de meeste mensen die mij al hebben samengezien met mijn GSM weten dat ik al eens een soundboard durf opengooien. Ik doe dat niet altijd fysiek. Soms houd ik mij in en hoor ik dat enkel in mijn hoofd (of zeg ik het gewoon). En dat gevoel overviel me ook op de momenten dat Makaron een kunstje tot een goed einde bracht: in mijn hoofd duwde er iemand op deze knop.

Dus even een virtueel pianotje gegoogled en gezocht naar een mooie toonhoogte. Uiteindelijk viel mijn oor op een hoge fa:

Making your Multiplo go Tadaa!

Je kan Making your Multiplo go Tadaa! (the minibloq-code), maar misschien is het makkelijker om gewoon twee keer dezelfde toon te nemen direct na elkaar en de tweede acht keer zo lang als de eerste.

Bios-Bleep

Hier gaat het niet meer over muziek, maar eerder over een tweak: Als je een programma uploadt naar de Duinobot, dan begint dat ook automatisch nadat het uploaden is afgerond. Vrij lastig als een robot iedere keer als je iets aan z’n code aanpast van de tafel wilt rijden, zeker als je nog vollenbak aan het testen en experimenteren bent. Ik had daar eerst een andere oplossing voor gevonden, maar de robot altijd op dat blokje zetten durfde ik weleens vergeten.

Power-on self-testEn toen dacht ik ineens aan dat piepje dat je vroeger hoorde als je je computer opstartte en dat zoveel betekent als “alles ok, we vliegen erin”, het einde van de Power-on self-test. Dat kon in dit geval ook wel dienstdoen. Dus voegde ik een kort piepje en 3 seconden ‘niets’ toe zodat ik na het uploaden de tijd had om te resetten.

Give yourself some time to turn off your Multiplo after uploading some code, by adding this BIOS-bleep

En dit is dan het resultaat:

En eens Makaron deftig kan rijden, zal ik hem ook een tour-de-France-toeter geven, dan kan hij de katten een beetje op stang jagen 😀

(Meer weten over Multiplo? Lees dan Mijn eerste Multiplo-experimenten of Multiplo: een arduinorobotbouwpakket op Kickstarter.)