db_connect: Could not connect to paper db at "wotug@dragon.kent.ac.uk"
db_connect: Could not connect to paper db at "wotug@dragon.kent.ac.uk"
%T Concurrent Event\-driven Programming in occam\-π for the Arduino
db_connect: Could not connect to paper db at "wotug@dragon.kent.ac.uk"
%A Christian L. Jacobsen, Matthew C. Jadud, Omer Kilic, Adam T. Sampson
db_connect: Could not connect to paper db at "wotug@dragon.kent.ac.uk"
%E Peter H. Welch, Adam T. Sampson, Jan Bækgaard Pedersen, Jon Kerridge, Jan F. Broenink, Frederick R. M. Barnes
%B Communicating Process Architectures 2011
%X The success of the Arduino platform has made embedded
programming widely
accessible. The Arduino has seen many
uses, for example in rapid
prototyping, hobby projects, and
in art installations. Arduino users are
often not
experienced embedded programmers however, and writing
correct
software for embedded devices can be challenging.
This is especially
true if the software needs to use
interrupts in order to interface with
attached devices.
Insight and careful discipline are required to
avoid
introducing race hazards when using interrupt
routines. Instead of
programming the Arduino in C or C++ as
is the custom, we propose using
occam\-π as a language as
that can help the user manage the concurrency
introduced
when using interrupts and help in the creation of
modular,
well\-designed programs. This paper will introduce
the Arduino, the
software that enables us to run occam\-π
on it, and a case study of an
environmental sensor used in
an Environmental Science course.