Evolution of Microcontrollers Course Under The in
Evolution of Microcontrollers Course Under The in
net/publication/307090398
CITATIONS READS
2 773
3 authors:
SEE PROFILE
All content following this page was uploaded by Sonia Helena Contreras-Ortiz on 02 September 2016.
Abstract– This paper presents the evolution of an such as Freescale and Texas Instrument strengthens the course
undergraduate microcontroller’s course that uses Arduino as its as the topics became more general and less dependent on the
main platform. In earlier versions of the course, it focused on microcontroller brand used.
teaching Arduino’s framework and its interconnection to Now, we have frameworks developed and supported by
compatible hardware. This allowed rapid familiarization with the
the e-community. For example, Arduino is an open-source
hardware and software, but students were losing the capability to
design their own prototypes. So, we tried a different approach that hardware/software platform for the development of electronic
still uses Arduino, but includes a deeper study of technical details to systems based on Atmel microcontrollers. It started in 2005,
have more control on the device. This paper presents the first and in 2012 was adopted as the platform for the
comprehensive analysis of these methodologies. The proposed Microcontrollers course at Universidad Tecnológica de
course starts studying Arduino’s platform as a tool to get familiar Bolívar. It has several advantages over other microcontroller
with the hardware and software interface. On the second part, platforms. The hardware is low price, and the software IDE
students gain a deeper understanding of the Arduino framework, can be downloaded for free. The programmer is built-in the
and are able to configure its main features. On the last part, board, so no extra hardware is required to program the device.
students put the Arduino framework aside and focus on the
Additional hardware is available on the form of expansion
microcontroller to learn the principal features of its architecture.
We observed that the evolution of the course has helped to increase boards (shields) to connect to peripheral devices such as
the student’s skills and motivation. Ethernet adapters, wireless communication, RFID, Bluetooth,
GPS, and many other devices with their respective drives.
Keywords-- Embedded systems, microcontrollers, Arduino, Arduino’s software includes a variety of libraries for multiple
project-based learning. purposes. Finally, there is a large amount of information
available to the designer to build different applications.
I. INTRODUCTION After several course releases, it was noted that the
It is common to have at least one course related to applications developed by the students reached a high quality
microcontrollers in the ECE curriculum. Examples of these level. Most of them included sensors of different types,
courses include embedded systems, microcomputer interfaces, wireless transmission to other devices, and Internet
and robotics [1]. In some courses, microcontrollers are the connection. However, it was also noted that the students had
preferred platform to develop systems to test principles taught difficulties when they needed to go outside the Arduino’s
in class. Other courses focus on the study of the device and the world. It seems they struggle to develop applications
way to interface it with the outside world. This is the case of (hardware and software) that are not present on the vast
ECE1463, the Microcontrollers course taught at Universidad information network for Arduino. The feeling was that the
Tecnológica de Bolívar. In this course, the microcontroller is students became too dependent on what was available from
the main component to develop system prototypes to address Arduino and its community.
engineering design problems. This paper presents the experiences gathered from
The course started around twenty years ago by using teaching the ECE1463 Microcontrollers course at the
Microchip PIC microcontrollers. At that time, there were no Universidad Tecnológica de Bolívar, which uses the Arduino
C/C++ compilers available, so the programming was done in board as its development platform. The advantages and the
assembly language. The PIC microcontroller has an RISC problems observed during the last three years are presented. It
architecture that features only 20 instructions, so it was not is also discussed how to take advantage of the Arduino’s
hard to get familiar with it. However, register management to platform and take it to the next level. Students should
use embedded peripheral devices was a more difficult task. In recognize the microcontroller as the device behind Arduino
addition, there were no code libraries for using external and learn how to use it with more specialized tools in order to
devices such as liquid crystal display (LCD), so they had to be develop optimized engineering projects.
coded by the user. Later came the C/C++ compilers and The remainder of this paper is organized as follows.
libraries for multiple functions that made prototype Section II summarizes the related work. Section III describes
development easier. The arrival of new microcontroller brands the challenges of the course. Section IV introduces our
pedagogical approach of the course. Section V describes the
Digital Object Identifier (DOI): http://dx.doi.org/10.18687/LACCEI2016.1.1.183 microcontroller course at the Universidad Tecnológica de
ISBN: 978-0-9822896-9-3 Bolívar. Section VI shows the student evaluation of the
ISSN: 2414-6390
14th LACCEI International Multi-Conference for Engineering, Education, and Technology: “Engineering Innovations for
Global Sustainability”, 20-22 July 2016, San José, Costa Rica. 1
course. Finally, Section VII and Section VIII present the main board, the code libraries, and the information
discussions and conclude the paper. available as books, tutorials, videos, do-it-yourself projects,
and the e-community. In order to be a platform accessible for
I. RELATED WORK everybody, (i.e. non-engineers), Arduino’s developers decided
An initial review of the related work shows that several to hide most microcontroller technical details behind library
embedded systems courses use a variety of hardware such as functions and expansion boards. These functions and boards
microprocessors, microcontrollers and FPGAs in their take care of all implementation and configuration details
laboratory and project assignments [2]. We selected some required to run a sketch (application program) in the
previous works that use Arduino as the main platform for the microcontroller and translate these tasks to simple program
course. commands.
In Jamieson [3], the author presents a positive experience Although many design problems are solved successfully,
with the use of Arduino as its main platform, where, in it was also noted that when a design problem that required
addition to the commonly expected skill, other abilities like something different to what was available: a modification in a
code understanding and system integration are also developed. hidden parameter, or the use of peripherals without a shield, it
However, the author poses questions about how much became a challenge for the student, with a moderate chance
contribution for the project comes from the student and for a successful end. A talk with students facing these
whether the level of their work was deep enough to be problems revealed a dependency on the information from the
considered a successful learning. Arduino’s community. The students did not go outside this
The Arduino board is used as the platform in [1]. world to find out what was required to solve their problem.
According to the authors, this is a course where students are The conclusion from the talk was that some of the nice
able to build hardware/software systems that incorporate features provided by the Arduino’s community became a
design patterns, multi-threading, embedded programming, and hindrance for an engineering student when a specialized or
wireless communication in an effective manner within an one- optimized solution was required.
semester course. All the features, provided by Arduino and its community,
Sometimes, the usage of the Arduino’s on-line community are good for someone starting on electronics and embedded
has replaced demonstration laboratories as mentioned by systems. However, this may not be the case for engineering
Chancharoen [4]. It is claimed by the authors that students students, because they need not only to solve a design
accelerate the study by learning from the on-line community problem, they need to solve it in a more efficient way. This
resources in parallel to the lectures. means, to develop a functionally correct system under certain
Using Arduino in early stages helps students to stay constrains like low power consumption, reduced execution
motivated. In Spain, a cooperative project developed by a time, and minimum hardware. These performance goals are
network of schools and companies of different regions has not easy to handle within the Arduino’s environment, because
been using Arduino for easy development of new applications the implementation details are hidden to the user, and they are
and hardware modules in automation courses [5]. Even though not as ease to access and modify for specific situations as the
the results are interesting, there is the requirement that any regular libraries. The problems when using the Arduino’s
additional device must be adapted to working within the platform can be divided into four categories: code-related
network, and this can be difficult with devices that are not problems, hardware-related problem, system-level related
fully compatible with Arduino. problems, and pedagogical issues. In the following
In addition to Arduino-like shields, other platforms have paragraphs, these issues are addressed in detail.
been developed based on the same framework. This is the case
for the lab kit from Columbia University [6]. These kits allow A. Code Related Problems
students to test and control several hardware devices such as There are two functions to write a program: setup( ) and
displays, leds, switches and some sensors. This approach loop( ). The former is used for hardware setup and variable
enables rapid developing, but at the same time limits the initialization. The most common task for hardware setup is to
student’s options. According to [6], this is because all the define whether a port will be used as input or output. The
practices are based on the Arduino-like kit. latter function is the equivalent to the main( ) function in any
From previous works, it can be seen that the course goals C/C++ program. Of course, it is possible to add more
are what really defines whether Arduino is the right tool for a functions (in the same file) to the program. The Arduino’s
course. However, even in more advanced courses where environment, is based on Java, which has a main( ) function
Arduino may not be considered the most suitable tool, it still where it starts execution. This is an indication that the user
can be used with very good results, as we show next. actually has no access to the real main( ) function of the
program. His code is embedded on a larger program, and it is
III. PROBLEM IDENTIFICATION hard to tell what other functions and libraries are added to the
user program because its code is hidden to the user. This
Arduino is a very popular platform for creating projects.
works against code optimization and the microcontroller’s
The reasons for this lie on the hardware that can be attached to
14th LACCEI International Multi-Conference for Engineering, Education, and Technology: “Engineering Innovations for
Global Sustainability”, 20-22 July 2016, San José, Costa Rica. 2
memory usage, which is a critical constrain in microcontroller- the functions or create its own procedures. At the same time,
based systems. the user must validate that the changes do not affect the
Writing complex programs is another difficult task in functionality of any external hardware connected to the board.
Arduino’s programming environment. Good programming
C. System-level Related Problems
practices state that a large code should be divided into
When a project reaches the final stage of development, an
different files, so it can be handled easily. Header files should
engineer has to decide what hardware and software will be
be created to describe classes, data structures, constants and
used. Any extra hardware or software may be considered a
any relevant information. It is not evident how to do this on
waste of resources. Therefore, it is likely that only the
Arduino’s IDE. It seems the user needs to write the whole
microcontroller, the sensors, and actuators will be used. There
code in a single file, which makes the program long and
is no need for the Arduino’s board or extra shields. This
clutter. This is not a good programming practice for either a
means that it would be necessary to separate from the
single programmer or a programming team.
Arduino’s environment, work directly with the hardware
Code optimization is also a difficult task on Arduino’s
pieces, and maybe use other specialized software tools. The
environment. The ATmega328, the microcontroller inside the
transition from Arduino to other tools could be a difficult task
Arduino’s board, has a limited memory (32K) to store the
for a student, because there is a chance that most of Arduino’
program. A mid-range application program could easily
functions won’t be available. Then, students will have to learn
require this memory amount. It means the programmer must
what a microcontroller is and how to use it. In addition, they
take advantage of each memory byte present. In other words,
may need to create their own version of Arduino’s functions
the application code should be optimized, so it can fit on the
used in the code. This may become a stressing situation for
available memory. There is no tool to perform this
developers, and delay their work.
optimization on the Arduino’s environment. In addition, the
hidden code added by the Arduino’s environment, makes it D. Pedagogical Issues
hard to optimize and measure the real amount of memory It is said that the use of the Arduino environment
required by the application. increased the success rate for course projects. A question that
Code debugging is another difficult task on Arduino’s may be asked when a student submits a project done using the
environment. There is no tool for this purpose. This situation, Arduino’s environment is, how much of this project is really
added to a large single file, could make the task of finding an the student’s work? The large amount of already-done
error a real challenge. examples and projects increases the chances that students find
a complete solution for their project. Then, what were the
B. Hardware Related Problems
student’s contributions? What did they learn?
The problem with hardware rises from the need to adapt
It is also possible that students find all the required parts
the systems behavior to specific design problems. A typical
for their project ready, so their job now is to integrate these
situation is the clock frequency, which may be set to a
parts to generate a solution for their design problem. Although
different value to the Arduino’s current clock frequency in
some people may say that this is code reuse, which is a valid
order to reduce power consumption. Any variation on clock
programming practice, the problem is that other learning
frequency compromises the delay( ) function that is the
aspects might be weakened, like innovation or critical
baseline time in the stack libraries and also for several external
thinking.
devices that depends on the fixed clock frequency to work as
Is the use of the Arduino board appropriate for a
expected.
particular course? The course objectives are the guideline for
A fixed clock frequency also affects the TIMER modules,
selecting the most suitable tool that can fulfill them.
which are used to generate a pulse-width modulation (PWM)
Embedded systems and similar courses, which are junior or
signal. The PWM is commonly used for emulating a variable
senior-level courses, require not only to build functional
DC output voltage. In Arduino, this feature is utilized on
systems, but to gain a deeper knowledge to find optimal
analogWrite( ) function that is also used to control DC motors.
solutions.
However, the generated signal has a fixed frequency that may
not be suitable for a particular motor, which may require a IV. PROPOSED APPROACH
different signal frequency. Then, the user needs to create its
This section shows the proposed approach to address the
own baseline time. This is not a problem if the user is
issues presented in previous section. First, we present what is
familiarized with the TIMER’s registers.
expected from a Microcontroller’s course. Second, we show
The analog-to-digital converter module is also affected by
the fixed time base, because the sample rate is synchronized the course methodology taken in order to meet the
with the clock frequency. It is not an easy task, in Arduino, to expectations for the course and to overcome the problems
posed on the previous section. Finally, we show how our
reconfigure this parameter in order to get a specific sample
approach is aligned with ABET and IET requirements.
rate frequency.
In general, any activity related to timing is affected by the A. Microcontroller’s Course Goals
selected clock frequency. The user needs to either reconfigure
14th LACCEI International Multi-Conference for Engineering, Education, and Technology: “Engineering Innovations for
Global Sustainability”, 20-22 July 2016, San José, Costa Rica. 3
The main purpose of the Microcontrollers course at C. ABET and IET
Universidad Tecnológica de Bolívar is to expose students to The proposed coursework must comply with requirements
concepts related with embedded systems such as design, for electrical and computer engineering. These requirements
hardware-software co-design, prototyping, optimization, are synthesized on ABET and IET student outcomes.
validation, and testing. Due to time limitations, more 1) ABET Outcomes: The following paragraphs present the
specialized topics like real-time operating systems are left for student outcomes directly addressed by the proposed course.
other courses. (a) An ability to apply knowledge of mathematics, science
The course has a project-based learning approach. and engineering. Laboratory sessions and class activities
Students are exposed to problems with increasing difficulty require direct application of mathematical, science, and
through the course. From each problem, it is expected that the engineering knowledge to generate a satisfactory solution.
student develops skills to identify and learn how to use new (b) An ability to design and conduct experiments, as well
hardware devices. Students have to create and debug code for as to analyze and interpret data. Laboratory sessions require
their hardware interfaces and to create a whole system that students to design experiments to characterize sensors and
solves the problem at hand. In addition, it is expected that other devices. Activities related to statistical data analysis,
students build their own component library, so they can port it such as curve fitting, are essential part of these experiments.
to any microcontroller brand with reduced difficulty. (c) An ability to design a system, component, or process
to meet desired needs within realistic constraints such as
B. Course Methodology
economic, environmental, social, political, ethical, health and
The proposed coursework is divided into three main
safety, manufacturability, and sustainability. All course
modules. The first module introduces the student to the
activities include design constrains, such as clock frequency,
general idea about microcontrollers and what can be done with
number of input-outputs allowed, and hardware availability.
them. Here, the Arduino board is used as the main platform. It
Software is also constrained by the limited memory on the
is combined with different hardware boards (shields) in order
micro- controller. Advanced constrains include: power
to develop several applications. The focus is to use the boards
consumption, execution time, and external issues, such as
as black boxes and available libraries to perform the actions
environmental temperature and humidity.
required by the applications.
(d) An ability to function on multidisciplinary teams.
The second module goes beyond the Arduino board and
Several course activities promote multidisciplinary team work.
focuses on the microcontroller. In this module, students learn
The course is taken by students from different engineering
about the microcontroller and what is inside the boards
majors such as Electrical, Electronics, and Mechatronics. In
connected to it. Additionally, students learn how to create their
addition, the laboratory sessions and course project focus on
own functions to control the microcontroller embedded
different fields, such as audio signal, physical and chemical
hardware, and the boards attached to it. The Arduino
variables, robotic applications, and multimedia interfaces,
environment is still used, but now the programming focuses
where the students involve themselves on these topics to
on handling registers, hardware configuration, and protocols.
understand and create adequate solutions. All these activities
The usage of Arduino’s libraries is reduced.
require an active effort to reach an acceptable result.
The last module separates the students from the Arduino’s
(e) An ability to identify, formulate, and solve engineering
environment. The AVR studio [7] environment is used.
problems. This is achieved by assigning a not very detailed
However, other microcontroller brands, such as MicroChip
problem statement to the students. Each team needs to analyze
(PIC) and Texas Instrument (Tiva C) are encouraged. The
the problem to formulate a more detailed and constrained
student will use the available tools from the selected brand for
environment, and then generate a solution that includes
creating and debugging their projects. The Arduino board can
hardware and software components. The hardware includes
be used, but now only as a programmer, for those who decided
microcontrollers, external sensors, and actuators. Students are
to keep working with the ATmega microcontroller. Students
encouraged to design their software using flowcharts or
learn how to create and optimize their own functions and
pseudo-code. It is also required to describe a benchmark setup
applications on their selected environment. They also go
for functional tests and performance metrics.
through a full design cycle, from problem formulation to the
(k) An ability to use the techniques, skills, and modern
final solution, including prototyping.
engineering tools necessary for engineering practice. Students
The course goes from a general view (provided by
are exposed to modern hardware and software tools to create,
Arduino) to a deeper and specialized view. Students go from
optimize, implement, and test their designs. They also read up-
applications that use devices and code in a black-box fashion,
to-date information about microcontrollers, hardware, and
to optimized applications that use any hardware and software
applications.
adapted to the application’s needs. Finally, students go from a
2) IET Learning Outcomes: The proposed course also
basic environment to a more specialized environment, where
satisfies the IET learning outcomes for electrical and computer
they are able to use several tools for program debugging and
engineering.
code optimization.
14th LACCEI International Multi-Conference for Engineering, Education, and Technology: “Engineering Innovations for
Global Sustainability”, 20-22 July 2016, San José, Costa Rica. 4
Underpinning science and mathematics learning outcome. networking technology (Wi-Fi and ZigBee), to build their final
This learning outcome is not directly satisfied by the proposed course projects. In general, students start with an idea based
course because it is not a math course. However, it is expected on successful projects as shown in [9]. We call it seed project.
that students taking this course use math and scientific Students are able to test working hardware and software. This
principles as the foundation to generate creative solutions to a motivates student to propose new ideas for projects based on
given problem. their own experiences.
Engineering analysis learning outcome. This course is a
TABLE I
direct application of engineering principles to solve a design
LEARNING OUTCOME FOR IETR1463 MICROCONTROLLER COURSE
problem. The course project, as the main design problem,
Learning Outcome
requires the students to devise a solution founded in science
principles, to analyze and evaluate the performance of its Know the features of available tools for designing
1
embedded systems
solution at hardware and software level. Know the internal architecture of a
Design. This learning outcome is addressed along the 2
microcontroller
whole course. The student is confronted with practical and real 3
Understand the procedure to program and develop
design problems. The student must understand each problem applications based on microcontrollers
Know the available information sources for
and design a solution that complies with several constrains. 4
developing embedded systems
Engineering practice. The use of microcontrollers allows
for the development of whole systems for real-time The second learning outcome is about knowing the
applications. The course project, as the main application internal architecture of a microcontroller. In the course, we
designed by the students, consists of a prototype, including the study the details of the ATmega328 microcontroller following
PCB and package. The idea is to expose the students to the the methodology presented in [10]. However, students are
whole fabrication process and make them aware of difficulties encouraged to explore other architectures like Microchip or
at this stage of the product fabrication. The report for this Texas Instrument. At this point, students have to provide a
project follows IEEE publication guidelines. This is with the preliminary version of their final projects using their platform.
purpose that students familiarize with technical writing They are allowed to take advantage of the large number of
formats and style. cheap sensor boards available.
V. COURSE DESIGN The third learning outcome is about developing their
personal programs (functions and libraries) and hardware
The lecture-laboratory course presented in this paper, boards (sensors and actuators) to meet the design requirements
ECE1463 - Microcontroller, is a three-credit course required of their own projects. The main focus on this part of the course
for all students pursuing four-and-a-half-year degrees in is the understanding of TIMER module and the sleep modes.
electronics (EE) and mechatronics (ME) engineering at The first one is later used to adjust the base time of other
Universidad Tecnológica de Bolívar, Cartagena, Colombia. modules like the analog-to-digital converter (ADC) and the
Each term consists of 16 weeks of instruction. A three-credit programmable serial USART. The sleep modes are needed to
course in this system typically consists of three 50-min reduce the system’s power consumption. Final course projects
lectures each week and expects six hours per week for self- are battery powered, so energy efficiency is encouraged.
study, reading and homework assignments. During the whole course, students are in contact with the
The students usually take this course in their junior year available information sources. This is the fourth learning
after Digital Systems and Electronics I courses. The outcome. The first-hand information is obtained directly from
microcontroller’s course aims to develop skills in the design the microcontroller makers like as Atmel [11], Texas
and construction of applications based on embedded systems. Instruments [12], and Microchip [13]. In addition, students are
Student should make use of several aspects that they have encouraged to get involved with e-communities like Arduino
learned on previous courses such as electronic design [14], Instructables [15], Energia [16], and Processing [17].
concepts, programming, digital systems, and signal The laboratory schedule for the course is shown in Table
processing. Additionally, the course stimulates team work in II. As the Table shows, six weeks are completely dedicated to
the development of laboratories and a final project. the course project, two weeks each module. First module
The course’s learning outcomes are shown in Table I. (weeks 5 and 6) is for presenting the seed project and the final
Implementation of each learning outcome is discussed next. project proposal. Students select a working project, which they
The first learning outcome is about using the Arduino IDE. modify, improve, and show an upgraded version of it. Second
The approach adopted to present the hardware and software module (weeks 10 and 11) is the opportunity to show a
components of the Arduino framework is similar to the one progress report about the project and readjust the final
used by Margolis [8]. Students get familiar installing and requirements if needed. Last module (weeks 15 and 16) is for
creating sketches. Since this is an EE course, it is important presenting the results of their projects. Students are
that students incorporate sensors like as temperature, pressure, encouraged to highlight their difficulties as well as how they
touch, accelerometers, RFID, motion, as well as wireless overcame them.
14th LACCEI International Multi-Conference for Engineering, Education, and Technology: “Engineering Innovations for
Global Sustainability”, 20-22 July 2016, San José, Costa Rica. 5
Final course projects are intended to use physical sensors, Each semester the course was evaluated based on five
actuators, and networking. Projects require persistent storage aspects: mission, pedagogical model, disciplinary aspects,
and appropriate use of internal resources. Prototyping implies evaluation, and professor. Mission aspect is focused on the
physical building that requires skills like PCB design, professional skills the student must gain in the course.
soldering, and testing. In addition, the completed system Pedagogical model refers to how the activities developed
(software, hardware, and networking) had to be documented. during the course help them to gain the skill they need.
Finally, in order to encourage peer-to-peer learning, the Disciplinary aspects intend to measure the interaction between
students work in teams of two to four members. the contents of the course and their applicability on other areas
or subjects. Evaluation is the aspect where students agree on
TABLE II
the evaluation process. The final aspect, professor, is about
LABORATORY SCHEDULE FOR IETR1463 MICROCONTROLLER COURSE
how the professor helps students during the course in the
Week Laboratory Activity
learning process. Students are asked to evaluate how close the
1 Getting Started course meets the requirements on each aspect. Figure 1 shows
2 Serial Communication Subsystem
3 ADC and DAC the average percentage given by students on each aspect in the
4 Interrupt Subsystem last five terms. As Figure 1 shows, the general perception is
5 Demo Seed Project that the course is interesting, and it has a major impact due to
6 Final Project Proposal the involvement of several disciplines to solve practical
7 Timing Subsystem problems. This is reflected on an average satisfaction level
8 Atmel AVR Operating Parameter and Interfacing
9 Visual Output
over 80%. However, it is noticed a declining trend in the
10 Mid Term Project Presentation satisfaction level, which reach its lower value on the 2014
11 Project Requirement term, around the 75%. At this point, it was introduced the
12 Physical Output approach presented on this paper, and it changed the tendency,
13 Using Display reaching the highest satisfaction value, over 85%, in just one
14 Audio Output
term, although the projects became more challenging and
15 Final Report Presentation
16 Final Report required more student involvement with new hardware devices
and tools.
The course is divided into three learning modules. For TABLE IV
each module, students are graded on weekly lab assignments, A SAMPLE OF PREVIOUS PROJECT
weekly discussion participation, and weekly quiz. At the end Year Project Name
of the module, the students are given a comprehensive final miUniversidad pre-paid e-Card
exam. Table III shows the grading scheme for the course. All 2015
Tweeter Alarm
assessment instruments were individually administered except Multi-parameter platform for controlling
for the final class project that was assigned a single grade for a greenhouses to ensure optimal plant growth
team of 2-4 students. Self parking system
A power meter solution [18]
TABLE III 2014 Proximity glasses for visual impaired
GRADING SCHEME FOR IETR1463 MICROCONTROLLER COURSE Medicament dispenser system
Irrigation system
Assessment 1-module 2-module 3-module System for measurement of moisture in-room
Exam 50% 35% 15% An accelerometer-based system [19]
Lab and quizzes 35% 30% 35% 2013 Underwater remotely operated vehicle - UROV
Project 15% 35% 50% Control of filling a tank
2012 Line follower robot
Table IV shows sample projects for the last years the Temperature-controlled fan
course has been taught. Before 2012, projects were focused on
control, and later in 2013, we started with a project-based VII. DISCUSSION
learning approach when an underwater remotely operated
vehicle (UROV) was the topic for two consecutive terms. Using open-source tool-chains worked well because the
Since 2014, all the projects involve building physical artifacts student had ample support materials available on the Internet.
that include sensors and microcontrollers to communicate with Another advantage is that very little laboratory space is
a computer using wireless and wired networking protocols. In required because students use external “shields” that they buy.
many instances, students also used Processing [17], an A full lab with multi-meters, oscilloscopes, soldering stations,
electronic sketchbook for developing visual interfaces. Some tools, wires, and other materials is provided to the students as
course projects evolved as capstone projects, and have been needed. The students were also encouraged to use the facilities
presented in international conferences [18], [19]. in the manufacturing laboratory.
Most course projects successfully combined hardware and
VI. EVALUATION software co-design methodology in a logical manner
14th LACCEI International Multi-Conference for Engineering, Education, and Technology: “Engineering Innovations for
Global Sustainability”, 20-22 July 2016, San José, Costa Rica. 6
Fig. 1 Student evaluation for IETR1463 Microcontroller Course.
producing good designs. This is evidenced from the rubrics [4] R. Chancharoen, A. Sripakagorn, and K. Maneeratana, “An Arduino kit
for learning mechatronics and its scalability in semester projects,” in
used to grade the final course projects.
Teaching, Assessment and Learning (TALE), 2014 International
Conference on, Dec 2014, pp. 505–510.
Fig. 1 Student evaluation of Microcontroller Course. [5] M. Del Carmen Curras-Francos, J. Diz-Bugarin, J. Garcia-Vila, and A.
Orte-Caballero, “Cooperative development of an arduino-compatible
One interesting side-effect of the student taking the course building automation system for the practical teaching of electronics,”
Tecnologias del Aprendizaje, IEEE Revista Iberoamericana de, vol. 9, no.
is that many students have started using the open-source 3, pp. 91–97, Aug 2014.
hardware and sensors introduced in the course in their [6] J. Sarik and I. Kymissis, “Lab kits using the arduino prototyping
capstone projects. platform,” in Frontiers in Education Conference (FIE), 2010 IEEE, Oct
2010, pp. T3C–1–T3C–5.
VIII. CONCLUSION [7] A. Corporation. (2015) Atmel studio 6. [Online]. Available:
http://www.atmel.com/microsite/atmel studio6/
This paper presented a project-oriented microcontroller [8] M. Margolis, Arduino cookbook. ” O’Reilly Media, Inc.”, 2011.
course for electrical and computer engineering students. The [9] J. Boxall, Arduino Workshop: A Hands-On Introduction with 65 Projects.
San Francisco, CA, USA: No Starch Press, 2013.
course takes advantage of the Arduino’s platform to have a [10]S. F. Barrett, Arduino Microcontroller Processing for Everyone! Morgan
rapid introduction to the microcontrollers and then performs a and Claypool Publishers, 2010.
detailed study of the device for the development of [11]A. Corporation. (2015, Jun.) Atmel Corporation - Microcontrollers, 32
applications to solve design problems under constraints. bits, and touch solutions. [Online]. Available: http://www.atmel.com/
[12]T. Instruments. (2015, Jun.) Analog, Embedded Processing,
Overall, the course methodology has been well received by the Semiconductor Company, Texas Instruments - TI.com. [Online].
students, and the results show that the course has helped them Available: http://www.ti.com/
to improve their design skills. By going from a general [13]Microchip. (2015, Jun.) Microchip Technology Inc. [Online]. Available:
knowledge of the Arduino platform to a deeper knowledge of http://www.microchip.com/
[14]Arduino. (2015, Jun.) Arduino - Home. [Online]. Available:
the microcontroller architecture and use, the student gets a https://www.arduino.cc/
better understanding of the device and is not constrained to the [15]Instructables. (2015, Jun.) Instructable - DYI How to Make Instructions.
hardware and software tools that are available in Arduino’s [Online]. Available: http://www.instructables.com/
community. Additionally, it is easier for the instructor to [16]Energia. (2015, Jun.) Energia. [Online]. Available: http://energia.nu/
[17]Processing. (2015, Jun.) Processing. [Online]. Available:
assess the student’s contribution to the project development. https://processing.org/
ACKNOWLEDGMENT [18]M. Maryori Sabalza, J. Borre, and J. Martinez Santos, “Design and
construction of a power meter to optimize usage of the electric power,” in
We would like to thank the anonymous reviewers for their Engineering Mechatronics and Automation (CIIMA), 2014 III
International Congress of, Oct 2014, pp. 1–5.
comments and feedback on the ideas in this paper. [19]R. Diaz Parada and J. Martinez Santos, “Study of the lower limp’s angle
during weightlifting exercises using an accelerometer-based system,” in
REFERENCES
Engineering Mechatronics and Automation (CIIMA), 2014 III
[1] I. Zualkernan, “A course for teaching integrated system design to International Congress of, Oct 2014, pp. 1–4.
computer engineering students,” in Global Engineering Education
Conference (EDUCON), 2014 IEEE, April 2014, pp. 470–474.
[2] K. G. Ricks, W. A. Stapleton, and D. J. Jackson, “An embedded systems
course and course sequence,” in Proceedings of the 2005 Workshop on
Computer Architecture Education: Held in Conjunction with the 32Nd
International Symposium on Computer Architecture, ser. WCAE ’05.
New York, NY, USA: ACM, 2005. [Online]. Available:
http://doi.acm.org/10.1145/1275604.1275617
[3] P. Jamieson, “Arduino for teaching embedded systems. are computer
scientists and engineering educators missing the boat?” in Proc. FECS,
2010, 2010, pp. 289–294.
14th LACCEI International Multi-Conference for Engineering, Education, and Technology: “Engineering Innovations for
Global Sustainability”, 20-22 July 2016, San José, Costa Rica. 7