Inhoudsopgave:

Een door Raspberry Pi aangedreven Junk Drum Machine - Ajarnpa
Een door Raspberry Pi aangedreven Junk Drum Machine - Ajarnpa

Video: Een door Raspberry Pi aangedreven Junk Drum Machine - Ajarnpa

Video: Een door Raspberry Pi aangedreven Junk Drum Machine - Ajarnpa
Video: Как Убежать от Полицейской Собаки-Ищейки 2024, Juli-
Anonim
Image
Image
Een door Raspberry Pi aangedreven Junk Drum Machine
Een door Raspberry Pi aangedreven Junk Drum Machine
Een door Raspberry Pi aangedreven Junk Drum Machine
Een door Raspberry Pi aangedreven Junk Drum Machine
Een door Raspberry Pi aangedreven Junk Drum Machine
Een door Raspberry Pi aangedreven Junk Drum Machine

Deze Instructable laat je zien hoe je een door Raspberry Pi aangedreven robotdrummachine maakt. Het is echt een leuk, creatief, interactief project. Ik zal je laten zien hoe je de interne werking maakt, maar de eigenlijke drums zullen aan jou zijn, waardoor je de kans krijgt om iets volledig unieks voor jou te maken. Voor mijn machine heb ik zoveel mogelijk gevonden voorwerpen gebruikt… hamers van een piano die gered is uit de container van mijn buren, een visnet dat ik op het strand vond, een leeg bakbonenblik, houten lepels, een lege bierfles, bierflesdoppen en een bureaubel onder andere, maar laat je fantasie de vrije loop - kijk wat je in huis hebt, zo ongeveer alles dat geluid maakt als er tegenaan wordt geslagen, kan worden gebruikt, en het zal je project echt je eigen maken. Om het te besturen, je hebt 2 opties:

  • Een browsergebaseerde stappenreeks die ik PiBeat heb genoemd - Dit is erg leuk en laat je je drummachine interactief bedienen vanaf je Pi, of elk apparaat op hetzelfde netwerk (zoals je telefoon, tablet of computer). We zullen het later op je Pi installeren, maar een voorbeeld is hier te zien en de code staat hier in GitHub.
  • Een pythonscript om een drumpatroon te programmeren. Dit is een geweldige manier om een ritme te creëren om mee te jammen op je gitaar enz.

Ik probeer de kosten laag te houden en zoals u in de volgende stap zult zien, zijn er geen dure specialistische gereedschappen nodig. Ik heb ook geprobeerd uit te leggen hoe dingen in elke stap werken, waardoor het een geweldig project is, zelfs als je een relatieve nieuwkomer bent in de wereld van Pi's, codering en elektronica en met een beperkt budget.

Oké, laten we aan het werk gaan!

Stap 1: Ga winkelen

Ga winkelen
Ga winkelen
Ga winkelen
Ga winkelen
Ga winkelen
Ga winkelen

Om het interne mechanisme te bouwen, hebt u nodig:

  • 1x 40-pins Raspberry Pi met Raspbian geïnstalleerd op een SD, met stroomkabel en mogelijkheid om er verbinding mee te maken (ik heb een Raspberry Pi Zero Wireless gebruikt met voorgesoldeerde header van ModMyPi)
  • 1x 5v 8 kanaals relais
  • 1x Pack van vrouwelijke naar vrouwelijke jumperdraden (10 draden nodig)
  • 2x 3 Amp Terminal strips (Je zou een breadboard of perfboard kunnen gebruiken, maar terminal strips zijn goedkoop en voorkomen dat kabels losraken, en bij het maken hiervan had ik geen soldeerbout)
  • 1x 12v 10a voeding
  • 8x 12v 2a solenoïdes
  • 8x 1N5401 Gelijkrichterdiodes
  • 50 cm kabel van 0,5 mm (ik heb de kernen van een tweeaderige kabel gestript omdat het een kosteneffectieve manier was om rood, zwart en tweeaderige kern te krijgen), hoewel je maar 1 kleur kunt gebruiken als je wilt. Afhankelijk van de behuizing die u wilt bouwen, wilt u misschien geen grotere lengte kopen.

Je hebt ook de volgende hulpmiddelen nodig:

  • Draadsnijders
  • Draadstrippers
  • Kleine platte schroevendraaier, ongeveer 3 mm
  • Afhankelijk van de klemmenstroken die u krijgt, heeft u mogelijk ook een kleine kruiskopschroevendraaier nodig

Ik heb geen onderdelen of gereedschappen genoemd om de drums te maken en de behuizing waar je het niet in wilt plaatsen. Ik zal je later laten zien hoe ik de mijne heb gemaakt, maar zoals eerder gezegd, laat ik dat onderdeel aan je verbeelding over.

Stap 2: Sluit de Pi aan op het relais

Sluit de Pi aan op het relais
Sluit de Pi aan op het relais
Sluit de Pi aan op het relais
Sluit de Pi aan op het relais
Sluit de Pi aan op het relais
Sluit de Pi aan op het relais
Sluit de Pi aan op het relais
Sluit de Pi aan op het relais

De maximale spanning die door de pinnen op de Pi wordt geleverd, is 5v. We zouden 5v-solenoïden kunnen kopen en deze rechtstreeks van de Pi kunnen voeden, maar dat zou niet de grote klap zijn die onze drummachine nodig heeft. Daarom gebruiken we een relais waarmee we een circuit met een hogere spanning (in ons geval een 12v-circuit met onze 12v-solenoïdes) van ons GPIO-circuit met een lager voltage kunnen in- en uitschakelen.

Ons relais heeft 8 kanalen, hierdoor kunnen we tot 8 magneetventielen onafhankelijk van elkaar in- en uitschakelen. Elk kanaal bevat 4 connectoren; 3 worden gebruikt door het hoogspanningscircuit dat we later zullen zien, en 1 dat een 'IN'-pin is op het lagere spanningscircuit waarop we onze Pi zullen aansluiten. Wanneer de GPIO-pin van de Pi 5v verzendt op een bepaalde IN-pin van het kanaal, schakelt het relais het bijbehorende 12v-circuit in.

Aan de laagspanningszijde van het relais bevindt zich ook een GND-pin (aarde) die we moeten verbinden met de aarde van de PI, en een VVC-pin voor de 5v-stroom van de Pi.

Terwijl de Pi is uitgeschakeld, volgt u het diagram om het relais op de Pi aan te sluiten met behulp van de startkabels. Je hoeft niet dezelfde kleur jumpers te gebruiken, maar het kan helpen bij het volgen van de afbeeldingen.

Stap 3: Laten we wat lawaai maken

Image
Image
Creëer de positieve kant van ons circuit
Creëer de positieve kant van ons circuit

Het is misschien nog niet onze volwaardige drummachine, maar in deze stap gaan we wat geluid maken, zij het klikken van het relais. We zullen het python-script introduceren om drumpatronen te programmeren, dit zal ons in staat stellen om te testen wat we tot nu toe hebben gedaan.

Het script dat beschikbaar is, heeft hier een kern.

Start je Pi op, open een terminal op de Pi en download het script door uit te voeren:

wget

Misschien wil je de code en opmerkingen bekijken om een idee te krijgen van wat het doet, maar laten we wat voldoening krijgen en het uitvoeren:

python3 array-sequencer.py

Als alles volgens plan verloopt, hoort u de contacten in het relais openen en sluiten en het lampje op het bijbehorende kanaal knipperen. Bekijk de sequentievariabele in het script om een idee te krijgen wat er aan de hand is - alle kanalen worden samen geactiveerd en vervolgens wordt elk afzonderlijk geactiveerd. Het blijft actief totdat u het script verlaat door op Ctrl + C te drukken.

Voordat u doorgaat, is het een goed idee om de Pi weer uit te schakelen in het geval van onbedoelde kortsluiting bij het aansluiten van de bedrading.

Stap 4: Creëer de positieve kant van ons circuit

Creëer de positieve kant van ons circuit
Creëer de positieve kant van ons circuit
Creëer de positieve kant van ons circuit
Creëer de positieve kant van ons circuit

Om 8 solenoïdes van stroom te voorzien met één voeding maken we een parallelschakeling. U kunt een diagram zien van het voltooide 12v-circuit, maar we gaan het stap voor stap doornemen.

Je zou een breadboard of perfboard kunnen gebruiken, maar ik heb gekozen voor klemmenstroken omdat ze goedkoop zijn, draden stevig vasthouden en ik had ook geen soldeerbout toen ik dit maakte.

In feite moeten we alle solenoïdes en een diode voor elke solenoïde (later meer over diodes) aansluiten op de 1 positieve draad van onze voeding.

Gebruik de frezen om de klemmenstrook zelf te snijden, zodat u een blok van 8 paar hebt, snijdend bij het plastic bit dat twee blokken met elkaar verbindt. Pas op dat u geen metaal snijdt.

We moeten nu alle terminals aan één kant van de strip samenvoegen. Gebruik de kniptang om 7 stukken rode draad van ongeveer 35 mm lang af te knippen en gebruik vervolgens de draadstrippers om ongeveer 5 mm isolatie van elk uiteinde van elke draad te verwijderen.

Gebruik nu de draden om alle aansluitingen langs één kant van de strip in serie te schakelen, waarbij u de draden op hun plaats houdt met behulp van de schroeven. De eerste en laatste schroef hebben maar 1 draad, de rest heeft er 2.

Stap 5: Voeg de solenoïden en diodes toe

Voeg de elektromagneten en diodes toe
Voeg de elektromagneten en diodes toe
Voeg de elektromagneten en diodes toe
Voeg de elektromagneten en diodes toe

Aangezien solenoïden elektromagneten zijn, worden diodes aanbevolen om uw circuit te beschermen tegen terugvliegen (u kunt hier uitgebreid over lezen). Daarom geven we elke solenoïde zijn eigen diode om ons relais te beschermen.

Aan de andere kant van de klemmenstrook waarop u in de vorige stap hebt aangesloten, begint u met het eerste gat. Steek 1 draad van de solenoïde in en voeg vervolgens een uiteinde van de diode toe aan hetzelfde gat. Aangezien diodes de stroom maar in één richting doorlaten, moet u ervoor zorgen dat de zilveren streep op de diode naar de aansluitstrip wijst. Draai de schroef vast om ze op hun plaats te houden. Herhaal het proces voor de resterende 7 gaten.

Een van de elektromagneten die ik ontving was defect, dus op het moment dat ik de foto's maakte, verwisselde ik hem voor een model met een lagere versterker met blauwe draden.

Stap 6: Sluit de negatieve aansluitstrip aan op de solenoïde en diodes

Sluit de negatieve aansluitstrip aan op de solenoïde en de diodes
Sluit de negatieve aansluitstrip aan op de solenoïde en de diodes

Zoals we deden met de positieve kant, pak 1 klemmenstrook en knip deze af zodat je nog een strook van 8 paar hebt. Schroef de diodes en solenoïdes op deze klemmenstrook vast zodat deze de plusklemmenstrook weerspiegelt.

Stap 7: Maak de relaisverbindingsdraden

Maak de relaisverbindingsdraden
Maak de relaisverbindingsdraden
Maak de relaisverbindingsdraden
Maak de relaisverbindingsdraden

We zijn bijna klaar om het relais aan te sluiten, maar eerst moeten we iets hebben om het mee te verbinden. Knip 8 stukken zwarte draad van ongeveer 70 mm lang en strip vervolgens ongeveer 5 mm van elk uiteinde. Bevestig elke draad aan de 8 resterende connectoren op de negatieve aansluitstrip.

Stap 8: Sluit de gemeenschappelijke relaisconnectoren aan

Sluit de gemeenschappelijke relaisconnectoren aan
Sluit de gemeenschappelijke relaisconnectoren aan
Sluit de gemeenschappelijke relaisconnectoren aan
Sluit de gemeenschappelijke relaisconnectoren aan

Kijk eens naar het relais dat de kant die door de jumpers met de Pi is verbonden, van je af houdt. Elk kanaal heeft 3 contacten, van links naar rechts heten ze normaal open (NO), gemeenschappelijk (COM) en normaal gesloten (NC). We willen dat onze solenoïdes alleen worden ingeschakeld als er een hoge spanning op de IN-pin van de kanalen staat, dus zullen we het normaal open contact gebruiken. Als we in plaats daarvan het normaal gesloten contact zouden gebruiken, zou het tegenovergestelde gebeuren - de solenoïde zou aan zijn totdat een hoge spanning op de IN-pin wordt verzonden. We zullen ook het gemeenschappelijke contact gebruiken om het circuit te voltooien.

Omdat dit een parallel circuit is, zullen we alle gemeenschappelijke contacten op het relais doorlussen. Knip 7 stukken zwarte draad van ongeveer 60 mm lang en strip 5 mm van elk uiteinde. Werk langs het relais dat alle COM-contacten (het midden van elke set van 3) met elkaar verbindt. De eerste en de laatste hebben maar één draad, de rest heeft er 2.

Stap 9: Sluit het relais aan op de rest van ons circuit

Verbind het relais met de rest van ons circuit
Verbind het relais met de rest van ons circuit

Nu is het tijd om het relais aan te sluiten op de rest van ons circuit. Neem het losse uiteinde van het zwarte stuk draad van het ene uiteinde van de negatieve aansluitstrip en sluit het aan op de eerste of de laatste van de normaal open (NO) contacten op het relais. Herhaal dit voor de 7 andere stukken draad en verbind elke draad met het volgende NO-contact.

Stap 10: Sluit de 12v-voeding aan

Sluit de 12v-voeding aan
Sluit de 12v-voeding aan

Ten eerste, om schokken te voorkomen, moet u ervoor zorgen dat uw voeding is uitgeschakeld en de stekker uit het stopcontact is gehaald.

Mijn voeding kwam van eBay met de 12v mannelijke stekker al verwijderd. Ervan uitgaande dat de jouwe nog steeds de stekker heeft, kun je ofwel de bijpassende vrouwelijke DC-connector kopen, of de stekker afknippen en terug strippen naar de 2 draden zoals de mijne. Hoe dan ook, je moet eindigen met 2 draden, de rode (positieve) en waarschijnlijk witte (negatieve). Sluit de positieve draad van de voeding aan op het eerste contact op het positieve aansluitblok en de negatieve op het eerste gemeenschappelijke contact op het relais. Om dit gemakkelijker te maken, heb ik ongeveer 150 mm rode en zwarte draad gebruikt met de uiteinden gestript om tussen de verbindingen te gaan en verbonden met een klemmenstrook.

Stap 11: Start het op

Image
Image

Terwijl uw voeding nog steeds is uitgeschakeld, controleert u snel al uw verbindingen. Als je eenmaal tevreden bent, start je de Pi opnieuw op. Voer het script vanaf stap 3 opnieuw uit:

python3 array-sequencer.py

Uw solenoïdes zullen nog niet bewegen, maar u zou het relais moeten horen klikken en oplichten zoals u deed in stap 3. Beëindig het script (Ctrl + C), en nu is het het moment waarop u hebt gewacht - schakel de stroom in levering! Voer het script opnieuw uit, al je dansende solenoïden zouden nu tot leven moeten komen. Goed werk!

Ik had pech - zoals je in de video kunt zien, werkte een andere van mijn solenoïdes niet, maar dit was mijn fout omdat ik er eerder een had beschadigd door een bevestigingsbout te vast aan te draaien.

Stap 12: Array-sequencer.py bewerken

Installeer de drumsequencer
Installeer de drumsequencer

Neem even de tijd om met array-sequencer.py te spelen. Gebruik uw favoriete editor (nano, geany enz.) om wijzigingen in het script aan te brengen. Probeer het volgende en voer het script na elke wijziging opnieuw uit om het effect te zien:

  • Verander de bpm-variabele van 120 naar een ander getal, zeg 200 om het tempo te verhogen.
  • Verander in de sequence-variabele enkele nullen in enen om meer drums te spelen.
  • Dupliceer de laatste 3 regels voor het afsluitende vierkante haakje in de reeksvariabele om meer beats aan de loop toe te voegen

Stap 13: Installeer de drumsequencer

Installeer de drumsequencer
Installeer de drumsequencer

Dit is wanneer dingen echt leuk worden, we gaan de sequencer op je Pi installeren. Dit geeft ons een webinterface waarmee Python de GPIO-pinnen via websockets kan activeren.

De broncode is hier beschikbaar in Github, maar ervan uitgaande dat je de bedrading in de Instructable hebt gevolgd, kunnen we de voorgecompileerde versie downloaden en uitvoeren. Open een terminal op je Pi en voer het volgende uit:

# Maak en navigeer naar een map voor ons project

mkdir pibeat cd pibeat # Download de broncode wget https://pibeat.banjowise.com/release/pibeat.tar.gz # Pak de bestanden uit tar -zxf pibeat.tar.gz # Installeer de python-vereisten pip3 install -r-vereisten. txt # Voer de webserver python3 server.py uit

Als alles is gelukt, ziet u in de uitvoer de volgende uitvoer:

======== Draait op https://0.0.0.0:8080 ========

(Druk op CTRL+C om te stoppen)

Vind het IP-adres van Pi. Open een webbrowser en voer vervolgens het IP-adres in gevolgd door:8080/index.html (dit is de poort waarop de toepassing luistert, gevolgd door de bestandsnaam) in de adresbalk. Als het IP-adres van uw Pi bijvoorbeeld 192.168.1.3 is, voert u 192.168.1.3:8080/index.html in de adresbalk in. De drumsequencer verschijnt.

Druk op de afspeelknop en je drummachine zou moeten beginnen met spelen. Speel met de sequencer totdat je hart tevreden is.

Zolang er een netwerkroute naar je Pi is, heb je vanaf elk apparaat toegang tot de webinterface van de Pi - probeer het vanaf je mobiel of tablet.

Stap 14: Je drums en behuizing bouwen

Je drums en behuizing bouwen
Je drums en behuizing bouwen
Je drums en behuizing bouwen
Je drums en behuizing bouwen
Je drums en behuizing bouwen
Je drums en behuizing bouwen

Hier kun je van je stapel elektronische spaghetti een echte drummachine maken. Zoals eerder gezegd, wat je hier doet, is aan jou. Zowat alles wat geluid maakt wanneer er op wordt geslagen, kan worden gebruikt en waarmee u uw project echt kunt transformeren in iets dat uniek voor u is.

Ik heb goed door mijn huis gesnuffeld naar ideeën voor de drums die de bierfles, het blik, de shaker, de flessendoppen en de lepels leverden. Het visnet is gevonden op het strand en de bureaubel en het krokodillencastagnet kwamen van eBay. Ik vond een kapotte piano in een container, dit leverde de hamers voor de fles en het blik, samen met een houten pendel om de bel op zijn plaats te houden en metalen staven om te draaien en de lepels op hun plaats te houden.

Ik heb van elke drum een op zichzelf staand onderdeel gemaakt, dus als er een kapot gaat of ik ben er niet blij mee, kan ik hem zonder al te veel poespas vervangen door een andere.

De solenoïdes worden geleverd met boutgaten waarvoor M3-bouten nodig zijn. Het boren van de gaten in het hout was een beetje lastig, omdat je de positionering precies goed moet krijgen, maar het bleek goed om de solenoïde op zijn plaats te houden en de gaten te markeren met een knuppel voordat het boren goed werkte.

Ik gebruikte meestal 6 mm MDF (resten van mijn plaatselijke doe-het-zelfwinkel) voor de drums langs een paar stukjes sloophout, bij elkaar gehouden met lijm of schroeven.

De hamers op het blik en de bierfles zijn waarschijnlijk niet nodig, omdat je gewoon een goede slag rechtstreeks van de solenoïde kunt krijgen, maar ik wilde zoveel mogelijk beweging in de machine krijgen om het visueel interessant te maken.

huisvesting

De behuizing is een eenvoudige, ruwe en kant-en-klare doos gemaakt van 3,6 mm multiplex, 18 mm MDF en wat striphout. Ik wilde dun multiplex voor de voorkant van de doos, zodat het zou resoneren als het met een lepel werd geraakt, maar de houtkeuzes werden voornamelijk bepaald door wat ik al in de schuur had en het sloophoutgedeelte in mijn plaatselijke doe-het-zelfwinkel. Ik maakte een platform aan de onderkant van de doos om de elektronica te houden, en een ander platform om de drums te houden. Om de doos te maken:

1. Snijd 2 gelijke maten MDF om de uiteinden te maken2. Snijd 4 stukken striphout (ik gebruikte 34 mm x 12 mm) 50 mm korter dan de gewenste breedte van de doos3. Spijker het striphout aan de 2 MDF-uiteinden om de doosvorm te vormen. Plaats het striphout ongeveer 1 cm van de boven- en onderkant van de box.4. Snijd 2 stukken triplex die passen bij de breedte en hoogte van de doos. Bevestig deze aan de voor- en achterkant van de doos door aan de mdf en stripwood te spijkeren.5. Snijd een stuk triplex om in de doos te passen en plaats op de onderste stukken striphout om de elektronica vast te houden. Ik maakte de mijne ongeveer de helft van de lengte van de box.6. Snijd nog een stuk triplex om de drums aan te bevestigen. Dit zit op de bovenste stukken stripwood.7. Snijd een gat in de buurt van het onderste platform om de stroomkabels door te voeren.

Schilderen

Om te schilderen gebruikte ik Acrylic Primer Undercoat gevolgd door Crown Matt-testpotten. De testerpotten zijn een goede manier om een verscheidenheid aan kleuren voor een goedkope prijs te krijgen.

Stap 15: Leun achterover en veel plezier

En daar heb je het, een behoorlijk coole drummachine. De kern van de reeks in youtube-video is hier te vinden.

Als je doorgaat en je eigen maakt, deel het dan, ik zou graag zien wat je bedenkt. Veel plezier!

Aanbevolen: