Cuprins:

Sonar MIDI "Theremin": 10 pași (cu imagini)
Sonar MIDI "Theremin": 10 pași (cu imagini)

Video: Sonar MIDI "Theremin": 10 pași (cu imagini)

Video: Sonar MIDI
Video: Open Theremin with MIDI Musical Instrument Digital Interface 2024, Noiembrie
Anonim
Sonar MIDI
Sonar MIDI

Acesta este un instrument muzical care folosește doi senzori de distanță sonar pentru a controla tonul și calitatea notelor. Desigur, nu este un Theremin, dar „Theremin” a devenit termenul generic pentru instrumentele jucate prin fluturarea mâinilor.

Are un sintetizator MIDI încorporat, amplificator și difuzoare. Notele muzicale sunt produse de un cip MIDI - VS1053 - care are 127 de voci (adică instrumente presupuse diferite). Are un grad ridicat de polifonie (până la 64), astfel încât poate reda note sau acorduri simple.

Mâna dreaptă controlează nota redată. În modul „discret” spațiul din dreapta este împărțit în „pubele”. Pe măsură ce mâna dvs. intră într-un coș, începe nota. Când părăsiți coșul, nota s-ar putea opri (de exemplu, o orgă) sau să dispară natural (de exemplu, un pian).

În modul "continuu", spațiul din dreapta determină un pas continuu variabil - ca Theremin-ul original. Nota începe când mâna dvs. intră în spațiu și se oprește când părăsiți spațiul.

Mâna stângă controlează calitatea notei redate. Poate controla volumul, tremolo, vibrato, pitch-bend, reverb etc.

Un mic ecran LCD are un meniu care vă permite să selectați instrumentul curent, funcția mâinii stângi, scala (sau „tasta”) mâinii drepte, vibrato, tremolo etc. Puteți salva și încărca diferite „Setări” și comutați rapid între ele în timpul unei reprezentații.

Întregul instrument MIDI „Theremin” funcționează autonom cu propriul difuzor și baterie reîncărcabilă.

Dacă doriți să copiați versiunea mea, veți avea nevoie de un Arduino Nano (1,50 GBP), un modul VS1053 (4,50 GBP), un ecran LCD ST7735 de 1,44 (3,50 GBP), două module HC-SR04 (1 GBP fiecare) și câteva rezistențe. Veți avea nevoie, de asemenea, de niște difuzoare electrice și poate de o celulă de litiu și un alimentator, dar detaliile vor depinde de modul în care decideți să îl construiți. Am obținut toate acele figuranțe din vânzările portbagajului și din magazinele de caritate. Voi avea nevoie de obiecte obișnuite pentru atelierele electronice.

Pasul 1: Controlul VS1053

Controlul VS1053
Controlul VS1053
Controlul VS1053
Controlul VS1053

Am ales modulul VS1053 prezentat în imagine. (Rețineți cele două regulatoare SOT223, cele două prize jack și poziția conectorului.) Căutați eBay, Alibaba sau furnizorul dvs. preferat pentru un modul VS1053 care să arate așa. Sunt disponibile de pe Aliexpress aici și aici.

L-am cumpărat acum câțiva ani și nu mai pare să fie disponibil pe eBay, ci doar pe Alibaba. O versiune PCB roșie este acum disponibilă pe eBay. Se pare că este funcțional identic, dar pinout-ul este diferit, așa că va trebui să-mi reglați schemele și aspectele. Nu l-am testat. În discuția (de mai jos) puteți găsi instrucțiuni despre cum să adăugați un rezistor la PCB roșu pentru a activa MIDI „live”. Sau puteți trimite comenzi suplimentare în timpul configurării pentru a o activa.

VS1053 este un cip fin, dar destul de complicat. Folosesc doar partea MIDI a acestuia. Este posibil să controlați VS1053 printr-o interfață serială, dar folosesc magistrala SPI, deoarece este mai convenabil cu un Arduino Nano. Orice octet pe care îl trimiteți prin magistrala SPI este tratat ca o comandă MIDI.

Veți găsi liste de comenzi MIDI pe web. VS1053 răspunde la unele, dar nu la toate. Programul Miditheremin0.exe arată pe cele despre care știu că funcționează.

Puteți descărca fișa tehnică VS1053 de pe web. Este un document imens și merge greu. Secțiunea „8.9 Formate MIDI acceptate” este aproape tot ce spune despre MIDI. Secțiunea „10.10 Real-Time MIDI” vorbește despre utilizarea GPIO0 și GPIO1 pentru a activa MIDI, dar placa pe care o am nu a necesitat nicio activare specială. De asemenea, puteți descărca o listă de mesaje MIDI (nu toate sunt acceptate de VS1053).

Conectați modulul VS1053 la un Arduino Nano așa cum se arată și încărcați fișierul INO pe Arduino. Am folosit un panou de lipit. Nu am o fotografie cu aceasta în această etapă, dar puteți vedea panoul cu alte componente într-un pas de mai jos.

Schița INO primește un octet de la computer pe linia serial și trimite octetul către VS1053. Este un program foarte simplu care vă permite să testați VS1053. Conectați mufa mufei de ieșire la căști sau la un difuzor al computerului.

Programul Windows Miditheremin0.exe (descărcați Step1.zip din github) trimite comenzi către VS1053. Faceți clic pe butonul „90 note vel” pentru a reda o notă. Sau ai putea scrie propriul tău program Windows. Sau utilizați unul dintre numeroasele programe terminale disponibile pe web.

Modulul VS1053 are următorii pini:

  • autobuzul SPI are obișnuitele MISO, MOSI și SCLK
  • dacă XRST este scăzut, cipul se resetează
  • XDCS nu face nimic în modul SPI, așa că legați-l de XCS
  • XCS este Chip Select
  • DREQ vă spune când cipul este gata pentru o nouă comandă.

XCS ar trebui să fie setat scăzut în timp ce trimiteți un octet; apoi sus. În acest fel, sunteți sigur că ați sincronizat primul bit din fiecare octet. Citirea DREQ vă spune că cipul este gata să primească o nouă comandă.

După ce Arduino trimite un octet, acesta trebuie să trimită un octet fals pentru a comuta ceasul și a permite VS1053 să trimită un octet înapoi ca răspuns. Funcția SPItransfer () vă arată cum.

Modulul roșu disponibil pe eBay include un slot pentru card SD, deci are câteva pini suplimentare. Ignoră-i.

Acum aveți încredere că puteți face ca VS1053 să funcționeze, îl vom transforma într-un instrument muzical mai mult.

Pasul 2: Utilizarea sonarelor

Folosind Sonarele
Folosind Sonarele
Folosind Sonarele
Folosind Sonarele

Conectați modulele HC-SR04 la Arduino Nano așa cum se arată și încărcați fișierul INO pe Arduino.

Observați în schemă că DC3 - condensatorul de decuplare pentru modulele HC-SR04 - ar trebui să fie conectat aproape de modulele HC-SR04. Ei iau destul curent atunci când transmit ce DC3 ajută la furnizare.

În această etapă a proiectului, computerul Windows trimite în continuare comenzi către VS1053, dar VS1053 este controlat și de senzorii de sonar HC-SR04 (descărcați Step2.zip din github).

Noile comenzi încep cu 0xFF și sunt interpretate de schița Arduino (mai degrabă decât să fie trimise direct la VS1053). Octecții care nu sunt „comanda FF” sunt trimiși către VS1053.

Există comenzi pentru a schimba instrumentul, a schimba scala, a adăuga vibrato și tremolo etc. Programul poate fi rulat în modul „discret” unde există note separate (cum ar fi un pian) sau în modul „continuu” unde este o singură notă. aplecat în sus și în jos (ca un theremin).

Face destul de bine tot ce va face instrumentul final, dar este controlat de un computer.

Senzorul sonar HC-SR04 din dreapta selectează tonul notei redate. În modul „discret” spațiul din dreapta este împărțit în „pubele”. Pe măsură ce mâna dvs. intră într-un coș, începe nota. Când părăsiți coșul, nota s-ar putea opri (de exemplu, o orgă) sau să dispară natural (de exemplu, un pian). Pe măsură ce mâna intră într-un coș, coșul se extinde ușor, astfel încât să nu obțineți jitter la marginea acestuia.

Funcția GetSonar () returnează timpul necesar primului ecou. Ignoră ecourile foarte rapide (durata <10) pe care HC-SR04 le raportează uneori. Dacă nu a fost primit niciun ecou de maxDuration, acesta returnează maxDuration. Durata nu se măsoară în nicio unitate anume - este doar un număr.

În modul discret, durata este mai întâi filtrată pentru a elimina abandonurile ocazionale (atunci când nu se primește ecou). Se presupune că mâna este prezentă numai după primirea a 10 mostre de durată maximă. Apoi, durata este filtrată folosind un filtru Median. Filtrele medii sunt bune pentru a elimina zgomotul „impulsiv” (adică vârfuri ocazionale). Durata filtrată este utilizată pentru a selecta un coș.

În modul continuu, durata este din nou filtrată pentru a elimina abandonul ocazional. Apoi este netezit folosind un filtru exponențial. Durata filtrată este utilizată pentru a seta frecvența notei folosind „pitch bend”.

Pasul 3: Adăugarea unui afișaj

Adăugarea unui afișaj
Adăugarea unui afișaj
Adăugarea unui afișaj
Adăugarea unui afișaj
Adăugarea unui afișaj
Adăugarea unui afișaj

Afișajul este un ecran TFT LCD color de 1,44 cu un controler ST7735, 128x128 pixeli. Există multe ecrane disponibile pe eBay, de exemplu, ați putea prefera să vă dezvoltați instrumentul cu un ecran tactil mai mare. Nu aș folosi ST7735 controler și a vrut să-l încerce.

Am primit-o pe a mea de la acest furnizor. Același modul este vândut pe larg pe eBay - trebuie doar să obțineți unul care să arate la fel ca fotografia.

Ecranul LCD are următorii pini:

  • Sol GND
  • VCC 3.3V
  • SCL SPI autobuz SCLK
  • SDA SPI autobuz MOSI din Arduino
  • RES reset
  • Date / comandă DC
  • CS chip select
  • Lumina de fundal BL

Modulul funcționează pe 3.3V, deci nu ar trebui să-l conectați direct la Arduino de 5V. Am folosit rezistențe 1k pentru a scădea tensiunea. Aceasta nu este o bună practică (în general, ar trebui să utilizați un divizor de potențial sau un cip de picătură de tensiune), dar funcționează perfect în acest circuit. Eram leneș.

Afișajul este alimentat de 3.3V furnizat de Arduino. Regulatorul Arduino pare destul de fericit.

Adafruit publică foarte amabil o bibliotecă ST7735, iar alte câteva biblioteci sunt disponibile în Github și în alte părți. Am încercat câteva și nu mi-a plăcut niciunul. Unele pur și simplu nu au funcționat și toate au fost uriașe. Scrii o schiță Arduino care trasează o linie și ceva text și îți găsești memoria dacă este 75% plină. Așa că mi-am scris propria bibliotecă.

Biblioteca SimpleST7735 poate fi descărcată (descărcați Step3.zip din github).

Are un set standard de comenzi de desen foarte asemănătoare tuturor acestor biblioteci.

Unele dintre bibliotecile „rapide” pe care le puteți descărca folosesc bucle de sincronizare speciale și sunt supărate când alte dispozitive, poate mai lente, sunt utilizate pe aceeași magistrală. SimpleST7735 este scris în C mai degrabă decât în asamblare, deci nu este atât de rapid pe cât ar putea fi, dar este mult mai portabil și împarte politicos busul SPI cu alte dispozitive. Se poate descărca un program Windows care vă permite să creați propriile fonturi și pictograme.

Puteți descărca foaia de date ST7735 de pe web. Vorbești cu asta până la

  • setați CS jos
  • setați DC scăzut
  • trimiteți un octet de comandă
  • stabiliți DC înalt
  • trimite zero sau mai mulți octeți de date
  • setați CS ridicat

Puteți vedea cum o fac în funcția spiSend_TFT_CW () din bibliotecă. Octetii de date pot fi un rând întreg de pixeli sau o setare pentru un registru de control.

Funcția ST7735Begin () din bibliotecă vă arată setul de comenzi de inițializare pe care l-am ales. Este posibil să doriți să modificați comenzile dacă alegeți un afișaj ST7735 diferit (de exemplu, cu mai mulți pixeli) sau doriți o orientare diferită. Sper că codul meu este ușor pentru dvs. să vedeți cum să schimbați dacă aveți nevoie.

Schema arată un buton de control "SW1" și o pedală SW2 ". Butonul de control selectează diferite" Setups "(vezi pasul următor) sau selectează modul Meniu. Pedala de picior este opțională și selectează doar Setups diferite - nu am făcut-o Am montat o pedală de picior. Configurările sunt utile în timpul unei performanțe, atunci când doriți să schimbați rapid tasta sau să schimbați instrumentul.

Pasul 4: sistemul de meniu

Sistemul de meniu
Sistemul de meniu
Sistemul de meniu
Sistemul de meniu

Această schiță Miditheremin3.ino Arduino adaugă un sistem de meniuri la MIDI Theremin și controlează instrumentul complet final.

MIDI Theremin rulează de obicei în modul „Play”. Mâna dreaptă selectează care notă și mâna stângă controlează calitatea notei. Ecranul LCD afișează o tastatură de pian cu nota curentă evidențiată.

Dacă țineți apăsat butonul de control timp de o secundă, programul intră în modul „Meniu”. În modul Meniu, dacă țineți apăsat butonul de control timp de o secundă, programul revine la modul „Redare”.

