Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [Visual C# 2010] - Ricezione stringhe inviate da ARDUINO UNO
Forum - C# / VB.NET - [Visual C# 2010] - Ricezione stringhe inviate da ARDUINO UNO

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
criscap85 (Normal User)
Pro


Messaggi: 99
Iscritto: 29/01/2012

Segnala al moderatore
Postato alle 8:33
Domenica, 29/01/2012
Ciao ragazzi, sono venuto qui perchè sentivo la speranza di un aiuto. Allora io conosco il linguaggio C# ma non ho mai lavorato con la porta USB e ARDUINO UNO. Siccome devo creare un sistema che memorizza nel database (come si memorizza lo so fare benissimo) l'attivazione e la successiva disattivazione delle pompe del riscaldamento a pavimento della nuova casa che:

1) Riceve le stringhe da ARDUINO UNO mediante USB che utilizza la porta COM3 come:

-> P1-1  sta per indicare che la POMPA 1 è stata attivata
-> P1-0  sta per indicare che la POMPA 1 è stata disattivata
-> P2-1  sta per indicare che la POMPA 2 è stata attivata
-> P2-0  sta per indicare che la POMPA 2 è stata disattivata
-> P3-1  sta per indicare che la POMPA 3 è stata attivata
-> P3-0  sta per indicare che la POMPA 3 è stata disattivata

2) Una volta ricevuta la stringa la memorizzo nel db che so come fare.

Fin qui ci siamo:-?

Bene

Io ho implementato il seguente codice in C per arduino (per chi fosse interessato può copiarlo liberamente è open source!!! :k:):

Codice sorgente - presumibilmente C++

  1. /* GESTIONE POMPE ARDUINO */
  2.  
  3. const int input_pompa_1 = 2;
  4. const int input_pompa_2 = 3;
  5. const int input_pompa_3 = 4;
  6. const int led_pompa_1 = LOW;
  7. const int led_pompa_2 = LOW;
  8. const int led_pompa_3 = LOW;
  9.  
  10. int ingresso_precedente1 = 0;
  11. int ingresso_precedente2 = 0;
  12. int ingresso_precedente3 = 0;
  13. int ingresso_attuale1 = 0;
  14. int ingresso_attuale2 = 0;
  15. int ingresso_attuale3 = 0;
  16.  
  17. void setup() {
  18.  
  19.   pinMode(input_pompa_1, INPUT);
  20.   pinMode(input_pompa_2, INPUT);
  21.   pinMode(input_pompa_3, INPUT);
  22.   pinMode(led_pompa_1, OUTPUT);
  23.   pinMode(led_pompa_2, OUTPUT);
  24.   pinMode(led_pompa_3, OUTPUT);
  25.  
  26.   Serial.begin(9600);
  27.  
  28. }
  29.  
  30. void loop() {
  31.  
  32.    if(digitalRead(input_pompa_1) == LOW)
  33.    {
  34.      ingresso_attuale1 = 1;
  35.    }
  36.    else
  37.    {
  38.      ingresso_attuale1 = 0;
  39.    }
  40.    
  41.    if(ingresso_attuale1 != ingresso_precedente1)
  42.    {
  43.      delay(1000);
  44.      if(ingresso_attuale1 == 0)
  45.      {
  46.        Serial.print("P1-0");
  47.      }
  48.      else
  49.      {
  50.        Serial.print("P1-1");
  51.      }
  52.  
  53.      ingresso_precedente1 = ingresso_attuale1;
  54.    }
  55.  
  56.  if(digitalRead(input_pompa_2) == LOW)
  57.    {
  58.      ingresso_attuale2 = 1;
  59.    }
  60.    else
  61.    {
  62.      ingresso_attuale2 = 0;
  63.    }
  64.    
  65.    if(ingresso_attuale2 != ingresso_precedente2)
  66.    {
  67.      delay(1000);
  68.      if(ingresso_attuale2 == 0)
  69.      {
  70.        Serial.print("P2-0");
  71.      }
  72.      else
  73.      
  74.      {
  75.        Serial.print("P2-1");
  76.      }
  77.  
  78.      ingresso_precedente2 = ingresso_attuale2;
  79.    }  
  80.    
  81.    if(digitalRead(input_pompa_3) == LOW)
  82.    {
  83.      ingresso_attuale3 = 1;
  84.    }
  85.    else
  86.    {
  87.      ingresso_attuale3 = 0;
  88.    }
  89.    
  90.    if(ingresso_attuale3 != ingresso_precedente3)
  91.    {
  92.      delay(1000);
  93.      if(ingresso_attuale3 == 0)
  94.      {
  95.        Serial.print("P3-0");
  96.      }
  97.      else
  98.      {
  99.        Serial.print("P3-1");
  100.      }
  101.      
  102.      ingresso_precedente3 = ingresso_attuale3;
  103.    }
  104. }



Voi sareste in grado di indicarmi come leggere dalla USB tramite interfaccia
e visualizzare ogni stringa su tre text box che ciascuna rappresenta la pompa 1, pompa 2, pompa 3:-? :k:

Grazie
In Attesa di una Risposta. :hail:
Cordialmente
Cris

PS: Ho cercato nei forum di arduino ma non ho trovato niente ed è per questo che sono venuto qui :heehee: .

Però per darvi un input ho trovato questo codice che funziona solamente con la console. E quello che vorrei fare è semplicemente trasformarlo in VISUAL C# capito?
Grazie ancora!!! :D

Ultima modifica effettuata da criscap85 il 29/01/2012 alle 8:46


NBM!
PM Quote
Avatar
Snogar (Normal User)
Pro


Messaggi: 130
Iscritto: 09/01/2012

Segnala al moderatore
Postato alle 10:49
Domenica, 29/01/2012
Scusa ma esiste un wrapper per cui puoi utilizzare il C# per riprogrammare arduino???  :-?


PM Quote
Avatar
Thejuster (Member)
Guru^2


Messaggi: 1704
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 11:37
Domenica, 29/01/2012
Esiste NetDuino

http://netduino.com/


PM Quote
Avatar
Qwertj (Dev Team)
Guru


Messaggi: 678
Iscritto: 30/05/2011

Segnala al moderatore
Postato alle 13:23
Domenica, 29/01/2012
Prova a cercare qualcosa sulle SerialPort, anche se credo ci sia da fare qualcosa di particolare per far sentire le USB come seriali.
Comunque, con quella classe lavori a basso livello e riesci a leggere e a scrivere sulla porta che vuoi.


Blog:
<coming soon>
Appalo:
http://www.appalo.it/
PM Quote
Avatar
crybot (Member)
Pro


Messaggi: 115
Iscritto: 13/09/2011

Segnala al moderatore
Postato alle 14:03
Domenica, 29/01/2012
ho appena creato un comunicatore seriale in C#, e` attualmente in certificazione, potrebbe aiutarti nello scopo...
devi solo aspettare ;)

PM Quote
Avatar
criscap85 (Normal User)
Pro


Messaggi: 99
Iscritto: 29/01/2012

Segnala al moderatore
Postato alle 18:14
Domenica, 29/01/2012
Ohi ciao ragazzi! Scusatemi ero alle prese con LabView. Allora che cosa è un wrapper? Netduino non ho voglia di comprarlo. Forse mi sono spiegato male avete presente quel codice che ho trovato in giro? Ecco quello è fatto per l'applicazione da console....è possibile convertirla in VISUAL C# da C#? Ovvero con l'interfaccia? Più chiaro di così non posso essere :D . Cmq grazie delle risposte intanto.


NBM!
PM Quote
Avatar
criscap85 (Normal User)
Pro


Messaggi: 99
Iscritto: 29/01/2012

Segnala al moderatore
Postato alle 18:18
Domenica, 29/01/2012
Ehm manca il codice che non vi ho inserito. Quello che ho inserito nel primo post l'ho fatto io.

Ecco fate riferimento a questo:
http://jtoee.com/2009/02/talking-to-an-arduino-from-net-c/

Grazie :D


NBM!
PM Quote
Avatar
torn24 (Normal User)
Pro


Messaggi: 138
Iscritto: 04/01/2008

Segnala al moderatore
Postato alle 15:43
Lunedì, 30/01/2012
Ciao ,premetto che sono un principiante , ma vorrei dire la mia .
Arduino comunica con la porta seriale , di conseguenza devi creare un programma
che comunichi con tale porta .
In c sharp si può disporre dell controllo serialPort che dispone di metodi
write e read
una volta letti i dati e memorizzati in variabili non è un problema mostrarli in
una textbox !

ti posto un link dove spiega con semplicità come scrivere sulla serialport ,per
leggere rimane invariato userai al posto del metodo write  il metodo read .
http://it.emcelettronica.com/comunicazione-seriale-c


Se si impara dai propri sbagli
non è cosi drammatico  sbagliare !
PM Quote
Avatar
Qwertj (Dev Team)
Guru


Messaggi: 678
Iscritto: 30/05/2011

Segnala al moderatore
Postato alle 17:29
Lunedì, 30/01/2012
Testo quotato

Postato originariamente da torn24:

Ciao ,premetto che sono un principiante , ma vorrei dire la mia .


XD non ti preoccupare che nessuno t'ammazza (se non spari cazzate, ma vedo che non ne spari!)

Testo quotato

Postato originariamente da torn24:
Arduino comunica con la porta seriale , di conseguenza devi creare un programma
che comunichi con tale porta .
In c sharp si può disporre dell controllo serialPort che dispone di metodi
write e read
una volta letti i dati e memorizzati in variabili non è un problema mostrarli in
una textbox !

ti posto un link dove spiega con semplicità come scrivere sulla serialport ,per
leggere rimane invariato userai al posto del metodo write  il metodo read .
http://it.emcelettronica.com/comunicazione-seriale-c


Già detto!


Blog:
<coming soon>
Appalo:
http://www.appalo.it/
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo