Table des matières:

Construisons un synthétiseur MIDI USB SN76489 avec Arduino Nano : 7 étapes
Construisons un synthétiseur MIDI USB SN76489 avec Arduino Nano : 7 étapes

Vidéo: Construisons un synthétiseur MIDI USB SN76489 avec Arduino Nano : 7 étapes

Vidéo: Construisons un synthétiseur MIDI USB SN76489 avec Arduino Nano : 7 étapes
Vidéo: DIY Synthé Arduino, Fx & Sounds Box, Homemade #electronic 2024, Juillet
Anonim
Image
Image
Construisons un synthétiseur MIDI USB SN76489 avec Arduino Nano
Construisons un synthétiseur MIDI USB SN76489 avec Arduino Nano
Construisons un synthétiseur MIDI USB SN76489 avec Arduino Nano
Construisons un synthétiseur MIDI USB SN76489 avec Arduino Nano

Vous avez toujours voulu construire votre propre synthétiseur basé sur de vieux morceaux des années 80 ? Jouer des airs polyphoniques simples qui ressemblent à ces vieux jeux vidéo Sega Master System et Megadrive ?

J'ai donc commandé quelques puces SN76489 sur ebay et une interface hôte midi et j'ai essayé. Eh bien, ce n'était pas une promenade dans le parc pour moi, mais j'ai apprécié chaque instant.

J'ai d'abord appris à interfacer directement le SN76489 et à faire du bruit avec. Il y avait des éléments déroutants à cela, mais, avec l'aide du blog Oddbloke Geek et de quelques autres exemples, ainsi que le document de spécification de la puce, j'ai pu développer une bibliothèque arduino simple.

Ensuite, j'ai dû apprendre à interfacer un clavier midi avec un mini-blindage hôte USB. Ce n'était pas si difficile, car il existe de la documentation disponible et de bonnes bibliothèques existent avec des exemples clairs.

Une fois que j'ai compris comment contrôler la puce et comment interfacer mon clavier midi USB, il ne me restait plus qu'à écrire un code qui encapsulerait tout cela et me permettrait d'utiliser le clavier pour contrôler la puce.

En cours de route, j'ai appris que les sons avec une fréquence inférieure à celles que j'ai essayé de générer pour les notes midi 0x2f ne sonnaient pas correctement, j'ai donc décidé de l'utiliser pour permettre d'envoyer du bruit au générateur de bruit pour toutes les notes midi entre 0x28 et 0x2f et permet également de jouer des notes avec une touche arabe orientale pour tout ce qui est inférieur à midi 0x28.

Avec le recul, c'était très amusant et très intéressant à construire.

J'espère que vous le trouverez aussi amusant et intéressant que moi et que si vous en construisez un vous-même, vous auriez la gentillesse de partager quelques photos de celui-ci.

Si vous avez aimé ce projet, veuillez voter pour lui ci-dessous pour aider à gagner le concours auquel il participe

Fournitures

J'ai ajouté des liens vers du matériel que vous pouvez acheter pour ce projet, cependant, vous pouvez trouver de nombreux articles disponibles que vous pouvez récupérer sur de vieux appareils électroniques.

Ces liens sont des liens d'affiliation, donc, si vous achetez après avoir cliqué dessus, je reçois une petite partie (pas de fortune) et vous obtenez un produit qui convient à ce projet. Il n'y a pas de frais ni de frais supplémentaires pour les utiliser, cependant, vous pouvez trouver des articles similaires qui peuvent les remplacer assez facilement.

ebay.us/svA4z4 | 1 x tableau de performance

ebay.us/ZyEFNp | 1 x arduino nano

ebay.us/t1zy0v | 1 x mini-blindage USB

ebay.to/2QrHl1C | 1 x puce sonore SN76489

ebay.us/aaaj8p | 1 x registre à décalage 595

ebay.us/DSvTHO | 1 x oscillateur à cristal de 4MHz

ebay.us/XQeM0Q | 1 régulateur de tension 5V 7805

ebay.us/6R6Fpf | 1 x dissipateur thermique pour le régulateur de tension

ebay.us/xkLbn4 | 3 condensateurs 10uF

ebay.us/pnm2BH | fils

ebay.us/PMbUfY | 1 x LED rouge pour l'alimentation

ebay.us/zokHtc | 1 résistance de 220 ohms pour limiter le flux de courant LED

ebay.us/qjbesJ | 1 x connecteur d'alimentation pour alimentation 12v

ebay.us/cS0wwv | 1 x interrupteur marche/arrêt

une boîte adaptée (j'ai construit la mienne à partir d'un vieux tiroir qui reposait dans mon rangement depuis des années)

Étape 1: Préparation du mini-blindage hôte USB pour piloter un périphérique Midi 5V

Préparation du mini-blindage hôte USB pour piloter un périphérique Midi 5 V
Préparation du mini-blindage hôte USB pour piloter un périphérique Midi 5 V

Étant donné que le mini-blindage hôte USB fonctionne sur 3,3 V et que les claviers midi USB que j'utilise nécessitent 5 V, il est nécessaire d'ajuster la tension de sortie du blindage en coupant la ligne 3,3 V qui va à la sortie USB Vcc, nous pouvons donc le connecter plus tard à 5V.

Il existe de nombreux tutoriels sur la façon de le faire et cela s'est avéré assez simple:

Il suffit de couper la ligne entre la résistance 2k2 et la ligne Vcc (voir image ci-jointe). J'ai utilisé un tournevis pour gratter cette ligne et testé si cela fonctionnait avec un compteur de continuité.

Étape 2: connectez le mini-blindage USB à votre Arduino Nano

Connectez le mini Shield USB avec votre Arduino Nano
Connectez le mini Shield USB avec votre Arduino Nano
Connectez le mini Shield USB avec votre Arduino Nano
Connectez le mini Shield USB avec votre Arduino Nano

Heureusement, il y a beaucoup d'informations sur la façon de le faire, donc, en recherchant "Arduino Nano et mini bouclier hôte USB", j'ai atterri sur ce fil

Il décrivait comment connecter le shield USB mini v2.0 et après l'avoir suivi, je suis allé directement de l'avant pour tester quelques exemples USB midi.

Câblage:

Bouclier hôte Arduino

10--------------5

11--------------6

12--------------7

13--------------8

2----------------2

5V ---------------1

3.3V ------------9

GND -----------3

RST ------------4

Dans ce fil, il a également été mentionné qu'ils ont coupé le fil 3,3 V afin que l'USB puisse obtenir 5 V de VBUS.

Cette description et les images ci-jointes proviennent de ce fil.

BTW, il y a une erreur sur l'impression sur cette carte, donc c'était un peu déroutant, cependant, vous pouvez voir mes commentaires à ce sujet (tyrkelko) et d'où je l'ai appris.

Étape 3: Chips n'importe qui ? Ajout de SN76489 avec 4MHz Osc. et 595 registre à décalage

Chips n'importe qui ? Ajout de SN76489 avec 4MHz Osc. et 595 registre à décalage
Chips n'importe qui ? Ajout de SN76489 avec 4MHz Osc. et 595 registre à décalage

Il était maintenant temps d'ajouter la puce qui produit ce son incroyable.

J'ai déjà développé une bibliothèque pour interfacer arduino avec cette puce et n'avais qu'à suivre mes instructions.

La bibliothèque est publiée dans github sous GPLv3 (ma première version open source).

github.com/tyrkelko/sn76489

La connexion de 76489 et 595 était comme dans l'image ci-jointe qui est capturée à partir du fichier readme.txt de la bibliothèque

Le Write Enable on Low (NotWE) de 76489 était connecté à la broche 3 du nano et peut être modifié dans le code.

#define PIN_NotWE 3

Le 595 a été connecté au nano comme suit et peut également être ajusté en modifiant les numéros de broche:

#définir PIN_SER 7

#define PIN_LATCH 6

#define PIN_CLK 5

L'oscillateur que j'ai utilisé était un oscillateur à cristal de 4 MHz avec 4 pattes.

Il a été configuré dans le code comme suit et vous pouvez ajuster sa valeur à n'importe quelle fréquence d'oscillateur entre 500 kHz et 4 MHz:

#définir la FRÉQUENCE 4000000.0

La connexion de l'oscillateur que j'ai utilisé était la suivante:

broche 1 - non connectée

broche 7 - masse

broche 8 - connecté à 76489 broche 14 - horloge osc

Étape 4: Ajoutez simplement du code - Ajout des bibliothèques, compilation et téléchargement du code

Les bibliothèques utilisées dans ce projet doivent être ajoutées à l'IDE Arduino comme suit:

Ouvrez l'IDE Arduino

Téléchargez les bibliothèques suivantes dans le dossier des bibliothèques de votre IDE (j'espère les voir bientôt dans le menu « Gérer les bibliothèques… » dans le menu « Outils » de l'IDE:

github.com/felis/USB_Host_Shield_2.0

github.com/tyrkelko/sn76489

Utilisez le code du projet github suivant:

github.com/tyrkelko/usb_midi_tone

Téléchargez usb_midi_tone.ino, compilez et téléchargez sur votre Arduino nano.

Étape 5: Connectez un amplificateur et un haut-parleur, connectez votre clavier USB Midi et testez

Il est maintenant temps de tester tout fonctionne.

Pour ce faire, nous avons besoin de:

1. Un amplificateur et un haut-parleur

2. Un clavier midi USB

Connectez la broche 7 du SN76489, sortie audio, à l'entrée audio de l'amplificateur.

Allumez l'amplificateur, puis allumez l'arduino nano. Vous devriez maintenant entendre le son du test de mise sous tension pendant une fraction de seconde.

Connectez le clavier midi USB et testez.

Si tout fonctionne correctement, vous devriez pouvoir jouer 3 tons simultanément, et également jouer 8 types de bruit et même quelques quarts de ton de 24 EDO-Scale.

Si cela ne fonctionne pas, passez en revue les étapes pour voir ce qui a pu mal se passer.

Si vous pensez que cela résulte d'instructions peu claires, veuillez m'envoyer une note afin que je mette à jour les instructions pour y remédier.

Étape 6: Complétez le circuit avec un régulateur de tension 5 V, un connecteur 12 V, un interrupteur marche/arrêt et une LED d'alimentation

Dans cette étape, vous devriez être en mesure de boucler le circuit après l'avoir testé pour qu'il fonctionne correctement.

1. Ajoutez un régulateur de puissance avec LM7805 et deux condensateurs 10 uF et 0,1 uF. Il existe de nombreux tutoriels à ce sujet, vous pouvez utiliser les instructions suivantes pour y parvenir -

2. Ajoutez un connecteur d'alimentation 12V avec le Vcc passant par un interrupteur marche/arrêt

3. Ajoutez une LED avec une résistance de courant de limitation pour indiquer quand l'appareil est sous tension.

Étape 7: Enfermez dans une boîte, peignez et profitez de votre nouveau synthé

Une fois que les circuits sont testés et fonctionnent à votre guise, il ne reste plus grand chose à faire à part construire un joli boîtier, peignez-le avec des couleurs impressionnantes et jouez de la musique.

J'espère que vous avez apprécié la lecture de cette instructable et qu'elle vous a inspiré à construire votre propre synthé ou à vous lancer dans un autre projet sur lequel vous travaillez.

Veuillez commenter ci-dessous pour toute question et si vous avez construit quelque chose de similaire sur la base de ce tutoriel, ce serait formidable si vous partagiez ce que vous avez fait dans la section "J'ai fait ça!" zone ou dans la section commentaires.

Conseillé: