Table des matières:

Sonar MIDI "Theremin": 10 étapes (avec photos)
Sonar MIDI "Theremin": 10 étapes (avec photos)

Vidéo: Sonar MIDI "Theremin": 10 étapes (avec photos)

Vidéo: Sonar MIDI
Vidéo: Easiest Instruments for Beginners (you won't need a teacher!) 2024, Novembre
Anonim
Sonar MIDI
Sonar MIDI

Il s'agit d'un instrument de musique qui utilise deux capteurs de distance sonar pour contrôler la hauteur et la qualité des notes. Ce n'est pas vraiment un Theremin bien sûr, mais "Theremin" est devenu le terme générique pour désigner les instruments joués en agitant les mains.

Il dispose d'un synthétiseur MIDI intégré, d'un amplificateur et de haut-parleurs. Les notes de musique sont produites par une puce MIDI - le VS1053 - qui a 127 voix (c'est-à-dire des instruments prétendument différents). Il a un degré élevé de polyphonie (jusqu'à 64) afin qu'il puisse jouer des notes simples ou des accords.

Votre main droite contrôle la note jouée. En mode "discret", l'espace de droite est divisé en "bacs". Lorsque votre main entre dans un bac, la note pour ce bac commence. Lorsque vous quittez le bac, la note peut s'arrêter (par exemple un orgue) ou disparaître naturellement (par exemple un piano).

En mode "continu", l'espace sur la droite détermine un pas variable en continu - comme le Theremin d'origine. La note commence lorsque votre main entre dans l'espace et s'arrête lorsque vous quittez l'espace.

Votre main gauche contrôle la qualité de la note jouée. Il peut contrôler le volume, le trémolo, le vibrato, le pitch-bend, la réverbération, etc.

Un petit écran LCD dispose d'un menu qui permet de sélectionner l'instrument en cours, la fonction de la main gauche, la gamme (ou "touche") de la main droite, le vibrato, le trémolo, etc. Vous pouvez sauvegarder et charger différents "Setups". " et basculez rapidement de l'un à l'autre pendant une représentation.

L'ensemble de l'instrument MIDI "Theremin" fonctionne de manière autonome avec son propre haut-parleur et sa batterie rechargeable.

Si vous voulez copier ma version, vous aurez besoin d'un Arduino Nano (1,50 £), d'un module VS1053 (4,50 £), d'un écran LCD ST7735 1,44 (3,50 £), de deux modules HC-SR04 (1 £ chacun) et quelques résistances. Vous aurez également besoin de haut-parleurs amplifiés et peut-être d'une pile au lithium et d'un bloc d'alimentation, mais les détails dépendront de la façon dont vous décidez de le construire. J'ai obtenu tous ces extras dans les brocantes et magasins de charité. Plus vous J'aurai besoin de l'attirail d'atelier électronique habituel.

Étape 1: Contrôle du VS1053

Contrôler le VS1053
Contrôler le VS1053
Contrôler le VS1053
Contrôler le VS1053

J'ai choisi le module VS1053 montré dans l'image. (Notez les deux régulateurs SOT223, les deux prises jack et la position du connecteur.) Recherchez sur eBay, Alibaba ou votre fournisseur préféré un module VS1053 qui ressemble à ça. Ils sont disponibles chez Aliexpress ici et ici.

Je l'ai acheté il y a quelques années et il ne semble plus être disponible sur eBay, uniquement sur Alibaba. Une version PCB rouge est désormais disponible sur eBay. Il semble être fonctionnellement identique mais le brochage est différent, vous devrez donc ajuster mes schémas et mes mises en page. Je ne l'ai pas testé. Dans la discussion (ci-dessous), vous pouvez trouver des instructions sur la façon d'ajouter une résistance au PCB rouge pour activer le MIDI "live". Ou vous pouvez envoyer des commandes supplémentaires pendant la configuration pour l'activer.

Le VS1053 est une puce fine mais plutôt compliquée. Je n'utilise que la partie MIDI. Il est possible de contrôler le VS1053 via une interface série mais j'utilise le bus SPI car c'est plus pratique avec un Arduino Nano. Tout octet que vous envoyez sur le bus SPI est traité comme une commande MIDI.

Vous trouverez des listes de commandes MIDI sur le Web. Le VS1053 répond à certains mais pas à tous. Le programme Miditheremin0.exe montre ceux que je connais fonctionnent.

Vous pouvez télécharger la fiche technique du VS1053 sur le Web. C'est un document énorme et difficile à vivre. La section "8.9 Formats MIDI pris en charge" est presque tout ce qu'elle dit sur le MIDI. La section "10.10 MIDI en temps réel" parle de l'utilisation de GPIO0 et GPIO1 pour activer le MIDI, mais la carte que j'ai n'a pas nécessité d'activation spéciale. Vous pouvez également télécharger une liste de messages MIDI (tous ne sont pas pris en charge par le VS1053).

Câblez le module VS1053 à un Arduino Nano comme indiqué et téléchargez le fichier INO sur l'Arduino. J'ai utilisé une planche à pain sans soudure. Je n'ai pas de photo à ce stade, mais vous pouvez voir la maquette avec d'autres composants dans une étape ci-dessous.

Le sketch INO reçoit un octet du PC sur la ligne série et envoie l'octet au VS1053. C'est un programme très simple qui permet de tester le VS1053. Connectez la prise jack de sortie à un casque ou à un haut-parleur d'ordinateur.

Le programme Windows Miditheremin0.exe (téléchargez Step1.zip depuis github) envoie des commandes au VS1053. Cliquez sur le bouton "90 note vel" pour jouer une note. Ou vous pouvez écrire votre propre programme Windows. Ou utilisez l'un des nombreux programmes de terminaux disponibles sur le Web.

Le module VS1053 possède les broches suivantes:

  • le bus SPI a les habituels MISO, MOSI et SCLK
  • si XRST est bas, la puce se réinitialise
  • XDCS ne fait rien en mode SPI, alors associez-le à XCS
  • XCS est Chip Select
  • DREQ vous indique quand la puce est prête pour une nouvelle commande.

XCS doit être réglé à un niveau bas pendant que vous envoyez un octet; puis élevé. De cette façon, vous êtes sûr d'avoir synchronisé le premier bit de chaque octet. La lecture du DREQ vous indique que la puce est prête à recevoir une nouvelle commande.

Une fois que l'Arduino a envoyé un octet, il doit envoyer un octet factice afin de basculer l'horloge et permettre au VS1053 de renvoyer un octet en réponse. La fonction SPItransfer() vous montre comment.

Le module rouge disponible sur eBay comprend un emplacement pour carte SD, il dispose donc de quelques broches supplémentaires. Ignore les.

Maintenant que vous êtes sûr de pouvoir faire fonctionner le VS1053, nous allons le transformer en un instrument de musique.

Étape 2: Utilisation des sonars

Utilisation des sonars
Utilisation des sonars
Utilisation des sonars
Utilisation des sonars

Câblez les modules HC-SR04 à l'Arduino Nano comme indiqué et téléchargez le fichier INO sur l'Arduino.

Notez dans le schéma que DC3 - le condensateur de découplage pour les modules HC-SR04 - doit être connecté à proximité des modules HC-SR04. Ils prennent tout un courant lorsqu'ils transmettent que DC3 aide à fournir.

A ce stade du projet, le PC Windows envoie toujours des commandes au VS1053 mais le VS1053 est également contrôlé par les capteurs sonar HC-SR04 (télécharger Step2.zip depuis github).

Les nouvelles commandes commencent toutes par 0xFF et sont interprétées par le sketch Arduino (plutôt que d'être envoyées directement au VS1053). Les octets non "FF-command" sont envoyés au VS1053.

Il existe des commandes pour changer d'instrument, changer de gamme, ajouter du vibrato et du trémolo, etc. Le programme peut être exécuté en mode "discret" où il y a des notes séparées (comme un piano) ou en mode "continu" où une seule note est courbé de haut en bas (comme un thérémine).

Il fait à peu près tout ce que l'instrument final fera mais il est contrôlé par un PC.

Le capteur sonar droit HC-SR04 sélectionne la hauteur de note jouée. En mode "discret", l'espace de droite est divisé en "bacs". Lorsque votre main entre dans un bac, la note pour ce bac commence. Lorsque vous quittez le bac, la note peut s'arrêter (par exemple un orgue) ou disparaître naturellement (par exemple un piano). Lorsque votre main entre dans un bac, celui-ci s'agrandit légèrement afin que vous n'ayez pas de tremblement à son bord.

La fonction GetSonar() renvoie le temps nécessaire jusqu'au premier écho. Il ignore les échos très rapides (durée < 10) que le HC-SR04 rapporte parfois. Si aucun écho n'a été reçu par maxDuration, il renvoie maxDuration. La durée n'est pas mesurée dans des unités particulières - c'est juste un nombre.

En mode discret, la durée est d'abord filtrée pour supprimer les décrochages occasionnels (lorsqu'aucun écho n'est reçu). La main est supposée être présente uniquement après la réception de 10 échantillons de maxDuration. Ensuite, la durée est filtrée à l'aide d'un filtre médian. Les filtres médians sont efficaces pour éliminer le bruit « impulsif » (c'est-à-dire les pics occasionnels). La durée filtrée permet de sélectionner un bac.

En mode Continu, la durée est à nouveau filtrée pour supprimer les abandons occasionnels. Elle est ensuite lissée à l'aide d'un filtre exponentiel. La durée filtrée permet de régler la fréquence de la note à l'aide du "pitch bend".

Étape 3: Ajout d'un écran

Ajout d'un affichage
Ajout d'un affichage
Ajout d'un affichage
Ajout d'un affichage
Ajout d'un affichage
Ajout d'un affichage

L'affichage est un écran LCD TFT couleur de 1,44 avec un contrôleur ST7735, 128x128 pixels. Il existe de nombreux écrans disponibles sur eBay, par exemple, vous préférerez peut-être développer votre instrument avec un écran tactile plus grand. Je n'avais pas utilisé le ST7735 contrôleur et je voulais l'essayer.

J'ai eu le mien chez ce fournisseur. Le même module est largement vendu sur eBay - achetez-en un qui ressemble à la photo.

L'écran LCD a les broches suivantes:

  • GND masse
  • VCC 3.3V
  • SCL SPI bus SCLK
  • SDA SPI bus MOSI d'Arduino
  • RES réinitialiser
  • Données/commande CC
  • Sélection de puce CS
  • BL rétro-éclairage

Le module fonctionne sur 3,3V, vous ne devez donc pas le connecter directement à votre Arduino 5V. J'ai utilisé des résistances de 1k pour faire chuter la tension. Ce n'est pas une bonne pratique (en général, il faut utiliser un diviseur de potentiel ou une puce de chute de tension) mais fonctionne parfaitement dans ce circuit. J'étais paresseux.

L'écran est alimenté par le 3,3 V fourni par l'Arduino. Le régulateur Arduino semble assez content.

Adafruit publie très gentiment une bibliothèque ST7735 et plusieurs autres bibliothèques sont disponibles sur Github et ailleurs. J'en ai essayé quelques-uns et je n'ai aimé aucun d'entre eux. Certains ne fonctionnaient tout simplement pas et tous étaient énormes. Vous écrivez un croquis Arduino qui dessine une ligne et du texte et vous trouvez votre mémoire pleine à 75 %. J'ai donc écrit ma propre bibliothèque.

La bibliothèque SimpleST7735 peut être téléchargée (télécharger Step3.zip depuis github).

Il dispose d'un ensemble standard de commandes de dessin très similaires à toutes ces bibliothèques.

Certaines des bibliothèques "rapides" que vous pouvez télécharger utilisent des boucles de synchronisation spéciales et sont perturbées lorsque d'autres périphériques, peut-être plus lents, sont utilisés sur le même bus. SimpleST7735 est écrit en C plutôt qu'en assembleur, il n'est donc pas aussi rapide qu'il pourrait l'être, mais il est beaucoup plus portable et partage poliment le bus SPI avec d'autres appareils. Un programme Windows peut être téléchargé qui vous permet de créer vos propres polices et icônes.

Vous pouvez télécharger la fiche technique ST7735 sur le Web. Tu lui parles par

  • mettre CS bas
  • régler DC bas
  • envoyer un octet de commande
  • mettre DC haut
  • envoyer zéro ou plusieurs octets de données
  • mettre CS haut

Vous pouvez voir comment je le fais dans la fonction spiSend_TFT_CW() de la bibliothèque. Les octets de données peuvent être une rangée entière de pixels ou un paramètre pour un registre de contrôle.

La fonction ST7735Begin() de la bibliothèque vous montre le jeu de commandes d'initialisation que j'ai choisi. Vous voudrez peut-être modifier les commandes si vous choisissez un autre écran ST7735 (par exemple avec plus de pixels) ou si vous souhaitez une orientation différente. J'espère que mon code est facile pour vous de voir comment changer si vous en avez besoin.

Le schéma montre un bouton de commande "SW1" et une pédale SW2". Le bouton de commande sélectionne différentes "configurations" (voir étape suivante) ou sélectionne le mode Menu. La pédale est facultative et ne sélectionne que différentes configurations - je ne l'ai pas fait J'ai monté moi-même une pédale Les réglages sont utiles lors d'une performance lorsque l'on souhaite rapidement changer de tonalité ou changer d'instrument.

Étape 4: Le système de menus

Le système de menus
Le système de menus
Le système de menus
Le système de menus

Cette esquisse Arduino Miditheremin3.ino ajoute un système de menu au Theremin MIDI et contrôle l'instrument complet final.

Le Theremin MIDI fonctionne généralement en mode "Play". Votre main droite sélectionne la note et votre main gauche contrôle la qualité de la note. L'écran LCD affiche un clavier de piano avec la note actuelle en surbrillance.

Si vous maintenez le bouton de commande enfoncé pendant une seconde, le programme passe en mode "Menu". En mode Menu, si vous maintenez le bouton de commande enfoncé pendant une seconde, le programme revient en mode "Lecture".

Le menu a une structure arborescente avec des éléments principaux et des sous-éléments. L'élément de menu actuel est mis en surbrillance. Vous déplacez la sélection vers le haut/bas via le sondeur de gauche. Les sous-menus d'un élément majeur ne sont développés que lorsque l'élément majeur est sélectionné.

Après avoir choisi un sous-menu, lorsque vous cliquez sur le bouton, la valeur de cet élément est mise en évidence. La main gauche incrémente ou décrémente maintenant la valeur. Cliquez à nouveau sur le bouton pour revenir à la sélection des sous-menus.

En mode discret, l'arborescence des menus est

  • Instrument

    • 0: Piano à queue
    • Échange de main: normal
  • Main droite

    Mode: discret

  • Main gauche

    • Mode: Vibrato
    • Profondeur maximale: 10
  • Escalader

    • Gamme: majeure heptatonique
    • Octave: 2
    • Note la plus basse: 60°C
  • Accord

    • Accord: Triade majeure
    • Inversion: 0
    • Polyphonie: 1
  • Trémolo

    • Taille: 20
    • Période: 10
  • Vibromasseur

    • Taille: 20
    • Période: 10

L'instrument peut être "Grand Piano", "Church Organ", "Violin", etc. Il y a 127 instruments dans le VS1053 dont beaucoup sonnent identiques et beaucoup sont stupides comme "gunshot". Le sous-menu Swap Hands vous permet d'échanger les fonctions des mains gauche et droite - peut-être préférez-vous cela ou souhaitez-vous que les haut-parleurs soient face au public.

La main droite peut être "discrète" ou "continue". Voir ci-dessous pour le menu "continu".

La main gauche peut contrôler "Volume", "Tremolo", "Vibrato", "PitchBendUp", "PitchBendDown", "Reverb", "Polyphony" ou "ChordSize".

"Volume" est évident. "Tremolo" est une variation rapide de volume; la main gauche contrôle la taille de la variation; la période est définie par un élément de menu différent. "Vibrato" est une variation rapide de hauteur; la main gauche contrôle la taille de la variation; la période est définie par un élément de menu différent. "PitchBendUp" et "PitchBendDown" modifient la hauteur de la note jouée; la main gauche contrôle la taille du virage. "Reverb" est plutôt peu impressionnant dans le VS1053; la main gauche contrôle la taille de la réverbération. "Polyphonie" contrôle le nombre de notes jouées à la fois jusqu'au maximum défini par le menu Polyphonie (voir ci-dessous). "ChordSize" signifie que la main gauche contrôle le nombre de notes d'un accord (voir ci-dessous) qui sont jouées.

En musique, une « gamme » ou une « clé » est le sous-ensemble de notes que vous utilisez. Par exemple, si vous vous limitiez à la gamme heptatonique de do majeur, vous ne joueriez que les notes blanches du piano. Si vous choisissez C# Major Pentatonic, vous utiliserez simplement les notes noires (par exemple pour les airs folkloriques écossais).

Le menu Gamme choisit les notes auxquelles correspond l'espace de la main droite et le nombre d'octaves que l'espace de la main droite couvre. Donc, si vous choisissez 1 octave de mi majeur, l'espace de droite est divisé en 8 cases avec mi à la hauteur la plus basse et mi une octave au-dessus à la hauteur la plus élevée.

Le menu Gamme vous permet de choisir de nombreuses gammes inhabituelles de "musique non occidentale", mais il suppose que toutes les notes proviennent du clavier d'humeur égale - c'est ainsi que fonctionne le MIDI, vous ne pouvez pas facilement spécifier la fréquence d'une note. Donc, si vous vouliez, disons, l'échelle de quart de ton arabe, vous auriez des ennuis.

Le sous-menu Octaves vous permet de choisir le nombre d'octaves de la gamme que vous souhaitez. Et la note la plus basse indique où commence la gamme.

Normalement, lorsqu'une note est jouée, seule cette note est jouée. Le menu Accord vous permet de jouer plusieurs notes à la fois. Un accord de triade majeure signifie "jouer la note choisie plus la note quatre demi-tons plus haut, plus la note sept demi-tons plus haut".

Le sous-menu Inversion vous propose des inversions d'accords. Cela signifie qu'il déplace certaines des notes de l'accord à une octave en dessous. La première inversion déplace toutes les notes "supplémentaires" d'une octave vers le bas, la seconde inversion déplace une note supplémentaire de moins vers le bas, et ainsi de suite.

Le sous-menu Polyphonie indique combien de notes sont jouées à la fois; si la polyphonie est 1 alors quand une note commence, la précédente est arrêtée; si la polyphonie est plus grande, plusieurs notes peuvent se chevaucher - essayez-le avec l'orgue d'église.

Le menu Tremolo spécifie la profondeur de tout trémolo et la période du cycle de trémolo. Une période de "100" signifie un cycle par seconde. Si la main gauche contrôle le trémolo, le sous-menu Taille est masqué.

Le menu Vibrato spécifie la taille de tout vibrato et la période du cycle de vibrato. Si la main gauche contrôle le vibrato, le sous-menu Taille est masqué.

Le programme vous permet d'enregistrer et de charger jusqu'à 5 "Setups" différents. Un Setup stocke toutes les valeurs que vous pouvez définir dans le menu. Lorsque vous quittez le mode Menu, la configuration actuelle est enregistrée. Les configurations sont enregistrées dans l'EEPROM.

En mode Play, un clic sur le bouton passe à la configuration suivante. Si vous maintenez le bouton enfoncé pendant une seconde, le menu apparaît. En appuyant sur la pédale, vous passez également à la configuration suivante; la pédale ne sélectionne jamais le menu.

En mode Continu, l'arborescence du menu est

  • Instrument

    • 0: Piano à queue
    • Échange de main: normal
  • Main droite

    Mode: continu

  • Varier

    • Nombre de demi-tons: 12
    • Note de coeur: 60°C
  • Main gauche

    • Mode: Trémolo
    • Profondeur maximale: 10
  • Trémolo

    • Taille: 20
    • Période: 10
  • Vibromasseur

    • Taille: 20
    • Période 10

Le menu Gamme choisit quelle gamme de fréquences la main droite spécifie: le nombre de demi-tons couverts et la note moyenne.

La main gauche ne peut contrôler que "Volume", "Tremolo" et "Vibrato".

Étape 5: le souder ensemble

Souder ensemble
Souder ensemble
Souder ensemble
Souder ensemble
Souder ensemble
Souder ensemble

J'ai construit le circuit sur stripboard. Je ne vois pas l'intérêt de faire un PCB pour un seul avec seulement 4 résistances, mais je me rends compte que certaines personnes n'aiment pas le stripboard.

Ma disposition de stripboard est montrée ci-dessus. Les quatre cartes - Arduino, VS1053, écran et stripboard - forment un sandwich. Dans la mise en page, le contour de l'Arduino est jaune, le VS1053 est bleu, l'écran est vert et le stripboard est orange.

Les lignes cyan sont les bandes de cuivre du stripboard - assurez-vous de mettre des pauses là où cela est nécessaire. Les lignes rouges sont des liens sur le côté composant du stripboard ou des fils allant ailleurs.

J'ai utilisé des broches extra-longues pour la carte VS1053 car elle se trouve au-dessus de l'Arduino. Les broches aux coins les plus éloignés de l'écran et des cartes VS1053 aident à les stabiliser. Les trous de montage des modules sont plaqués afin que vous puissiez les souder. Assurez-vous que les vôtres ne sont pas connectés à la terre - les trous de montage de mes modules ne le sont pas.

Si vous avez un module VS1053 différent ou un écran différent, vous pouvez changer les broches Arduino:

  • D2 à D10 et A0 à A5 peuvent être utilisés dans n'importe quel ordre; mettre à jour les numéros de broche près du début du croquis de l'INO
  • D11, D12, D13 sont dédiés à SPI et ne peuvent pas être réaffectés
  • D0, D1 sont dédiés aux E/S série
  • A6, A7 ne peuvent pas être utilisés comme broches numériques

Les modules HC-SR04 sont à 90° les uns des autres reliés par un morceau de stripboard. Le bouton poussoir est entre eux. Nul doute que vous aurez votre propre design préféré.

Si vous décidez d'avoir une pédale, connectez-la via une prise jack.

Étape 6: Ajout d'un bloc d'alimentation

Ajout d'un bloc d'alimentation
Ajout d'un bloc d'alimentation
Ajout d'un bloc d'alimentation
Ajout d'un bloc d'alimentation
Ajout d'un bloc d'alimentation
Ajout d'un bloc d'alimentation

J'ai mesuré le courant total de l'Arduino, VS1053 et l'ai affiché comme 79mA. Selon les fiches techniques, l'Arduino est de 20mA, l'affichage est de 25mA, le VS1053 est de 11mA et le HC-SR04 est de 15mA chacun lorsqu'il "fonctionne" - donc 80mA semble à peu près correct.

L'affichage prend 25mA et est alimenté par la sortie 3V3 de l'Arduino qui est conçue pour donner 50mA. Ainsi, le circuit ne devrait pas stresser le régulateur 3V3 de l'Arduino.

Pouvons-nous alimenter le circuit via la broche Vin de l'Arduino? Je ne trouve la réponse nulle part sur le web. Ce n'est pas dans la documentation Arduino. Le régulateur 5V embarqué dissipera (Vin-5)*80 mW. Quelle est sa dissipation maximale ? Il semble que personne ne le sache vraiment. Selon sa fiche technique, le régulateur NCP1117 dans un boîtier SOT-223 avec un tampon en cuivre minimum peut dissiper 650mW. Donc pour un courant de 80mA,

  • Puissance du vin
  • 8V 240mW
  • 9 320
  • 10 400
  • 11 480
  • 12 560
  • 13 640
  • 14 720

Pour être sûr, je suppose que nous ne devrions pas dépasser 9V sur Vin.

Un bloc d'alimentation externe 5V serait beaucoup plus sûr mais j'ai utilisé le régulateur de l'Arduino et ça va.

Pour alimenter le circuit, j'ai choisi un module qui combine un chargeur LI-ion et un bloc d'alimentation boost. Ils sont largement disponibles sur eBay ou recherchez "Li Charger Boost".

Le chargeur utilise une puce TC4056 qui a un algorithme compliqué de courant constant et de tension constante. Lorsque vous retirez l'entrée d'alimentation USB, elle passe en mode veille avec une décharge de batterie inférieure à 2 uA. Le TC4056 a une entrée pour la détection de température mais elle n'est pas disponible sur la carte du module (la broche est mise à la terre).

Le circuit de suralimentation aurait une efficacité de 87 à 91 % sur la plage de tension normale de la batterie avec un courant de sortie de 50 à 300 mA. (Je ne l'ai pas mesuré moi-même.) C'est plutôt bien.

Cependant, son courant de "veille" lorsque vous retirez la charge est de 0,3 mA, ce qui est médiocre. Une cellule de 300mAH serait drainée en 6 semaines. Peut-être qu'il serait épuisé jusqu'à ce que sa tension chute à un niveau préjudiciable.

Il y a une seule piste qui relie la batterie au bloc d'alimentation boost. Vous pouvez couper la piste facilement (voir photo). Soudez un fil sur la grande résistance en haut afin de pouvoir ponter la coupure via un interrupteur.

Le courant consommé est maintenant de 0,7 uA avec la carte que j'ai testée. Ainsi, la cellule durera 50 ans - eh bien, bien sûr que non, l'autodécharge d'une cellule Li-ion est d'environ 3% par mois. 3% par mois pour une cellule de 300mAH soit un courant de 13uA. Comparez cela avec les 300uA que prend le circuit de suralimentation. Je pense que cela vaut la peine de couper le circuit de suralimentation.

Vous ne devez pas allumer la charge lorsque la cellule est en charge. Le courant tiré par la charge perturbera l'algorithme de charge.

Vous avez donc besoin d'un inverseur à 2 pôles (par exemple un interrupteur à glissière) qui est soit en position « On » soit en position « Charge ».

Vous pouvez ignorer la prise USB intégrée et souder des fils séparés au commutateur et à votre propre prise USB.

Ou vous pouvez garder le socket intégré et couper la connexion entre le socket et la puce. Le schéma ci-dessus montre où couper.

Connectez la sortie 5V du bloc d'alimentation boost à la broche 5V de l'Arduino. Les gens disent "ne faites pas ça - vous contournez la diode de protection de l'Arduino". Mais le Nano n'a pas de broche connectée au côté USB de la diode. Connectez-vous simplement à la broche 5V. Quel est le pire qui puisse arriver ? Vous perdez un Nano qui coûte moins de 3 £.

Le circuit PSU doit également alimenter l'amplificateur pour les haut-parleurs.

Étape 7: ajouter des haut-parleurs

Ajout de haut-parleurs
Ajout de haut-parleurs

Je voulais que le Theremin MIDI soit portable. Il devrait inclure ses propres haut-parleurs et amplificateur.

Vous pouvez construire votre propre amplificateur ou acheter un module amplificateur, puis acheter des haut-parleurs et les mettre dans un étui. Mais à quoi ça sert ? Dans mon milieu technologique, j'ai une demi-douzaine d'enceintes amplifiées que j'ai achetées dans des magasins de charité et des vide-greniers, le tout pour moins de 1 £ chacun.

Les haut-parleurs bleu pâle n'utilisaient que 30 mA à 5 V mais ont une mauvaise réponse dans les basses. La radio noire a une belle forme - je peux imaginer installer les modules HC-SR04 dans les coins et l'écran sur la surface supérieure. Les "écrans plats" gris sont alimentés par une prise USB ce qui est idéal.

Avec un peu de recherche, vous devriez trouver des enceintes amplifiées qui ont déjà un joli boîtier. Assurez-vous qu'ils fonctionneront à la tension de votre alimentation. S'il est alimenté par quatre piles AA, il fonctionnera probablement correctement à 5V.

Mais j'ai creusé plus loin dans le milieu technologique et j'ai trouvé une très belle station d'accueil que j'ai obtenue dans un stand "tout pour 0,50 £". Il avait perdu son chargeur et sa télécommande IR mais fonctionne bien.

Si vous êtes déterminé à construire vos propres haut-parleurs amplifiés, voici un bon Instructable. Ou recherchez Instructables pour PAM8403 ou amplificateur.

Étape 8: Station d'accueil

Station d'accueil
Station d'accueil
Station d'accueil
Station d'accueil
Station d'accueil
Station d'accueil
Station d'accueil
Station d'accueil

Il s'agit d'une très belle station d'accueil portable Logitech. Il est peu probable que vous en obteniez le même, mais les principes de construction seront les mêmes.

La station d'accueil comprend sa propre cellule Li-ion rechargeable et son bloc d'alimentation boost. (Si ce n'est pas le cas, créez le bloc d'alimentation décrit ci-dessus et sautez les prochains paragraphes.)

Si votre ampli a une cellule Li-ion, il a probablement un bloc d'alimentation boost. (La tension d'une seule cellule Li-ion est trop basse et doit donc être augmentée.)

Tout d'abord, trouvez les connexions pour l'alimentation de l'amplificateur. Le bloc d'alimentation aura de gros condensateurs de lissage - voir la photo du PCB indésirable. Mesurez la tension au niveau de leurs plots de soudure sur la face inférieure. Le plot négatif doit être le plot "terre" du circuit. Si le PCB a été inondé, il sera broyé. Ou le sol peut être une piste épaisse qui va à de nombreux endroits sur la planche.

Il peut y avoir de gros condensateurs sur l'étage de sortie de l'ampli - c'est la façon à l'ancienne de le faire. Mesurez la tension à leurs bornes pendant qu'il fonctionne. Elle variera probablement en fonction de la musique et pourrait faire en moyenne la moitié de la tension des condensateurs d'alimentation. Ce ne sont pas les bons condensateurs - vous voulez ceux du bloc d'alimentation.

Il est très peu probable que la carte ait à la fois une puissance positive et négative (les gros amplis de puissance stéréo le font mais je n'en ai jamais vu un léger comme ça). Assurez-vous que vous avez vraiment choisi la terre et la puissance positive.

La station d'accueil Logitech que j'utilise a des circuits numériques compliqués ainsi que l'ampli analogique. Si le vôtre est comme ça, il aura des condensateurs de lissage pour 5V ou 3,3V plus peut-être 9V pour l'ampli. Mesurez les tensions sur tous les gros condensateurs et choisissez la plus grande tension.

Assurez-vous que la tension de la connexion électrique que vous avez choisie dépend de l'interrupteur marche/arrêt. (Lorsque vous éteignez l'interrupteur, la tension peut mettre un certain temps à chuter lorsque le condensateur se vide.)

Soudez les fils à ce que vous avez choisi comme source d'alimentation. La station d'accueil Logitech produit environ 9V qui se connectera bien à la broche Vin de l'Arduino.

Vos haut-parleurs amplifiés ou votre station d'accueil doivent avoir une prise jack 3,5 mm pour l'entrée audio. L'un des joints de soudure sera rectifié - probablement celui le plus proche du bord de la planche. Utilisez un ohmmètre pour vérifier qu'il se connecte à ce que vous pensez être la terre. Avec certaines entrées audio, le "blindage" de la prise n'est pas connecté directement à la terre. C'est flottant. Donc, si aucune des broches jack n'est mise à la terre, ne vous inquiétez pas pour le moment. (Le "blindage" de la prise sur le module VS1053 est également flottant.)

Utilisez un multimètre pour vérifier que la broche "terre" du jack est à la même tension que la terre de l'alimentation.

La station d'accueil Logitech était bizarre. Si je connectais la "masse" de la prise jack Logitech à la "masse" de la carte VS1053 (en utilisant un câble audio, cela fonctionnait bien mais le courant de mon système Theremin est passé de 80mA à plus de 200mA. Je me suis donc assuré Je n'ai pas connecté ces deux "terres", ça marche bien mais je n'ai aucune idée de ce qui se passait.

Étape 9: Faire un cas

Faire un cas
Faire un cas
Faire un cas
Faire un cas
Faire un cas
Faire un cas
Faire un cas
Faire un cas

Le cas que vous fabriquerez dépendra des matériaux dont vous disposez, de ce avec quoi vous aimez travailler et des haut-parleurs amplifiés que vous avez choisis. Quoi que vous fassiez, assurez-vous que les sonars pointent loin l'un de l'autre et vers le haut à 45°. Ensuite, il y aura l'écran d'affichage et le bouton poussoir.

Si vous avez regardé mes autres Instuctables, vous saurez que je suis un grand fan de fer blanc. Il peut être plié, soudé et peint. Les photos montrent comment j'ai arrangé les choses.

Le triangle supérieur est en fer blanc plié, soudé, rempli, lissé et peint. Les circuits imprimés sont collés à chaud dans le triangle et ont de petits éclats de bois pour servir d'entretoises.

Le "panneau avant" est une feuille de polystyrène de 1 mm. Les entretoises sont fabriquées à partir de plus de feuilles de polystyrène et des vis autotaraudeuses maintiennent le panneau en place. Des supports en bois sont collés à chaud dans la cavité à l'avant de la station d'accueil et les circuits imprimés y sont vissés avec de longues vis autotaraudeuses.

Je suppose que je pourrais faire imprimer quelque chose en 3D, mais je préfère les méthodes à l'ancienne où je peux ajuster les choses au fur et à mesure. Faire des choses est un voyage de découverte plutôt qu'une "ingénierie".

Étape 10: Développement futur

Développement futur
Développement futur

Comment pourriez-vous développer davantage l'instrument ? Vous pouvez modifier l'interface utilisateur. Vous pouvez remplacer le bouton par un capteur de distance IR afin de ne pas avoir à toucher du tout l'instrument. Ou peut-être utiliser un écran tactile plutôt qu'un bouton et la main gauche pour contrôler le menu.

Le menu Gamme vous permet de choisir des gammes « non-occidentales » mais il suppose que toutes les notes proviennent du clavier de tempérament égal - c'est ainsi que fonctionne le MIDI. Les autres gammes ne sont en aucun cas liées à un clavier d'humeur égale. Il peut être possible d'utiliser le pitch-bend pour produire de telles notes. Vous auriez besoin d'un moyen pour que le menu spécifie la fréquence de chaque note. Je pense que le pitch bend peut s'appliquer à toutes les notes du canal. Je n'utilise actuellement qu'un seul canal - le canal 0. Donc, si c'est polyphonique ou qu'il y a des accords, vous devrez jouer chaque note dans un canal différent.

L'instrument pourrait devenir un synthétiseur de batterie. La main gauche pourrait déterminer la hauteur d'un tom mélodique tandis que le sonar droit est remplacé par un capteur piézo que vous frappez pour faire sonner le tambour.

Les deux mains pouvaient contrôler deux instruments différents.

La main gauche pouvait choisir un instrument.

À mi-chemin de ce projet, j'ai découvert le contrôleur MIDI Theremin Altura MkII de Zeppelin Design Labs. On dirait un bel instrument.

Ils ont quelques vidéos qui valent vraiment la peine d'être visionnées:

(J'ai volé le mot "poubelles" à Altura et l'idée qu'une poubelle s'agrandit lorsque vous y entrez pour vous aider à y rester.)

Mon MIDI Theremin diffère de l'Altura de plusieurs manières. Le mien produit son propre son avec son synthétiseur MIDI intégré, son ampli, etc.; l'Altura envoie des messages à un synthé externe. Vous pourriez bien préférer leur façon de le faire. Le mien a un écran TFT plutôt qu'un écran à 7 segments - c'est certainement mieux, mais vous pourriez penser qu'un écran plus grand serait une amélioration. Le mien utilise des menus pour configurer les paramètres tandis que le leur utilise des boutons. Les menus sont nécessaires car le mien a besoin de beaucoup de contrôles pour le périphérique d'entrée (les sonars) et le synthé; l'Altura a besoin de moins de commandes. Peut-être que les boutons sont meilleurs lors d'une performance live. Peut-être que le mien devrait avoir des boutons. Un bouton pour choisir les configurations pourrait être bon.

L'Altura dispose d'un contrôle "Articulation" qui définit la vitesse à laquelle les notes peuvent être jouées. Je n'ai pas inclus cela dans mon logiciel - peut-être que cela devrait être là. L'Altura possède un arpégiateur (séquenceur pas à pas). C'est une bonne idée; le mien a des accords qui ne sont pas tout à fait la même chose.

Alors c'est tout. J'espère que vous apprécierez la construction et l'utilisation d'un MIDI-Theremin. Faites-moi savoir si vous trouvez des erreurs dans ma description ou si vous pouvez penser à des améliorations.

Conseillé: