Emparejando el equipo

Para comenzar a desarrollar lo primero que tenemos que realizar es emparejar el bluetooth con nuestra pc
mano java
Por lo regular la contraseña es 1234
mano java
Selecionamos Mas opciones de bluetooth aparece una ventana y selecionamos la pestaña que dice Puertos COM esto sacar el puerto por donde nos vamos a conectar en java.
mano java
En mi caso es el puerto COM8
mano java
Descargamos el driver RXTX para poder conectarnos con arduino lo hay para 32 y 64 bits dependiendo de tus necesidades
Este es el sitio
mano java
En mi caso es para 64 bits
mano java
Descargamos y descomprimimos y hacemos lo siguiente:
mano java

Eclipse

Una vez ya instalado nuestros drivers procedemos a abrir nuestro eclipse.
Abrimos nuestro IDE eclipse y seleccionamos en File->New->Maven Project
clean service
Seleccionamos en Create a simple project y presionamos Next
Login Test
LLenamos los siguientes campos y presionamos Finish: mano java
En el archivo pom.xml escribimos lo siguiente:
 
  
  
  
  <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.tutosoftware.manobluetooth</groupId>
  <artifactId>manobluetooth</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>Mano Bluetooth</name>
  <repositories>
		<repository>
		    <id>jitpack.io</id>
		    <url>https://jitpack.io</url>
		</repository>
	</repositories>
  
  <dependencies> 
  <dependency>
  <groupId>com.github.PanamaHitek</groupId>
  <artifactId>PanamaHitek_Arduino</artifactId>
  <version>3.0.4</version>
  
  </dependency>
  
  </dependencies>
  
</project>
  
  
  
  
  
  
     
  
  

Lo que sigue es que vamos a colocar una imagen a nuestra aplicación creamos el paquete com.tutosoftware.manobluetooth.image
mano java
La imagen que pegamos en ese paquete es la siguiente:
Creamos el siguiente paquete com.tutosoftware.manobluetooth.app
Primero creamos la clase ManoPanel que es escritorio de nuestra imagen
 
  
  
  
  package com.tutosoftware.manobluetooth.app;

import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Graphics;

import javax.swing.ImageIcon;
import javax.swing.JPanel;

public class ManoPanel extends JPanel{
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	public ManoPanel(FlowLayout flowLayout) {
		this.setSize(900,700);
	}
	
	 @Override
	 public void paintComponent(Graphics g) {
	  Dimension tamanio = getSize();
	  ImageIcon imagenFondo = new ImageIcon(getClass().getResource("/com/tutosoftware/manobluetooth/image/mano.jpg"));
	  g.drawImage(imagenFondo.getImage(), 0, 0, tamanio.width, tamanio.height, null);
	  setOpaque(false);
	  super.paintComponent(g);
	 }
	
	
	

}
  
  
  
  
     
  
  

La segunda clase es la que contine los botones y la conexion a arduino la vamos a llamar ManoWindow
 
  
  
  
  package com.tutosoftware.manobluetooth.app;


import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.logging.Level;
import java.util.logging.Logger;

import com.panamahitek.PanamaHitek_Arduino;

import javax.swing.JButton;
import javax.swing.JFrame;


public class ManoWindow extends JFrame{
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	PanamaHitek_Arduino arduino = new PanamaHitek_Arduino();

