Pages: 1 2 [3] 4   Go Down
Author Topic: Licht auf bestimmte Musik !!!  (Read 5354 times)
0 Members and 1 Guest are viewing this topic.
Germany
Offline Offline
Sr. Member
****
Karma: 2
Posts: 285
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

hier bin ich wieder....
Also ich hab mich in den letzten vier tagen nochmal dem problem mit vixen und arduino gewidmet.
Jedoch komm ich auf keinen einzigen lösungplan.
mittlerweile denke ich schon, es würde überhaupt keine Lösung dafür geben !! ( oder ist das vielleicht so???, ich hoffe nicht)

ich will schließlich irgendwann mit der ansteuerung fertig werden damit ich dann mit meinem eigentlichen projekt endlich fortfahren kann....

Ich habe mein bestes gegeben, aber ich glaube weiter komm ich einfach nicht ;( das wirrt mir schon die ganzen tage im kopf herum, wie ich es denn lösen kann !

Weiß hier wirklich keiner wie man das bewältigen kann ???

vielen dank schonmal für die weiteren hilfreichen antworten...

Lorenz
Logged

Offline Offline
Edison Member
*
Karma: 21
Posts: 1405
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Mit 7 LEDs klappt es doch bereits, also musst Du nur das Problem Lösen, warum es bei mehr als 7 LEDs nicht klappt. Leider kennt keiner Deine Einstellungen in dem Programm das die Daten an denArduino schickt. Evtl. ist da ja schon das Problem. Wie wäre es, wenn Du mit dem Arduino die Daten die da kommen mal mitloggst und ggf. auf einer weiteren Seriellen Schnittstelle ausgibst? Hattest Du nicht einen Mega, oder verwechsel ich da was?
Mario.
Logged

Germany
Offline Offline
Sr. Member
****
Karma: 2
Posts: 285
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Mit 7 LEDs klappt es doch bereits, also musst Du nur das Problem Lösen, warum es bei mehr als 7 LEDs nicht klappt. Leider kennt keiner Deine Einstellungen in dem Programm das die Daten an denArduino schickt. Evtl. ist da ja schon das Problem. Wie wäre es, wenn Du mit dem Arduino die Daten die da kommen mal mitloggst und ggf. auf einer weiteren Seriellen Schnittstelle ausgibst? Hattest Du nicht einen Mega, oder verwechsel ich da was?
Mario.

Das wüsst ich auch gern smiley-grin

Mitloggst ?! Was soll das sein ? ( kenn mich jetzt nciht soo gut aus mit allem)
Kann ich euch dadurch zeigen was bei mir abläuft ? Wie stell ich das denn an ? Sowas habe  noch nie gemacht -_-
Ja da liegst du richtig mit dem mega.

Lorenz
Logged

Offline Offline
Edison Member
*
Karma: 21
Posts: 1405
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Der Mega hat mehr als eine serielle Schnittstelle. Damit kannst Du die zweite Serielle Schnittstelle auch per USB (entspr. Adapter mußt Du aber kaufen) mit dem PC verbinden. Damit kannst Du alles was vom Vixen an den Arduino übertragen wird wieder auf eine serielle Konsole zurückschreiben und Die anschauen ob das was Vixen da schickt auch das ist was Du erwartest. Das meine ich mit "loggen".
Zusätzlich würde ich einfach mal ohne das die Daten von extern kommen alle LEDs geordnet der Reihe nach schalten. Damit kannst Du schon mal sicher sein, das die Zuordnung in Deinem Programm stimmt.
Logged

Germany
Offline Offline
Sr. Member
****
Karma: 2
Posts: 285
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Der Mega hat mehr als eine serielle Schnittstelle. Damit kannst Du die zweite Serielle Schnittstelle auch per USB (entspr. Adapter mußt Du aber kaufen) mit dem PC verbinden. Damit kannst Du alles was vom Vixen an den Arduino übertragen wird wieder auf eine serielle Konsole zurückschreiben und Die anschauen ob das was Vixen da schickt auch das ist was Du erwartest. Das meine ich mit "loggen".
Zusätzlich würde ich einfach mal ohne das die Daten von extern kommen alle LEDs geordnet der Reihe nach schalten. Damit kannst Du schon mal sicher sein, das die Zuordnung in Deinem Programm stimmt.


Könntest du mir vielleicht einen link schicken wo ich die bekomme ? Ich weis nämlich genau wonach ich da suchen soll ! (gibt es die bei conrad)
Kann man denn damit dann auch wirklich das problem lösen ???

Logged

Offline Offline
Edison Member
*
Karma: 21
Posts: 1405
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Das Problem wirst Du nicht mit Hardware lösen, sondern durch Analysieren und Beheben des Fehlers. Der USB-Adpater kann Dir helfen, Dein Problem zu analysieren. Wenn Du keine Hardware kaufen willst, kannst Du auch weiter ohne testen, allerdings mit größerem Aufwand.
Du hattest ja schonmal einzelne LEDs getestet und es funktionierte alles mit bis zu 7 LEDs. Kannst Du den Code mal posten mit dem Du getestet hast? Gut wäre auch, wenn Du einmal grob beschreiben könntest (evtl. noch Screenshots) wie Du die Ansteuerung mit Vixen machst. Ich denke die wenigsten hier kennen dieses Programm.
Welche Daten werden gesendet?
Desweiteren fällt mir auf, das Du analogWrite() in Deinem Code verwendest, die LEDs aber nicht an PWM-Ausgängen angeschlossen sind.
Mario.
Logged

Germany
Offline Offline
Sr. Member
****
Karma: 2
Posts: 285
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Das Problem wirst Du nicht mit Hardware lösen, sondern durch Analysieren und Beheben des Fehlers. Der USB-Adpater kann Dir helfen, Dein Problem zu analysieren. Wenn Du keine Hardware kaufen willst, kannst Du auch weiter ohne testen, allerdings mit größerem Aufwand.
Du hattest ja schonmal einzelne LEDs getestet und es funktionierte alles mit bis zu 7 LEDs. Kannst Du den Code mal posten mit dem Du getestet hast? Gut wäre auch, wenn Du einmal grob beschreiben könntest (evtl. noch Screenshots) wie Du die Ansteuerung mit Vixen machst. Ich denke die wenigsten hier kennen dieses Programm.
Welche Daten werden gesendet?
Desweiteren fällt mir auf, das Du analogWrite() in Deinem Code verwendest, die LEDs aber nicht an PWM-Ausgängen angeschlossen sind.
Mario.

Ja das wär auch zu gut ! smiley-grin also bis jetzt lass ich das erst mal mit dem adapter (kommt drauf an wie viel denn so einer kostet?)

also irgendwie hab ich auch in erinnerung das das mit 7 leds geklappt hat, aber ich habe das jetzt noch mal ausprobiert und es funktioniert aus irgendeinem grund nur mit 5...naja...immerhin...also ich habe das jetzt mal nur mit digitalen pins gemacht (aber ändert leider auch nichts;()
also hier der code:

Code:
/*
The purpose of this code is to allow the Arduino to use the
generic serial output of vixen lights to control 5 channels of LEDs.
Author: Matthew Strange
Created: 14 October 2010
Modifier: Ben Towner
Modified: 19-OCT-2010
Changes: Addition of 20 Digital On/Off Channels - Setup for Arduino Mega 2560

*/

// Digital Output - ChanX=Digital Pin
int Chan1 = 48; 
int Chan2 = 46; 
int Chan3 = 44; 
int Chan4 = 42; 
int Chan5 = 40; 



int i = 0;     // Loop counter
int incomingByte[5];   // array to store the 25 values from the serial port

//setup the pins/ inputs & outputs
void setup()
{
  Serial.begin(9600);        // set up Serial at 9600 bps

  pinMode(Chan1, OUTPUT);   // sets the pins as output
  pinMode(Chan2, OUTPUT);
  pinMode(Chan3, OUTPUT);
  pinMode(Chan4, OUTPUT);
  pinMode(Chan5, OUTPUT);
 
}

void loop()
{  // 25 channels are coming in to the Arduino
   if (Serial.available() >= 5) {
    // read the oldest byte in the serial buffer:
    for (int i=0; i<6; i++) {
      // read each byte
      incomingByte[i] = Serial.read();
    }
   
    digitalWrite(Chan1, incomingByte[0]);   
    digitalWrite(Chan2, incomingByte[1]);   
    digitalWrite(Chan3, incomingByte[2]);   
    digitalWrite(Chan4, incomingByte[3]);   
    digitalWrite(Chan5, incomingByte[4]);
     
   
   }
}

Wegen Screenshots: ich weiß jetzt nicht genau was ich da zeigen soll...?! also das programm an sich ? wie die benutzeroberfläche aussieht ??
also hier schon mal nen bild davon...(anhang)

Woher soll ich herausfinden welche daten gesendet werden ? brauch man denn da nicht den adapter ?
Wenn du noch weiteres benötigst, dann meld dich einfach...

Ich hoffe das bringt was.

Lorenz


* Vixen.Benutzeroberfläche.png (128.86 KB, 1440x900 - viewed 17 times.)
Logged

Offline Offline
Edison Member
*
Karma: 21
Posts: 1405
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Das Problem ist, das Du nicht weisst, was Vixen da genau schickt. Du schreibst einfach die ankommenden Daten auf das entsprechende Pin. Die Funktion digitalWrite() ist so programmiert, das sie bei einem Wert von "0" den Ausgang auf LOW schaltet und bei allen anderen Werten ungleich Null auf HIGH. Damit sollte es eigentlich klappen. Der Code sieht für 5 LEDs auch erstmal OK aus. Jetzt geht es halt darum herauszufinden, wie das Daten-Protokoll von Vixen aussieht. Das ist aus meiner Sicht die wahrscheinlichste Fehlerquelle. Es reicht ja, wenn zusätzlich zu den Channel-Daten noch irgendwas anderes mitgeschickt wird. Ein zusätzliches Byte bringt automatisch die Sequenz durcheinander.
Hast Du evtl. Zugriff auf ein LCD-Shield, oder irgendwas mit dem man die seriell gelesenen Daten ausgeben könnte?
Welches Plugin für die Ausgabe in Vixen verwendest Du? "Generic Serial protocol"?
Einen interessanten Beitrag habe ich im Vixen-Forum gefunden:
Quote
Hi guys, I've been working to integrate Vixen to Arduino for the past few week (using 2.1.1.0 and Arduino ATmega 1280)
I have the common configuration working easily - multiple channels, software PWM = lots of blinky lights, but I know this is where this integration is going wrong. One lost bit or byte and the whole display would be corrupted.
So I though I'd use the tools given.
- Limit serial channel brightness values to 196 steps, reserving 197 - 255 for control codes (or header / footer for now) (step up the values on the Arduino end)
- Thus I limited the Max Illumination to 196 (aka 3/4 brightness) - ugly but I can live with that.
- I then defined the header to use a single byte (255) and footer to use a single byte (254)
- Sketched up some code in the Arduino to look for these control codes before allowing the 'channel buffer' to be filled, and then expecting the 'footer' code when the buffer was full (and if it wasn't Huston we have a problem)
- Sounded right, I then proceeded to spend several hours debugging on the Arduino -- grrrr
- Gave up on the Arduino and began to monitor the com port (sysinternals portmon) - and this was when I discovered that somewhere in the generic serial plug-in it has been decided that the header and footer can only use 'printable ascii' codes (tracked down to Encoding.ASCII.GetBytes piece of code) - if the codes are even accepted, they come out at the other end as '?' or code 063
- Thus currently we cant 'reserve' any high or low ascii codes to use in the header / footer (aka cant use 0 – 32, or 127 – 255)
Anyone know how we can amend the source to cater for this?
Be good to be able to translate the 256 steps of illumination to 196 in the plug-in, and use the remaining bytes as channel markers.
Or maybe this is already accomplished in another serial based output plugin - I just need to translate the protocol into Arduino Code.
On an interesting note - the generic serial will not send data when the state of the channels doesn’t change between 'events'
Been following ctmals videos about how to build a plugin + searching through the MSDN website , just need to change Encoding.ASCII to Encoding.UTF8 and we should be away laughing smiley
Spannend ist dabei folgendes:
Quote
On an interesting note - the generic serial will not send data when the state of the channels doesn’t change between 'events'
Das könnte ein Problem sein, bei Deinen Sequenzen.
Dazu kommt wohl, das nicht alle Werte zwischen 0 und 255 vom "Generic serial plugin" korrekt übertragen werden.
Der Poster verwendet ein Tool "sysinternals portmon", um den seriellen Port zu überwachen, evtl. solltest Du das auch mal machen. Wichtig ist halt, das Du herausbekommst was genau gesendet wird.
Mario.
Logged

Germany
Offline Offline
Sr. Member
****
Karma: 2
Posts: 285
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Das Problem ist, das Du nicht weisst, was Vixen da genau schickt. Du schreibst einfach die ankommenden Daten auf das entsprechende Pin. Die Funktion digitalWrite() ist so programmiert, das sie bei einem Wert von "0" den Ausgang auf LOW schaltet und bei allen anderen Werten ungleich Null auf HIGH. Damit sollte es eigentlich klappen. Der Code sieht für 5 LEDs auch erstmal OK aus. Jetzt geht es halt darum herauszufinden, wie das Daten-Protokoll von Vixen aussieht. Das ist aus meiner Sicht die wahrscheinlichste Fehlerquelle. Es reicht ja, wenn zusätzlich zu den Channel-Daten noch irgendwas anderes mitgeschickt wird. Ein zusätzliches Byte bringt automatisch die Sequenz durcheinander.
Hast Du evtl. Zugriff auf ein LCD-Shield, oder irgendwas mit dem man die seriell gelesenen Daten ausgeben könnte?
Welches Plugin für die Ausgabe in Vixen verwendest Du? "Generic Serial protocol"?
Einen interessanten Beitrag habe ich im Vixen-Forum gefunden:
Quote
Hi guys, I've been working to integrate Vixen to Arduino for the past few week (using 2.1.1.0 and Arduino ATmega 1280)
I have the common configuration working easily - multiple channels, software PWM = lots of blinky lights, but I know this is where this integration is going wrong. One lost bit or byte and the whole display would be corrupted.
So I though I'd use the tools given.
- Limit serial channel brightness values to 196 steps, reserving 197 - 255 for control codes (or header / footer for now) (step up the values on the Arduino end)
- Thus I limited the Max Illumination to 196 (aka 3/4 brightness) - ugly but I can live with that.
- I then defined the header to use a single byte (255) and footer to use a single byte (254)
- Sketched up some code in the Arduino to look for these control codes before allowing the 'channel buffer' to be filled, and then expecting the 'footer' code when the buffer was full (and if it wasn't Huston we have a problem)
- Sounded right, I then proceeded to spend several hours debugging on the Arduino -- grrrr
- Gave up on the Arduino and began to monitor the com port (sysinternals portmon) - and this was when I discovered that somewhere in the generic serial plug-in it has been decided that the header and footer can only use 'printable ascii' codes (tracked down to Encoding.ASCII.GetBytes piece of code) - if the codes are even accepted, they come out at the other end as '?' or code 063
- Thus currently we cant 'reserve' any high or low ascii codes to use in the header / footer (aka cant use 0 – 32, or 127 – 255)
Anyone know how we can amend the source to cater for this?
Be good to be able to translate the 256 steps of illumination to 196 in the plug-in, and use the remaining bytes as channel markers.
Or maybe this is already accomplished in another serial based output plugin - I just need to translate the protocol into Arduino Code.
On an interesting note - the generic serial will not send data when the state of the channels doesn’t change between 'events'
Been following ctmals videos about how to build a plugin + searching through the MSDN website , just need to change Encoding.ASCII to Encoding.UTF8 and we should be away laughing smiley
Spannend ist dabei folgendes:
Quote
On an interesting note - the generic serial will not send data when the state of the channels doesn’t change between 'events'
Das könnte ein Problem sein, bei Deinen Sequenzen.
Dazu kommt wohl, das nicht alle Werte zwischen 0 und 255 vom "Generic serial plugin" korrekt übertragen werden.
Der Poster verwendet ein Tool "sysinternals portmon", um den seriellen Port zu überwachen, evtl. solltest Du das auch mal machen. Wichtig ist halt, das Du herausbekommst was genau gesendet wird.
Mario.

Erstmal vielen vielen dank für deine ganze mühe und so !!!
Also ein LCD-shield habe ich jetzt leider noch nciht hier rumliegen...
Das plugin das ich da von dem programm benutze heißt auch "generic serial", wie du schon meintest.
Ich bin jetzt zwar nicht zu wirklich der beste in englisch, aber in dem beitrag geht irgendwie auch um ein problem mit der ausgabe das da was verrückt spielt und so...richtig ? smiley-grin
Ich hab mir dann mal dieses Tool "sysinternals portmon" heruntergeladen, aber bis jetzt funktioniert da noch nichts wirklich weil der den port irgendwie nicht wahrnimmt..aber ich werde schauen ob ich das noch geändert bekomme (hoffe ich!!!)

könntest du mir vielleicht mal ein link von diesem adapter zum loggen geben ?

Lorenz

Logged

Offline Offline
Edison Member
*
Karma: 21
Posts: 1405
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ich denke dieser Adapter sollte verwendbar sein:
http://www.komputer.de/zen/index.php?main_page=product_info&cPath=22&products_id=83

@All: Bitte mal einen Kommentar abgeben, ob ich damit richtig liege. Theoretisch sollte man den ja auch an eine der anderen Seriellen Schnittstellen des Mega anklemmen können? RX an RX,TX an TX und GND auf GND, das sollte reichen.

Mario.
Logged

Germany
Offline Offline
Sr. Member
****
Karma: 2
Posts: 285
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ich denke dieser Adapter sollte verwendbar sein:
http://www.komputer.de/zen/index.php?main_page=product_info&cPath=22&products_id=83

@All: Bitte mal einen Kommentar abgeben, ob ich damit richtig liege. Theoretisch sollte man den ja auch an eine der anderen Seriellen Schnittstellen des Mega anklemmen können? RX an RX,TX an TX und GND auf GND, das sollte reichen.

Mario.

Okaaay...ich hab mir den adapter ein bischen anders vorgestellt...

Und ich hab nochmal bischen mit diesem programm probiert, aber es wird wahrsheinlich nicht funktionieren. Ich habe daher noch ein paar andere programme für das auslesen wie das hier zB http://www.serial-port-monitor.com/index.html. Aber das hat auch nciht funktioneirt weil da steht immer was port already in use...aber ich such noch weiter und es gibt ja reichlich zu finden.

Lorenz
Logged

Germany
Offline Offline
Edison Member
*
Karma: 44
Posts: 2261
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Softwareseitig wirst du das vermutlich nicht herausfinden können, was da übern Äther geschickt wird. Eine zweite serielle Schnitstelle ist erforderlich, daher auch die Idee mit dem Adapter.
Die andere Möglichkeit wurde schon angefragt: hast du ein LCD, auf dem man die empangenen Daten anzeigen kann?
Logged

Mein Arduino-Blog: http://www.sth77.de/ - letzte Einträge: Teensy 3.0 - Teensyduino unter Window 7 - Teensyduino unter Windows 8

Germany
Offline Offline
Sr. Member
****
Karma: 2
Posts: 285
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Softwareseitig wirst du das vermutlich nicht herausfinden können, was da übern Äther geschickt wird. Eine zweite serielle Schnitstelle ist erforderlich, daher auch die Idee mit dem Adapter.
Die andere Möglichkeit wurde schon angefragt: hast du ein LCD, auf dem man die empangenen Daten anzeigen kann?

Asoo hab mich nämlich schon gewundert....
Ja ein LCD hab ich jetzt nicht aber könnte ich mir eventuell zulegen oder halt diesen adapter.
Aber ich weiß halt nicht ob man dann das problem zu 100% lösen kann, wenn ja würd ich mit aufjedenfall das irgendetwas von holen.

Lorenz
Logged

Offline Offline
Edison Member
*
Karma: 21
Posts: 1405
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Softwareseitig wirst du das vermutlich nicht herausfinden können, was da übern Äther geschickt wird. Eine zweite serielle Schnitstelle ist erforderlich, daher auch die Idee mit dem Adapter.
Die andere Möglichkeit wurde schon angefragt: hast du ein LCD, auf dem man die empangenen Daten anzeigen kann?
Ich denke schon, das es funktioniert, das legt ja auch der Forenpost nahe. Aber wie kann ich nicht sagen, denn als MAC User kann ich das auch nicht testen, ebensowenig wie das Programm Vixen.
Der Trick wird vermutlich sein was man in welcher Reihenfolge startet. Ich könnte mir auch vorstellen, das das Monitoring Programm eine virtuelle serielle Schnittstelle zur Verfügung stellt, mit der man das Vixen verbindet und sich dann selbst mit der tatsächlichen Schnittstelle koppelt und damit dann in der Mitte sitzt. Aber das ist nur eine Vermutung.
Logged

Germany
Offline Offline
Edison Member
*
Karma: 44
Posts: 2261
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Da das Programm ja kostenlos zu haben ist, könnte jemand auch mal deine Testdatei ausprobieren, um das Protokoll zu entziffern. Gibt hier bestimmt Leute, die (mindestens) zwei FTDIs rumliegen haben. smiley-wink
Logged

Mein Arduino-Blog: http://www.sth77.de/ - letzte Einträge: Teensy 3.0 - Teensyduino unter Window 7 - Teensyduino unter Windows 8

Pages: 1 2 [3] 4   Go Up
Jump to: