Orchestre de lecteurs de disquette : Différence entre versions

De L'abscisse - FabLab et Hackerspace de Dijon
Aller à : navigation, rechercher
m
(Câblage)
Ligne 60 : Ligne 60 :
 
* 9ème et 10ème pin en partant de la gauche en haut : à connecter avec l'Arduino 10 en premier 9 en suivant.
 
* 9ème et 10ème pin en partant de la gauche en haut : à connecter avec l'Arduino 10 en premier 9 en suivant.
 
* N'importe quelle pin de la rangée du bas : à interconnecter avec la masse de l'Arduino   
 
* N'importe quelle pin de la rangée du bas : à interconnecter avec la masse de l'Arduino   
* le premier lecteur devrait donc être branché en 2/3 sur l'Arduino.
+
 
 +
Exemple:
 +
* le premier lecteur branché en 10 lecteur -> 2 Arduino  et 9 lecteur  -> 3 sur l'Arduino.
 +
* le deuxième lecteur sera en suivant 10 lecteur -> 4 Arduino et 9 lecteur -> 5 arduino ... 
  
 
{{fixme}} il manque une photo
 
{{fixme}} il manque une photo

Version du 9 mai 2015 à 21:56

Dialog-warning.png Article en cours de rédaction Dialog-warning.png


Le projet Floppy Orchestra, développé par Pila, permet de faire jouer de la musique à un ou plusieurs lecteurs de disquettes.

Présentation

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.

Photo de l'orchestre
thumb Une capture d'écran du programe Floppy Conductor

Coût

0€

Niveau de difficulté

Vert.png

Outillage nécessaire

  • ordinateur

Composants nécessaires

  • des lecteurs disquettes

Option

  • connecteurs deux fils femelle comme sur carte mère ...

Ils permettent de connecter plus simplement les lecteurs.
Si vous n'avez pas accès à un Fablab, il vous faudra démonter un grand nombre de PC tout seul ;)

Schémas

Dialog-warning.png Fix Me !

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

  • 6ème pin en partant de la gauche en haut : jumper avec celui du bas
  • 9ème et 10ème pin en partant de la gauche en haut : à connecter avec l'Arduino 10 en premier 9 en suivant.
  • N'importe quelle pin de la rangée du bas : à interconnecter avec la masse de l'Arduino

Exemple:

  • le premier lecteur branché en 10 lecteur -> 2 Arduino et 9 lecteur -> 3 sur l'Arduino.
  • le deuxième lecteur sera en suivant 10 lecteur -> 4 Arduino et 9 lecteur -> 5 arduino ...

Dialog-warning.png Fix Me !

Vous pouvez ajouter les informations manquantes !!! il manque une photo

Limite du nombre de lecteurs

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.

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.

Cependant, il y a une autre limite : le nombre de lecteurs maximum que vous pouvez brancher est fonction de la puissance de votre alimentation.

Un lecteur disquette utilisé avec Floppy Conductor consomme environ 500mA sur le rail 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

10A / 500mA = 20 lecteurs

Une alimentation capable de fournir 10A en 5V est théoriquement capable d'alimenter 20 lecteurs disquettes.
Avec la marge de 25% il est plus sage de se limiter à 15 lecteurs.

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

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.

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

Liens

Le dépôt git du projet
https://gitorious.org/floppy-orchestra

Moppy is a Musical Floppy controller program built for the Arduino Uno
https://github.com/SammyIAm/Moppy.

Floppy Orchestra performing Mario Theme
https://www.youtube.com/watch?v=uscKE5Pp4hg

Brochage de différents connecteurs
http://www.abcelectronique.com/annuaire/connecteurs/

Auteurs