Orchestre de lecteurs de disquette

De L'abscisse - FabLab et Hackerspace de Dijon
Révision datée du 31 octobre 2014 à 17:18 par Pilatomic (discussion | contributions) (Lecture)
Aller à : navigation, rechercher
Dialog-warning.png Article en cours de rédaction Dialog-warning.png


Une capture d'écran du programe Floppy Conductor
Fichier:Photo-Floppy.png
Photo de l'orchestre en action au Fablab ( a ajouter)

Présentation

Le projet Floppy Orchestra développé par Pila, permet de faire jouer de la musique à un ou plusieurs lecteurs de disquettes.
Il est composé de 2 logiciels :

  • Le programme pour Arduino qui contrôle les lecteurs disquettes est un fork de 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 disquettes.

Coût

0€ si vous avez déjà les lecteurs de disquettes

Niveau de difficulté

Vert.png


Prérequis:

Indispensable:

  • un arduino
  • logiciel IDE arduino
  • des lecteurs disquettes
  • une alimentation de PC modifiée [[1]]

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 ;)


Récupération de floppy-conductor:

le site git du projet: https://gitorious.org/floppy-orchestra

Vous pouvez utilisez git directement pour récupérer les sources. Cette démarche n'est pas expliqué ici. Nous nous contenterons de récupérer les sources en les téléchargeant.

Téléchargement:

Rendez vous sur les sites suivants et cliquez sur le bouton téléchargement.

Floppy Conductor : https://gitorious.org/floppy-orchestra/floppy-conductor/

Programme Arduino : https://gitorious.org/floppy-orchestra/moppy-for-floppy-orchestra/

Décompressez ensuite les deux archives dans le répertoire de votre choix.

Compilation de floppy-conductor:

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

Branchements:

https://github.com/SammyIAm/Moppy/blob/moppy-advanced/README.md http://pinouts.ru/Storage/InternalDisk_pinout.shtml [photo]

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 le premier lecteur devrait donc être branché en 2/3 sur l'arduino.

Limite du nombre de lecteurs

Le nombre maximum absolu de lecteurs contrôlables par Floppy Conductor est de 64, cette valeur étant 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.

Exemple : une alimentation capable de fournir 10A en 5V est théoriquement capable d'alimenter 20 lecteurs disquettes.

Il est toutefois conseiller de conserver une marge d'au moins 25%, surtout avec des alimentations bas de gamme. Ainsi, sur l'alimentation de l'exemple précedent, il est plus sage de se limiter à 15 lecteurs.

Ajout de la lib 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.

site web: http://playground.arduino.cc/Code/Timer1

Téléchargement: http://code.google.com/p/arduino-timerone/downloads/list

lien directe: http://code.google.com/p/arduino-timerone/downloads/detail?name=TimerOne-r11.zip&can=2&q=

Renommer le fichier en TimerOne.zip

dans l'IDE arduino -> Croquis -> Importer bibliothèque -> add library

sélection du fichier TimerOne.zip et ok (pas de message d'erreur)

Programme Arduino

dans l'EDI arduino charger le programme moppy_for_FloppyOrchestra.ino et le téléverser dans l'arduino.

Floppy conductor

Configuration du système

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.


Configuration de la musique

-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.

Rubrique Dépannage

Dialog-warning.png Fix Me !

Vous pouvez ajouter les informations manquantes !!!

Problème Cause Solution
Floppy Conductor ne veut pas se connecter à l'arduino Port COM utilisé par un autre processus Arreter l'autre processus
Sous 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 VOTRE_NOM_D_UTILISATEUR

Liens

Dialog-warning.png Fix Me !

Vous pouvez ajouter les informations manquantes !!!

Auteurs