This project deals with a controller, made by Intel© Company, called the Intel® Galileo Board.
This controller was developed by Intel for education needs and for learning and experimenting with programming, as well as combining programming with hardware.
The controller is a part of a family of similar controllers, called Arduino controller, which create a cheap and comfortable environment of developing and running projects which combine software & hardware components.
This work was mainly based on two goals. The first goal is to examine the possibility of integrating the controller in the daily work of the laboratory workers, and even replace the existing instruments currently used in the laboratory. For that purpose, a characterization of the controller’s abilities was performed. In addition, the performance of the controller was examined, especially it’s processing rates and response time. The second goal is to build a user-friendly app to allow the laboratory workers to use the controller without any necessary professional knowledge in programming.
The program allows:
- Downloading and running source code files written in C++.
- Communication between the computer and the controller, in the form of sending & receiving strings of data.
- Showing the measurements from the controller’s analog inputs on a graphical plot.
- Showing the output of the code running on the controller, on several sub-plots (one sub-plot for each output variable).
- Viewing and modifying the code before downloading it to the controller.
In addition to the program above, another secondary program was built, which helps create the infrastructure which is used by the main program. The Infrastructure includes creating a preferences file, turning on the Ethernet connection interface on the controller and downloading a compiled code to the controller for the monitoring state of the controller. A user guide was also written (and presented in the report) which explains what is needed to be set on the computer in order for the program to work properly. The guide also explains how to use the built programs.
The requirements of the laboratory equipment are to be able to measure changes in the scales of milliseconds and lower (micro-seconds). Although with some adjustment the Galileo is able to send pulses in these time scales (as we saw in the case where the Galileo can output pulses with a frequency of 450KHz, 670KHz and 2.87 MHz), however the sampling performance borders on the limit of a millisecond, which might make it miss the very small changes in the system it measures. Moreover, when the output is set to high frequency, it becomes distorted, due to the capacitors in the output. Thus, without any external equipment the Galileo isn’t fit for small time scale systems or sensitive systems. However, it can still be used for simulations and systems with a higher time scale (even several milliseconds).
Another disadvantage is the fact that the Galileo’s working range is between ground and 5 volts (or ground and 3.3 volts), and it won’t measure negative voltage. This problem can be solved with an external shield which shifts the voltage range to a positive range, so that the Galileo will be able to measure it.
To conclude, the Galileo is not fit for replacing the laboratory equipment, however it can be used for simulations and for measuring analog signals with a certain frequency limit. For that purpose and more, a Graphical User Interface is built.
Written by Gil Aizenshtadt
- Final Report (PDF)
- Presentation (PPT)
- Source Code (jar files, java files)