Convertire libreria keypad da arduino a processing

Ragazzi avrei bisogno di scrivere questo codice arduino in processing per poi far si di inserire dei dati su un blocco note.
Il problema e che non sò come convertire la libreria qualcuno può aiutarmi?

//Definisce i pin per comandare le luci
const int rele_1 =  13;      // Luce 1
const int rele_2 =  4;      // Luce 2

// Definizione tastiera

#include <Keypad.h>


const byte ROWS = 4; // Quattro righe
const byte COLS = 4; // Quattro colonne
// Definizione mappa della tastiera
char keys[ROWS][COLS] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
};
byte rowPins[ROWS] = {
  8, 7, 6, 5 }; // Connessione delle righe: Riga0, Riga1, Riga2 e Riga3 ai pins di Arduino.
byte colPins[COLS] = {
  12, 11, 10, 9 }; // Connessione delle colonne: Colonna0, Colonna1 , Colonna2 e Colonna3 ai pins di Arduino. 
Keypad kpd = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); // Creazione della tastiera


void setup() {
  // imposta i pin digitali come uscite:
  pinMode(rele_1, OUTPUT);
  pinMode(rele_2, OUTPUT);  
  digitalWrite(rele_1, HIGH);
  digitalWrite(rele_2, HIGH);
  Serial.begin(9600);
  
}
void loop()
{
  char key = kpd.getKey();
  if(key)  // controlla che il valore sia valido.
  { 
    switch (key) 
    {
   
      case 48: //valore ascii del numero 0
      digitalWrite(rele_1, HIGH);
      Serial.println(0); 
      break;
      case 49: //valore ascii del numero 1
      digitalWrite(rele_1, HIGH);
      Serial.println(1); 
      break;
      case 50: //valore ascii di 2
      digitalWrite(rele_2, HIGH);
      Serial.println(2);
      break;
      case 51: //valore ascii di 3
      digitalWrite(rele_2, HIGH);
      Serial.println(3);
      break;
      case 52: //valore ascii del numero 4
      digitalWrite(rele_1, LOW);
      Serial.println(4); 
      break;
      case 53: //valore ascii del numero 5
      digitalWrite(rele_2, LOW);
      Serial.println(5); 
      break;
      case 54: //valore ascii del numero 6
      digitalWrite(rele_2, LOW);
      Serial.println(6); 
      break;
      case 55: //valore ascii del numero 7
      digitalWrite(rele_2, LOW);
      Serial.println(7); 
      break;
      case 56: //valore ascii del numero 8
      digitalWrite(rele_2, LOW);
      Serial.println(8); 
      break;
      case 57: //valore ascii del numero 9
      digitalWrite(rele_2, LOW);
      Serial.println(9); 
      
      
      break;
      }
      }
    }

il porting del codice tra java e c++ è particolarmente balordo, a prima vista sono simili come linguaggi, ma non lo sono. Devi aprire il file Keypad.h e Keypad.cpp ed esaminare il codice; tutto quello va riscrittto in Java. (processing è una sottospecie di java)

E scusami come converto questo:

/*

#ifndef KEYPAD_H
#define KEYPAD_H

#include "utility/Key.h"

// Arduino versioning.
#if defined(ARDUINO) && ARDUINO >= 100
#include "Arduino.h"
#else
#include "WProgram.h"
#endif

// bperrybap - Thanks for a well reasoned argument and the following macro(s).
// See http://arduino.cc/forum/index.php/topic,142041.msg1069480.html#msg1069480
#ifndef INPUT_PULLUP
#warning "Using  pinMode() INPUT_PULLUP AVR emulation"
#define INPUT_PULLUP 0x2
#define pinMode(_pin, _mode) _mypinMode(_pin, _mode)
#define _mypinMode(_pin, _mode)  \
do {							 \
	if(_mode == INPUT_PULLUP)	 \
		pinMode(_pin, INPUT);	 \
		digitalWrite(_pin, 1);	 \
	if(_mode != INPUT_PULLUP)	 \
		pinMode(_pin, _mode);	 \
}while(0)
#endif


#define OPEN LOW
#define CLOSED HIGH

typedef char KeypadEvent;
typedef unsigned int uint;
typedef unsigned long ulong;

// Made changes according to this post http://arduino.cc/forum/index.php?topic=58337.0
// by Nick Gammon. Thanks for the input Nick. It actually saved 78 bytes for me. :)
typedef struct {
    byte rows;
    byte columns;
} KeypadSize;

#define LIST_MAX 10		// Max number of keys on the active list.
#define MAPSIZE 10		// MAPSIZE is the number of rows (times 16 columns)
#define makeKeymap(x) ((char*)x)


//class Keypad : public Key, public HAL_obj {
class Keypad : public Key {
public:

	Keypad(char *userKeymap, byte *row, byte *col, byte numRows, byte numCols);

	virtual void pin_mode(byte pinNum, byte mode) { pinMode(pinNum, mode); }
	virtual void pin_write(byte pinNum, boolean level) { digitalWrite(pinNum, level); }
	virtual int  pin_read(byte pinNum) { return digitalRead(pinNum); }

	uint bitMap[MAPSIZE];	// 10 row x 16 column array of bits. Except Due which has 32 columns.
	Key key[LIST_MAX];
	unsigned long holdTimer;

	char getKey();
	bool getKeys();
	KeyState getState();
	void begin(char *userKeymap);
	bool isPressed(char keyChar);
	void setDebounceTime(uint);
	void setHoldTime(uint);
	void addEventListener(void (*listener)(char));
	int findInList(char keyChar);
	int findInList(int keyCode);
	char waitForKey();
	bool keyStateChanged();
	byte numKeys();

private:
	unsigned long startTime;
	char *keymap;
    byte *rowPins;
    byte *columnPins;
	KeypadSize sizeKpd;
	uint debounceTime;
	uint holdTime;

	void scanKeys();
	bool updateList();
	void nextKeyState(byte n, boolean button);
	void transitionTo(byte n, KeyState nextState);
	void (*keypadEventListener)(char);
};

#endif

Non devi convertire nulla.
Puoi usare il firmware Firmata e Processing:
http://playground.arduino.cc/interfacing/processing

Ma scusami io come uso la keypad in processing??

ma che vuol dire usare la keypad in proicessing? vuoi usare l'arduino come ponte? allora arduino legge il kepad e invoia a processing (viua Serial) la lettera letta. Ma il codice lo devi scrivere tu.

Oppure vuoi creare una schemrara in processing che simula la keypad?

Io ho un tastierino e grazie al programma scritto in arduino riesco a scrivere in seriale i dati. Il problema è che mi hanno detto che per scrivere i dati su un sito o su un blocco note devo utilizzare processing. Per utilizzare processing devo convertire il codice che ho scritto in arduino in processing ma ho un problema... la libreria keypad che fà parte solo di arduino.
Questo è il mio codice di arduino:

// Definizione tastiera

#include <Keypad.h>


const byte ROWS = 4; // Quattro righe
const byte COLS = 4; // Quattro colonne
// Definizione mappa della tastiera
char keys[ROWS][COLS] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
};
byte rowPins[ROWS] = {
  8, 7, 6, 5 }; // Connessione delle righe: Riga0, Riga1, Riga2 e Riga3 ai pins di Arduino.
byte colPins[COLS] = {
  12, 11, 10, 9 }; // Connessione delle colonne: Colonna0, Colonna1 , Colonna2 e Colonna3 ai pins di Arduino. 
Keypad kpd = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); // Creazione della tastiera


void setup() {
  // imposta i pin digitali come uscite:
  pinMode(rele_1, OUTPUT);
  pinMode(rele_2, OUTPUT);  
  digitalWrite(rele_1, HIGH);
  digitalWrite(rele_2, HIGH);
  Serial.begin(9600);
  
}
void loop()
{
  char key = kpd.getKey();
  if(key)  // controlla che il valore sia valido.
  { 
    switch (key) 
    {
   
      case 48: //valore ascii del numero 0
      digitalWrite(rele_1, HIGH);
      Serial.println(0); 
      break;
      case 49: //valore ascii del numero 1
      digitalWrite(rele_1, HIGH);
      Serial.println(1); 
      break;
      case 50: //valore ascii di 2
      digitalWrite(rele_2, HIGH);
      Serial.println(2);
      break;
      case 51: //valore ascii di 3
      digitalWrite(rele_2, HIGH);
      Serial.println(3);
      break;
      case 52: //valore ascii del numero 4
      digitalWrite(rele_1, LOW);
      Serial.println(4); 
      break;
      case 53: //valore ascii del numero 5
      digitalWrite(rele_2, LOW);
      Serial.println(5); 
      break;
      case 54: //valore ascii del numero 6
      digitalWrite(rele_2, LOW);
      Serial.println(6); 
      break;
      case 55: //valore ascii del numero 7
      digitalWrite(rele_2, LOW);
      Serial.println(7); 
      break;
      case 56: //valore ascii del numero 8
      digitalWrite(rele_2, LOW);
      Serial.println(8); 
      break;
      case 57: //valore ascii del numero 9
      digitalWrite(rele_2, LOW);
      Serial.println(9); 
      
      
      break;
      }
      }
    }

Io ho un sito con cui devo eseguire l'accesso tramite il tastierino.

Non riusciamo a convincerti.
http://forum.arduino.cc/index.php?topic=172706.0

Il computer NON vede le cose collegate ad Arduino. Arduino e PC possono comunicare solo attraverso dei messaggi su seriale.
E NON puoi collegare dei dispositivi digitali tipo il keypad su PC.

Tu su Arduino ti gestisci il dispositivo e mandi delle informazioni al PC su seriale. Lato PC fai un programma in Processing che interpreta quei dati.
Oppure su Arduino metti lo sketch Firmata e da Processing puoi "controllare" l'Arduino come nel link che ti ho postato.

La mia keypad è collegata all'arduino e manda in seriale i dati.Il programma è scritto in arduino non in processing. Fin qui tutto ok.
Io con quei dati devo eseguire l'accesso ad un sito scritto in asp ma non sò come mandare quei dati al sito. Questo è il problema

Quindi la parte Arduino e keypad è fatta. NON devi "portarla" su Processing o in un qualunque linguaggio su PC.

Io con quei dati devo eseguire l'accesso ad un sito scritto in asp ma non sò come mandare quei dati al sito. Questo è il problema
Quindi il problema è lavorare lato PC e con pagine web - asp.
Se qualcuno conosce l'argomento ti aiuterà, ma forse sarebbe più una domanda da forum che si occupa di asp, non credi?
Inoltre lato PC cosa vuoi usare come linguaggio?

Perchè non cominci con il leggere i dati (lato PC) da seriale e visualizzarli, per vedere se il collegamento seriale PC<->Arduino funziona?

Allora qua arduino è tutto funzionante perchè i dati seriali li manda il problema è riceverli con aspx perchè non sò se ce ne sia modo.

Su quello io personalmente non sò aiutarti. Non credo ci siano molti utenti di questo forum che possano aiutarti su aspx.
Molti utenti sono elettronici. Ti converrebbe domandare su un forum di aspx. Domanda come trattare dati ricevuti da seriale su pagine asp/aspx .

Non ho idea se ti possa essere utile; l'ho trovato googlando.
--> http://blackstufflabs.com/2011/10/14/inviare-dati-da-arduino-ad-una-pagina-web-asp-net-4-c/

allora a questo punto devi fare un programma Processing che legga la seriale.

una volta che sei riuscito a leggere i dati, sempre da processing, devi simulare l'invio della form HTML (non importa nulkla che la pagina sia in asp, aspx, php o altro)

come (dovresti) sapere, tu hai una form che fa une GET o una POST di una variabile, facciamo PIPPO che vale 10 e NOME che vale "pappa" sulla pagina input.aspx. in tal caso un esempio di GET:

Client c = new Client(this, "processing.org", 80); // Connect to server www.processing.org on port 80
  c.write("GET /input.aspx?PIPPO=10&nome=pappa HTTP/1.1\r\n"); // Use the HTTP "GET" command to ask for a Web page
  c.write("Host: www.processing.org\n\n"); // Be polite and say who we are 

if (c.available() > 0) { // If there's incoming data from the client...
    data = c.readString(); // ...then grab it and print it
    println(data);
  }

attento che la seconda parte (quella nell'if) è un abbozzo veloce, in realtà dovresti leggere dati finchè non muore la connessione o leggi l'header, che poi ti dice quanti byte e la risposta, e poi finiti gli header leggi quei byte.

edit: @paoloP: lui non vuole leggere la seriale da aspx, ma avere un programma clent che si collega ad una pagina aspx, credo

risolto, ci siamo sentity su skype e quello di cui aveva bisogno era un modo per simulare una tastiera con il keypad.

Ora sta lavorando ad una soluzione che usa Processing per leggere la seriale, e rispedire i caratteri al sistema operativo grazie alla classe Robots, che simula la pressione della tastiera.

Eureka XD XD XD