The Piano With a Sparky High Hat (NL)

by Yvar in Workshop > Laser Cutting

198 Views, 2 Favorites, 0 Comments

The Piano With a Sparky High Hat (NL)

IMG_8342.png
Naamloos.png

Dit kleine zwarte doosje is gemaakt om muziek mee te maken. De kleine puntjes bovenop hebben elk een eigen toonhoogte. Aan de zijkant zit een draaiknop waarmee je het huidig akkoord kan aanpassen. De akkoorden die er nu op staan geprogrammeerd zijn de bekende d majeur, a majeur, b mineur en g majeur. Het geluid komt uit de kleine ingebouwde buzzer. Verder is het doosje niet zo onschuldig als het lijkt (misschien dat de schroeven het al weg gaven) maar de schroeven bovenop zitten er niet voor niks. De achtste knop (van links naar rechts gezien) activeert een hoog voltage generator waardoor er een elektrische schok van de ene schroef naar de ander toe springt, dus houdt je vinger daar niet in! Die schok produceert een hard tik geluid dat een beetje vergelijkbaar is met een high hat van een drumstel, aldus de titel! Bij het project zijn geen andere mensen gewond geraakt, denk ik...

Waarom ik dit doe? Laten we stellen dat ik bij een voorgaande iteratie op het bedenken van ding met de arduino op een spelletje was uitgekomen. Eentje waarbij de high voltage generator al bij betrokken was. Dat spel zou gaan over reactietijd. De persoon die later drukte na het afspelen van een geluidje kreeg dan een stroomschok, en als je te vroeg drukte kreeg je er ook een. Ik heb voor de gein die voltage generator op mijn been gezet en hem aangezet... laten we stellen dat ik sinds dien van dat idee ben afgestapt. Ik wilde wat anders bedenken, maar wel waar die stroom schok nog bij betrokken was... en toen vond ik dat het geluid wel wat weg had van een high hat. Met wat onderdelen ging ik aan de slag om een simpel pianootje te bouwen en dit geluid eraan toe te voegen. En zo ben ik op het uiteindelijke idee gekomen.

In deze instructable gids ik je heen door het proces dat je moet doorlopen om dit muzikale (te)hoogstandje te maken!

Supplies

IMG_8257.png

Voor het technische gedeelte:

  • 1 x Arduino Uno R3
  • 8 x Drukknop
  • 1 x 9V-batterij (en een aansluiting om voor de batterij)
  • 8 x 220 Ω Weerstand
  • 1 x High-voltage generator (eigen risico, pianootje kan ook zonder gemaakt worden)
  • 1 x 10k Ω Weerstand
  • 1 x Piëzo buzzer
  • 1 x Diode
  • 1 x 250 kΩ Potentiometer
  • 1 x nMOS-transistor (MOSFET)
  • 1 x Usb aansluiting voor arduino
  • 2 x 24x18 (70mm x 50mm) perfboard
  • Arduino code (staat verderop)
  • Ongeveer 33 jumper wires (zorg gewoon dat je er genoeg hebt)


Voor het in in elkaar zetten:

  • 7 x mainboard scroeven (die steken ongeveer 10mm uit)
  • 10 x schroeven die in die mainboard schroeven gaan
  • 400mm x 300mm x 3mm zwart MDF (bruin kan ook)
  • Blueprint voor lasersnijden (Mijn eind resultaat klopte niet helemaal dus kan evt. aangepast worden)
  • Lasercutter (die een grootte van 400mm x 300mm aan kan)
  • 2 schroeven (en evt. een gedeelte van een paperclip)
  • Soldeerbout
  • Soldeertin
  • Superlijm/Secondelijm
  • Kruiskop schroevendraaier (mits het kruiskopschroeven zijn die je gebruikt)
  • 2 x 25mm lange schroeven

Downloads

Het Bouwen Der Circuit

circuit.JPG
circuitlayout.JPG
IMG_8289.png
IMG_8301.JPG

In de eerste en tweede afbeelding is te zien hoe het circuit in elkaar steekt. Het makkelijkste is om te beginnen met het bevestigen van de knopjes. Een knop verbind een circuit met elkaar, als je knop ligt zoals de knoppen op de afbeelding, dan wordt de linker rails met de rechter rails verbonden waardoor de stroom gaat lopen. De rechter kant van de knop sluit ik aan op 5 volt, de linkerkant sluit ik aan op de ground met daartussen een 220 Ω weerstand. Vanuit de linkerkant loopt ook een kabel naar de digital in/outs van de arduino. Er zijn 8 knoppen, dus gebruik ik hiervoor digital port 2t/m9, elke port één.

Vervolgens is het het makkelijkste om de Pïezo buzzer aan te sluiten samen met de potentiometer. De potentiometer staat op 5 volt aangesloten, en samen met de buzzer aangesloten op ground. De buzzer staat verder aangesloten op digital in/out poort 10 (grijze kabel). De potentiometer, middelste pootje, staat aangesloten op analoog in A0.

Nu komt het lastige gedeelte van de aansluiting, maar het overbodige gedeelte als je alleen een klein keyboardje zou willen maken. De motor in het midden van de afbeelding is vervangen door de high voltage generator in het echte model.

Sluit als eerste de 9V batterij aan. De min kant van de batterij is ook direct verbonden met een ground poort op de arduino. De voltage generator wordt direct aangesloten op de plus van de batterij, waarvan de min kant (blauwe kabel) aangesloten is op D (drain) van de NMOS-transistor. Tussen de min en de plus van de voltage generator zit een diode in de richting van de plus kant aangesloten om weglekkende stroom te voorkomen. De G (gate) van de NMOS-transistor wordt aangesloten op digital in/out poort 11, en via een 10k Ω weerstand op de ground. Verder wordt de S (source) direct aangesloten op de ground. Als het goed is ligt alles nu op zijn plek!

Kleine Test Van De Voltage Generator

De voltage generator geeft een aardige stoot, daardoor dat geluid. Dat is ook te zien in de bijgevoegde video.

Solderen Enzo...

IMG_8295.JPG
IMG_8293.JPG

Nu moet dit circuit vastgemaakt worden aan de perfboards en gesoldeerd worden. Als alles zo dicht op elkaar ligt (zoals bij mij) kan dit best een behoorlijke uitdaging zijn. De belangrijkste dingen die ik op het plaatje gemaakt heb zijn een aantal lijnen die direct met de plus of min verbonden zijn. Alle losse kabeltjes die met knoppen zijn verbonden heb ik een aantal hele kleine soldeerpuntjes voor gemaakt, en de kabels die hieruit komen kunnen zo makkelijk verbonden worden met de arduino. Afgezien van de drek aan de linker onderzijde van het perfboard, is dit hoe de soldering eruit zou kunnen zien.

Een Krachtige Lichtstraal Over Wat MDF Laten Glijden

Behuizing.png
IMG_8347.png
IMG_8345.png
IMG_8348.png
IMG_8325.png
IMG_8300.JPG
IMG_8303.JPG

De blueprint is eigenlijk incorrect, daar kwam ik achter tijdens het in elkaar zetten, nadat mijn reservering voor de lasersnijder was afgelopen (fout te zien in afbeelding twee). De modellen zijn gemaakt met autodesk inventor, en zijn hieronder meegegeven. Bij het model is rekening gehouden met MDF, met een dikte van 3mm (daarom zijn de knopjes zo klein). De 8 lange staafjes in de blueprint waren net aan de korte kant, dus heb ik er een aantal kleine voetjes van 6mm x 3mm x 3mm aan vast gemaakt (te zien in de derde afbeelding, voetjes zitten tegen de knoppen aan) Ook was het opzet stukje waar de balkjes met de staafjes ertussenin aan vastzitten te dik om er rechts (afb. 3) tussenin te passen, dus is die bij geschuurd en staat hij nu op het onderste perfboard te leunen. In de vierde afbeelding is te zien waar ook nog een kleine flaw zit. Voor het stukje waar een usb in gaat in de arduino is een gat gemaakt, alleen dit gat zat helemaal onderin, dus hier is te zien hoe er een stuk is weg geveild. Als alle onderdelen gesneden zijn kunnen we door naar het volgende onderdeel!

(De video's die hierbij horen zijn korte snipets van de lasersnij machine)

Het Doosje Bouwen

IMG_8341.png
IMG_8344.png
IMG_8340.png
IMG_8342.png
IMG_8349.png
IMG_8358.JPG

In deze stap bouwen we de behuizing rondom de arduino. Ik heb hier gekozen voor het materiaal zwart MDF, MDF omdat het makkelijk laser snijdt (en omdat mijn school dit verkoopt). Bijna alle onderdelen sluiten naadloos op elkaar aan, soms moet er een heel klein randje extra weg geschuurd worden om precies een fit te zijn. Bij het in elkaar zetten van de behuizing is een goede volgorde aangehouden. Vanaf onderaf worden eerst de zijkanten vastgelijmd met daartussen het stuk dat de voetjes vasthoudt, met de voetjes er al in, anders krijg je die er achteraf niet meer in. Bij het plaatsen van de zijkant moet op nog meer dingen gelet worden, namelijk dat de knop aan de zijkant goed aansluit, de buzzer en een klein compartimentje dat aan de binnenkant de voltage generator en de batterij vasthoudt. Dit compartimentje wordt er tegelijk met de zijkanten in gezet. Vervolgens wordt de top halve waar de knoppen in zitten wel vast gelijmd, maar de achterkant niet zodat je makkelijk bij de batterij kan en deze kan vervangen. De batterij overigens is er niet voor het ondersteunen van de arduino, die is er echt alleen voor de voltage generator. Dan kunnen als laatste de voor en achterkant erop gelijmd worden. Bij dit model in de foto is echter de voorkant niet gelijmd om goed te kunnen demonstreren wat er zich aan de binnenkant afspeelt. Als dit verder allemaal in elkaar zit en stevig is vastgelijmd hoeft alleen nog in het dekseltje twee schroeven naar elkaar toe geboord te worden (zoals in de afbeelding) waaraan de stroomdraden van de voltage generator vast worden gemaakt.

Een oude iteratie op de behuizing die ik eerst tot uitvoering wilde brengen staat in de laatste afbeelding. Laten we zeggen dat dat een minder goed succes was... daarom ben ik overgestapt op een precies model met de laser snijder.

Als alles op zijn plek zit, kunnen we door naar de laatste echte stap!

Ode Aan De Code

// De code voor het pianootje is vrij simpel


// Als eerste komen de variabelen, hier begin ik met de frequenties aangeven en ze in de
// juiste toonladder array zetten
float currentLadder[7];
float dLadder[] = { 293.66, 369.99, 440.00, 587.33, 739.99, 880.00, 1174.66 };
float aLadder[] = { 440.00, 554.37, 659.25, 880.00, 1108.73, 1318.51, 1760.00 };
float bMinLadder[] = { 493.88, 587.33, 739.99, 987.77, 1174.66, 1479.98, 1975.53 };
float gLadder[] = { 392.00, 493.88, 587.33, 783.99, 987.77, 1174.66, 1567.98 };
float pitch = 0;
bool pressOnce = false;
bool playingMelody = false;


// Vervolgens verklaar ik welke pins input pins en output pins moeten zijn
void setup() {
  int inputPins[] = { 2, 3, 4, 5, 6, 7, 8, 9 };
  SetInputPins(inputPins);


  int outputPins[] = { 11 };
  SetOutputPins(outputPins);
  digitalWrite(11, LOW);
}


// Dat doe ik een stukje efficienter met twee functies
void SetInputPins(int pins[]) {
  for (int i = 0; i < sizeof(pins); i++) {
    pinMode(pins[i], INPUT);
  }
}


void SetOutputPins(int pins[]) {
  for (int i = 0; i < sizeof(pins); i++) {
    pinMode(pins[i], OUTPUT);
  }
}


// Dit is een functie die ervoor zorgt dat de toonladder array kan veranderen naar de
// gegeven input
void CopyArray(float a[], float b[], int arrayLength) {
  for (int i = 0; i < arrayLength; i++) {
    a[i] = b[i];
  }
}


void loop() {
  //Op het moment dat de potentiometer wordt gebruikt wordt hier bepaald vanaf welke waarde
  //welk akoord actief is
  if (!playingMelody) {
    if (analogRead(A0) <= 100) CopyArray(currentLadder, dLadder, 7);
    else if (analogRead(A0) > 100 && analogRead(A0) <= 500) CopyArray(currentLadder, aLadder, 7);
    else if (analogRead(A0) > 500 && analogRead(A0) <= 900) CopyArray(currentLadder, bMinLadder, 7);
    else if (analogRead(A0) > 900) CopyArray(currentLadder, gLadder, 7);


    // En hier bedien ik de knoppen, elke knop heeft een digital in waar die uit leest,
    // op het moment dat de knop ingedruk wordt speelt hij één van de 7 tonen op de
    // toonladder
    if (digitalRead(2)) tone(10, currentLadder[0]);
    else if (digitalRead(3)) tone(10, currentLadder[1]);
    else if (digitalRead(4)) tone(10, currentLadder[2]);
    else if (digitalRead(5)) tone(10, currentLadder[3]);
    else if (digitalRead(6)) tone(10, currentLadder[4]);
    else if (digitalRead(7)) tone(10, currentLadder[5]);
    else if (digitalRead(8)) tone(10, currentLadder[6]);
    else noTone(10);


    // Als je de 8e knop in drukt, dan wordt het voltage op de voltage generator hoog gezet waardoor
    // er dan een stroomschok ontstaat tussen de twee spijkers
    if (digitalRead(9)) {
      digitalWrite(11, HIGH);
    }
    else {
      digitalWrite(11, LOW);
    }
  }
}

Downloads

En Muziek Maken Maar!

Arduino project

Na het uploaden van de code, en alles op zijn plek, dan is het nog een kwestie van aansluiten en dan op knopjes drukken, en aan de potmeter draaien. De voltage generator kan soms wat tijd nodig hebben dus is het niet gek als je die knop heel soms wat langer in moet drukken. De video hier is het eindresultaat!

Als ik terugkijk op het proces dan zie ik dat ik een stuk ervaringsrijker ben geworden in allerlei aspecten. Dan kijk ik met name naar het design van de behuizing, het helemaal gesoldeerde stuk en het omgaan met de elektronica (en met name wat je er niet mee moet doen ;)

Er zijn uiteraard dingen die beter hadden gekund, zoals de kleine bewerkingen aan de behuizing omdat het toch net niet op zijn plek zat, het solderen ziet er op een punt van het bordje niet uit, maar het werkt omdat ik dat gedeelte heb weten te omzeilen. Bovenal vond ik het erg leuk om te maken, ook al zijn er wat sadistische aspecten aan verbonden.