Dell AXIM X50 PDA User Interface with Data Acquisition

advertisement
Dell AXIM X50 PDA User Interface with Data Acquisition
Patrick Bowles
CEN 3213
Professor Janusz Zalewski
Florida Gulf Coast University
October 6, 2008
1
1. Introduction
“Data acquisition is the sampling of the real world to generate data that can be
manipulated by a computer. Sometimes abbreviated DAQ or DAS, data acquisition
typically involves acquisition of signals and waveforms and processing the signals to
obtain desired information. The components of data acquisition systems include
appropriate sensors that convert any measurement parameter to an electrical signal, which
is acquired by data acquisition hardware” (wiki, 1).
There are many different companies on the market, dealing with just this kind of
technology. In this project we will be dealing exclusively with the process of PDA data
acquisition. There are several companies that work on these technologies. For example
National Instruments has several different systems that deal with data acquisition. The
CF-6004 is the data acquisition device that we will be using to implement this project.
Another device from National Instruments is the DAQCard-6024E which has more
functionality than others but is more expensive and almost twice the size. We are using
the CF-6004 because we have a Dell Axiom X50 PDA that has a Compact Flash slot so
the CF-6004 will be prefect for our need or our hardware.
Figure1 (ni.com)
Another type of Data Acquisition System is FPGA (field programmable gate
array). An FPGA is a semiconductor device containing programmable logic components
2
called "logic blocks", and programmable interconnects. Logic blocks can be programmed
to perform the function of basic logic gates such as AND, and XOR, or more complex
combinational functions such as decoders or mathematical functions. In most FPGAs, the
logic blocks also include memory elements, which may be simple flip-flops or more
complete blocks of memory. An example of an FPGA is a ZestSC2 which is a high
performance desktop USB board.
Figure2
There are also PCI Data Acquisition boards available however they are not portable due
to the fact that they are connected to a desktop PC. On the plus side there built for high
speed and high resolution not portability.
2. Hardware and Software Description
2.1 Device Description
PDA Hardware: This device has multiple uses, more than I’m willing to list. In
today’s day and age having a device that can do various jobs is not just a benefit, it’s a
necessity. The most useful purpose of such a device is the ability to connect to external
3
devices in the field for the purpose of data acquisition dealing with sensors for example.
After some research this Dell Axim X50 PDA is, when released, on the top of a very
short list. The specifications on this PDA model are listed in Table 2.1 and Pictures in
Figure 2.
Dell Axim X50
Figure 3 (Wikipedia 4, and cnet.com, 3)
4
Dell Axim X50
Installed RAM
64MB SDRAM
Installed ROM
128MB
Processor
Intel 520 MHz XScale
Input device type
Stylus, Touch screen, 5-way navigation button
Digital audio standards supported
MP3, WMA
Audio input type
Built in Microphone
Audio output type
Built in Speakers
Voice recording capability
Yes
Display type
3.5 in TFT active matrix
Color support
16-bit(64K colors)
Max resolution
240x320
Wireless connectivity
Wi-Fi, Bluetooth, IEEE 802.11b
Battery Type
1100mAh Lithium Ion
Operating System
Windows Mobile Edition 2003 Second Edition
Storage Card
SD Memory Card, Compact Flash Card Type II
Table 2.1(Brighthand, 2)
5
“The Axim X50 features a bright 3.5" QVGA display with a 320x240 resolution, and
includes the power and storage capacity to handle work and multimedia applications. The
X50 handheld has a sleek and stylish design with CF and SDIO
expansion slots for connecting scanners, GPS systems, network cards and modems. The
X50 is powered by the next-generation Intel PXA270 processor that provides technology
to help extend battery life and deliver enhanced multimedia performance. Featuring
Microsoft Windows MobileTM 2003 Second Edition software for Pocket PCs with
familiar applications like Word, Excel and Internet Explorer, you can stay productive
while you are away from your home or office on the go. Thanks to the standard 1100
mAh battery, Bluetooth and optional Wi-Fi you can stay both productive and connected
all day long.”(Brighthand, 2)
2.2 Other Hardware Description
NI CF-6004 CompactFlash Data Acquisition for PDAs is designed to be
lightweight and ultra portable specifically for mobile application. Some practical
applications are Biomedical/wearable computing, field monitoring/ diagnostics, and
portable data logging and analysis. Measuring less than 16 cm^2, slightly larger than a
standard postage stamp, the National Instruments CF-6004 is a tiny, yet powerful
platform for handheld measurements. With 14-bit resolution and up to 132 kS/s aggregate
sampling on four analog input channels, the NI CF-6004 packs full measurement
functionality into a Type II CompactFlash slot, available on many PDAs. The NI CF6004 is ideal for many portable applications, from consolidation of multiple handheld
6
instruments to custom handheld measurement, analysis, and communication. The
following block diagram shows key functional components of the CF-6004.
Figure 4
A couple other pieces of hardware are the connector cable NI SH-15-15 Shielded Cable
with D-sub Connector and the NI SCB-15 Shielded Compact Connector Block (DB-15
adapter) which is what will be connected to the battery pack, in order to get a voltage
reading. Below is a table of the terminal assignments for the DB-15.
7
Figure 5
2.3 Programming the PDA
A number of programming methods are available to be implemented on the X50,
however the CF-6004 requires the use of LabVIEW (will be discussed later). At the very
beginning of this project I was under the impression that Java would work for this
project.
2.3.1 JAVA Programming
Ok the first step was just to familiarize myself with the device. Understand how it
works and how to install and run programs. The program I’ve been using is Mysaifu.
Mysaifu is a Java Virtual Machine which runs on Windows Mobile 2003. So that being
8
said we need to download the file JVM.Release.CAB 10.7MB (Mysaifu, 5) from the
website: http://sourceforge.jp/projects/mysaifujvm/files/?release_id=29215#29215
To your local Computer then with a program call Microsoft ActiveSync witch should be
installed from the CD we received with the Dell Axim X50 PDA. ActiveSync is a File
transfer program that will allow you to transfer anything from you computer to the PDA.
Just like an external drive just drag and drop what you want on the PDA and ActiveSync
will automatically send it to the PDA. Ok so sent the JVM CAB file to the PDA then
simply tap the file and the Mysaifu JVM will do the rest. Before we can run a java
program on the PDA we need to create the java program first then, after compiling it we
must send the class file to the PDA and any other files that goes with the class file (there
may be more than one file) and make sure that you put it in my Documents on the PDA
because that is were the program (Mysaifu) looks for these file by default. If you choose
to use another location for you class file simply select the “Options…” button shown in
Figure 8 and the in the window shown in Figure 9 go down to current directory and tap
the Browse button then select your directory then the program should be ready to run.
After installing the program go to Programs folder as seen in Figure7 and open
the JVM as seen in Figure 8. You will see that by default the type of file is Class so all
you have to do is enter the name of the class file in the name text box and select Show
console if you are displaying something on the console. Then press “execute” to run the
program. I’ve had mixed success with the JVM and have not yet cleared all the bugs.
However on nice feature with Mysaifu JVM is that it keeps a “Recent list” or in other
words a list of recently ran programs. Success of a simple hello world program the code
is below:
9
package helloworld;
public class HelloWorld {
public HelloWorld(){
System.out.println("HelloWorld");
}
public static void main(String[]arg){
HelloWorld HW = new HelloWorld();
}
}
Figure 6
Figure 7
Figure 8
10
Figure 9
However after a little research it was discovered that using Java will not be possible. Due
to software requirements with the CF-6004 we’re forced to use LabVIEW to build our
applications.
2.3.2 LabVIEW Introduction
NI LabVIEW is short for Laboratory Virtual Instrument Engineering Workbench,
and is an intuitive graphical programming language for engineers and scientists, that have
high level tools and configuration utilities that are designed for real world data.
“LabVIEW is a platform and development environment for visual programming. The
LabVIEW program has two windows the front panel and the block diagram. LabVIEW is
commonly used for data acquisition, instrument control, and industrial automation on a
variety of Operating Systems.” (7. Wiki) The graphical language is named “G” originally
released for Apple Macintosh in 1986.
11
The block diagram is where the programmer develops the graphical code. The
flow of data determines the execution of the program. The Front panel is where the
programmer creates the graphical user interface with you can customize object like
graphs, knobs, and buttons. Below you will see an example program, this is the code of
the program, notice that there are no lines of code in this example which greatly reduces
the risk of syntax errors.
Figure 10
In the front panel simply drag and drop the components that apply to the current
project then you have to switch to the block panel. In the block panel the components
have to be connected to other function icon using a wiring tool. After you create the
program and have all the correct connection then you hit the go button and the LabVIEW
software will compile and run the program. On the PDA LabVIEW actually installs an
exe file for you to run.
2.3.3 LabVIEW Install and Programming
12
In this project the software version used is LabVIEW 8.2(20th Anniversary edition).
There are six disks required for everything to work, and three files that have to be
downloaded from National Instruments website.

Professional Development System for Windows

Device Drives disk (there are three disk for this step)

NI DAQmx Base 2.2

PDA Module for Pocket PC (Windows Mobile 2003 Se)
Download from www.ni.com.

Microsoft Web Site: Embedded Visual C++4.0

Microsoft Web Site: Embedded Visual C++4.0 SP4

Microsoft Web Site: SDK for Windows Mobile 2003-based Pocket PCs
On a PC with Windows XP it took a little over two gigs of space on the hard drive for the
software to be loaded. Before a LabVIEW program can run on the PDA the drives have
to be installed on the PDA. To do this, make sure Microsoft ActiveSync is installed and
working on the host computer, and that the PDA is in the cradle and the USB plug is
connected to the host computer. Then go to: Start>>Programs>>National
Instruments>>NI-DAQmx Base>> Windows Mobile and CE Driver Installation.
Now everything is ready to start developing the LabVIEW programs. Now open the
LabVIEW software by: Start>>Programs>>National Instrument LabVIEW 8.2.1 after it
13
loads the start window will appear (figure 11).
Figure 11
Then select the type of project or VI (Virtual Instrument) to create, circled in red in
Figure11, after making the selection the front and back panel will appear along with the
project explorer, and now every thing is ready to start making the VI Figure12.
Figure12
14
Below are the control palette (figure 13) used for controls on the front panel and
the Functions palette (Figure 14) used on the block diagram to manipulate the data. All of
these are just drag and drop icons that have to be wired to one another to make working
programs.
Figure 13
Figure 14
15
3.1 Problem Description
In this project the goal is to write software to connect to a battery pack to the PDA
through the CF-6004 and read the voltage from the battery pack to product a waveform
graph. Many other input sources could be used for this project such as sensors to collect
field data. The next step is to add a networking aspect or have Internet connectivity with
this device. In other words, from a website, retrieve data by accessing the PDA program
and have it send the data to the website to display it from the website. (Figure14)
Figure14
4.1 Solution
The solution to this problem is to develop a software program to connect to the
input source using the CF-6004 through the compact flash that is connected to the PDA,
then read the data and display it in the form of a waveform graph on the PDA.
16
5.1 Examples
Unlike other programming languages like C, C++, or Java there isn’t hundred’s of
lines of code to make this project work as you can see in Figure15, using LabVIEW’s
graphical programming language to develop complicated programs that look very simple.
Here is the Pseudo Code for this project, please refer to Figure15 for the actual code.
1. Specify an analog input voltage task
2. Call the start VI to start the acquisition
3. Read the data in a loop until the user hits the stop button or an error occurs
4. Call the stop VI to stop the Task
5. Use the popup dialog box to display an error if any
Figure15
6.1 Conclusion
In conclusion this project was challenging due to the fact that LabVIEW is owned
by a company (National Instruments) and not open source and unlike many other
languages, it has a more specific use that is aimed more towards scientist and engineers
17
so examples are limited. Also National Instruments is the only place on the Internet that
has reliable recourses.
18
.1 References:
1. Orange Tree Technologies Ltd, Harwell Innovation Centre, Didcot OX11 0QG,
UK, Retrieved 9/22/2008
http://www.orangetreetech.com/fpga_board_zestsc2.html
2. Brighthand.com Dell Axim X50, 10/12/2004, Retrieved 2/20/2008
http://www.brighthand.com/price/default.asp?productID=0&productFamilyID=10
7&display=productDetail
3. cnet.com, Dell Axim X50,10/12/2004, Retrieved 2/20/2008
http://reviews.cnet.com/pdas/dell-axim-x50/4505-3127_731138246.html?tag=sub
4. Wikipedia The Free Encyclopedia, 2004, Retrieved 2/20/2008
http://en.wikipedia.org/wiki/Axim_X50_series
5. Mysaifu JVM, 2/2/2008, Retrieved 2/20/2008
http://www2s.biglobe.ne.jp/~dat/java/project/jvm/index_en.html
6. National InstrumentsCorporation©2008, Retrieved 9/25/08 http://www.ni.com/
7. Wikipedia The Free Encyclopedia, Oct 3, 2008, Retrieved 2/20/2008
http://en.wikipedia.org/wiki/LabVIEW
19
Download