Seminar Topics & Project Ideas On Computer Science Electronics Electrical Mechanical Engineering Civil MBA Medicine Nursing Science Physics Mathematics Chemistry ppt pdf doc presentation downloads and Abstract

Full Version: Using Android in Industrial Automation
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Using Android in Industrial Automation

[attachment=27361]

Android is built on top of the Linux Kernel. One of Android’s key features is the programmability of its
applications in Java. Due to its well-thought-out Java Software Development Kit and feature set (libraries
for Bluetooth, Speech Recognition, UI, Networking, etc.) it seems much easier and more elegant for a
developer to create an application for Android compared to other embedded operating systems. Moreover
Android features a complete software stack which is desirable in terms of compatibility among processes
and applications.
The target of this report is to enable the reader to see whether or not Android suits his or her requirements
for an embedded solution in Industrial Automation. Furthermore the report will give the reader an idea of
where he or she will spend most effort for implementation, and where to find help (online communities,
Android related projects, . . . ).
Since we used Linux (Ubuntu 9.04) for our development, many parts require the reader to understand
Linux shell commands and/or basics of the Linux root file system. However, every task in this report
can theoretically be accomplished in a Windows development platform in combination with the Cygwin
project 1. Although we advise the reader to work with a Linux distribution, simply due to a larger
community to support him or her with development-environment related issues.
This document contains information about building a spectrum analyzer in Android (version 1.6 code
name ”donut”) on an embedded system using USB to receive samples from an analogue-digital converter
(ADC). To give you a brief overview of what you can expect from the spectrum analyzer we list our key
features here:
 8 Bit A/D conversion at 9,6 kSamples per Second.
 Cypress FX2 development board featuring an USB 2.0 high speed interface
 Beagleboard development platform (Texas Instruments OMAP 3530)
 FFT of variable block size in native C using KISS FFT
 Visualization of the signal and spectrum using Android OpenGL



Platform

1. Android - An open source operating system for mobile devices
In this chapter the reader will find an abstract of what Android is.
2. The Beagleboard - A suitable hardware platform for embedded applications
This chapter aims to introduce the reader to real hardware for embedded applications. Also, we will
show the reader what main aspects we were looking for when choosing an appropriate hardware
platform.
3. The Bootloader - u-boot, the universal open source bootloader
In this chapter the popular boot loader u-boot is discussed. To make the reader familiar with the
purpose of u-boot we explain basic environment variables and hence how to edit them. Furthermore
we show the reader how to create and save boot arguments for the kernel from u-boot.
4. The Linux Kernel - How the kernel relates to Android and the Beagleboard
In this chapter the reader learns what role the kernel plays in hard- and software implementation.
It will introduce the reader further to existing Kernel projects for the Beagleboard and Android.
Moreover it contains criteria for choosing the appropriate Kernel sources for a given application.
5. Android Platform Development - Explaining the source code structure and build process
This chapter introduces the reader to Android development using the official source code. It further
explains the role of certain configuration files and discusses compilation and installation of
Android.
6. Compiling and porting native applications and libraries - Libusb and fxload
Android has powerful libraries for nearly every application in the mobile environment. However,
it may be missing a few libraries often used in embedded systems. One example is libusb which
is a popular USB API with high speed support. This chapter will introduce the reader into porting
frameworks, libraries and Linux applications to Android.
7. Working with the Beagleboard’s Digital Signal Processor (DSP) - How to access the DSP
Much time and effort in this project was spent to access the DSP on the Beagleboard to calculate
the FFT in a fast way. This chapter aims to give the reader a starting point for understanding and
creating DSP applications.


Application

1. The Spectrum Analyzer - Hardware and Software Concepts, Decisions and Limitations
In this chapter the reader will learn about our general processing concept. It will give him or her
an in-depth introduction into our software and hardware concept for the spectrum analyzer. It will
further show accomplishments and limitations of our project.
2. Analogue Front End - The Analogue Digital Converter connected to the FX2 development board
This chapter discusses the hardware front end of our application, where the signal is being sampled.
It further contains a hardware diagram to the ADC circuit and shows the interface to the FX2 microcontroller.
3. The USB Front End - FX2 development board connected to the Beagleboard
The application that runs on the FX2 development board is responsible for collecting samples and
transmitting them to the Beagleboard. This chapter explains concepts and implementation of the
front end application running on the FX2 development board.
4. The USB Host on the Beagleboard - Receiving Samples through USB and passing them to the
Java Application.
The host application uses a native function to collect samples from USB. This chapter introduces
the reader into the powerful USB API and the Java Native Interface (JNI).
5. The Java Application - Processing the samples and displaying them on the screen
To visualise the spectrum of the sampled signal we have created a classic Android Activity. On
the other hand we also created a Service which is continually receiving samples from the underlying
native function. This chapter explains how to create an Android Service and Activity which
communicate with each other through the Binder using Androids Advanced Interface Description
Language (AIDL). Additionally the reader will find the basic concepts of implementing an OpenGL
surface and using it to draw objects.


Bootloader U-Boot
To clarify without going into details: a bootloader is a program that
is automatically loaded at startup, and will in turn start the operating
system. The Beagleboard ships with a ready-to-use u-boot bootloader
on the NAND flash. Also, you can download precompiled bootloaders
for SD/MMC card booting from the Google Beagleboard wiki pages
If you are already familiar with
the u-boot bootloader you can probably skip this chapter.
19