Show Posts
Pages: 1 2 [3] 4 5 ... 22
31  International / Hardware / Re: Adattare RaspberryPI ad Arduino per prestazioni migliori on: July 09, 2013, 04:34:38 am
C'è anche il porting di freertos per raspberry
https://github.com/jameswalmsley/RaspberryPi-FreeRTOS
solo che è un po acerbo e ci sono dei grossi problemi con il chip di rete della B, è proprietario e non si trovano informazioni per scrivere i driver.
32  International / Hardware / OT: moduli usb/seriale CP2102 on: July 08, 2013, 11:43:51 am
Un saluto a tutti,
sto provando a gestire in java i segnali di controllo del modulino in oggetto per avere 4 ingressi e due uscite digitali

CTS   IN
DCD   IN
DSR    IN
RI   IN
RTS   OUT
DTR   OUT

ho scritto un programmino per leggere gli ingressi con le librerie JSSC e rxtx ma con osx 10.6.8 non mi legge lo stato delle porte in ingresso, ho provato ad eseguire gli stessi programmi tramite un emulatore windows e lo stato delle porte lo legge.
Il programma che ho usato è questo:

Code:
import jssc.SerialPort;
import jssc.SerialPortException;

public class SerialTest2 {
   public static void main(String[] args) {
       try {
           //String portName = "/dev/tty.SLAB_USBtoUART";
           String portName = "COM6";
           System.out.println("Opening serial port " + portName);
           SerialPort serialPort = new SerialPort(portName);
           try {
               serialPort.openPort();
               serialPort.setParams(SerialPort.BAUDRATE_9600,
                                SerialPort.DATABITS_8,
                                SerialPort.STOPBITS_1,
                                SerialPort.PARITY_NONE);

           serialPort.setFlowControlMode(SerialPort.FLOWCONTROL_NONE);
           Boolean CTS = serialPort.isCTS();
           System.out.print("CTS is: ");
           if (CTS) {
                 System.out.println("True");
           } else {
                 System.out.println("False");
           }
          
           Boolean DSR = serialPort.isDSR();
           System.out.print("DSR is: ");
           if (DSR) {
                 System.out.println("True");
           } else {
                 System.out.println("False");
           }
           Boolean RI = serialPort.isRING();
           System.out.print("RI is: ");
           if (RI) {
                 System.out.println("True");
           } else {
                 System.out.println("False");
           }
          
           while (true) {
                 Thread.sleep(500);
                 Boolean myCTS = serialPort.isCTS();
                 //if ( myCTS != CTS) {
                     if (myCTS == true ) {
                         System.out.println("CTS is: True");
                         CTS = true;
                     } else {
                         System.out.println("CTS is: False");
                         CTS = false;
                     }
                 //}
                
                 Boolean myDSR = serialPort.isDSR();
                 if ( myDSR != DSR) {
                     if (myDSR == true ) {
                         System.out.println("DSR is: True");
                         DSR = true;
                     } else {
                         System.out.println("DSR is: False");
                         DSR = false;
                     }
                 }
                 Boolean myRI = serialPort.isRING();
                 if ( myRI != RI) {
                     if (myRI == true ) {
                         System.out.println("RI is: True");
                         RI = true;
                     } else {
                         System.out.println("RI is: False");
                         RI = false;
                     }
                 }

           }
                           }
            catch (SerialPortException ex) {
                            System.out.println(ex);
            }
       } catch (Exception e) {
           e.printStackTrace();
           System.exit(1);
       }
       System.exit(0);
   }
}

Code:
java -cp .:RXTXcomm.jar SerialTest2

C'è qualcuno che ha il mac e può fare qualche prova?
Grazie.

Alberto
33  International / Software / Re: Websocket http su sd on: July 03, 2013, 07:27:43 am
Se esaurisci i 4 socket quando tenti la connessione con telnet ti rimbalza immediatamente. Per cui il socket del server non risponde più. Nella documentazione della wiz ci sarà scritto come rimbalza il client.
34  International / Software / Re: Websocket http su sd on: July 03, 2013, 04:18:41 am
Caro Lesto, è vero che attualmente il limite di tutte le librerie è dovuto all'implementazione della Ethernet, ho avuto lo stesso problema nell'ardupower, dove devo tenere aperta una connessione telnet al primo client che si autentica e sbattere fuori con un messaggio tutti quelli che si connettono mentre la sessione del primo è ancora attiva, quando la sessione che occupa l'arduino termina devo anche riuscire ad accettare un'eventuale nuova connessione.
Io ho fatto così:
  • Aggiunto al socket una funzione che mi restituisce il numero (da 0 a 4).
  • Ricevo la connessione.
  • Mi salvo il numero del socket.
  • Mi salvo il socket.
  • Controllo che il socket salvato sia sempre aperto, se è chiuso ripristino la sessione se è aperto continuo a ricevere i dati.
  • Continuo a ricevere dati dai vari socket e uso solo quelli che corrispondono al socket che mi interessa, se ricevo connessioni da altri socket le chiudo dopo avere inviato un messaggio.
  • Mi lavoro le stringhe ricevute.
Per realizzare un server websocket purtroppo bisogna fare una cosa simile, e sempre purtroppo si può ascoltare solo un client alla volta, se lo si fa veramente bene se ne possono servire 4 di client ma la vedo difficile non so se basta la memoria.
Se poi insieme al websocket si devono inviare le pagine tramite un webserver normale, bisogna modificare anche tutto il webserver per evitare che monopolizzi i socket....

Per gestire i websocket ci vogliono risorse:
  • socket per gestire le connessioni, e la wiz ne ha solo 4
  • memoria per gestire le sessioni, e l'arduino ne ha poca

Pablos mi aveva già proposto di modificare il wjsonduino con i websocket, ma la vedo difficile, l'approccio pooling è più adatto alla piattaforma:
  • Apro il socket, leggo i dati, magari li scrivo pure, e chiudo il socket rapidamente.
  • Sono pronto a servire altri client.

Con la Due cambia tutto, ma bisognerà pestellare parecchio sulla tastiera per modificare tutte le librerie!
35  International / Software / Re: Websocket http su sd on: July 03, 2013, 03:31:24 am
Le connessioni tcp/ip multiple (in ingresso, arduino è il server, e penso anche in uscita) si possono fare, vedi esempio chat telnet, il problema di solito sono le librerie webserver e altro varie che gestiscono una sola connessione alla volta, dall'inizio alla fine e poi passano alla successiva, sono tutte bloccanti sui socket, in quanto attualmente se non attendi la chiusura del socket prima di vedere se ce ne è uno nuovo che invia dati quando ricevi i dati non sai da quale socket li stai ricevendo.
36  International / Software / Re: Websocket http su sd on: July 02, 2013, 10:28:38 am
Ciao,
nell'ardupower c'è una versione modificata della Ethernet che consente di capire da quale socket si ricevono i dati.
Tutti i problemi che state trovando li ho già visti realizzando l'ardupower qui c'è la richiesta per la modifica della libreria ethernet ufficiale.

Alberto
37  International / Software / Re: Utilizzare Arduino come USB card reader on: July 01, 2013, 05:13:53 am
L'Arduino più indicato è assolutamente il Leonardo, perché puoi cambiare la funzionalità della porta usb da firmware.
Di default è una seriale ma puoi farlo diventare una tastiera un midi ecc. senza dover usare un programmatore esterno.
La Leonardo è stata introdotta apposta per dare queste possibilità.

Alberto
38  International / Software / Re: Websocket http su sd on: June 24, 2013, 10:10:42 am
Per il punto uno puoi provare ad usare due porte diverse per il server.
39  International / Hardware / Re: Ethernet with PoE o Ethernet without PoE on: June 04, 2013, 03:38:42 am
Effettivamente l'opzione poe injector è più economica, ne ho trovati diversi al mercatino dell'usato per cifre irrisorie, vedi http://forum.arduino.cc/index.php?topic=94572.msg714064#msg714064
40  International / Generale / Re: webserver+ android on: May 29, 2013, 08:53:54 am
Il wjsonduino (vedete lnk in firma) versione sd fa proprio quello, tramite la libreria tinywebserver, per ora ho fatto solo una versione per leggere lo stato delle porte, ma penso di farne anche una che può cambiare lo stato delle uscite.
41  International / Generale / Re: webserver+ android on: May 29, 2013, 05:18:16 am
No, con eclipse e android sdk puoi fare una app da caricare sul telefono, poi ti devi fare uno schetch su Arduino per ricevere i comadi della app tramite tcp.
Se l'interfaccia è semplice sconsiglio la creazione di una app, se funziona bene la paginetta html è meglio perchè è multipiattaforma, funziona su pc, android ios e quantaltro, la app per android fatta con eclipse funziona solo sui device android.

Edit: @Guglielmo
Se la pagina si mette su una SD i limiti della memoria di arduino si eliminano, poi rimangono i limiti della piattaforma, se si fa una pagina html da un mega trasferirla dalla sd al client tramite Arduino e shield ethernet diventa problematico...
Proprio per vedere le differenze ho realizzato il wjsonduino in due versioni una su SD e l'altra tutta in memoria, che sono identiche anche nel html.
Ho anche fatto una pagina con un immagine svg che viene modificata tramite le letture delle porte analogiche dell'Arduino e ho dovuto per forza usare la SD, in memoria non c'è stata.
42  International / Generale / Re: webserver+ android on: May 28, 2013, 03:32:01 pm
Ciao,
non capisco la domanda, dici che attualmente il sistema lavora su lan, ma direttamente con arduino e ethernet shield o con webserver su pc e arduino collegato tramite seriale?
43  International / Software / Re: Web server con Jquery 2 uscite e una temperatura on: May 21, 2013, 05:34:06 am
Dunque, nel wjsonduino non ho usato librerie javascript esterne per due motivi:
  • Ridurre i dati da scaricare tramite Arduino, e poter fare una versione che entrasse nel solo Arduino, senza bisogno di usare la SD o appoggiare la libreria su un webserver esterno.
  • Non ho mai avuto voglia di studiarmi le librerie javascript tipo jquery.
ma ho preferito scrivere direttamente del semplice codice ajax nell'html.
Come webserver ho usato il tiny, che ha dei problemi, e ogni tanto si blocca, non ho capito se per problemi interni o per attacchi malevoli.
L'unico consiglio che ti do è, se lo sai fare, non usare librerie esterne, leggiti come funziona XMLHttpRequest e leggi il codice del wjsonduino.
Per modificare il wjsonduino in modo che possa anche modificare le porte e non solo leggerle non ci vuole molto, penso che lo farò al più presto.
Visto che ci siamo faccio anche una domanda, ma qual'è il miglior webserver per arduino, con lettura della pagina da anche da SD?
Ho letto che il tiny ha diversi problemi, e ho anche proposto una patch per dei blocchi.
Ho letto pure che qualcuno ha praticamente riscritto il tinywebserver per renderlo più stabile, ma ha anche rilasciato il codice da qualche parte?

Alberto
44  International / Hardware / Re: Arduino con piedini non attivi eroga corrente? on: May 08, 2013, 11:35:29 am
Ma i transistor sono npn o pnp?
45  International / Software / Re: Ethernet hang on: May 08, 2013, 04:45:17 am
Hai provato a fare qualche prova con delay minori per vedere fino a quanto si può diminuire senza perdere stabilità?
Pages: 1 2 [3] 4 5 ... 22