Paper Details

Communicating Process Architectures (CPA)
 Title: Concurrent Event-driven Programming in occam-π for the Arduino
 Conference: Communicating Process Architectures 2011
 Authors: Christian L. Jacobsena, Matthew C. Jadudb, Omer Kilicc, Adam T. Sampsond
(a) Department of Computer Science, University of Copenhagen
(b) Department of Computer Science, Allegheny College
(c) School of Electronics and Digital Arts, University of Kent
(d) School of Arts, Media and Computer Games, Abertay University
 Abstract: 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. 

BibTeX Entry

Full paper