Go Down

Topic: come far comunicare app windows con arduino uno (Read 1 time) previous topic - next topic

qwertyroby

vorrei fare un app che accenda un led con arduino ma non ho  la scheda wifi per arduino quindi il tramite dovrà essere la normale usb , quindi come faccio a creare un app in grado di cominicare con arduino in c++ ?? avete qualche esempio o tutorial io non saprei proprio come fare ad inviare le informazioni da un app in c++ ad arduino

grazie in anticipo

jack-vc09

non è molto difficile, anzi è più semplice di quanto sembra..il consiglio che ti do è lascia stare c++ e vai su c# troverai molti esempi anche su google..in c# devi utilizzare la seriale e comunicare con la porta com dell'arduino una volta connesso..

nid69ita

#2
Jan 26, 2014, 08:01 pm Last Edit: Jan 27, 2014, 09:32 am by nid69ita Reason: 1
Qualsiasi linguaggio che permetta di usare la seriale. VB, C, C++, C#, Java, Processing, etc.  
Poi il protocollo ovvero i dati che spedisci/ricevi su seriale e che permettono di far dialogare il tuo programma ed Arduino, dipende da te.
Programma su PC e su Arduino devono capire e interpretare i comandi che tu stabilisci.
Esempio il protocollo stabilisce che       L01A   vuol dire L=led  01=numero 1  A=accendi   L01S=spegni il led numero 1.
Arduino deve accendere/spegnere il led giusto in base a questo comando che riceve.

P.S. Processing alla fine è Java
my name is IGOR, not AIGOR

uwefed

La cosa piú semplice é processing e la libreria firmata.
Ciao Uwe

qwertyroby

ok sapreste dove posso trovare un esempio gia fatto cosi da farmi un idea ? , possibilmente in c++ io di solito uso il dev c++ come copilatore va bene ?

nid69ita

Ripeto, qualsiasi linguaggio/IDE che permetta di usare la seriale.

Un esempio ho trovato questo:
http://salilkapur.wordpress.com/2013/03/08/communicating-with-arduino-using-c/
Esempio per Linux perciò il nome della Seriale (vista come un file) è tty...  mentre in Windows è COMxx  dove xx è un numero
my name is IGOR, not AIGOR


qwertyroby

#7
Jan 27, 2014, 11:14 am Last Edit: Jan 27, 2014, 11:19 am by qwertyroby Reason: 1
l'ho compilato correttamente ma nn fa nulla

nid69ita

#8
Jan 27, 2014, 11:20 am Last Edit: Jan 27, 2014, 12:05 pm by nid69ita Reason: 1
Si, a me risulta mancante la sleep, fatta come funzione, cosi:
Code: [Select]
#include <iostream>
#include <time.h>

using namespace std;
time_t now, later;

void sleep(int delay)
{ now=time(NULL);
 later=now+delay;
 while(now<=later)now=time(NULL);
}

int main(int argc, char *argv[])
{
   int data[] = {10,5,13};  //Random data we want to send
   FILE *file;
   file = fopen("COM1","w");  //Opening device file
   int i = 0;
   for(i = 0 ; i < 3 ; i++)
   { printf("Invio numero %d\n",i);
     fprintf(file,"%d",data[i]); //Writing to the file
     fprintf(file,"%c",','); //To separate digits
     sleep(1);
   }
   fclose(file);
   system("PAUSE");   // aspetta pausa
   return EXIT_SUCCESS;
}


In pratica spedisce "10,5,13,"
my name is IGOR, not AIGOR

qwertyroby

#9
Jan 27, 2014, 11:26 am Last Edit: Jan 27, 2014, 11:30 am by qwertyroby Reason: 1
con il tuo listato invia 3 numeri , ma non ho ancora capito cosa ci fa arduino ?
e poi non dovrebbe restituire qualcosa in cambio ?
il tuo listato apre un file com5 ma in quello dell'esempio è ad esempio " /dev/COM5"

nid69ita

Non è che te lo scrivo io il programma.   XD
Hai visto il link in inglese precedente?
Questo codice manda dei dati ad Arduino. Su Arduino ci deve essere caricato lo sketch con il codice di quel link.

I due comunicano, perciò un programma gira su PC (questo) e uno su Arduino e tramite seriale si mandano dei dati.
In questo esempi da PC -> Arduino. 
Per ricevere da PC userai la fread().  Da PC la seriale è come un file.
my name is IGOR, not AIGOR

qwertyroby

io su arduino uno  ho caricato lo sketch del link
e ho letto in quel listato che dovrebbe dare un numero in out nella console di arduino

nid69ita

Hai settato lato PC la seriale giusta?
Code: [Select]
file = fopen("COM1","w");

Qui indico COM1. Arduino su che porta è ?
my name is IGOR, not AIGOR

Ardulink

Anziché sviluppare il colloquio a basso livello, posso consigliare di usare la mia libreria Java Ardulink. In questo modo puoi concentrarti solo su quello che ti serve veramente.

www.ardulink.org

Fammi sapere magari ho anche qualche esempio.


qwertyroby

@nid69ita
mi invia i numeri 0 ,1 ,2 , la mia porta e la com5 e l'avevo gia cambiata nel programma ma nonostante questo arduino nn fa nulla , xk ?

Go Up