	public ManoWindow() {
		
		
		
		  
		 initComponents();
		 try {
		        arduino.arduinoTX("COM8", 9600);
		        } catch (Exception ex) {
		            Logger.getLogger(Window.class.getName()).log(Level.SEVERE, null, ex);
		        }
		  
	}
	
	
	private void initComponents() {
		
		  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		  setBounds(100, 100, 450, 300);
		  setTitle("Tutosoftware  Mano Bluetooth  Arduino");
		  ManoPanel p = new ManoPanel(new FlowLayout(FlowLayout.LEFT));
		  
		  
          JButton botonUno = new JButton();
		  botonUno.setForeground(Color.WHITE);
		  botonUno.setFocusPainted(false);
		  botonUno.setBorderPainted(true);
		  botonUno.setContentAreaFilled(false);
		  botonUno.setText("1");
		  botonUno.addActionListener(new ActionListener() {
			  
			  public void actionPerformed(ActionEvent evt) {
				  botonUnoActionPerformed(evt);
			  }
			  
		  });
		  
		  
		  JButton botonDos = new JButton();
          botonDos.setForeground(Color.WHITE);
          botonDos.setFocusPainted(false);
		  botonDos.setBorderPainted(true);
		  botonDos.setContentAreaFilled(false);
		  botonDos.setText("2");
		  
          botonDos.addActionListener(new ActionListener() {
			  
			  public void actionPerformed(ActionEvent evt) {
				  botonDosActionPerformed(evt);
			  }
			  
		  });
		  
		  JButton botonTres = new JButton();
		  botonTres.setForeground(Color.WHITE);
		  botonTres.setFocusPainted(false);
		  botonTres.setBorderPainted(true);
		  botonTres.setContentAreaFilled(false);
		  botonTres.setText("3");
		  
          botonTres.addActionListener(new ActionListener() {
			  
			  public void actionPerformed(ActionEvent evt) {
				  botonTresActionPerformed(evt);
			  }
			  
		  });
		  
		  JButton botonCuatro = new JButton();
		  botonCuatro.setForeground(Color.WHITE);
		  botonCuatro.setFocusPainted(false);
		  botonCuatro.setBorderPainted(true);
		  botonCuatro.setContentAreaFilled(false);
		  botonCuatro.setText("4");
		  
          botonCuatro.addActionListener(new ActionListener() {
			  
			  public void actionPerformed(ActionEvent evt) {
				  botonCuatroActionPerformed(evt);
			  }
			  
		  });
		  
		  JButton botonAbrir = new JButton();
		  botonAbrir.setForeground(Color.WHITE);
		  botonAbrir.setFocusPainted(false);
		  botonAbrir.setBorderPainted(true);
		  botonAbrir.setContentAreaFilled(false);
		  botonAbrir.setText("Abrir mano");
		  
          botonAbrir.addActionListener(new ActionListener() {
			  
			  public void actionPerformed(ActionEvent evt) {
				  botonAbrirActionPerformed(evt);
			  }
			  
		  });
		  
		  JButton botonCerrar = new JButton();
		  botonCerrar.setForeground(Color.WHITE);
		  botonCerrar.setFocusPainted(false);
		  botonCerrar.setBorderPainted(true);
		  botonCerrar.setContentAreaFilled(false);
		  botonCerrar.setText("Cerrar mano");
		  
          botonCerrar.addActionListener(new ActionListener() {
			  
			  public void actionPerformed(ActionEvent evt) {
				  botonCerrarActionPerformed(evt);
			  }
			  
		  });
		  
		  JButton botonPaz = new JButton();
		  botonPaz.setForeground(Color.WHITE);
		  botonPaz.setFocusPainted(false);
		  botonPaz.setBorderPainted(true);
		  botonPaz.setContentAreaFilled(false);
		  botonPaz.setText("Paz y amor");
		  
          botonPaz.addActionListener(new ActionListener() {
			  
			  public void actionPerformed(ActionEvent evt) {
				  botonPazActionPerformed(evt);
			  }
			  
		  });
		  
		  JButton botonOk = new JButton();
		  botonOk.setForeground(Color.WHITE);
		  botonOk.setFocusPainted(false);
		  botonOk.setBorderPainted(true);
		  botonOk.setContentAreaFilled(false);
		  botonOk.setText("OK");
		  
          botonOk.addActionListener(new ActionListener() {
			  
			  public void actionPerformed(ActionEvent evt) {
				  botonOkActionPerformed(evt);
			  }
			  
		  });
		  
		  JButton botonSaludo = new JButton();
		  botonSaludo.setForeground(Color.WHITE);
		  botonSaludo.setFocusPainted(false);
		  botonSaludo.setBorderPainted(true);
		  botonSaludo.setContentAreaFilled(false);
		  botonSaludo.setText("Saludo");
		  
		  
          botonSaludo.addActionListener(new ActionListener() {
			  
			  public void actionPerformed(ActionEvent evt) {
				  botonSaludoActionPerformed(evt);
			  }
			  
		  });
		  
		  
		  
		  
		  p.add(botonUno);
		  p.add(botonDos);
		  p.add(botonTres);
		  p.add(botonCuatro);
		  p.add(botonAbrir);
		  p.add(botonCerrar);
		  p.add(botonPaz);
		  p.add(botonOk);
		  p.add(botonSaludo);
		  
		  
		  
		  setContentPane(p);
		  setVisible(true);
		  
		  
		  
		  
		  
		  
		  
		
	}
	