Meniul are o structură de copac cu elemente majore și subelemente. Elementul de meniu curent este evidențiat. Mutați selecția în sus / în jos prin sonarul din stânga. Submeniurile pentru un element major sunt extinse numai atunci când elementul major este selectat.

După ce ați ales un submeniu, când faceți clic pe buton, valoarea acelui element este evidențiată. Mâna stângă acum mărește sau scade valoarea. Faceți clic din nou pe buton pentru a reveni la selectarea submeniurilor.

În modul discret, arborele meniului este

  • Instrument

    • 0: pian cu coadă
    • Schimbați mâinile: normal
  • Mana dreapta

    Mod: discret

  • Mâna stângă

    • Mod: Vibrato
    • Adâncime maximă: 10
  • Scară

    • Scala: Heptatonic major
    • Octava: 2
    • Cea mai mică notă: 60 C
  • Coardă

    • Acord: triada majoră
    • Inversie: 0
    • Polifonie: 1
  • Tremolo

    • Dimensiune: 20
    • Perioada: 10
  • Vibrato

    • Dimensiune: 20
    • Perioada: 10

Instrumentul poate fi „Pian de coadă”, „Orga bisericii”, „Vioara” etc. Există 127 de instrumente în VS1053, multe dintre acestea sunând identice și multe sunt prostești ca „împușcătura”. Submeniul Swap Hands vă permite să schimbați funcțiile mâinilor stânga și dreapta - poate preferați așa sau poate doriți ca difuzoarele să se confrunte cu publicul.

Mâna dreaptă poate fi „discretă” sau „continuă”. Vedeți mai jos meniul „continuu”.

Mâna stângă poate controla „Volumul”, „Tremolo”, „Vibrato”, „PitchBendUp”, „PitchBendDown”, „Reverb”, „Polyphony” sau „ChordSize”.

„Volumul” este evident. „Tremolo” este o variație rapidă a volumului; mâna stângă controlează dimensiunea variației; perioada este setată de un alt element de meniu. „Vibrato” este o variație rapidă a tonului; mâna stângă controlează dimensiunea variației; perioada este setată de un alt element de meniu. „PitchBendUp” și „PitchBendDown” modifică tonul notei redate; mâna stângă controlează dimensiunea cotului. „Reverb” este destul de neimpresionant în VS1053; mâna stângă controlează dimensiunea reverbului. „Polifonie” controlează câte note sunt redate simultan până la valoarea maximă setată de meniul Polifonie (vezi mai jos). „ChordSize” înseamnă că mâna stângă controlează câte note ale unui acord (vezi mai jos) sunt redate.

În muzică, o „scară” sau „cheie” este subsetul de note pe care le folosiți. De exemplu, dacă te-ai restrânge la scara heptatonică de Do major, ai cânta doar notele albe ale pianului. Dacă alegeți C # Major Pentatonic, atunci veți folosi doar notele negre (de exemplu, pentru melodiile populare scoțiene).

Meniul Scale alege cu ce notă corespunde spațiul din mâna dreaptă și cu câte octave acoperă spațiul din mâna dreaptă. Deci, dacă alegeți 1 octavă de mi major, atunci spațiul din mâna dreaptă este împărțit în 8 coșuri cu E la cel mai mic pas și E cu o octavă mai sus la cel mai înalt ton.

Meniul Scale vă permite să alegeți o mulțime de scale neobișnuite de „muzică non-occidentală”, dar presupune că toate notele sunt de la tastatura uniformă - așa funcționează MIDI, nu puteți specifica cu ușurință frecvența unei note. Deci, dacă ați dori, să zicem, scala arabă de ton de sfert, ați avea probleme.

Submeniul Octaves vă permite să alegeți câte octave ale scalei doriți. Și cea mai mică notă spune de unde începe scala.

În mod normal, când se cântă o notă, sună doar acea notă. Meniul Chord vă permite să redați mai multe note simultan. Un acord al triadei majore înseamnă „redați nota aleasă plus nota cu patru semitonuri mai mare, plus nota cu șapte semitonuri mai mare”.

Submeniul Inversion vă oferă inversiuni de acorduri. Asta înseamnă că mută unele dintre notele acordului la o octavă mai jos. Prima Inversiune mută toate notele „suplimentare” în jos o octavă, a doua Inversiune mută cu mai puține note suplimentare în jos și așa mai departe.

Submeniul Polifonie spune câte note sunt redate simultan; dacă polifonia este 1 atunci când începe o notă, cea anterioară este oprită; dacă polifonia este mai mare, atunci se pot suprapune mai multe note - încercați-o cu organul bisericii.

