Arduino as a learning tool Ahmad Adamu Galadima Nigerian Turkish Nile University Abuja, Nigeria Email:
[email protected] Abstract-In this paper we shall take a brief look at the Arduino microcontroller and some of its applications and how it can be used in learning. Arduino is an open-source microcon troller used in electronic prototyping. Arduino hardware and its components shall be looked at. Software and the Environment that Arduino runs on are both looked at too. Some applications will be taken as examples that can help make learning Arduino more interesting. This can be used as a major way to encourage students and others to learn more about electronics and program ming. Keywords-Arduino, hardware, software, applications, micro controllers, arduino environment, learning.
I.
I NTRODUCT ION
II.
A.
HARDWARE
i) introduction: There are a wide variety of Arduino boards [6] out there, but only the Arduino Uno will be looked at. The Arduino Uno is a microcontroller board based on the ATmega328 [7], which is a high-performance Atmel 8-bit AVR RISC-based microcontroller. The device operates between 1.85.5 volts [8]. The Arduino Uno has 14 digital input/output pins, 6 analog inputs, a 16 MHz ceramic resonator, a USB connection, a power jack, an ICSP header, and a reset button. It contains everything needed to support the microcontroller; simply con nect it to a computer with a USB cable or power it with a AC-to-DC adapter or battery to get started.
2) Power: The Arduino Uno can be powered via the USB connection or with an external power supply (AC-to-DC adapter or battery).
Arduino is an open-source physical computing [1] platform based on a simple microcontroller board and a development environment that implements the Processing language [2]. It was originally meant for artists and designers to create elec tronic prototypes. They would be able to create these designs easily with a little knowledge of programming and electronics without going too deep into it. Electronic prototyping was traditionally only associated with engineering and engineers. Arduino can be used to develop interactive objects, taking in inputs to control outputs. Projects done with Arduino can be stand-alone or they can communicate with software running on a computer [3]. So many interesting projects can be found that center around arduino. In fact many "shields" [4] (separate boards that can be connected) are created to add functionality to the Arduino board.
ARDUINO
Leads from a battery can be inserted in the Gnd and Vin pin headers of the power connector. The board can operate on an external supply of 6 to 20 volts.
3) Input/Output: Each of the 14 digital pins on the Uno can be used as an input or output. This can be done using the pinModeO, digitalWriteO and digitalReadO functions [9]. They operate at 5 volts. In addition, some pins have specialized functions. 4) Communication: The Arduino Uno has a number of facilities for communicating with a computer, another Arduino board, or other microcontrollers. A Software Serial library allows for serial communication on any of the Uno's digital pins. [10]
Today the world we live in is becoming hugely depen dent on technology. This means there is a need for a more technically skilled workforce to build and maintain required technology. Many new technologies are interactive, therefore it makes it easier to create environments in which learning can be done by doing, recieving feedback and refining understanding and building new knowledge [5]. Learning tools over the years have ranged from pieces of chalk and slate to pencil and paper, from fountain pens to ballpoint pens and so on [5]. Introducing the Arduino microcontroller to various levels of education can help improve interest of building/designing things. Through various projects that would be worked on, it will greatly improve critical think ing and problem solving skills. There are a lot of projects that can be found online and new projects are being built almost on a daily basis. With an Arduino board, few other components and a little imagination, the possibilities are limitless.
978-1-4799-4106-3/14/$31.00 © 2014 IEEE
B. SOFT WARE Arduino environment is open-source and easy to use [11]. It is written in Java and based on Processing [12] and other open source software. It runs on various platforms such as Windows, Mac OS X, and Linux. It is designed to introduce programming to people unfamiliar with software development, which makes it convenient for students. It includes a code editor with features such as syntax highlighting, brace matching, and automatic indentation, and is also capable of compiling and uploading programs to the board with a single click. A program or code written for Arduino is called a "sketch". Arduino sketches are written in C or C++. The Arduino integrated development environment (IDE) comes with a soft ware library called Wiring [13] from the original Wiring project, which makes many conunon input/output operations much easier.
C.
ENVIRONMENT
The Arduino development environment contains a text editor for writing code, a message area, a text console, a toolbar with buttons for common functions and a series of menus. It connects to the Arduino hardware to upload sketches and communicate with them. [9] III.
A B RIEF HISTORY OF MICROCONTROLLERS
In the early 70's both Intel and Texas instruments started developing higher integrated microprocessors. Intel continued in the development of microprocessors while Texas Instru ments took a slightly different route. Instead of just a single chip microprocessor, they decided to add built in memory to it and the microcontroller was born [14]. Though microprocessors could be a basis for a much more powerful computer, it would need other chips to work. The microcontroller with its all-in-one approach needs little help from other chips although it had a limited range of functions it could perform [15]. From being used in simple calculators and as gas pump meters, to its developement and wide usage in various areas. Today microcontrollers can be found in virtually every electronic device we use. I V.
ARDUINO AS A LEARNING TOOL
Arduino was actually formed when Massimo Banzi's students couldnt find affordable and efficient microcontrollers for a project they were working on. Banzi [16] together with David Cuartielles [17] created their very own board with one of Banzi's students, David Mellis [18], writing the programming language for it. Because of how easy it was to use, it became a hit amongst students even if they didnt know much about computer programming and electronics [19]. Soon enough interesting designs using the Arduino microcontroller started springing up. Whether it was making things move or controlling things, Arduino grew in popularity. [20] It is very interesting to see results of a project worked on. Be it a blinking light, a moving part and so on. This interest is what motivates people to design something of their own. The number of projects that can be worked on are endless and are limited only by one's imagination. In the following section we shall look at a few project designs using arduino.
A. Why Arduino? With the numerous amount of microcontrollers out there, one might wonder, "Why use Arduino?" or "What makes it different from others?". We shall give some reasons as mentioned by Arduino co-founder Massimo Banzi [2]:
1) There is an active community of users: User commu nities are groups of people who use a particular product, in this case the Arduino. Due to the very active nature of the community, it is easy to get help on troubling issues from others who may have faced similar problems. It also improves the the design and helps drive the future direction of the Arduino board. "What you find is that if you can create a community around an open source project then it becomes really alive because everyone starts to contribute. If you dont
have an ecosystem, the platform wont be successful, If you start charging for everything, everything dies very quickly." [21] says Banzi, Arduino Co-founder .
2) Development of Arduino in an educational environment: The Arduino project was developed in an educational setting. This makes it ideal for newcomers to get started quickly.
3) The hardware is affordable: The Arduino hardware is cheap to buy, or assemble. The hardware designs can be gotten online free of charge. Damaged parts on the board can be replaced at a token fee. So users dont have to worry about burning out parts and can focus on "tinkering". Leaving the Arduino board in a permanent installation would be affordable enough. So a project designed using an Arduino board wont have to be pulled apart just to retrive it. 4) Hardware and Software are both open-source: Given its free licence to the Arduino hardware and software designs, the circuit diagrams can be gotten and built by individuals without paying anything to Arduino [22]. The software is also free to download so the user can study and modify the software if necessary [23]. Since the software is not purchased and only cost of buying the board or buying parts for the board is incurred, it is very cheap. 5) It is based on the Processing programming IDE: The Processing development environment [24] was created to be very easy to learn and use. Hobbyists, designers and artists who want to learn programming can now do so easily as the Arduino development environment is based on Processing and other open-source software. 6) Arduino is programmed via USB cable: As most com puters now do not have serial ports, using USB cables is a more viable option for programming boards. No special components are needed to operate the Arduino board, making it accessible outside a lab environment [25]. 7) It is a multiplatform environment: The IDE can run on several platforms including Mircrosoft, Linux and Mac OS X giving it an even larger user community base. V.
APPLICATIONS
In this section we shall look at some examples of how Arduino has been used to create amazing projects.
A. Lilypad Arduino The Lilypad Arduino is a wearable version of the Arduino that helps to build soft interactive electronic textiles or e textiles [26]. It was developed and designed by Leah Buechley and SparkFun Electronics [27].The design of e-textile involves the use of several modules being sewn on the fabric with con ductive thread to give it the electrical connections necessary. The microcontroller can be programmed just like the normal Arduino boards using the usb-to-serial connection. The lilypad Arduino is an example of a user community driven project with the commercial version of the kit designed by Leah and SparkFun Electronics. Some designs using Lilypad Arduino include:
• Fig. 4.
Fig. 1.
Lily Arduino and so add-on components that can be sewn together
1) Propinquity: "Propinquity takes embodied gameplay to an extreme by turning each player into the other players game controller. Wearing proximity and touch sensors, players must move around score points by coming close together, but never touching" [28].
Lilypad Arduino pillow
is very important to know. Other areas it could be used include: hydroponics, monitoring of lake and rivers, and monitoring solutions in the lab environment. [32] The list of materials include: An Arduino Uno board, Prototyping Shield,pH probe, ORB probe, pH ORP circuits, BNC connectors, Temperature sensor, LCD keypad shield, SD card shield, 170 tie point breadboards, Nylon mounting hardware and a box to place the project in [33]. The instrument takes in pH, ORB and temperature readings periodically depending on the user. It saves the readings in a text file on the SD card. The readings are displayed on the LCD.
Fig. 2. Propinquity glove by Wyld Collective Ltd. and Propinquity being played by two players
2) Turn Signal Biking Jacket: This design is a jacket with turn signals that will let people know where you're going when on a bike [29].
Fig. 5.
ORP / pH / Temperature Data Logger schematic and actual photo
The code for this project can be found on the instructables website (http://www.instructables.comJ)
C. ArduSat
Fig. 3. Examples of jackets with tum signals powered by Lilypad Arduino sewn onto them
3) Musical Pillow: Another example is using the Iilypad arduino sewn to a pillow with a speaker and fabric tilt sensor, playing a different note for each petal of the sensor. The pillow also has an analog pin broken out to one of its corners to be connected to any external analog sensors to make noise [30]. B. ORP / pH / Temperature Data Logger This is an inexpensive data logger that would measure and record pH, oxidation-reduction potential (ORP), and temper ature levels of a particular liquid. The three parameters are commonly mearsured in water and wastewater systems [31]. For example certain fish cannot live in a certain pH range. So it
ArduSat or Arduino Satellite [34] is a small open source miniaturized satellite based on Arduino. The project is being run by NanoSatisfi, now known as Spire [35]. The project was created to form an educational platform for space exploration. It was the first platform that allowed the general public to test out their own space based applications. The ArduSat which contains several sensors including some cameras, geiger counter [36], spectrometer, magnetome ter, GPS, pressure and temperature sensors etc. These sensors which gather information from the space environment, are connected to some user progranunable Arduino processors. These processors can run a users application or experiment. It measures Wcm on every side and weighs roughly 1 kilogram, so it is pretty light weight. The things that can be done with the ArduSat are numerous, some possibilities are: observing meteors, photography from space, making a spectrograph of the sun, detecting high energy radiation, compiling temperature readings etc [34]. The possibilities are endless.
Fig. 6.
ArduSat and its major components
[10]
Arduino, "Introduction: Arduino Uno Overview." arduino.cc/en/Main/ArduinoBoardUno, 2014.
[11]
A. Saha, "Learning to program the arduino," Linux Journal, vol. 2011, no. 211, p. 2, 2011.
[12]
C. Reas and B. Fry, "Processing.org," Processing.org, vol. 3, no. 06, 2012.
[13]
H. Barragn, "Wiring: Wiring. An environment and electronics i/o board for creating physical interactive and conceptual structures. programming and sketching with electronics." Retrieved from http://wiring.org.co. [0610912014].
[14]
D. P. Siewiorek, G. Bell, and A. C. Newell, Computer Structures: principles and examples. McGraw-HiU, Inc., 1982.
[15]
IEEE, "Ieee global history network: Microcontroller." Retrived from http://www.ieeeghn.org/wiki/index.php/Microcontroller [0610912014].
[16]
M. Banzi, "Massimo banzi." [0610912014].
[17]
D. CuartieUes, "David cuartielles." Retrived from david.cuartieUes.com [0610912014].
[18]
D. A. Mellis, [0610912014].
[19]
C. Thompson, "Build it. share it. profit. can open source hardware work," Wired Magazine, vol. 16, no. 11, pp. 16-11, 2008.
"David mellis."
Retrieved from
Retrived from massimobanzi.coml
Retrived from dam.meUis.org
[20]
D. Kushner, "The making of arduino," IEEE Spectrum, vol. 26, 2011.
[21]
N. Rodriguez, "How arduino is becoming the world's social network for hackers and makers." Retrieved from fastcolabs.com/3025320/how arduino-is-becoming-the-worlds-social-network-for-hackers-and makers [0610912014].
[22]
K. R. Lakhani and E. Von Hippel, "How open source software works:free user-to-user assistance," Research policy, vol. 32, no. 6, pp. 923-943, 2003.
[23]
A. M. S. Laurent, Understanding open source and free software licensing. " O'Reilly Media, Inc.", 2004.
[24] [25]
J. Noble, Programming Interactivity: A Designer's Guide to Processing, Arduino, and Operiframeworks. " O'Reilly Media, Inc.", 2009. A. M. Gibb, New media art, design, and the Arduino microcontroller: A malleable tool. PhD thesis, Pratt Institute, 2010.
Fig. 7.
[26]
Actual model of an ArduSat
L. Buechley, M. Eisenberg, J. Catchen, and A. Crockett, "The \ilypad arduino: using computational textiles to investigate engagement, aes thetics, and diversity in computer science education," in Proceedings of the SIGCHI conference on Human factors in computing systems,
VI.
CONCLUSION
pp. 423-432, ACM, 2008.
From wearable fashion to space research, the possibilities of using Arduino to learn and develop new ideas is endless. Though it does have its limitations, it is a great tool that can be used in learning. REFERENCES
[27]
Arduino, "Lilypad arduino." Retrieved duino.cc/en/Main/arduinoBoardLilyPad [06109/2014].
from
[28]
Flickr, "Propinquity." Retrieved from www.ftickr.comlphotos/wyldco Isets1721576268724552541 [06109/2014].
[29]
Instructables, "Tum signal biking jacket." Retrieved from www.instructables.comlid/turn-signal-biking-jacket [0610912014].
[30]
M. Satomi and H. Perner-Wilson, "Kobakant example projects: Musical pillow." 2014 Retrieved from www.kobakant.at [0610912014].
ar-
[1]
D. O'Sullivan and T. Igoe, Physical Computing: Sensing and Control ling the Physical World with Computers. Boston, M A, United States: Course Technology Press, 2004.
[31]
M. D. of Natural Resources, "Water quality parameters." 2014 Retrieved from www.dnr.mo.govenv/esp/waterquality-parameters.htm [0610912014].
[2]
M. Banzi, Getting Started with arduino. O'Reilly Media, Inc., 2009.
[32]
[3]
Arduino, "Introduction: What is Arduino?" duino.cc/en/Guide/lntroduction, [06109/2014].
Libelium, "Smart water sensors to monitor water quality in rivers, lakes and the sea." 2014 Retrieved from www.libelium.com.
[33]
[4]
Sparkfun, "Arduino shields." Retrieved learn.sparkfun.com/tutorials/arduino-shields [0610912014].
P. VoweU, "Orp 1 ph 1 temperature data logger." Retrieved from instructables.comlid/ORP-pH-Temperature-Data-Logger!?ALLSTEPS [0610912014].
[5]
R. C. Forcier and D. E. Descy, The computer as an educational tool: Productivity and problem solving. Prentice-Hall, Inc., 2007.
[34]
[6]
Arduino, "Hardware index." Retrieved from arduino.cc/enlmainlboards [0610912014].
N. Inc., "Ardusat - your arduino experiment in space." Re trieved from https:llwww.kickstarter.comlprojects/575960623/ardusat your-arduino-experiment -in-space [0610912014].
[7]
Retrieved from arfrom
A. Kioumars and L. Tang, "Atmega and xbee-based wireless sensing," in Automation, Robotics and Applications (ICARA), 2011 5th International
Coriference on, pp. 351-356, Dec 2011.
[8]
Atmel, "Atmega328p." Retrieved from http://www.atmel.com. 2014.
[9]
Arduino, "Language reference." [0610912014].
Retrieved
from
arduino.cc/en
[35]
ArduSat, "Ardusat." Retrieved from www.ardusat.com [06109/2014].
[36]
G. F. Knoll, Radiation detection and measurement. John Wiley & Sons, 2010.