June 24, 2007
June 24, 2007
June 27, 2007
12.1572.1 - 12.1572.9
Using the Ruby Language as a Programming Environment for a Robotics Lab-Based Class Abstract The object-oriented, scripting language Ruby, is becoming popular in information technology and computer-oriented educational programs. Yukihiro Matsumoto has indicated that the language was designed with the principle of “least surprise” to help programmers convert ideas into working programs quickly and to have fun. Ruby was designed for applications in many of the modern application areas of software development, including text processing, network programming, interfacing to CGI and XML and addressing Internet-oriented applications. It is also intended to make programming fun for students.
Ruby can also be used for embedded system programming. The general advantages of Ruby programming also apply to this domain. The Ruby interpreter allows rapid development and testing, including wireless tele-operation of mobile robots for prototyping. Since Ruby was not primarily designed for this type of application some adaptations are necessary. Extensions to the language are necessary to allow for real-time interfacing. These and related topics are discussed in the paper.
This paper discusses a semester-long experience of adapting Ruby to serve the needs of a robotics-design, lab-oriented course and evaluates the benefits and disadvantages of Ruby both for embedded development in general and as a teaching tool.
Introduction Although desktop and laptop computers are ubiquitous they are outnumbered by at least an order of magnitude by embedded computer systems. These embedded systems appear in devices ranging from microwave ovens and cars to PDAs, cell-phones and even network routers and switchers. Embedded systems were once dominated by small 8-bit microcontroller systems, with kilobytes or less of memory; Megahertz or slower CPU clocks and were programmed in assembly-language or in C. However as systems have been developed for small low-power, low- cost, high-capability devices, such as cell-phones and PDAs so 32 bit processing power with megabytes of memory; complete operating systems; networking and object-oriented languages, have started to appear even in small embedded systems. This trend has been further accelerated as notebook computers, and the compact low-power technologies they need, have overtaken desktops in sales7. These low-power, high performance, compact technologies also become available for embedded systems development. BYU has offered courses in embedded systems for some years. These elective courses are targeted at students who wish to explore computer applications beyond the traditional desktop or laptop environment. Over recent years this class has, like the marketplace, moved its focus from small 8-bit system to modern operating systems and programming environments3, but is still focused on physically small, mobile systems with real-time needs and IO capabilities far beyond the traditional keyboard/mouse/monitor peripherals.
Helps, C. R., & Arnott, A. (2007, June), Using The Ruby Language As A Programming Environment For A Robotics Lab Based Class Paper presented at 2007 Annual Conference & Exposition, Honolulu, Hawaii. 10.18260/1-2--2185
ASEE holds the copyright on this document. It may be read by the public free of charge. Authors may archive their work on personal websites or in institutional repositories with the following citation: © 2007 American Society for Engineering Education. Other scholars may excerpt or quote from these materials with the same citation. When excerpting or quoting from Conference Proceedings, authors should, in addition to noting the ASEE copyright, list all the original authors and their institutions and name the host city of the conference. - Last updated April 1, 2015