Orchestre de lecteurs de disquette : Différence entre versions
m (→Limite du nombre de lecteurs) |
m (→Liens) |
||
Ligne 229 : | Ligne 229 : | ||
Brochage de différents connecteurs<br /> | Brochage de différents connecteurs<br /> | ||
http://www.abcelectronique.com/annuaire/connecteurs/ | http://www.abcelectronique.com/annuaire/connecteurs/ | ||
+ | |||
+ | Floppy Drive Organ: Phase 1 Demo and Technical Details<br /> | ||
+ | http://stephanos.io/archives/13 | ||
==Auteurs== | ==Auteurs== |
Version du 16 octobre 2015 à 12:01
Article en cours de rédaction |
---|
Le projet Floppy Orchestra, développé initialement par Pila, permet de faire jouer de la musique à un ou plusieurs lecteurs de disquettes.
Sommaire
- 1 Présentation
- 2 Coût
- 3 Niveau de difficulté
- 4 Outillage nécessaire
- 5 Composants nécessaires
- 6 Schémas
- 7 Étape par étape
- 8 Liens
- 9 Auteurs
Présentation
Le projet repose sur l'utilisation du bruit causé par le déplacement de la tête de lecture / écriture des lecteurs de disquettes. La fréquence de ce bruit, et donc la note de musique à laquelle il s'apparente, dépendent directement de la fréquence de rotation du moteur pas à pas assurant le déplacement de la tête de lecture / écriture. En contrôlant cette fréquence, on peut donc se servir d'un lecteur de disquette comme, d'un instrument de musique.
Ce projet est composé de 2 logiciels :
- le programme pour Arduino qui contrôle les lecteurs disquettes est un fork de Moppy https://github.com/SammyIAm/Moppy
- le programme Floppy Conductor 2, lit des fichier musicaux en format MIDI et transmet les commandes à l'Arduino. L'avantage de ce programme est qu'il possède plusieurs fonctionnalités adaptées au contrôle de lecteurs disquettes, et qu'il offre une interface simple à utiliser (si si).
Je vais tenter d'expliquer ici, comment créer simplement votre orchestre de lecteurs de disquettes.
Coût
0€
Niveau de difficulté
Outillage nécessaire
- ordinateur
- un Arduino
- logiciel IDE Arduino
- une alimentation de PC modifiée
Composants nécessaires
- des lecteurs disquettes, 8 maximum (limite Arduino)
Option
- connecteurs type molex pour lecteurs de disquettes
Schémas
Vous pouvez ajouter les informations manquantes !!!
Étape par étape
Câblage
Section Hardware du projet Moppy
https://github.com/SammyIAm/Moppy/blob/moppy-advanced/README.md#hardware
Floppy Diskdrive pinout
http://pinouts.ru/Storage/InternalDisk_pinout.shtml
- Pin 12 ( Drive Sel B ) : jumper avec celui du bas
- Pins 20 et 18 (Step et Direction ) : à connecter avec l'Arduino, à connecter à 2 pins consécutifs de l'arduino, pin pair en premier.
- N'importe quelle pin de la rangée du bas : à interconnecter avec la masse de l'Arduino
Exemple:
- Premier lecteur : Pin 20 Lecteur -> Pin 2 Arduino et Pin 18 lecteur -> Pin 3 Arduino.
- Deuxième lecteur : Pin 20 lecteur -> Pin 4 Arduino et Pin 18 lecteur -> Pin 5 Arduino.
- etc....
Vous pouvez ajouter les informations manquantes !!! il manque une photo
Nombre de lecteurs
Le nombre de lecteurs de disquette est limité à 8.
Limite du protocole
Le nombre maximum absolu de lecteurs contrôlables par Floppy Conductor est de 64, cette valeur est fixée par le protocole de communication utilisé entre Floppy Conductor et l'Arduino.
Limite électrique
Le nombre de lecteurs maximum que vous pouvez brancher est fonction de la puissance de votre alimentation. Un lecteur de disquette utilisé avec Floppy Conductor consomme environ 500mA sur le rail d'alimentation 5V (déplacement de la tête de lecture, plateau de rotation à l'arrêt).
Dès lors, une alimentation peut fournir du courant à un nombre de lecteur égal au double du nombre d'ampères qu'elle peut délivrer sur le rail 5V.
Il est toutefois conseillé de conserver une marge d'au moins 25%, surtout avec des alimentations bas de gamme.
Exemple
Une alimentation capable de fournir 10A en 5V est théoriquement capable d'alimenter 20 lecteurs disquettes.
10A / 500mA = 20 lecteurs
Avec une marge de 25% il est plus sage de se limiter à 15 lecteurs.
Limite d'I/O de l'Arduino
Le nombre maximum de lecteurs contrôlables par un Arduino standard (Duemilanove, Uno, Nano, etc... ) est limité à 8 par le nombre de broches I/O disponibles.
Programmation de l'Arduino
Ajout de la bibliothèque Timer1
Le programme utilisé dans l'Arduino a besoin d'une bibliothèque supplémentaire nommé Timer1.
Elle ajoute visiblement des fonctions de gestion du temps supplémentaires au langage Arduino.
(en) Site de la bibliothèque Timer1 : http://playground.arduino.cc/Code/Timer1
Téléchargement
Téléchargement des différentes révisions : http://code.google.com/p/arduino-timerone/downloads/list
Lien de téléchargement direct pour la révision 11 : https://arduino-timerone.googlecode.com/files/TimerOne-r11.zip
Sinon téléchargement en ligne de commande avec wget :
$ wget https://arduino-timerone.googlecode.com/files/TimerOne-r11.zip
Importation de la bibliothèque dans l'IDE arduino
Renommer le fichier en TimerOne.zip car les noms de bibliothèques ne peuvent contenir que des lettres et des chiffres :
$ mv TimerOne-r11.zip TimerOner11.zip
Dans le menu de l'IDE arduino se rendre dan Croquis → Importer bibliothèque → Ajouter une bibliothèque.
Sélection du fichier TimerOne11.zip et cliquer sur le bouton OK. L'IDE affiche dans la zone des messages le message suivant : "La bibliothèque a été ajouté à votre dossier de bibliothèques."
Transfert du programme
Programme Arduino : https://gitorious.org/floppy-orchestra/moppy-for-floppy-orchestra/
Cliquez sur le bouton "Download".
Décompresser l'archive dans le répertoire de votre choix.
Dans l'EDI arduino charger le programme moppy_for_FloppyOrchestra.ino et le téléverser dans l'arduino.
Compilation de Floppy Conductor
Pour Windows, un exécutable déjà compilé est disponible sur SourceForge : https://sourceforge.net/projects/floppyconductor/
Récupération des sources
Floppy Conductor : https://gitorious.org/floppy-orchestra/floppy-conductor/ Cliquez sur le bouton "Download". Décompresser l'archive dans le répertoire de votre choix.
Compilation
Nota: j'ai fait la compilation avec QT4 mais il devrait compiler sans problème avec QT5
installation des paquets de développement QT4
$ sudo apt-get install qt4-dev-tools libqt4-gui
- dans le répertoire des sources exécuter la commande "qmake-qt4 floppyconductor2.pro"
- ensuite un simple "make" devrait construire le binaire
- problème de compilation QT4 : si le compilateur ne trouve pas QApplication
dans le fichier main.cpp changer
#include <QtWidgets/QApplication>
en
#include <QApplication>
source: http://stackoverflow.com/questions/8995399/error-qapplication-no-such-file-or-directory
Configuration de Floppy conductor
Lancer Floppy Conductor puis :
1. settings -> select COM port: choisir le port de l'arduino, puis OK.
2. vérifier que la vitesse de transmission est bien réglée sur 9600 bauds
3. Un clic sur le bouton de connexion pour activer la communication avec l'Arduino.
4. Saisir dans la partie "Drive management" le nombre de lecteurs dont on dispose pour jouer.
Ces réglages sont sauvegardés à la fermeture du Floppy Conductor, et rechargés automatiquement à son ouverture. La seul manipulation qu'il reste à faire est cliquer sur le bouton de connexion.
Chargement d'un fichier MIDI avec Floppy Conductor
- Avec le bouton "eject" choisir un fichier Midi à jouer
- Dans la colonne "Drive" sélectionner quelle lecteur doit jouer la piste de partition. (Syntaxe : numéros de lecteurs séparés par une virgule )
Vous pouvez vous aider avec le nombre de notes pour repérer les pistes importantes.
Les numéros le lecteurs commencent à zéro.
- La partie "Transpose" permet d'ajuster les notes trop hautes ou trop basses.
L'auto transpose marche très bien dans 80% des cas, il faut régler la fréquence max jouable par les lecteurs dans le champ "Floppy drives cut-off frequency". Une valeur de 500Hz correspond à la majorité des cas. Lorsque cette valeur est verte, cela signifie que la piste a bien été transposée dans la gamme jouable par les lecteurs. Si elle est rouge, c'est que la transposition n'a pas pu être réalisée.
- Il est possible d'activer / désactiver la lecture de certaines pistes en cliquant sur l’icône verte en forme de note de musique de la piste correspondante. Floppy Conductor arrête alors la lecture pour calculer le nombre de lecteurs requis. Décocher la case "Auto-update..." permet d'activer / désactiver des pistes sans arrêter la lecture, mais le calcul du nombre de lecteurs nécessaires ne se fera qu'une fois la lecture terminée.
Lecture
Une fois Floppy Conductor configuré et le fichier MIDI chargé il ne reste plus qu'à lancer la lecture ;)
Il faut parfois chercher un peu avant de trouver les bonnes pistes à jouer sur les bon lecteurs. Repérez bien qui joue le plus fort, qui joue le plus grave, et vous saurez rapidement comment affecter chaque lecteurs.
Astuce: numérotez vos lecteurs, surtout s'il ne sont pas physiquement dans l'ordre des entrées de l'Arduino.
Certaines pistes indiquent qu'elles ont besoin de plusieurs lecteurs. Dans la plupart des cas ce n'est pas obligatoire pour avoir un bon rendu quand même.
Sauvegarde des paramètres de la musique
Une fois la bonne configuration trouvée pour une musique, il est possible de la sauvegarder en cliquant sur le menu "File" puis "Save song related settings". Cela provoque la création d'un fichier .flop, dans le dossier songs_settings, nommé comme le fichier MIDI auquel il correspond, contenant tous les paramètre liés à cette musique. Lors de l'ouverture d'un fichier MIDI avec Floppy Conductor, celui-ci recherche un fichier .flop correspond, et l'utilise pour charger tous les paramètres liés à cette musique.
Dépannage
Problème | Cause | Solution |
Floppy Conductor ne veut pas se connecter à l'Arduino | Port COM utilisé par un autre processus | Arrêter l'autre processus |
Sous GNU / Linux, l'utilisateur n'a pas les droits d'accès au port COM | Ajouter l'utilisateur au groupe dialout : $ sudo usermod -a -G dialout $USER |
Protocole de communication entre FloppyConductor et l'Arduino
Vous pouvez ajouter les informations manquantes !!!
Liens
Le dépôt git du projet
https://gitlab.com/floppy-orchestra
Moppy is a Musical Floppy controller program built for the Arduino Uno
https://github.com/SammyIAm/Moppy.
Floppy noel
https://www.youtube.com/watch?v=1XErwdEqMEA
Floppy Orchestra performing Mario Theme
https://www.youtube.com/watch?v=uscKE5Pp4hg
Brochage de différents connecteurs
http://www.abcelectronique.com/annuaire/connecteurs/
Floppy Drive Organ: Phase 1 Demo and Technical Details
http://stephanos.io/archives/13