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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
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)
Citilab: Scratch for Arduino (2015). http://s4a.cat/
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)
Bob Genom: HaikuVM: a small JAVA VM for microcontrollers (2014). http://haiku-vm.sourceforge.net/
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)
Elizabeth, M., Hull, C.: Occam-a programming language for multiprocessor systems. Comput. Lang. 12(1), 27–37 (1987)
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)
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)
Python (2014). https://wiki.python.org/moin/PyMite
Suchocki, R., Kalvala, S.: Microscheme: functional programming for the Arduino. In: Scheme and Functional Programming Workshop, Washington, D.C., pp. 21–29(2014)
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)
Bergel, A., et al.: PetitParser: Building Modular Parsers. In: Deep into Pharo, pp. 375–410 (2013)
Arduino—analogWrite() (2015). https://www.arduino.cc/en/Reference/AnalogWrite
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights 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)