Pages: [1]   Go Down
Author Topic: Arduino and VB.Net Tastenchecker  (Read 355 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 23
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Münsterland
Online Online
Faraday Member
**
Karma: 48
Posts: 2816
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Den ersten Abschnitt verstehe. Den zweiten überhaupt nicht!

Wie sieht dein Sketch aus?
Logged

Gruß Stefan

Keine Code-Anfrage über die Persönlichen Nachrichten.

Offline Offline
Faraday Member
**
Karma: 128
Posts: 4111
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Forum Moderator
BZ (I)
Online Online
Brattain Member
*****
Karma: 270
Posts: 21850
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 23
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Germany
Offline Offline
Faraday Member
**
Karma: 59
Posts: 3071
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Germany, BW
Offline Offline
Sr. Member
****
Karma: 7
Posts: 311
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Pages: [1]   Go Up
Jump to: