Concurrent event-driven programming in occam-π for the Arduino

Christian L. Jacobsen, Matthew C. Jadud, Omer Kilic, Adam T. Sampson

Research output: Chapter in Book/Report/Conference proceedingChapter (peer-reviewed)peer-review

1 Citation (Scopus)

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.

Original languageEnglish
Title of host publicationCommunicating Process Architectures 2011
PublisherIOS Press
Pages177-193
Number of pages17
Volume68
ISBN (Electronic)9781607507741
ISBN (Print)9781607507734
DOIs
Publication statusPublished - 2011

Keywords

  • Arduino
  • Embedded systems
  • Interrupts
  • Occam-pi
  • Sensing
  • Transterpreter

ASJC Scopus subject areas

  • General Computer Science
  • General Engineering

Fingerprint

Dive into the research topics of 'Concurrent event-driven programming in occam-π for the Arduino'. Together they form a unique fingerprint.

Cite this