Meniul Tremolo specifică adâncimea oricărui tremolo și perioada ciclului tremolo. O perioadă de „100” înseamnă un ciclu pe secundă. Dacă mâna stângă controlează tremolo, submeniul Dimensiune este ascuns.

Meniul Vibrato specifică dimensiunea oricărui vibrato și perioada ciclului vibrato. Dacă mâna stângă controlează vibrato, submeniul Dimensiune este ascuns.

Programul vă permite să salvați și să încărcați până la 5 "Setups" diferite. O configurare stochează toate valorile pe care le puteți seta în meniu. Când ieșiți din modul Meniu, setarea curentă este salvată. Configurările sunt salvate în EEPROM.

În modul Redare, făcând clic pe buton trece la următoarea configurare. Dacă țineți apăsat butonul timp de o secundă, apare meniul. Apăsarea pedalei de picior se schimbă și la următoarea configurare; pedala nu selectează niciodată meniul.

În modul continuu, arborele meniului este

  • Instrument

    • 0: pian cu coadă
    • Schimbați mâinile: normal
  • Mana dreapta

    Mod: continuu

  • Gamă

    • Numere semitonuri: 12
    • Nota de mijloc: 60 C
  • Mâna stângă

    • Mod: Tremolo
    • Adâncime maximă: 10
  • Tremolo

    • Dimensiune: 20
    • Perioada: 10
  • Vibrato

    • Dimensiune: 20
    • Perioada 10

Meniul Range alege ce interval de frecvențe specifică mâna dreaptă: numărul de semitonuri acoperite și nota de mijloc.

Mâna stângă poate controla numai „Volumul”, „Tremolo” și „Vibrato”.

Pasul 5: lipirea împreună

Îl lipim împreună
Îl lipim împreună
Îl lipim împreună
Îl lipim împreună
Îl lipim împreună
Îl lipim împreună

Am construit circuitul pe panouri. Nu văd rostul de a obține un PCB realizat pentru o singură dată cu doar 4 rezistențe, dar îmi dau seama că unora nu le place plăcile de bord.

Aspectul meu pentru panouri este prezentat mai sus. Cele patru plăci - Arduino, VS1053, display și stripboard - formează un sandwich. În aspect, conturul Arduino este galben, VS1053 este albastru, afișajul este verde, iar panoul de bord este portocaliu.

Liniile cyan sunt benzile de cupru ale panoului - asigurați-vă că puneți pauze acolo unde este necesar. Liniile roșii sunt legături de pe partea componentă a panoului sau firele care merg în altă parte.

Am folosit pini extra-lungi pentru placa VS1053, deoarece se află deasupra Arduino. Pinii din colțurile îndepărtate ale afișajului și plăcile VS1053 vă ajută să le stabilizați. Găurile de montare ale modulelor sunt placate astfel încât să le puteți lipi. Asigurați-vă că a dvs. nu este conectată la masă - orificiile de montare ale modulelor mele nu sunt.

Dacă aveți un modul VS1053 diferit sau un afișaj diferit, puteți schimba pinii Arduino:

  • D2 la D10 și A0 la A5 pot fi utilizate în orice ordine doriți; actualizați numerele de pini aproape de începutul schiței INO
  • D11, D12, D13 sunt dedicate SPI și nu pot fi realocate
  • D0, D1 sunt dedicate I / O seriale
  • A6, A7 nu pot fi utilizate ca pini digitali

Modulele HC-SR04 sunt la 90 ° una de cealaltă conectate printr-o bucată de bord. Butonul este între ele. Fără îndoială că veți avea propriul design preferat.

Dacă decideți să aveți o pedală, conectați-o printr-o priză.

Pasul 6: Adăugarea unui alimentator

Adăugarea unui alimentator
Adăugarea unui alimentator
Adăugarea unui alimentator
Adăugarea unui alimentator
Adăugarea unui alimentator
Adăugarea unui alimentator

Am măsurat curentul total al Arduino, VS1053 și afișez ca 79mA. Conform fișelor tehnice, Arduino are 20mA, afișajul este de 25mA, VS1053 este de 11mA și HC-SR04 are câte 15mA când „funcționează” - deci 80mA pare aproape corect.

Afișajul durează 25mA și este alimentat de la ieșirea 3V3 a Arduino, care este evaluată la 50mA. Deci, circuitul nu ar trebui să streseze regulatorul 3V3 al Arduino.

Putem alimenta circuitul prin pinul lui Arduino? Nu găsesc răspunsul la asta nicăieri pe web. Nu se află în documentația Arduino. Regulatorul de 5V de la bord va disipa (Vin-5) * 80 mW. Care este disiparea sa maximă? Se pare că nimeni nu știe cu adevărat. Conform fișei sale tehnice, regulatorul NCP1117 dintr-un pachet SOT-223 cu un tampon de cupru minim poate disipa 650mW. Deci, pentru un curent de 80mA,

  • Vin Power
  • 8V 240mW
  • 9 320
  • 10 400
  • 11 480
  • 12 560
  • 13 640
  • 14 720

Pentru a fi în siguranță, presupun că nu ar trebui să depășim 9V pe Vin.

Un alimentator extern de 5V ar fi mult mai sigur, dar am folosit regulatorul Arduino și este bine.

Pentru a alimenta circuitul, am ales un modul care combină un încărcător LI-ion și un alimentator boost. Sunt disponibile pe larg pe eBay sau caută „Li Charger Boost”.

Încărcătorul folosește un cip TC4056 care are un algoritm de curent constant complicat și tensiune constantă. Când scoateți intrarea de alimentare USB, aceasta intră în modul de așteptare cu o baterie descărcată mai mică de 2uA. TC4056 are o intrare pentru detectarea temperaturii, dar nu este disponibilă pe placa modulului (pinul este împământat).

Se presupune că circuitul de boost este de 87-91% eficient în intervalul normal de tensiune al bateriei, cu un curent de ieșire de 50-300mA. (Nu l-am măsurat eu.) Asta e destul de bine.

Cu toate acestea, curentul său „de așteptare” atunci când eliminați sarcina este de 0,3 mA, ceea ce este slab. O celulă de 300mAH ar fi drenată în 6 săptămâni. Poate că ar fi golit până acum tensiunea ar scădea la un nivel dăunător.

Există o singură pistă care conectează bateria la alimentatorul boost. Puteți tăia pista cu ușurință (a se vedea fotografia). Lipiți un fir pe rezistorul mare din partea de sus, astfel încât să puteți lega tăietura printr-un comutator.

Curentul extras este acum de 0,7 uA cu placa pe care am testat-o. Deci, celula va dura 50 de ani - bineînțeles, nu, auto-descărcarea unei celule Li-ion este de aproximativ 3% pe lună. 3% pe lună pentru o celulă de 300 mAH este un curent de 13 uA. Comparați-l cu 300uA pe care îl necesită circuitul de impuls. Cred că merită să opriți circuitul de impuls.

Nu trebuie să porniți sarcina atunci când celula se încarcă. Curentul tras de încărcare va confunda algoritmul de încărcare.

Așadar, aveți nevoie de un comutator de comutare cu 2 poli (de exemplu, un comutator glisant) care este fie în poziția „Pornit”, fie în „Încărcare”.

Puteți ignora soclul USB încorporat și lipiți firele separate la comutator și propria priză USB.

Sau puteți păstra soclul încorporat și tăiați conexiunea dintre soclu și cip. Diagrama de mai sus arată unde se taie.

Conectați ieșirea de 5V a alimentatorului boost la pinul de 5V al Arduino. Oamenii spun „nu face asta - ocolești dioda de protecție a Arduino”. Dar Nano nu are un pin conectat la partea USB a diodei. Conectați-vă doar la pinul de 5V. Care este cel mai rău care s-ar putea întâmpla? Pierzi un Nano care costă sub 3 GBP.

Circuitul PSU trebuie să alimenteze și amplificatorul pentru difuzoare.

Pasul 7: Adăugarea difuzoarelor

Adăugarea difuzoarelor
Adăugarea difuzoarelor

Am vrut ca MIDI Theremin să fie portabil. Ar trebui să includă propriile difuzoare și amplificator.

Ai putea să-ți construiești propriul amplificator sau să cumperi un modul de amplificare, apoi să cumperi difuzoare și să le pui într-o cutie. Dar ce rost are? În tehnologia mea, am o jumătate de duzină de difuzoare alimentate pe care le-am cumpărat de la magazine de caritate și vânzări de portbagaj pentru toate sub 1 GBP fiecare.

Difuzoarele albastru pal au folosit doar 30mA la 5V, dar au un răspuns slab la bas. Radioul negru are o formă frumoasă - îmi pot imagina montarea modulelor HC-SR04 la colțuri și a afișajului pe suprafața superioară. Cele „cu ecran plat” gri sunt alimentate de la o priză USB ideală.

Cu puțină căutare, ar trebui să găsiți difuzoare alimentate care au deja carcase frumoase. Asigurați-vă că acestea vor funcționa la tensiunea sursei de alimentare. Dacă este alimentat de patru celule AA, probabil că va funcționa OK la 5V.

