Motivations

The grand vision

In the modern world, neither science nor medicine happens without computers. They are used to measure things, they provide a degree of control over scientific instruments that is not humanly possible, they analyse the vast quantities of data we collect, and they help us speculate about what might be happening in cells, in the universe, and in chemical and biochemical reactions, amongst many other things. No scientist should be ignorant of what a computer is, what it can (and cannot) do, and, most importantly, how one makes it do it. The idea that only computer scientists need to learn about programming is an absolute fallacy, as is the idea that only ‘real’ scientists need to understand how to capture and analyse data. So the Engduino is our small contribution to the process of educating the next generation of scientists and computer scientists, and in improving the general understanding that innovation is fun.

The Engduino

The Engduino was designed to be a teaching tool, originally for use at UCL with visiting schoolchildren. The Engduino is, at heart, an Arduino, and it is programmed using the Arduino IDE. The Arduino is a simple, cost-effective and flexible platform that can be used for a wide variety of tasks, particularly when coupled with the various shields that are available, or when connected to LEDs, buttons, etc.

Our approach is slightly different – we believe that, for teaching, it is helpful to have a platform that can be used to produce real and interesting products without the requirement to add additional components (but with the flexibility to do so if needed). The Engduino has the latent potential to be turned into many things, from the simple to the complex, but it requires an injection of creativity in terms of programming to make those things a reality. The motivational power of having an idea, creating something and seeing it work (eventually) is hard to overestimate; the Engduino aims to lower the barriers to that.

In addition to the basic LEDs and a button, we have included two sensors (a thermistor and an accelerometer). These sensors can be used to measure physical properties and can be used in linking the use of computers to wider science and mathematical education by providing a source of real data. So, for example, acceleration is a vector quantity, that properly requires a knowledge of vector algebra and frames of reference to manipulate, but that can be used simply to detect whether an object is level or how much a bat vibrates when a ball is struck. Temperature measurements can be used to assess the thermal impact of an open window, or the fact that calibration is an essential prerequisite to all accurate measurement. We could have included more, but we choose instead to keep costs low, and provide the ability to interface to other sensors and actuators – for example, we have interfaced  a simple pulse sensor that can be used to assess the impact of exercise on heartrate or, indeed, see the nature of the heartbeat.

Finally, we chose to have a communications channel on the Engduino – in the form of an infrared transmitter/receiver. There are several reasons for this – it is a good way of getting data off a device without plugging it in, it allows control of the Engduino using conventional remote controls – so, for example, one could control a robot based on an Engduino with a TV remote, and it provides a good vehicle for teaching students the basics of network protocols.

Teaching deep ideas

The Engduino was intended to be a dual-use platform: it was intended to give us something with which to teach programming, data analysis and other good things, and it was intended for us to program to allow us to teach deep ideas in computing and other disciplines. We believe that physical simulation – having students move about to simulate some process – has the potential to be both engaging and useful in breaking down the barriers between groups of students from different schools.  So, for example, one could teach ideas about heuristic solutions to the multi-armed bandit problem by having students move about connecting their Engduino to one or other bandit Engduino in each time step to play the game and to speculate about strategies that might maximise their payoff. We can teach ideas about ant-based algorithms, molecular computing, game theory, the Ising model, network routing or cellular automata in much the same way.

Does the Engduino aim to replace or supplant the Arduino or Raspberry Pi in terms of teaching?

Absolutely not; we like, use and wish to encourage people to progress towards these other platforms – we understand the pleasures of building hardware (we had great fun building the Engduino) or of writing more sophisticated programs on more capable platforms. But it takes time for students to get there, and some never make it over the initial hurdle, so we wanted to create something everyone can appreciate – something on which one can do simple things quickly, but that is capable of sophistication if someone wants to dig a bit deeper.

In terms specifically of the Raspberry Pi, the Engduino simply plugs in – it can be programmed using the Arduino software running on the Pi, and it can be used as an i/o device for those that wish to learn to write python programs on the Pi – the LEDs and the sensors can be controlled from python. With a bit more work, the same can be done for any Arduino – using an I2C, SPI or serial connection.

In those cases where it is necessary to have the greater flexibility in interfacing offered by the Arduino or the Raspberry Pi, the solution is to use an Arduino or a Raspberry Pi.