Hallo! Ich möchte daten von MAX/MSP über die serielle Schnittstelle auf ein Mikrocontroller (Teensyboard bzw ATMEGA32U4) übertragen. Dort werden die Daten in I2C umgewandelt und an einen LED-Dimmer geschickt. Das sind 48 Bytes (weil 48 Lampen) und das ca 30 mal pro sek. Eigentlich sollte Bluetooth das schaffen? Wenn ich die USB Schnittstelle des uC nehme funktioniert es tadellos, sämtliche LEDs werden ohne erkennbare Latenz gedimmt wie es sein soll. Nun möchte ich aber eine Bluetooth-UART Brücke verwenden weil ich keine lust habe auf 7m USB-Kabel Also habe ich erst die uC Software auf UART umgeschrieben und mit einem USB-UART wandler getestet. Auch das klappt wunderbar. Wenn ich allerdings ein Bluetooth "Luftkabel" nehme empfängt der uC nur die hälfte der Daten und die LEDs dimmen meist nur in drei oder vier Stufen, je nach dem wie dynamisch die LEDs angesteuert werden. Ich habe ein billig-bluetooth Dingen von DealExtreme genommen und auch ein BTM-220 ausprobiert. Bei beiden das gleiche Problem, die Baudrate habe ich mal auf höchste Stufe gestellt.. aber das ändert nichts. Da ich einen MAC verwende habe ich es mal auf meiner Windows Partition ausprobiert: Dort wird nicht mal das Bluetooth Ding erkannt... Soll ich noch mal eine ganz andere Hardware ausprobieren, bei Sparkfun z.b gibt es teure Bluetooth "Shields" (immer diese kack Shields!) aber ob das was bringt? Lg Bernd
Gehe ich richtig in der Befürchtung dass Du die Brücke falsch(tm) nutzt und einzelne Bytes schickst anstatt ganzer Blöcke? HTH
Hallo! Wie kann ich denn ganze Blöcke schicken? Und wieso funktioniert es dann mittels Kabel trotzdem? Gruss
In der MAX/MSP reference zu dem Serial-Object welches die Daten rausschickt steht: "It transmits data by taking a byte (an integer in the range of 0-255) in its inlet and sending it over the selected serial port." Also müsste ich dafür sorgen dass das als Packet geschickt wird? Dann gibt es noch folgende option: "chunk" => Sets the data chunk size (data list length) for output. Die habe ich auf 50 gestellt. Ändert auch nichts (war aber auch nur geraten dass das was damit zu tun haben könnte) Gruss Bernd
> Wie kann ich denn ganze Blöcke schicken? fopen/fwrite in c. Und wenns nur zum Testen ist - max kann das möglicherweise nicht richtig(tm). Falls sich das Problem damit beheben (oder zumindest verringern) lässt, dann könntest Du ein 'Plugin' (oderwieimmerdasheisstinmax) bauen, das die Serielle richtig(tm) bedient. Möglicherweise gibts auch irgendwo(tm) eine Treibereinstellung.. > Und wieso funktioniert es dann mittels Kabel trotzdem? Weil Kabel keinen (unerwarteten) Overhead produziert, UART-über-Blauzahn aber schon (bei falscher Nutzung sogar ganz massiv). HTH
Bluetooth mach einen Verbindungsaufbau. Und wenn es diesen fuer jedes Byte einzeln machen muss ist die Bandbreite weg. Ich empfehl das Ganze als Stream zu senden, alle 30ms die 48 bytes, aber ohne die Verbindung abzubauen.
Wo muss ich denn prinzipiell anfangen um daten als Stream zu senden? In der Software mit der ich die Daten versende? Oder in den Einstellungen bei MAC? Oder beim Bluetooth Device selber? Stehe da etwas auf dem Schlauch :-(
machst du 30 mal fwrite(1 byte) oder einmal fwrite(30 bytes)?
> machst du 30 mal fwrite(1 byte) oder einmal fwrite(30 bytes)?
Er macht wohl keines davon, max vermutlich grob ersteres. Zum Testen
sollte der TO mal zweiteres probieren, hat er aber bisher
augenscheinlich noch nicht. Erst wenn das klappt kann man darüber
nachdenken, dem Rest zu optimieren.
Hallo! Danke schonmal für die Infos. Wie genau MAX die Daten sendet lässt sich so einfach nicht rauskriegen. Scheinbar Byte für Byte. Womit kann ich was anderes ausprobieren? Müsste ich was mit Java programmieren um mehr optionen zur Schnittstellennutzung zu haben? Mit Processing habe ich es auch probiert.. kommt aufs gleiche hinaus. Gruss Bernd
Ich habe mal einen USB-Dongle genommen und ihn in mein MAC gesteckt. Damit geht es hervorragend! Liegt scheinbar an der MAC Hardware..
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.