Comunicazione Processing Arduino

Sto cercando di realizzare questa applicazione:
Processing genera un numero casuale tra 1 e 10. L’applicazione prevede la digitazione di un numero da parte dell’utente che dovrà cercare di indovinare quello generato. Se il numero è corretto, Arduino accenderà il led verde, altrimenti accenderà un led rosso. Processing tiene traccia delle risposte corrette e non corrette.

Ho provato a scrivere il codice su processing :

import processing.serial.*;

Serial myPort;  // Create object from Serial class

void setup() 
{
  size(200,200); //make our canvas 200 x 200 pixels big
  String portName = Serial.list()[1]; //change the 0 to a 1 or 2 etc. to match your port
  myPort = new Serial(this, portName, 19200);
}

void keyPressed() 
{
  /* Se il numero che viene digitato è tra 1 e 10 viene inviato alla porta seriale. */
  if (key>0 && key<11) {
    myPort.write(key);
    println(key);
  } else {
    println(key);
  }
}

Invece su Arduino ho scritto questo:

 int numeroCasuale;
  int LEDr = 12;
  int LEDv= 2;
  int numero;

void setup() {

  pinMode(LEDr, OUTPUT);
  pinMode(LEDv, OUTPUT);
  Serial.begin(19200);
  randomSeed(analogRead(0));

}

void loop() {
  
  Serial.flush();

  if(Serial.available()) {
    
    numero = Serial.read();
    numeroCasuale = random(1,11);

    if (numero == numeroCasuale) {
      digitalWrite(LEDv, HIGH);
      digitalWrite(LEDr, LOW);
      delay(500);
      
    } else {
      digitalWrite(LEDr, HIGH);
      digitalWrite(LEDv, LOW);
      delay(500);
    }
    delay(500);
  }

}

Il mio problema è che così non va nulla. Inoltre non riesco a realizzare la consegna. Io vorrei cercare di far generare un numero random a Processing, inviarlo ad Arduino, poterne digitare uno su Arduino e vedere se i numeri sono uguali. Ma non so come fare..

Buongiorno e benvenuto sul forum,
prima di tutto, essendo il tuo primo post, nel rispetto del regolamento, ti chiedo cortesemente di presentarti QUI (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con MOLTA attenzione il su citato REGOLAMENTO ...

... poi, in conformità al suddetto regolamento, punto 7, devi editare il tuo post (quindi NON scrivendo un nuovo post, ma utilizzando il bottone More -> Modify che si trova in basso a destra del tuo post) e racchiudere il codice all'interno dei tag CODE (... sono quelli che in edit inserisce il bottone con icona fatta così: </>, tutto a sinistra).

Grazie.

Guglielmo

P.S.: Qui una serie di link utili, NON necessariamente inerenti alla tua domanda:
- serie di schede by xxxPighi per i collegamenti elettronici vari: ABC - Arduino Basic Connections
- pinout delle varie schede by xxxPighi: Pinout
- link generali utili: Link Utili

Grazie delle informazioni, ora mi sono presentato.

ciao NicholasASR,

non vorrei sbagliare ma in processing non è indispensabile il void draw() che sarebbe l'equivalente de void loop() di arduino!?

>NicholasASR: Se la seriale la usi per ricevere il numero che ti manda il PC da Processing ... da dove vuoi digitare il numero da confrontare su Arduno ?

Guglielmo

gpb01:
>NicholasASR: Se la seriale la usi per ricevere il numero che ti manda il PC da Processing ... da dove vuoi digitare il numero da confrontare su Arduno ?

Guglielmo

Io sto cercando un modo per far generare un numero random a Processing inviarlo su Arduino e confrontarlo con un numero digitato da un "utente" su Arduino. Nei codici postati ho provato a fare qualcosa di diverso perché non riesco a realizzare ciò che vorrei..

Si, ma ... ripeto la domanda, l'"utente" su Arduino DOVE digita il codice ? ? ? Pensi di aggiungere una qualche tastiera a membrana ? o da dove ? ? ?

Guglielmo

gpb01:
Si, ma ... ripeto la domanda, l'"utente" su Arduino DOVE digita il codice ? ? ? Pensi di aggiungere una qualche tastiera a membrana ? o da dove ? ? ?

Guglielmo

Non c'è un qualche comando tipo Java che acquisisce quello che digito da una normale tastiera? In pratica dovrei avere una tastiera che si collega alla scheda di Arduino? In tal caso ti ringrazierei molto se potessi darmi un'alternativa di codice allora.. magari posso far generare numeri random sia a processing che ad arduino e confrontarli? Però non so come si generano numeri random su processing..

NI ... ovvero, di base NON puoi collegare una tastiera ad Arduno, ma ... esiste una libreria che gestisce i segnali delle tastiere PS2, quindi, teoricamente, potresti collegare una tastiera PS2 a due pin di Arduno e ricevere i codici dei vari tasti (... che dovrai decodificare) ... guarda QUI.

Guglielmo

gpb01:
NI ... ovvero, di base NON puoi collegare una tastiera ad Arduno, ma ... esiste una libreria che gestisce i segnali delle tastiere PS2, quindi, teoricamente, potresti collegare una tastiera PS2 a due pin di Arduno e ricevere i codici dei vari tasti (... che dovrai decodificare) ... guarda QUI.

Guglielmo

Ok tralasciando il fatto della tastiera PS2 che non ho.. come potrei risolvere il problema? Cioè come faccio a generare numeri random da ambo le parti e confrontarli?