Vous ne pouvez pas modifier cette page, pour les raisons suivantes :
Documentation:
= Principe = = Matériel = Réception et traitement du signal OSC: * Raspberry Pi modèle B : http://www.raspberrypi.org/products/model-b/ * Antenne Wifi TP-Link TL-WN722N : http://www.tp-link.fr/products/details/?categoryid=&model=TL-WN722N * Hub USB avec alimentation secteur 5V 2A : * Carte SD 8Go Sandisk classe 10 : http://www.sandisk.fr/products/memory-cards/sd/ultra-uhs-1-class10/?capacity=8GB Alimentation : * Batterie au plomb 12V 5.4 Ah : http://www.enix-energies.com/batterie-plomb-agm-s-12v-5-4ah-12v-5-4ah-t1-amp9047.html * Chargeur de batterie 230V -> 12V 1.5A : http://www.all-batteries.fr/chargeur-plomb-6v-ou-12v-1-5a-230v-economique-cep0305.html * Transformateur 12V -> 5V USB : http://www.aukey.com/product/cc-c2-24w-aipower-car-charger-micro-usb-black Sono : * Amplificateur 65W RMS : http://www.jvc.fr/product.php?id=KS-AX3202&catid=100194 * Haut-parleur 2 voies séparées 45W RMS : http://www.pioneer.eu/fr/products/25/131/201/TS-G172Ci/page.html * Câble Audio Jack 3,5 mm stéréo vers 2 x RCA Mâle 1 m : http://www.amazon.fr/gp/product/B00A7W26S0 * Carte son Hama https://de.hama.com/00051620/hama-71-surround-usb-sound-card = Installation = Configurer le WiFi comme ceci : http://wiki.labomedia.org/index.php/Emission_radio_avec_une_Raspberry_Pi#Connecter_le_WiFi_au_r.C3.A9seau_local Configurer du système audio : Il faut modifier les fichier de configuration audio : sudo nano /etc/modprobe.d/alsa-base.conf Il faut modifier la ligne suivante : options snd-usb-audio index=-2 Il faut modifier la valeur de l'index de -2 à 0 comme ceci : options snd-usb-audio index=0 Sauvegardez Ctrl + o et quittez Ctrl + x Vous pouvez tester avec : speaker-test -c2 -D hw:0,0 On peut régler les volumes alsamixer Vous pouvez augmenter les volumes avec les différentes flèches. Esc pour quitter. = Installation des modules logiciels = L communication entre DLight et la Raspberry Pi se font par OSC, donc il faut installer la librairie pyOSC : git clone git://gitorious.org/pyosc/devel.git cd devel sudo ./setup.py Vérifier l'adresse de la Pi dans le réseau avec ifconfig modifier le fichier Tartuffe.py si nécessaire. = Interface = Le fichier config.xml : <source lang="xml"> <OSC> <adresse>/circ/</adresse> <portReception>7001</portReception> </OSC> <musique> <adresseDMX>100</adresseDMX> <fichier>musique.mp3</fichier> </musique> <canalArret circuit = 102>123</canalArret> <canalArret circuit = 103>123</canalArret> <seuilInterupteur circuit = 110>127</seuilInterupteur> </source> <source lang="c"> #pragma once #include "ofMain.h" #include "ofxXmlSettings.h" #include "ofxOsc.h" class ofApp : public ofBaseApp{ public: void setup(); void update(); void draw(); void keyPressed(int key); void keyReleased(int key); void mouseMoved(int x, int y ); void mouseDragged(int x, int y, int button); void mousePressed(int x, int y, int button); void mouseReleased(int x, int y, int button); void windowResized(int w, int h); void dragEvent(ofDragInfo dragInfo); void gotMessage(ofMessage msg); ofxXmlSettings XML; map<int, int> canauxArret; map<int, int> canaux; map<int, ofSoundPlayer*> discotheque; pair<int, int> interrupteur; // OSC ofxOscReceiver recepteurOSC; int portReceptionOSC; string adresseOSC; string messageOSC; string getOscMsgAsString(ofxOscMessage m); }; </source> <source lang="c"> #include "ofApp.h" //-------------------------------------------------------------- void ofApp::setup(){ // XML if (XML.loadFile("config.xml")) { XML.pushTag("OSC"); adresseOSC = XML.getValue("adresse", ""); portReceptionOSC = XML.getValue("portReception", 0); XML.popTag(); int num = XML.getNumTags("musique"); for (int i = 0; i < num; i++) { XML.pushTag("musique", i); int indice = XML.getValue("adresseDMX", 0); discotheque[indice] = new ofSoundPlayer(); string str = XML.getValue("fichier", ""); discotheque[indice]->loadSound(str); discotheque[indice]->setVolume(0.0f); discotheque[indice]->setMultiPlay(false); XML.popTag(); cout << indice << " : " << str << endl; } num = XML.getNumTags("canalArret"); for (int i = 0; i < num; i++) { //XML.pushTag("canalArre canauxArret[XML.getAttribute("canalArret","circuit", 0, i)] = XML.getValue("canalArret", 0, i); canaux[XML.getAttribute("canalArret","circuit", 0, i)] = 0; } interrupteur = make_pair(XML.getAttribute("seuilInterupteur","circuit", 0, 0), XML.getValue("seuilInterupteur", 0, 0)); cout << "Circuit interrupteur : " << interrupteur.first << ", seuil : " << interrupteur.second << endl; XML.clear(); } else { ofLogError("Le fichier n'a pu etre lu"); } // OSC recepteurOSC.setup(portReceptionOSC); cout << "Port reception : " << portReceptionOSC << endl; } //-------------------------------------------------------------- void ofApp::update(){ while(recepteurOSC.hasWaitingMessages()){ ofxOscMessage m; recepteurOSC.getNextMessage(&m); string adresse = m.getAddress(); if (adresse.substr(0, adresseOSC.length()) == adresseOSC) { int circuit = ofToInt(adresse.substr(adresseOSC.length(), adresse.length())); int valeur = m.getArgAsInt32(0); if (canauxArret.find(circuit) != canauxArret.end()) { canaux[circuit] = valeur; //cout << canauxArret.size() << endl; } if (discotheque.find(circuit) != discotheque.end()) { if (valeur == 0) { if (discotheque[circuit]->getIsPlaying()) { discotheque[circuit]->stop(); } } else { if (!discotheque[circuit]->getIsPlaying()) { discotheque[circuit]->play(); } discotheque[circuit]->setVolume(ofMap(valeur, 1, 255, 0, 1)); } } } } int drapeau = 0; for (map<int,int>::iterator it = canauxArret.begin(); it != canauxArret.end(); ++it) { if (canaux[it->first] == it->second) { drapeau++; } } if (drapeau == canauxArret.size()) { cout << "Au revoir" << endl; system("sudo halt"); } } //-------------------------------------------------------------- void ofApp::draw(){ } </source> Modifier le fichier addons.make pour ajouter les [[OpenFrameworks_avec_Raspberry_Pi#Utilisation_des_addons|addons]]: ofxXmlSettings ofxOsc Installer la librairie [[OpenFrameworks_avec_Raspberry_Pi#Gestion_du_GPIO|WiringPi]]. Modifier le fichier config.make pour la [[OpenFrameworks_avec_Raspberry_Pi#Compilation|compilation]]. [[Catégorie:Réalisations]] [[Catégorie:OpenFrameworks]] [[Catégorie:Raspberry_Pi]]
Résumé :
Modification mineure Suivre cette page
Annuler