Arduino-Uno über FirmataVB steuern?

Hallo Community,

ich versuche seit Wochen mit meinem Arduino und installierten FIRMATA-Sketch via VB zu kommunizieren. Ich habe schon viel gelesen und komme irgendwie nicht weiter.
Von vorne:
Ich habe mit ein Steckbrett gekauft und eine easy-Schaltung zusammengesteckt. Arduino, 220 Ohm-Widerstand und LED. Funktioniert mit einem Sketch tadellos.
Dann habe ich den FIRMATA-Sketch aufs Arduino geladen und die Testapplication getestet. Problemlos kann ich mein LED ein und ausschalten.
Jetzt versuche ich mit dem Beispiel-Standard-Firmata Projekt und VB.net 2010 zu Connecten. Der Connect haut auch noch hin. Wenn ich nun die Digi-Out-Pins aktiviere und den Modus auf Output stelle und auf High klicke, passiert nichts. Das on-board-LED meines Arduino-UNOs blinkt zwar rege und zeigt somit Kommunikation mit dem Serial-Port an, das LED bleibt aber aus :~
Wenn ich auf PWM-Modus umstecke, stürzt meine Beispiel-App nach wenigen Sekunden ab. Ich muss dann mein Arduino-Uno vom Strom nehmen.
Was kann ich noch probieren? Wo könnte das Problem liegen. Ich kann einfach über VB keine PINs aktivieren. Im Debug-Mode sieht alles gut aus. Nur mein Arduino macht kein Mucks. Ich dachte über die Beispiel-App kann ich nix falsch machen. Ich hab' ja selbst noch nicht eingegriffen (Meist passieren die Fehler erst dann, wenn man selbst eingreift...)

Vielen Dank für Eure Hilfe und Ideen.
Gruß, Frank.

Hallo Community,

ich habe nun mein Problem umgehen können. Ich habe zwar nach wie vor die FirmataVB-Bibliothek nicht im Griff, habe jedoch herausgefunden, dass die Kommunikation über Seriell echt kein Problem darstellt.
Ich will im Augenblick nur eine einseitige Kommunikation herstellen (VB->Arduino). Dort sollen die Pins 8-12 als Analoge Output-Pins agieren. Mit VB will ich steuern, welcher Pin welchen Wert sendet.

Hier der Sketch:

void setup()
{
// initialize the serial communication:
Serial.begin(9600); //9600

// initialize the ledPins as an output:
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
}

void loop() {
byte pinnumber;
byte brightness;

// check if data has been sent from the computer:
if (Serial.available() >= 2) {
// read the most recent byte (which will be from 0 to 255):
pinnumber = Serial.read();

// immer zwei bytes lesen, ersters für den pin, zweites für den wert
brightness = Serial.peek();

if (pinnumber <= 12 && pinnumber >=8) {
// set the brightness of the LED:
analogWrite(pinnumber, brightness);

}
}
}

Nun zum VB Script:
hier sind die Imports zu Beginn des Scripts wichtig:

Imports System
Imports System.IO.Ports

im Formular habe ich folgende Definition:

Private comPort As New SerialPort()

onLoad habe ich noch den Serial-Port initialisiert:

comPort.BaudRate = 9600
comPort.PortName = "com8"

Dann habe ich mir eine Kummunikaitonsfunktion gebaut:
Public Sub WriteData(ByVal pin As Byte, ByVal msg As Byte)
Dim aryByte(2) As Byte
'erst ggf den port öffnen
If Not (comPort.IsOpen = True) Then
comPort.Open()
End If
'send the message to the port
aryByte(0) = pin
aryByte(1) = msg

comPort.Write(aryByte, 0, 2)

End Sub

Wenn ich nun eine easy-Schaltung auf meinem Steckbreck zusammenzimmere (220 ohm, LED, Arduino PIN 9 und Ground), kann ich mit der VB-Funktion
WriteData(9, 255)
die LED voll zum glimmen bringen. Mit
WriteData(9, 0)
erlischt sie augenblicklich.

Vielleicht hilft es jemanden...

Viele Grüße,
Frank.