Dar m-am săpat mai departe în zona tehnologică și am găsit o stație de andocare foarte frumoasă pe care am ajuns-o la un stand „totul pentru 0,50 GBP”. Își pierduse încărcătorul și telecomanda IR, dar funcționează bine.

Dacă sunteți hotărât să vă construiți propriile dvs. difuzoare alimentate, iată un instructabil bun. Sau căutați Instrucțiuni pentru PAM8403 sau Amplificator.

Pasul 8: Stație de andocare

Stație de andocare
Stație de andocare
Stație de andocare
Stație de andocare
Stație de andocare
Stație de andocare
Stație de andocare
Stație de andocare

Aceasta este o stație de andocare portabilă Logitech foarte frumoasă. Este puțin probabil să obțineți unul la fel, dar principiile de construcție vor fi similare.

Stația de andocare include propria sa celulă Li-ion reîncărcabilă și alimentator boost. (Dacă al tău nu construiește alimentatorul descris mai sus și sări peste următoarele câteva paragrafe.)

Dacă amplificatorul dvs. are o celulă Li-ion, probabil că are un alimentator de impuls. (Tensiunea unei singure celule Li-ion este incomodă de scăzută, deci trebuie să fie mărită.)

Mai întâi, găsiți conexiunile pentru puterea la amplificator. Alimentatorul va avea condensatori mari de netezire - vezi fotografia PCB-ului nedorit. Măsurați tensiunea la tampoanele de lipit de pe partea inferioară. Tamponul negativ ar trebui să fie plăcuța „la sol” a circuitului. Dacă PCB-ul a fost umplut cu inundații, acesta va fi împământat. Sau solul ar putea fi o pistă groasă care merge în multe locuri de pe tablă.

S-ar putea să existe condensatori mari pe etapa de ieșire a amplificatorului - acesta este modul vechi de a o face. Măsurați tensiunea peste ele în timp ce funcționează. Probabil că va varia în funcție de muzică și ar putea media jumătate din tensiunea condensatorilor de alimentare. Acestea sunt condensatoarele greșite - le doriți pe cele din alimentator.

Este foarte puțin probabil ca placa să aibă atât o putere pozitivă, cât și o putere negativă (amperi de putere stereo mari, dar nu am văzut niciodată una ușoară ca asta). Asigurați-vă că ați ales cu adevărat terenul și puterea pozitivă.

Stația de andocare Logitech pe care o folosesc are circuite digitale complicate, precum și amplificatorul analogic. Dacă al tău este așa, va avea condensatori de netezire pentru 5V sau 3.3V plus poate 9V pentru amplificator. Măsurați tensiunile pe toți condensatorii mari și alegeți cea mai mare tensiune.

Asigurați-vă că tensiunea conexiunii de alimentare pe care ați ales-o depinde de comutatorul de pornire / oprire. (Când opriți comutatorul, tensiunea poate dura ceva timp până când condensatorul se golește.)

Cabluri de lipit la orice ai ales ca sursă de energie. Stația de andocare Logitech produce aproximativ 9V, care se vor conecta frumos la pinul Vin al Arduino.

Boxele sau stația de andocare cu alimentare ar trebui să aibă o mufă de 3,5 mm pentru intrarea audio. Una dintre îmbinările de lipit va fi măcinată - probabil cea mai apropiată de marginea plăcii. Folosiți un ohmmetru pentru a verifica dacă acesta se conectează la ceea ce credeți că este solul. Cu unele intrări audio „scutul” jack-ului nu este conectat direct la masă. Pluteste. Deci, dacă niciunul dintre pinii de prindere nu este măcinat, nu vă faceți griji pentru moment. („Scutul” jack-ului de pe modulul VS1053 este, de asemenea, plutitor.)

Folosiți un contor pentru a verifica dacă știftul „împământat” al mufei este la aceeași tensiune ca și împământarea sursei de alimentare.

