Inhoudsopgave:

Quick Fruit Piano met MIDI - Ajarnpa
Quick Fruit Piano met MIDI - Ajarnpa

Video: Quick Fruit Piano met MIDI - Ajarnpa

Video: Quick Fruit Piano met MIDI - Ajarnpa
Video: a 109 year old thai buddhist monk Luang Pho Yai 2024, November
Anonim
Image
Image
Quick Fruit Piano met MIDI
Quick Fruit Piano met MIDI

Dit is een heel eenvoudige piano met capacitieve aanraking. Tik op fruit, blikjes frisdrank, flesjes water, reepjes aluminiumfolie, enz., en je krijgt polyfone pianomuziek van je computer. Nu de software is geschreven, zou het project met de Arduino-versie niet meer dan 10 minuten in beslag moeten nemen.

Jij hebt nodig:

  • een Arduino (Mega voor 8 sleutels, Uno voor 6 sleutels) of een black pill STM32F103C8 board ($2 op Aliexpress) plus een UART-naar-USB converter (bijvoorbeeld een Arduino of een CH340)
  • USB-kabel
  • wat aluminiumfolie
  • testclips idealiter, maar jumpers en paperclips zullen het doen (idee daarvoor vanaf hier)
  • fruit, of speeldeeg, of stukjes papier met vlakken ingekleurd met een potlood
  • computer.

Geen extra componenten nodig, omdat deze code gebruikt uit de briljante ADCTouch-bibliotheek van martin2250 en de Arduino MIDI-commando's via serieel naar de computer stuurt. De audioweergave van de Arduino is ofwel via een meegeleverd python-script op de computer of haarloze midiserial.

Gebruik je het ontwikkelbord STM32F103C8, dan is het nog leuker: de piano wordt een echte USB MIDI-controller, zonder haarloze midiserial.

Opmerking: om schade aan de Arduino/STM32F1 door statische elektriciteit te voorkomen, vooral op een droge dag of op tapijt, raad ik aan de aluminiumfolie of testclips niet aan te raken wanneer het apparaat in werking is. Raak in plaats daarvan het fruit, het deeg enz. aan, waarvan de weerstand enige ESD-bescherming zou moeten bieden

Stap 1: Arduino-bibliotheken

Arduino-bibliotheken
Arduino-bibliotheken

Kies in de Arduino IDE Sketch | Bibliotheek opnemen | Bibliotheek Beheerder. Zoek naar mijn ADCTouchSensor. Installeer de bibliotheek.

Kies vervolgens Bestand | Voorbeelden | ADCTouchSensor | Capacitieve Piano.

Als u een Arduino hebt, sluit u uw Arduino aan op de USB-poort van uw computer en uploadt u de CapacitivePiano-schets naar uw Uno of Mega. De schets stuurt gegevens naar de computer via USB-serieel over welke van de 8 (Mega) of 6 (Uno) capacitieve sensoren is geactiveerd.

Als je een STM32F103C8 hebt, installeer dan eerst de bootloader en stel de Arduino IDE ervoor in (met mijn tak van de addMidiHID-tak) door de eerste drie stappen hier te volgen. Ga dan terug naar Bibliotheekbeheer en zoek naar mijn USBHID_stm32f1-bibliotheek. Installeer het.

Stap 2: Sluit kabels aan op pianotoetsen

Sluit kabels aan op pianotoetsen
Sluit kabels aan op pianotoetsen
Sluit kabels aan op pianotoetsen
Sluit kabels aan op pianotoetsen

Leid draden van de A0-A7 (A0-A5 op Uno) pinnen op uw Arduino of STM32F103C8 naar wat u maar wilt als pianotoetsen. Ik gebruikte bijvoorbeeld jumpers met krokodillenklemmen of testclips die naar stukjes aluminiumfolie gingen waarop ik een blikje frisdrank of een sinaasappel als sleutel zette. De aluminiumfolie kan direct als sleutel worden gebruikt. Of men kan een draad in een stuk fruit of groente of speeldeeg steken.

Stap 3: Software installeren: Optie A: Arduino en Hairless MIDI naar Serial Bridge

U kunt de Hairless MIDI to Serial Bridge (Win/OSX/Linux) downloaden en installeren om de USB-seriële uitgang van de Arduino te koppelen aan de synthesizersoftware van uw computer.

Als je Windows 7 of nieuwer hebt, kun je de ingebouwde Microsoft Wavetable GS Synth gebruiken, dus alles wat je hoeft te installeren is Hairless. Voor sommige andere afspeelsoftware is loopMIDI vereist.

Op andere systemen heb je misschien een MIDI-synthesizer nodig, zoals VirtualMidiSynth of Garageband. Je kunt VirtualMidiSynth ook op Windows gebruiken als je wilt.

Stap 4: Software installeren: Optie B: Arduino en Python

Software installeren: Optie B: Arduino en Python
Software installeren: Optie B: Arduino en Python

Je kunt ook gewoon een eenvoudig meegeleverd Python-script gebruiken dat MIDI-noten afspeelt.

Zorg ervoor dat Python op je computer is geïnstalleerd. Ofwel 2.7 of 3.x is voldoende.

Zorg ervoor dat het pygame Python-pakket is geïnstalleerd. Als dit niet het geval is, voert u dit uit vanaf de opdrachtregel:

python -m pip installeer pygame

Ontdek welk adres de seriële poort van uw Arduino is. Uw Arduino IDE heeft de seriële poorten vermeld onder Tools | Haven.

In het CapacitivePiano-pakket dat u hebt gedownload, vindt u het music.py-script dat de pc-kant van het project is.

Stap 5: Software installeren: Optie C: STM32F103C en MIDI Synthesizer-software

Software installeren: Optie C: STM32F103C en MIDI Synthesizer-software
Software installeren: Optie C: STM32F103C en MIDI Synthesizer-software

Als je de STM32F103C hebt, kun je alle software gebruiken die werkt met een MIDI-keyboardcontroller.

Op een computer gebruik ik het Virtual MIDI Piano Keyboard (VMPK). Met de STM32F103C aangesloten, kies Bewerken | MIDI-aansluitingen | Voer MIDI-verbinding in en kies vervolgens Maple MIDI of Diro Synth.

Op een Android-apparaat heb ik met succes (met een USB OTG-kabel) Common Analog Synthesizer en Synth DX7 Piano gebruikt.

Stap 6: Spelen

Toneelstuk!
Toneelstuk!
Toneelstuk!
Toneelstuk!
Toneelstuk!
Toneelstuk!

Sluit de Arduino met de CapacitivePiano-schets aan op de computer. Raak geen van de "knoppen" aan totdat alleen de power-LED brandt, zodat de capacitieve knoppen kunnen worden gekalibreerd.

Voer voor de Hairless-optie de Hairless MIDI-bridge uit, kies de seriële poort in de vervolgkeuzelijst. Kies dan voor een synthesizer. Als u op Windows Microsoft Wavetable GS Synth kiest, zou alles gewoon moeten werken.

Als je in plaats daarvan het Python-script wilt gebruiken, zorg er dan voor dat je in de map bent waar je piano.py hebt, en voer het volgende uit:

python piano.py seriële poort

waarbij seriële poort de seriële poort is van Arduino IDE (bijv. COMx op Windows).

Als je de STM32F103C8 gebruikt, gebruik dan je favoriete MIDI-synthesizersoftware op een computer of mobiel apparaat.

Druk nu op je "knoppen" en veel plezier!

Educatieve ideeën voor kinderen om mee te experimenteren:

  • Experimenteer met verschillende items op de aluminiumfolie en kijk welke werken en welke niet - en vertel dan waarom deze wel en andere niet werken.
  • Playdough werkt heel goed (en dan heb je niet eens folie en clips nodig - je kunt gewoon draden in de playdough steken, hoewel het er weliswaar uitziet als een bom!).
  • Je kunt zelfs een stuk papier en schaduw in gebieden nemen met een potlood (het hoeft niet superdonker te zijn, maar arcering is goed) en deze in te knippen.
  • Je kunt een krokodillenklem aan een heel groot metalen voorwerp bevestigen, zoals de rand van een whiteboard, en gigantische sleutels maken.
  • Een experiment om te proberen is om een kleinere persoon een krokodillenklem vast te laten houden aan een van de draden, en dan een grotere persoon de hand te laten schudden of de kleinere persoon een high-five te geven, en kijk of dat klopt. Probeer het dan opnieuw met een grotere persoon die hem vasthoudt en een kleinere die hem aanraakt.

Zorg ervoor dat u na elke wijziging van wat op de Arduino is aangesloten, de Arduino reset, door op de "reset"-knop te drukken of door de USB-verbinding opnieuw aan te sluiten (en vervolgens de python-code opnieuw uit te voeren, omdat deze waarschijnlijk zal crashen), om de sensoren opnieuw te kalibreren.

Men kan praten over elektrische capaciteit en capacitieve detectie.

Aanbevolen: