Controlling Lego Mindstorm With A Smartphone Computer Science Essay

Published: Last Edited:

This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.

Abstract-This paper propose the idea of controlling LEGO Mindstorm NXT via Google Android powered by smartphone to solve a Rubik's cube. It starts with the motivation to choose the Android platform since it is based on Java language and contain SDK for developer various applications; and also motivated by LEGO Mindstorm NXT abilities for robotic in Artificial Intelligence. The idea of this can be further develop to various other devices.

Keywords- Google Android; LEGO Mindstorm NXT; Robotic; Bluetooth, Smartphone


In many real-world domains, robotics had taken part in our daily life especially in manufacturing industrial and educational sector. Robotics as referred to the McKerrow(1986), had describes the robot is a machines that can be programmed to do the variety tasks base on command that have programmed by human[18]. Many advantages that robot can do for human such as in the risky task and complicated task that human cannot do.

Perhaps the most dramatic changes in future robots will arise from their increasing ability to reason. The field of artificial intelligence is moving rapidly from university laboratories to practical application in industry, and machines are being developed that can perform cognitive tasks, such as strategic planning and learning from experience.

The robotic platform of choice for this research is the LEGO Mindstorm NXT that controlled by Google Android smartphone in solving a Rubik's cube. LEGO Mindstorm NXT is a robotic kit that came with NXT programmable brick, variety of sensors and motors that was released by LEGO Group in late July 2006[3]. NXT brick is a microprocessor circuit that can be programmed using computer. Users with Bluetooth-enabled computer hardware can transfer their programs to the NXT wirelessly to connect their computer to the NXT for program transfer. The inclusion of Bluetooth technology also extends possibilities for controlling robots remotely, for example, from an iPhone [4].

Moreover, the possibilities of NXT brick also can be integrated by another device for controlling robots remotely,

for example Wiimote. This shows that NXT brick can be controlled by other devices as long as those devices have Bluetooth protocol connection. As the NXT brick seems to use the same Bluetooth protocol connection as the Wiimote, it can establish a communication link between them and then control robots with a Wiimote[5]. Smartphone that powered by Android also have the same technology as a Wiimote where it can be establish the connection between NXT brick and smartphone using Bluetooth connection.

Related work

LEGO Mindstrom NXT with Device

Nowadays, technology can be defined as science applied to practical purposes. With the rapidly evolve of development and research is so impressive, it is easy to think about the advantages of new technology. LEGO Mindstorm NXT, being versatile and yet inexpensive Robotic Invention System (RIS), has proven to be a useful kit for study of robotics as well as other science and technology subject matters. Previous works have recorded success in the use of LEGO Mindstorm NXT as learning tools in education [6][7][8][9][10].

J.Goncales et al. [8] stated that LEGO Mindstorm NXT is a powerful education tool and being used by authors in many activities. Therefore, it can use as modeling of a realistic simulation in order to validate the presented approach a real robot. The simulation will used to compare through a challenge the real robot. Since the LEGO Mindstorm NXT are not expensive compare to the real robot. The author makes good choices using LEGO Mindstorm NXT as modeling of a simulation than using a real robot. Using a real robot as learning tools it would cause a lot of money compared than using a LEGO Mindstorm NXT. Since it still can do function, motion and need programming like a real robot. In the other hand, the cost for one real robot may equal to ten of LEGO Mindstorm NXT. However, using a LEGO Mindstrom NXT as simulation still can't meet the exact requirement as for the real robot. For example the difference between real robots with LEGO Mindstorm NXT is the size, speed and strength. The developer need to do a ratio calculation

Table 1: Difference between android with others os

Android OS

Symbian OS

Palm OS

iPhone OS

Open source

Open source

Similar to Android.

The most powerful and elegant mobile OS

It uses a non-standard Java Virtual Machine called Dalvik

Proprietary operating system for mobile

Based on Mac OS X (which is based on freeBSD)

Language :Java

Language: J2ME and C++.

Utilized standards such as HTML, CSS, and JavaScript.

Language : Objective-C, a super-set of C and C++.

Integrated with Google cloud services such as Gmail

Platform : S60

It's Mojo AJAX framework is based on Dojo

Its multi-touch gesture based navigation system.

Very good edge to monetize mobile ad revenues.

More than mobile OS since it also being developed for Netbooks, ebook readers.

iPhone also has the webkit as well

between real robot and LEGO Mindstorm NXT before used it for realistic simulation.

Taking the advantage of fast advancing and the rapidly growing technology, LEGO Mindstorm NXT also was upgrade. In the olden days, LEGO Mindstorm NXT was controlled manually by human and does not intelligence in many ways. But currently, LEGO Mindstorm NXT has been upgraded with sensors such as touch sensor, ultrasonic, light, sound and communication device like Bluetooth to extend it function and intelligence [11][13]. Not to forget that LEGO Mindstorm NXT can also be controlled by using smartphone powered by Google Android [12]. However, this strategy can only be effective if the performance of the sensors meet the requirements of the robot application.  In particular, it is crucial for the sensors to provide reliable updates on its value to the robot system.

Google Android for Smart Phone

Google Android is a software stack for mobile devices that includes an operating system, middleware, and key applications. One of its features that make it flexible is having an SDK that enable user to make endless imagination come true [12]. The problem that faces most developers nowadays is having the tools to develop applications for mobile platforms. Some mobile platforms may have the potential to be integrated with other hardware but without the tools and the flexibilities, programmers may have limitation with what they can develop especially in robotics programming. As describes by Sharon and

Anderson [14], Google Android has the potential to solve major causes of dissatisfaction that users have with their phones.

Controlling Lego Mindstrom NXT with Android powered by smartphone to solve Rubik's cube

Google Android OS move first step ahead compared others OS when LEGO Mindstorm NXT announce the application than connect Android smartphone with LEGO Mindstorm NXT. The MINDdroid application will allow Google Android smartphone user to get instant access and control LEGO Mindstorm NXT and give the ability to control by flick of a wrist [13]. The MINDdroid app is a remote-control application that allows a wireless communication via Bluetooth connection directly to LEGO Mindstorm NXT. The combination of LEGO Mindstorm NXT with devices such as Google Android smartphone, it also can used to solve variety of problems [15][16][17]. Since it is made on personal purposes, there is no documentation related to this. But it is already proved when LEGO make competition to solve Rubik's cube using Google Android smartphone and LEGO Mindstorm NXT [13].


This section gives motivation of extending Google Android capabilities to control LEGO Mindstorm NXT. Due to its portability and performance that can outrun traditional computing today, it is possible in the future that everything in the world can be controlled by a mobile device. Under this situation, we believe that it all started with Google Android.


Since the release of Google Android, a Linux based operating system for mobile platform; there have been a numbers of projects regarding Google Android, LEGO Mindstorm NXT and how to extend its usage. Since Google have provided the SDK for the developers, more features can be manipulated and further enhanced its capabilities. This is important as it will encourage developers especially among student to develop interesting application and further integrate it with existing device in the market today.


The idea behind this is to give Google Android the ability to control the Lego Mindstorm NXT and perform the steps to solve a problem. In this case we are using Rubik Cube as a problem to be solved. We start by creating a connection between Lego Mindstorm NXT and Google Android. It has been done before by Brown and Holzl [1] where they manage to establish a Bluetooth connection between both devices.

The next step is to acquire the current position of the cube. There are 2 methods that can be use; the first one is manually entered by user while the other method is acquired through built in camera in the Google Android smartphone. We prefer the second methods as it will be more accurate as done by Gilday [2]. The data is then generated in 3 dimensions (3D) and displayed to user. Then, user must place the cube accordingly in the Lego Mindstorm NXT so that it can hold it properly during the movement. The movement is acquired through the touch screen of the device and sent via Bluetooth to the NXT brick.

Lastly the arms of the Lego Mindstorm NXT will move the cube into the desired position based on movement made by user in the Google Android. This step will revolve until the cube is solved. The outcome from this is to enable mobile remote controlling into large devices; in this case we use Lego Mindstorm NXT to manipulate the rubik's cube. This will eventually reduce the usage of man power in a dangerous situation. The usage of mobile device such as Google Android powered smartphone will provides portability and connectivity to the user.

Figure 1 : LEGO Mindstorm NXT holding the Rubik's Cube


This research has a series of interesting goals from the academic to the technical point of view. The research shows that indeed the LEGO Mindstorm NXT and Google Android smartphone as a platform provide for efficient deployment of limited complexity intelligent robotics applications, for it has allowed us to implement and further study about NXT brick where it can give us the privileges both on the type of processing and on the deployment platform. For remote or distributed processing, we can use any smartphone powered by Google Android. As NXT brick enable Bluetooth communication between devices, it is possible to establish connection between these two devices. As for the method that was chosen, using a mobile device allowed us more flexibility. It also show that it is possible for future robotics to keep up with the current technological trends of integrated mobile devices, we can now using Google Android smartphone to control the robot movement. Furthermore a mobile device is smaller and more suitable to be integrated on a robot's chassis or testing environment.