Skip to main content

On the Design and Implementation of a Virtual Machine for Arduino

  • Conference paper
  • First Online:
Robotics in Education

Part of the book series: Advances in Intelligent Systems and Computing ((AISC,volume 457))

Abstract

Arduino has become one of the most popular platforms for building electronic projects, especially among novices. In the last years countless tools, environments, and programming languages have been developed to support Arduino. One of these is Physical Etoys, a visual programming platform for robots developed by the authors. Physical Etoys supports compiling programs into the arduino. For this to work, a Smalltalk to C++ translator has been built. Although it has been very useful, this translator has brought a new set of issues. In this paper we will discuss some of these problems and how we decided to overcome them by developing a simple virtual machine that will be used as the base for the new Physical Etoys.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 129.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 169.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

References

  1. Freudenberg, B., Ohshima, Y., Wallace, S.: Etoys for one laptop per child. In: 7th International Conference on Creating, Connecting and Collaborating through Computing—C5 2009, Kyoto, pp. 57–64 (2009)

    Google Scholar 

  2. Citilab: Scratch for Arduino (2015). http://s4a.cat/

  3. Rahul, R., Whitchurch, A., Rao, M.: An open source graphical robot programming environment in introductory programming curriculum for undergraduates. In: 2014 IEEE International Conference on MOOCs, Innovation and Technology in Education, IEEE MITE 2014, Patiala, pp. 96–100 (2014)

    Google Scholar 

  4. Bob Genom: HaikuVM: a small JAVA VM for microcontrollers (2014). http://haiku-vm.sourceforge.net/

  5. Rao, A.: The application of LeJOS, Lego Mindstorms robotics, in an LMS environment to teach children Java programming and technology at an early age. In: 5th IEEE Integrated STEM Education Conference, ISEC 2015, pp. 121–122(2015)

    Google Scholar 

  6. Elizabeth, M., Hull, C.: Occam-a programming language for multiprocessor systems. Comput. Lang. 12(1), 27–37 (1987)

    Article  MATH  Google Scholar 

  7. Jacobsen, C.L., Jadud, M.C., Kilic, O., Sampson, A.T.: Concurrent event-driven programming in occam-π for the Arduino. Concurr. Syst. Eng. Ser. 68, 177–193 (2011)

    Google Scholar 

  8. Kato, Y.: Splish: a visual programming environment for arduino to accelerate physical computing experiences. In: 8th International Conference on Creating, Connecting and Collaborating through Computing, C5 2010, La Jolla, CA, pp. 3–10 (2010)

    Google Scholar 

  9. Python (2014). https://wiki.python.org/moin/PyMite

  10. Suchocki, R., Kalvala, S.: Microscheme: functional programming for the Arduino. In: Scheme and Functional Programming Workshop, Washington, D.C., pp. 21–29(2014)

    Google Scholar 

  11. St-Amour, V., Feeley, M.: PICOBIT: a compact scheme system for microcontrollers. In: 21st International Symposium on Implementation and Application of Functional Languages, IFL 2009, South Orange, NJ, pp. 1–17 (2010)

    Google Scholar 

  12. Bergel, A., et al.: PetitParser: Building Modular Parsers. In: Deep into Pharo, pp. 375–410 (2013)

    Google Scholar 

  13. Arduino—analogWrite() (2015). https://www.arduino.cc/en/Reference/AnalogWrite

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Gonzalo Zabala .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2017 Springer International Publishing Switzerland

About this paper

Cite this paper

Zabala, G., Moran, R., Teragni, M., Blanco, S. (2017). On the Design and Implementation of a Virtual Machine for Arduino. In: Merdan, M., Lepuschitz, W., Koppensteiner, G., Balogh, R. (eds) Robotics in Education. Advances in Intelligent Systems and Computing, vol 457. Springer, Cham. https://doi.org/10.1007/978-3-319-42975-5_19

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-42975-5_19

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-42974-8

  • Online ISBN: 978-3-319-42975-5

  • eBook Packages: EngineeringEngineering (R0)

Publish with us

Policies and ethics