Very Small Information Systems

Very Small Information Systems is a Wikiversity content development project where participants create, organize and develop learning resources for information systems that are very small.

The following summarizes the topics from two courses held at the Technical University in Vienna, Austria and two courses at the Institute of Informatics, CBS in Denmark.

This all is, of course, work in progress. We will evaluate it with a real course that runs during this summer semester.

Rasmus Pedersen, Martin Schoeberl

What are Very Small Information Systems?

Very Small Information Systems (VSIS for short) are similar to Embedded Systems. However, the focus of this course is a little bit different. The focus is more holistic and the class will feature a number of core topics in Java and JVM technology for example. The target group spans students from within electrical engineering to software engineering.

Information Systems is the discipline concerned with the development, use, application and influence of information systems. An information system, following a definition of Langefors, is a technologically implemented medium for recording, storing, and disseminating linguistic expressions, as well as for drawing conclusions from such expressions.

The technology used for implementing information systems by no means has to be computer technology. A notebook in which one lists certain items of interest is, according to that definition, an information system. Likewise, there are computer applications that do not comply with this definition of information systems. Embedded systems are an example. A computer application that is integrated into clothing or even the human body does not generally deal with linguistic expressions. One could, however, try to generalize Langefors' definition so as to cover more recent developments.

Lectures

Introduction to Embedded Systems

Definition: An embedded system is a computer systems that is part of a larger system.

Examples:

The course uses a Java processor board as an example for the lab. The processor (JOP) is open-source and implemented in an FPGA.

The example board provides a typical configuration of an embedded system:

Slides Detailed Source For Real Time Systems

Reading: Embedded Systems

Exercise: Get a Hello World program running on either the real hardware or the simulation of JOP. Exercise details

Introduction to JOP

A Video of a talk given at an ambedded Java workshop introduces JOP.

Introduction to Real-Time Programming

Real time programs are usualy written with several periodic threads. The Real-time Specification for Java (RTSJ) extends Java and the JVM to enable programming of real-time systems in Java.

The RTSJ is a quite complex specification. Therefore, on JOP a simpler real-time API for Java is available.

Real time programs are usually written with several periodic threads.

Introduction to Fixed Point Math

Definition: The ability to represent real numbers with a number representation intended for whole integer numbers.

Examples:

Reading: First read about binary numbers and bit shifting to understand the low level details of fixed point operations. Then read the definition of Fixed Point Arithmetic and a book section on fixed point arithmetic in embedded systems.

Exercise:

Setup:

Introduction to Embedded Real-Time Machine Learning

Definition: Machine learning is the ability learn and reason based on empirical data.

Examples:

Exercise: This is one comprehensive exercise to enable you to understand the basics of some selected algorithms that can help make your embedded system "smart".

The required parts are:

Setup:

General configuration: X1 and X2 (the temperature sensors) are used together with a lighter to provide 2 dimensional data points. The switch S1 is used to tell the system which class the current reading of X1 and X2 belongs to. If it is not pressed then it belongs to class 1 and if it is pressed then it belongs to class 2. Switch 2 is used to signal to the progam that the combination of X1, X2, and S1 is to be saved as training data. If the system is in testing state then S2 is used to ask for a classification of the current value of X1, X2. We will use the LEDs C1 and C2 to signal the result of a classification.

Classification exercise: The task is to train the system with a number of observations and then test if the system can classify new observations correctly.

Clustering exercise: The task is to determine which cluster new observations belong to.

Regression exercise: The task is work with dependent variables. We imagine that X2 depends on X1.

Advanced classification exercise:

Extra exercise: You can use WEKA to run a classificatation, clustering, and regression on these example files.

HOW TO

A collection of tips and tricks for the JOP/baseio platform.

Sensor Interface

With the baseio board there are several ways to connect the signals from the physical worls to the embedded system:

With a little help from an Opamp a wide variation of signals can be connect to the described inputs. A work horse type is an LM324. Tip: See Single supply op-amp circuit collection how to make your opamp circuit work with a single supply.


Voltage Input

The analog inputs are current inputs with a range between 0mA and 33mA. This current input is actually a 100R resistor connected to an 0-3.3V ADC. So a voltage source that can drive up to 33mA can be directly connected to this current input.

To extend the range simple use a series resistor at the input. E.g. to extend it to 0-10V use a 220R resistor.

If the voltage source has a to high source resistance use a voltage follower.


There is a nice description and diagram available that explains how to connect a sensor using a voltage follower, and how to construct a "simulator" with a variable resistor here.

Audio IO

See Creating a microphone for JOP for an ongoing project.

220V relay howto

There is a howto available on how to construct a 220V relay for the JOP here.

Semester Project and Academic Article

We emphasize that you makea project using the knowledge acquired throughout the semester. This project should be a functional prototype demonstrating some concept using the JOP processor. This project is described by you by writing an academically formatted article on prototype product.

Groups

You should form groups in the beginning of the semester. The optimal size is probably 2-4 students per group. When the group formation is done then you should create a Wiki page describing your project and code.

Projects

You can use the VSIS project plan as a starting point. It is a LaTeX file, which you can fill to suit the project needs.

Papers

The academic paper writing process can benefit from using the VSIS paper template. There is a nice template available here.

For references in BibTeX see http://liinwww.ira.uka.de/bibliography/, for articles:


Inserting Figures in Latex

An easy way of inserting a figure in latex is this:

   \begin{figure}
       \includegraphics{figures/name_of_pdf-file}
       \caption{Insert text describing the figure.}
       \label{fig:examplefigure1}
   \end{figure}
   "As shown in Figure \ref{fig:examplefigure1}."

Software

The VSIS class is about the process of creating a piece of working software. That includes the software development process using a source version control tool. There are a number of good version control tools available and we have chosen to offer the two dominating systems: CVS and Subversion for this class - it's up to the students to choose between the two systems. We are using a project at Sourceforge to supply a good CVS/Subversion practice server for the Wikiversity VSIS class. The process of creating a new project is roughly as follows:

Please make your code GPL and feel free to use other groups' code

Workshop

The VSIS class should conduct a workshop at the end of the semester. See VSIS Workshop HOWTO.

Milestones

We will try to set up some milestones that you should try to aim for. It is presented in terms of percentage of the total semester length.

Quiz

At the end of this course you should be able to answer the following questions:

Resources

For a quick start, till we have incorporated the information into this course, we provide links to external resources.

All hands-on assignments will use an open-source Java processor.

For a deeper technical course take the Wikiversity:Computer Architecture Lab

Embedded Systems Links

Students

Add yourself to this list for this semester. It is strongly suggested for our testbed, the students from CBS. However, feel free to join this course from all over the world.

Summer semester 2006

Summer semester 2007

Research

Teaching and research make up a University. Therefore we try to use Wikiversity also for research within the Research page.

Research Assistant Projects

On the Research Assistant page you can find follow-up projects of this course.


This article is issued from Wikiversity - version of the Tuesday, July 08, 2014. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.