Stația de andocare Logitech era ciudată. Dacă am conectat „masa” mufei jack Logitech la „masa” plăcii VS1053 (folosind un cablu audio, a funcționat bine, dar curentul sistemului Theremin a crescut de la 80mA la peste 200mA. Așa că m-am asigurat Nu am conectat aceste două „motive”. Funcționează bine, dar nu am idee ce se întâmpla.

Pasul 9: Crearea unui caz

Crearea unui caz
Crearea unui caz
Crearea unui caz
Crearea unui caz
Crearea unui caz
Crearea unui caz
Crearea unui caz
Crearea unui caz

Ce caz creați va depinde de materialele pe care le aveți la îndemână, de ce vă place să lucrați și de difuzoarele alimentate pe care le-ați ales. Orice faceți trebuie să vă asigurați că sonarele se îndreaptă unul față de celălalt și se ridică la 45 °. Apoi vor fi ecranul de afișare și butonul.

Dacă te-ai uitat la celelalte Instuctabile ale mele, vei ști că sunt un mare fan al tablelor de tablă. Poate fi îndoit în formă, lipit moale și vopsit. Fotografiile arată cum am aranjat lucrurile.

Triunghiul superior este din tablă de tablă îndoit, lipit, umplut, netezit și vopsit. Plăcile sunt lipite la cald în triunghi și au mici bucăți de lemn pentru a acționa ca distanțieri.

"Panoul frontal" este o foaie de polistiren de 1 mm. Distanțierile sunt realizate din mai multe foi de polistiren, iar șuruburile autofiletante mențin panoul în poziție. Suporturile din lemn sunt lipite la cald în cavitatea din fața stației de andocare, iar plăcile sunt înșurubate pe ele cu șuruburi lungi autofiletante.

Cred că aș putea să imprim ceva 3D, dar prefer metodele vechii școli în care pot ajusta lucrurile pe măsură ce merg. A face lucruri este mai degrabă o călătorie de descoperire decât „inginerie”.

Pasul 10: Dezvoltarea viitoare

Dezvoltare viitoare
Dezvoltare viitoare

Cum ați putea dezvolta instrumentul în continuare? Puteți schimba interfața cu utilizatorul. Puteți înlocui butonul cu un senzor de distanță IR, astfel încât să nu trebuie să atingeți deloc instrumentul. Sau poate folosiți mai degrabă un ecran tactil decât un buton și stânga pentru a controla meniul.

Meniul Scale vă permite să alegeți scale „muzică non-occidentală”, dar presupune că toate notele provin de la tastatura uniformă - așa funcționează MIDI Scara tonului sfert arab are note care nu sunt la scară uniformă. Alte scale nu sunt în nici un fel legate de o tastatură uniformă. Poate fi posibil să utilizați pitch-bend pentru a produce astfel de note. Ai avea nevoie de un fel pentru ca meniul să specifice frecvența fiecărei note. Cred că pitch bend se poate aplica tuturor notelor din canal. În prezent, folosesc doar un canal - canalul 0. Deci, dacă este polifonic sau are acorduri, va trebui să redați fiecare notă într-un canal diferit.

Instrumentul ar putea deveni un sintetizator de tobe. Mâna stângă poate determina tonul unui Tom melodic, în timp ce sonarul drept este înlocuit cu un senzor piezo pe care îl loviți pentru a suna toba.

Cele două mâini puteau controla două instrumente diferite.

Mâna stângă ar putea alege un instrument.

Aproximativ la jumătatea acestui proiect, am descoperit controlorul MIDI Altura MkII Theremin de la Zeppelin Design Labs. Arată ca un instrument fin.

Au câteva videoclipuri care merită vizionate:

(Am furat cuvântul „coșuri” de la Altura și ideea că un coș se extinde când îl introduceți pentru a vă ajuta să rămâneți în el.)

Theremin-ul meu MIDI diferă de Altura în câteva moduri. Mine produce propriul său sunet cu sintetizatorul MIDI încorporat, amplificatorul etc.; Altura trimite mesaje către un sintetizator extern. S-ar putea să preferați modul lor de a face acest lucru. Al meu are mai degrabă un ecran TFT decât un afișaj pe 7 segmente - cu siguranță este mai bine, dar s-ar putea crede că un ecran mai mare ar fi o îmbunătățire. Al meu folosește meniuri pentru a seta parametrii, în timp ce al lor folosește butoane. Meniurile sunt necesare, deoarece ale mele au nevoie de multe controale pentru dispozitivul de intrare (sonarele) și sintetizatorul; Altura are nevoie de mai puține controale. Poate că butoanele sunt mai bune în timpul unui spectacol live. Poate că al meu ar trebui să aibă butoane. Un buton pentru alegerea setărilor ar putea fi bun.

Altura are un control "Articulation" care stabilește cât de repede pot fi redate notele. Nu am inclus asta în software-ul meu - poate ar trebui să fie acolo. Altura are un Arpeggiator (step sequencer). Este o idee buna; ale mele au acorduri care nu sunt chiar același lucru.

Deci asta este. Sper că vă place să construiți și să utilizați un MIDI-Theremin. Anunțați-mă dacă găsiți greșeli în descrierea mea sau dacă vă puteți gândi la îmbunătățiri.

Recomandat: