Go Down

Topic: Arduino and VB.Net Tastenchecker (Read 411 times) previous topic - next topic

LordN1kon

Hi Leute,

folgendes ist mein Projekt und zwar würde ich gerne ein paar Taster an den Arduino hängen und sobald einer der Knöpfe gedrückt wird erkennt dies eine VB.Net Software und führt dann entsprechende Aktionen aus und dann wartet sowohl die Applikation als auch der Arduino wieder auf einen weiteren Tastendruck.
ich habe nun schon eine menge gegoogelt und auch eine Menge gefunden aber nichts mit dem ich richtig glücklich wäre.


Mein Erfolg ist leider bis jetzt Bescheiden, neben es ist nicht das Problem soweit ich es sehe ein Signal vom Arduino an den PC zu Senden das klappt ja mit Serial.print ganz gut aber in VB.Net klappt fast gar nichts. Ich habe zwar geschafft das Signal auszulesen nur lege ich damit die ganze Applikation lahm (obwohl das signal sogar ankommt)

Kennt jemand ein gutes Tutorial für dieses Projekt?

thx

sschultewolter

Den ersten Abschnitt verstehe. Den zweiten überhaupt nicht!

Wie sieht dein Sketch aus?
Keinen technischen Support über PN!

Serenifly

Wie liest du den die serielle Schnittstelle in .NET aus? Normalerweise nimmt man dafür den Serial DataReceived Event Handler:
http://msdn.microsoft.com/en-us/library/system.io.ports.serialport.datareceived.aspx

Da sollte nichts blockieren. Du musst nur beachten, dass du wenn du daraus auf das GUI Thread zugreifen willst, die entsprechende Methode über einen Delegate und Invoke aufzurufen.

uwefed

Da die Arduino-Seite funktioniert ist Dein Problem wie etwas von der seriellen Schnittstelle empfangen und dementsprechend etwas auszuführen.
Ist da nicht ein VB.net Forum besser geeignet um Antworten zu bekommen?
Grüße Uwe

LordN1kon

Natürlich ist ein VB.Net Forums eintrag auch nicht verkehrt aber ich dachte ich starte meine Frage hier.
Ich habe aber auch nach einem Tutorial gefragt um sich alles zu erarbeiten.

Ich habe im Moment keine große Sketch gebaut, lediglich ein Serial.println im Sekundenabstand von einem sich ändernden String.
Im SerialMonitor sehe ich auch den String und somit denke ich das hier eigentlich alles nicht so falsch ist.
In weiterer folge will ich einfach alle geplanten Pins abfragen und aus dem Ergebnis einen String bauen den ich über den Serial sende und dann im VB.Net verarbeite.
Nun frage ich mich ob ich hier schon einen Fehler im gedankenbau habe oder ob es tatsächlich nur an meinem Verständnis der Seriellen Schnittstellen und die Verbindung zu VB.Net liegt.

michael_x

Auf der Arduino Seite brauchst du etwas, das bei jedem Tastendruck-Wechsel  etwas einfach dekodierbares auf die Serielle Schnittstelle schreibt:
Z.B. eine Zeile aus 20 Nullen oder Einsen und einem newline Zeichen, für den aktuellen Zustand aller zwanzig UNO-Pins.
-- Entprellen einfach mit einem zusätzlichen delay(5) bei jedem Wechsel / Serial.print. Du willst ja nur Taster-Änderungen mitkriegen.
Das ist dann sehr leicht mit dem SerialMonitor zu testen.

Im einfachsten VB-Fall speicherst du das im DataReceived Event Handler in eine globale Variable
und hast im Haupt-Thread noch einen Timer, der dir alle x msec dieses Ergebnis anzeigt.
( Problem: Arduino sendet Text als 1 byte chars und .net Strings sind aus Unicode (min. 2 byte je Zeichen) zusammengesetzt)
Entwender den .net String bilden und in einem Label anzeigen, oder 20 grafische Elemente entsprechend anzeigen.

Dann hast du eine Basis für Erweiterungen
(und/oder dich mit Delegate und Invoke zu beschäftigen)
Mal geraten, dass du in VB.Net noch nicht so der Experte bist, und dich das erstmal abgeschreckt hat.

mde110

Schick mir mal das VB Projekt. Ich schau es mal an...

Go Up