31Mar
Platon Project: Platon said that exist a soul and a body in every guy
This is my personal project to develop a robot based in 2 components: A Lego Mindstorms NXT robots which use Java LeJOS and an Android mobile phone to control the whole system.

In this stage of the project, I have updated the set of classes to exchange data between Android-NXT with LeJOS project and I have reused a old thread that I had to manage the bluetooth connection in NXT side. I have divided the project in 2 parts:
- Soul Part [Android]
- Body Part [Lego Mindstorms NXT + LeJOS project]
Note: To make the connection from Android to NXT I used in my first tests an example from Shawn Brown that he tested with Andrid 1.5 and 1.6 when Android OS doesn’t have Bluetooth support and I tested with a Nexus One model (Many thanks Google by the lab developed in Madrid in previous months. They gave me a unit FREE!!!)
In the past, I have tried to manage all systems in the NXT side, but the CPU included in the NXT brick is small in compare to a Nexus One’s model (1Ghz) so the NXT brick manages sensors and actuators and the android phone manages the behaviors.

I did a preliminar video with low quality about the project. The video show a bluetooth connection and how to use a User Interface in Android to manage the physical movements in the NXT robot.
NXT Side [Body]
I suppose that some readers know my work with LeJOS project and NXT Sensors/Actuators. Due to my experience with NXT Systems, I use NXT platform to develop the “Body”. The Body is a classical platfrom with 2 NXT Servos with 2 US Sensors and 1 Compass. With these equipment, it is possible to use a classical navigation system using Odometry calculus and allow the whole project the capabilities to make movements and detect obstables in a basic way.
This year I am teaching a course about robotics in Alcalá de Henares, Spain and currently we are testing Navigation Systems with NXT and Java LeJOS project.
http://www.roboticaenlaescuela.es/blog/2010/03/25/comportamientos-basicos-evita-obstaculos/
With this ideas, I have developed a system which listen a bluetooth connection for an external device (Other NXT brick, A mobile phone, A PC/Laptop or a Android device) which send commands to execute.
A NXT brick is perfect to manage one active bluetooth connection with other subsystems running in “Real time” so If I want to incorporate more subsystems to the project, I have decided to use another CPU in the project, in this case using an Android Mobile Phone.
Previous projects:
RC Car 1 [2008]
http://www.juanantonio.info/jab_cms.php?id=228
RC Car 2 [2009]
http://www.juanantonio.info/jab_cms.php?id=239
Android Side [Soul]
I like so much Android because add new features to NXT brick for example:
- Quality Camera with the possibility to make image processing with OpenCV using Java
- Web Services to exchange data with external services in Internet
- Google Maps
- Massive Storage to save information about the processes
- Accelerometer
For the moment, I know how to exchange data from the Bluetooth Thread to the user interface in Android. I hope to improve the solution little by little and I wait your help in the process
Cheers.
