PHP код:
	
import processing.serial.*;   
Serial port;  
int x,y,x1,y1,x2,y2,x3,y3,x4,y4,x5,y5,x6,y6,w1,h1,w6,h6,lock;
PImage bs;     // Все кнопки не нажаты 
PImage dw;     // Все кнопки не нажаты, нажата "DIM" 
PImage dw1;    // Все кнопки не нажаты, нажата "MENU" 
PImage dw2;    // Все кнопки не нажаты, нажата "MUTE" 
PImage dw3;    // Все кнопки не нажаты, нажата "HW/CITY" 
PImage dw4;    // Все кнопки не нажаты, нажата "VOL_UP" 
PImage dw5;    // Все кнопки не нажаты, нажата "VOL_DOWN" 
PImage dw6;    // Все кнопки не нажаты, нажата "ПИТАНИЕ" 
void setup() 
{ 
  port = new Serial(this, "COM5", 115200); // Прописываем COM-порт на котором у вас сидит Carduino 
   
  size(800, 600);//размер окна 
     
  bs = loadImage("BG.jpg");             //загрузить все кнопки ненажатыми 
  dw = loadImage("DIM_down.jpg");       //загрузить изображение с нажатой кнопкой "DIM" 
  dw1 = loadImage("MENU_down.jpg");     //загрузить изображение с нажатой кнопкой "MENU" 
  dw2 = loadImage("MUTE_down.jpg");     //загрузить изображение с нажатой кнопкой "MUTE" 
  dw3 = loadImage("HW_down.jpg");       //загрузить изображение с нажатой кнопкой "HW/CITY" 
  dw4 = loadImage("VOL_UP_down.jpg");   //загрузить изображение с нажатой кнопкой "VOL_UP" 
  dw5 = loadImage("VOL_DOWN_down.jpg"); //загрузить изображение с нажатой кнопкой "VOL_DOWN" 
  dw6 = loadImage("7_down.jpg");        //загрузить изображение с нажатой кнопкой "ПИТАНИЕ" 
  w1 = 140;      // Размер малой кнопки по горизонтали 
  h1 = 50;       // Размер  малой кнопки по вертикали 
  w6 = 100;      // Размер большой кнопки по горизонтали 
  h6 = 90;       // Размер большой кнопки по вертикали 
  x = 17;        // Х начальная координата кнопки "DIM" 
  y = 472;       // y начальная координата кнопки "DIM" 
  x1= 167;       // Х начальная координата кнопки "MENU" 
  y1= 472;       // y начальная координата кнопки "MENU" 
  x2= 321;       // Х начальная координата кнопки "MUTE" 
  y2= 472;       // y начальная координата кнопки "MUTE" 
  x3= 471;       // Х начальная координата кнопки "HW/CITY" 
  y3= 472;       // y начальная координата кнопки "HW/CITY" 
  x4= 170;       // Х начальная координата кнопки "VOL_UP" 
  y4= 395;       // y начальная координата кнопки "VOL_UP" 
  x5= 321;       // Х начальная координата кнопки "VOL_DOWN" 
  y5= 395;       // y начальная координата кнопки "VOL_DOWN" 
  x6= 682;       // Х начальная координата кнопки "ПИТАНИЕ" 
  y6= 435;       // y начальная координата кнопки "ПИТАНИЕ" 
  image(bs,0,0); // Нарисовать в окне все кнопки ненажатыми 
  } 
void draw() 
{   
  if( mousePressed) 
   { 
     // Если кнопка нажата (lock==1) грузим соответствующую картинку, пишем в порт данные и
     // выставляем lock=0 (кнопка без фиксации нажатия)
    
     // Проверка нажатия в области "DIM" 
     if (mousePressed && (mouseX >= x && mouseX <= x + w1 && mouseY >= y && mouseY <= y + h1)) 
     {
     if(lock==1){image(dw, 0, 0);port.write('1');  // Однократная посылка данных в порт
     }
     lock=0;
     }
          
     // Проверка нажатия в области "MENU" 
      if (mouseX >= x1 && mouseX <= x1 + w1 && mouseY >= y1 && mouseY <= y1 + h1) 
     {   
     if(lock==1){image(dw1, 0, 0);port.write('3');  // Однократная посылка данных в порт
     }
     lock=0;
     }
     
     // Проверка нажатия в области "MUTE" 
     if (mouseX >= x2 && mouseX <= x2 + w1 && mouseY >= y2 && mouseY <= y2 + h1) 
     {   
     if(lock==1){image(dw2, 0, 0);port.write('5');  // Однократная посылка данных в порт
     }
     lock=0;
     }  
     
     // Проверка нажатия в области "HW/CITY" 
     if (mouseX >= x3 && mouseX <= x3 + w1 && mouseY >= y3 && mouseY <= y3 + h1) 
     {   
     if(lock==1){image(dw3, 0, 0);port.write('7'); // Однократная посылка данных в порт
     }
     lock=0;   
     }  
     // Проверка нажатия в области "VOL_UP" 
     if (mouseX >= x4 && mouseX <= x4 + w1 && mouseY >= y4 && mouseY <= y4 + h1) 
     { 
      port.write('9');  // Непрерывно шлет данные в порт при нажатой кнопке
     delay (50); 
     if(lock==1){image(dw4, 0, 0);
     }
     lock=0;    
     }  
     // Проверка нажатия в области "VOL_DOWN" 
     if (mouseX >= x5 && mouseX <= x5 + w1 && mouseY >= y5 && mouseY <= y5 + h1) 
     {  
      port.write('b');  // Непрерывно шлет данные в порт при нажатой кнопке
      delay (50);
     if(lock==1){image(dw5, 0, 0);
     }
     lock=0;   
     }  
     // Проверка нажатия в области "ПИТАНИЕ" 
     if (mouseX >= x6 && mouseX <= x6 + w6 && mouseY >= y6 && mouseY <= y6 + h6) 
     {   
     if(lock==1){image(dw6, 0, 0);port.write('d');  // Однократная посылка данных в порт
     }
     lock=0;    
     }  
        
   }
if(!mousePressed){
if(lock==0){image(bs, 0, 0);lock=1;
}
}
   
} 
 Здесь (и в экзешнике!) под Ардуину отведет 5 СОМ. Если у вас иначе - просто поправьте на нужный и перекомпилируйте