	private void botonUnoActionPerformed(ActionEvent e) {
		try {
			arduino.sendData("1");
			
		}catch(Exception ex) {
			
			Logger.getLogger(Window.class.getName()).log(Level.SEVERE, null, ex);
			
		}
	}
	
	private void botonDosActionPerformed(ActionEvent e) {
		try {
			arduino.sendData("2");
			
		}catch(Exception ex) {
			
			Logger.getLogger(Window.class.getName()).log(Level.SEVERE, null, ex);
			
		}
	}
	
	private void botonTresActionPerformed(ActionEvent e) {
		try {
			arduino.sendData("3");
			
		}catch(Exception ex) {
			
			Logger.getLogger(Window.class.getName()).log(Level.SEVERE, null, ex);
			
		}
	}
	
	private void botonCuatroActionPerformed(ActionEvent e) {
		try {
			arduino.sendData("5");
			
		}catch(Exception ex) {
			
			Logger.getLogger(Window.class.getName()).log(Level.SEVERE, null, ex);
			
		}
	}
	
	private void botonAbrirActionPerformed(ActionEvent e) {
		try {
			arduino.sendData("a");
			
		}catch(Exception ex) {
			
			Logger.getLogger(Window.class.getName()).log(Level.SEVERE, null, ex);
			
		}
	}
	
	private void botonCerrarActionPerformed(ActionEvent e) {
		try {
			arduino.sendData("b");
			
		}catch(Exception ex) {
			
			Logger.getLogger(Window.class.getName()).log(Level.SEVERE, null, ex);
			
		}
	}
	
	private void botonPazActionPerformed(ActionEvent e) {
		try {
			arduino.sendData("c");
			
		}catch(Exception ex) {
			
			Logger.getLogger(Window.class.getName()).log(Level.SEVERE, null, ex);
			
		}
	}
	
	private void botonOkActionPerformed(ActionEvent e) {
		try {
			arduino.sendData("d");
			
		}catch(Exception ex) {
			
			Logger.getLogger(Window.class.getName()).log(Level.SEVERE, null, ex);
			
		}
	}
	
	private void botonSaludoActionPerformed(ActionEvent e) {
		try {
			arduino.sendData("e");
			
		}catch(Exception ex) {
			
			Logger.getLogger(Window.class.getName()).log(Level.SEVERE, null, ex);
			
		}
	}

}
  
  
  
  
  
    
  
  

Ahora creamos nuestra clase principal la vamos a llamar ManoBluetooth
  
  
  package com.tutosoftware.manobluetooth.app;

public class ManoBluetooth {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		ManoWindow ventana = new ManoWindow();
		
		ventana.setVisible(true);
		

	}

}
  
  
  
  
    
  
  

Ejecutamos la aplicación

Falla un poco la parte mecánica te dejo de tarea que lo soluciones tal vez el arduino.





Conclusión

Gracias a la librería de panama es muy fácil conectar java con arduino y no olvidar instalar los driver como podemos ver con este ejercicio ya cumplimos el alcance de proyecto que se propuso en android ya conectamos de manera móvil y ahora desde la pc, esta libería sirve para realizar proyectos mas complejos esto se puede decir que es solo el principio espero que sirva este ejemplo como ayuda no explico el código te invito a que realices paso a paso el procedimiento para vayas buscando en la web para que sirve cada paso que damos y estas practicas que estoy realizando son desde el punto de vista de un ingeniero en sistemas que se dedica al desarrollo de software pero si estas en mecatronica,informática, etc.. tal vez te sirva como ayuda y puedas mejorar los ejemplos que voy exponiendo voy a subir el proyecto github si tienes dudas puedes mardar un correo a kapo1978@hotmail.com y nos vemos en el último ejemplo de la saga de la mano robótica que es o se intenta realizar la manipulación desde c# para programadores .net .

Código

El código lo puedes descargar de:
Los ejemplos anteriores de la saga son: