Arduino Kontrol g110
Arduino Kontrol g110
net/publication/330132806
CITATION READS
1 71
1 author:
SEE PROFILE
Some of the authors of this publication are also working on these related projects:
Low cost distributed control system for the Electric Vehicle (EOLO) View project
All content following this page was uploaded by Jonathan Álvarez Ariza on 12 March 2019.
To ensure uniformity of treatment among all contributors, other forms may not be substituted for this form, nor may any wording
of the form be changed. This form is intended for original material submitted to the IEEE and must accompany any such material
in order to be published by the IEEE. Please read the form carefully and keep a copy for your files.
Towards education alternatives to teaching and learning of programming: A course experience using open hardware tools
Mr. Jonathan Alvarez
2018 IEEE Frontiers in Education Conference (FIE)
COPYRIGHT TRANSFER
The undersigned hereby assigns to The Institute of Electrical and Electronics Engineers, Incorporated (the "IEEE") all rights
under copyright that may exist in and to: (a) the Work, including any revised or expanded derivative works submitted to the IEEE
by the undersigned based on the Work; and (b) any associated written or multimedia components or other enhancements
accompanying the Work.
GENERAL TERMS
1. The undersigned represents that he/she has the power and authority to make and execute this form.
2. The undersigned agrees to indemnify and hold harmless the IEEE from any damage or expense that may arise in the
event of a breach of any of the warranties set forth above.
3. The undersigned agrees that publication with IEEE is subject to the policies and procedures of the IEEE PSPB
Operations Manual.
4. In the event the above work is not accepted and published by the IEEE or is withdrawn by the author(s) before
acceptance by the IEEE, the foregoing copyright transfer shall be null and void. In this case, IEEE will retain a copy of
the manuscript for internal administrative/record-keeping purposes.
5. For jointly authored Works, all joint authors should sign, or one of the authors should sign as authorized agent for the
others.
6. The author hereby warrants that the Work and Presentation (collectively, the "Materials") are original and that he/she is
the author of the Materials. To the extent the Materials incorporate text passages, figures, data or other material from the
works of others, the author has obtained any necessary permissions. Where necessary, the author has obtained all third
party permissions and consents to grant the license above and has provided copies of such permissions and consents
to IEEE
You have indicated that you DO wish to have video/audio recordings made of your conference presentation under terms
and conditions set forth in "Consent and Release."
1. ln the event the author makes a presentation based upon the Work at a conference hosted or sponsored in whole or in
part by the IEEE, the author, in consideration for his/her participation in the conference, hereby grants the IEEE the
unlimited, worldwide, irrevocable permission to use, distribute, publish, license, exhibit, record, digitize, broadcast,
reproduce and archive, in any format or medium, whether now known or hereafter developed: (a) his/her presentation
and comments at the conference; (b) any written materials or multimedia files used in connection with his/her
presentation; and (c) any recorded interviews of him/her (collectively, the "Presentation"). The permission granted
includes the transcription and reproduction of the Presentation for inclusion in products sold or distributed by IEEE and
live or recorded broadcast of the Presentation during or after the conference.
2. In connection with the permission granted in Section 1, the author hereby grants IEEE the unlimited, worldwide,
irrevocable right to use his/her name, picture, likeness, voice and biographical information as part of the advertisement,
distribution and sale of products incorporating the Work or Presentation, and releases IEEE from any claim based on
right of privacy or publicity.
BY TYPING IN YOUR FULL NAME BELOW AND CLICKING THE SUBMIT BUTTON, YOU CERTIFY THAT SUCH ACTION
CONSTITUTES YOUR ELECTRONIC SIGNATURE TO THIS FORM IN ACCORDANCE WITH UNITED STATES LAW, WHICH
AUTHORIZES ELECTRONIC SIGNATURE BY AUTHENTICATED REQUEST FROM A USER OVER THE INTERNET AS A
VALID SUBSTITUTE FOR A WRITTEN SIGNATURE.
AUTHOR RESPONSIBILITIES
The IEEE distributes its technical publications throughout the world and wants to ensure that the material submitted to its
publications is properly available to the readership of those publications. Authors must ensure that their Work meets the
requirements as stated in section 8.2.1 of the IEEE PSPB Operations Manual, including provisions covering originality,
authorship, author responsibilities and author misconduct. More information on IEEE’s publishing policies may be found at
http://www.ieee.org/publications_standards/publications/rights/authorrightsresponsibilities.html Authors are advised especially of
IEEE PSPB Operations Manual section 8.2.1.B12: "It is the responsibility of the authors, not the IEEE, to determine whether
disclosure of their material requires the prior consent of other parties and, if so, to obtain it." Authors are also advised of IEEE
PSPB Operations Manual section 8.1.1B: "Statements and opinions given in work published by the IEEE are the expression of
the authors."
Questions about the submission of the form or manuscript must be sent to the publication's editor.
Please direct all questions about IEEE copyright policy to:
IEEE Intellectual Property Rights Office, copyrights@ieee.org, +1-732-562-3966
Towards education alternatives to teaching and
learning of programming: A course experience
using open hardware tools
Jonathan Álvarez Ariza, member, IEEE
Uniminuto, Department of Electronic Technology, Bogotá, Colombia
jalvarez@uniminuto.edu
Abstract—This full paper proposes an educational methodol- several aspects concerning programming as follows: Firstly,
ogy to teaching and learning of programming using both open this area is usually one of most difficult areas in engineering
hardware tools and industrial components such as Arduino, because it requires by the student a set of cognitive and
Raspberry Pi, three phase motors and variable speed drives.
The methodology aims to improve the algorithmic thinking in metacognitive abilities [5][6][7], e.g., abstraction, analysis,
the students due to the deficiencies detected in it, as well as, it classification, synthesis and modeling. These elements can
searches that the students learn a second programming language, result overwhelm for the student, if he/she is aware that has
using hands-on designs and activities that require the components deficiencies in them, which could generate lack of motivation,
mentioned. In addition, the methodology has been employed learning problems or even dropping out of the university[5].
into the curriculum of a course of programming known as
(open hardware) for students of technology in electronics (n=22),
observing that the students learn programming concepts in a Secondly, programming must take into account the main
better way and their motivation and engagement towards the skills or competences relating to the type of engineering
software area was increased during the course. To technical level, (Electrical, Electronics or Computer Science), in which it
the methodology uses the programming language Python in order is taught. For instance, teaching programming in electronics
to interact with the different ports, peripherals and utilities of
the platforms mentioned, creating a link between these elements should involve the use of hardware elements that conform
and the aspects concerning the software design, e.g., data types, a process or system, e.g., sensors, actuators, displays, Pro-
classes, methods or Graphical User Interfaces (GUIs). Finally, gramming Logic Controllers (PLCs), etc., with the software
the methodology takes into account two important aspects, firstly, concepts tackled along the curriculum. The learning in context
the skills developed by the students in the proposal are involved help to the students to elaborate a significant learning that
into the BoK (Body of Knowledge) of different engineering
areas as embedded systems, control and computer science and, contributes to enhancing their educational process and also it
secondly, programming is perhaps one of the most difficult areas allows that the students approaching to programming, applying
in engineering but in turn, it has a ubiquitous nature in the areas the concepts learned in designs or projects in educational and
mentioned. professional contexts.
Index Terms—Python, Programming Education, Open Hard-
ware Platforms, Design Based Learning (DBL), Cooperative In this regards, the present paper describes an educational
Learning (CL). alternative to teach programming, using the programming
language Python. The methodology uses to educational level
some elements of the approaches of Design Based Learning
I. I NTRODUCTION
(DBL) and Cooperative Learning (CL) in order to improve the
uring the last years the field of the education in engi-
D neering has been transformed by the new educational
technologies such as Arduino [1], Raspberry Pi [2], Orange
algorithmic thinking, as well as, to foster the fellowship and
the collaborative work so as to attain the learning outcomes
proposed in the course. Concerning the technical level, it was
Pi [3] or Beagle Bone [4]. These platforms have allowed to employed the open source platforms Arduino and Raspberry Pi
combine hardware and software components in the construc- with the hardware components indicated, creating scripts that
tion and implementation of designs. Due to the versatility of interacted with them through packets and utilities of Python
the technologies mentioned, these can be used to teach and as PyFirmata, Matplotlib, PyMata and PAGE.
learn programming languages, e.g., Python, C, Java or Dart,
fostering the motivation of the students in the programming According to the elements mentioned, this article is divided
area. In addition to these features to technical level, program- in the following sections: section II exposes the background
ming has gain a ubiquitous nature in several engineering areas that structures the proposal. Section III, explain the methodol-
as embedded systems, automatic control, robotics, networks ogy with the description of some practices and basic designs
and communications. addressed in the course. Section IV discusses the results and
Thereby, it is needed to educational level, the generation findings of the proposal. Finally, section V establishes the final
of proposals that take into account the aforementioned and remarks and conclusions of this work.
II. BACKGROUND programming, in fact, the 71% of the users fully agreed, and
29% partially agreed with this premise.
In this section, it discusses the background of the proposal
divided in the related works and the educational approaches All investigations mentioned are relating to this work, in
involved in its design. the sense, to offer a perspective of use of Python in different
scenarios such as robotics, parallel programming, IoT and
embedded systems. Despite these important researches and
A. Related works studies, there is a current lack of proposals that integrate the
Rabai et al.[8] discuss the current trends of programming teaching of programming and the industrial field. In this way,
languages in the educational and industrial scenarios in US. the present research contributes to strengthen the current state
One interesting point of this research is that Python has gained of art in the educational proposals that take into account this
relevance as language in the first course of programming, issue.
occupying the second place in the ranking with a 23.08% of
popularity in the period (2010-2013) in the US universities. B. Educational approaches
Moreover, to industrial level, Python is situated in the fourth 1) Design-Based Learning (DBL): Puente et al.[15] have
place of popular programming languages in accordance with defined the concept of Design-Based Learning (DBL) as an
TIOBE index [9] that analyses the opinions of skilled engi- educational approach focused on the inquiry and reasoning
neers world-wide, courses and third party vendors. processes with the aim to produce innovative objects, e.g., arti-
Marowka [10] proposes an in-depth educational study for facts, systems, etc. From pedagogical paradigm, the DBL takes
parallel programming that uses Python. According to this in mind both the problem solving theory and the practices
research, Python is suitable for teaching Multithreaded pro- in the development of projects focused on the learner. From
gramming in novice programmers because offers packages for our perspective, we understand the DBL as an educational
implementing and debugging different algorithms. However, methodology based on cognitive and metacognitive processes,
the author also indicates that Python has current issues in e.g., (conceptualization, analysis, design, implementation and
parallel programming but they could be solved if they are debugging) that are important into education in programming
used some packages for Message Passing Interface (MPI) as and the design of any algorithm.
mpi4py. Hence, one important element into the structure of the
Huei [11] uses Python as language for introduction to DBL approach is the problem. Regarding to this, Jonassen[16]
programming through robotics. The author argues that Python indicates that the problem is an unknown entity in a context,
is an easy language to learn for novice programmers. The e.g., social, technical or cultural. The transition between the
methodology proposed was developed in seven weeks, in problem and its solution requires two elements: On one hand,
which the different concepts in programming as variables, a mental model of the problem and by the other hand, the
operators precedence, mathematical functions, strings and dic- manipulation mental or physical of it[16].
tionaries were taught to 250 students. The research concludes Furthermore, the DBL approach uses the design as source
that the integration of robotics and programming is an effective of knowledge[17], this is, through the design, the students
way to the students create high learning values. perform actions such as planning, modeling, abstraction and
analysis, so as to create solutions that respond to certain
Similarly, Báez et al.[12] establish an educational method- requirements. The main aspects related to the DBL approach
ology, using a soccer robotic platform. The authors pose a are summarized as follows[17]:
series of learning modules in which integrate concepts of
• In relation to the design, the problem is explored with
programming and artificial intelligence. The methodology was
its implications into the practice. Afterwards, it should
applied to a group of 30 students of electrical engineering.
develop a design methodology that tackles these implica-
Within the results described, it shows an improvement of the
tions in the educational field.
course grades of an average to 70% to an average of the 82%,
• The assessment has a constructivist nature in the educa-
checking the pertinence of the proposal.
tional process of the students.
On the other hand, Rao et al.[13] employed a methodology • In the social context, the collaborative or Cooperative
in an embedded system course that gathered IoT devices, Learning (CL) is an important methodology that helps
Python and Raspberry Pi. The course enrolled 8 students of to achieve the goals of a determined design through the
Master degree that proved the methodology, modifying the interaction and learning between classmates.
curriculum that consisted in to teach the architecture of ARM • The designs or projects worked with the students should
processors. The study indicates that the platform Raspberry Pi be authentic, innovative and multidisciplinary.
provides an easy way to experiment in the embedded system • The teacher leads the process of the design which is based
area that can enhance the educational process of the students. on tasks.
Finally, the investigation carried out by Almeida et al.[14] • The learning is a process given mainly by hands-on
shows how the remote laboratories can be employ to teach activities.
programming through NXT Lego robots and Python. The 2) Cooperative Learning (CL): As it mentioned, the CL is
participants of this research indicated that using robotics an important methodology that articulates the DBL approach
and remote laboratories provided them an easy way to learn and thus, the methodology proposed. Johnson [18][19] defines
the CL as a methodology that operates in reduced groups in Secondly, the need to put the programming in context, as
which the learners work together with the aim to maximize part of an integral formation that takes into account the skills
the learning both a personal level as group level. In this way, and competences that must be developed by the students in
in this methodology exists five essential elements which are electronics engineering or technology. Thirdly, it searches to
sorted below: increase the motivation to learn programming, drawing on
• Positive interdependence: This term is refereed to how the the educational and technical features of some open hardware
students work together and they assume an engagement platforms as Arduino and Raspberry Pi [21][22][23]. These
both with their own and collective learning. For the elements have allowed to structure the methodology as is
members of a group is clear that in order to achieve the depicted in the Fig.(1).
goals proposed (technical and educational), it must exist
the gathering of individual and collective efforts. 1
• Individual and group responsibility: Each member of
the group must understand that has an individual and
group responsibility in the different tasks assigned. The Conceptualizing
Week Topics
Fundamentals of Python (features of the language,
data types (tuples, lists, dictionaries, arrays), loops, 1 2
1-2
packages and their installation).
Concepts relating to the platform Arduino, and first Fig. 2. Scheme proposed for Arduino boards and Python through packages
3 programs. Pyfirma and PyMata.
Firmata Protocol in Python. Reading and writing
4 digital I/O ports with the Pyfirmata package.
Sensors and actuators (temperature, resistance, Raspberry Pi, the students installed and used some packages
5-6 humidity, three phase motors) with scripts in
Python using PyMata and Pyfirmata packages. as RPi, time and SMBus. The scheme proposed for Raspberry
Design of GUIs through Tkinter and PAGE in Pi and Python is shown in the Fig.(3).
7-8 Python that interact with Arduino, sensors and
actuators.
Assessment and feedback of the methodology in
Python Language RPi, SMBus, etc GPIOs and peripherals
9 regards to the learning in programming with (Python packages) Write of Raspberry Pi
Arduino, the contents and the course motivation. or read
Fundamentals of Python with Raspberry Pi. GPIO’s
or peripherals
10 Introduction to Linux Raspbian, configuration of
General Purpose I/O (GPIOs).
Remote access to Raspberry Pi board through SSL Fig. 3. Scheme proposed for Raspberry Pi and Python.
11-12 protocol. Useful commands in console of Linux
Raspbian to execute Python scripts.
Configuration of sensors and protocols as I2C or
13 SPI in Python with Raspberry Pi.
B. Description of some designs
Design of GUIs through Tkinter and PAGE.
14-15 This section describes some designs that the students de-
Assessment and feedback of the methodology in veloped in function of the aspects educational and technical
16 regards to the learning in programming with the mentioned. Our intention is to provide some examples of the
Raspberry Pi board, the contents and the course
motivation. designs made by the students with Python and the platforms
indicated.
1) Design 1: Starting up of AC Induction Motor (ACIM)
In each session per week, it was proposed small designs that with Arduino: The aim of this design was to introduce to the
addressed the contents mentioned and the moments described student to use the package Pyfirmata with its particularities,
in the Fig.(1), reinforcing the Algorithmic Thinking and the as well as, the student learned some loops and statements
positive interdependence that conforms the core of the CL in Python, creating an algorithm to start up an ACIM. The
approach. Some of these designs will be described in the next students also used some industrial components as relays, con-
section. tactors, breakers and they calculated the current and voltage
parameters in order to implement them in the design. The
In order to interact with Arduino, it was proposed a scheme
Fig.(4) depicts an example of the design made by the students.
that utilizes the packages Pyfirmata and PyMata as is depicted
Through simple buttons, the students commanded the start up
in the Fig.(2). In 1, the students employed the Pyfirmata pro-
and stop of the ACIM. An example of the program in Python
tocol which is a Python package that allows to communicate
is shown in the Algorithm (1).
with the Arduino boards through the Firmata protocol [26]
that implements actions as reading and writing of digital pins
and writing the duty cycle for the PWM pins.
As for the package PyMata, it allows the implementation of
the I 2 C protocol in Python for the Arduino boards with the
Firmata protocol. In 2, the communication is made through
serial port physical or virtual. For the methodology, the stu-
dents worked with the board Arduino Mega 2560 whose main
features are: Processor (ATmega 2550) running at frequency
of 16MHz, 54 I/O pins, 16 analog pins, 15 PWM outputs,
Flash Memory of 256KB, UART, I 2 C and SPI peripherals.
In regard to Raspberry Pi platform, it was utilized the
version 3 model B with the following features: CPU ARM-
Cortex A53 running at 1.2GHz, 1GB of RAM, Bluetooth,
Ethernet and Wi-Fi modules. Due to Linux Raspbian contains
a distribution of Python (version 2.7), the programs were
elaborated directly in it. So as to interact with the General
Purpose I/Os (GPIOs) and the peripherals as I 2 C of the Fig. 4. Design 1. The figure shows the components used by the students.
Algorithm 1 Example of code for the design 1. Algorithm 2 Example of code for the design 2.
import pyfirmata # import pyfirmata package import smbus #import I2C package
# import ArduinoMega class #use plot from matplotlib
from pyfirmata import ArduinoMega import matplotlib.pyplot as plot
import time #import time package # import time package
#Arduino’s working port import time
board= ArduinoMega("COM13") #0 = /dev/i2c-0
#Declare iterator prevents buffer overflow #1 = /dev/i2c-1
it = pyfirmata.util.Iterator(board) plot.ion()#start graphic
it.start() # start iterator analog=[] #Define array that will contain the
#Push button on Pin 4 (digital) of ArduinoMega data
pin = board.get_pin(’d:4:i’) I2C_BUS = 1
while True:#repeat forever #...
value = pin.read() #Read pin’s state def Reading():
#if push button was pressed temp_reg_12bit = bus.read_word_data(
if value is False: DEVICE_ADDRESS , 0 )
#start motor temp_low = (temp_reg_12bit & 0xff00)
board.digital[13].write(1) >> 8
#Print in console temp_high = (temp_reg_12bit & 0x00ff)
print ("Button pressed") #Convert the value read to the
time.sleep(0.1)#delay of 0.1 seconds equivalent in temperature
temp = ((( temp_high * 256 ) +
temp_low) >> 4 )
2) Design 2: Emergency stop for over temperature in ACIM temp_C = float(temp) * 0.0625
through board Raspberry Pi: In this design, it was worked #...
with the package matplotlib in so as to plot the temperature def Plotting():
sensed by the device TMP102. This sensor has an I 2 C plot.hold
protocol and a 13 bit resolution for the temperature in a range plot.ylim(0,150) #Put Y axis limits
between -40°C and 125°C. The aim of the design was, on one #...
hand, that the students learned the configuration of the I 2 C
while True:
protocol through Python and some bit operations, and by the Reading()
other hand, that the students employed the package matplotlib drawnow(Plotting) #Update the plot
to plot data sensed. The bit operations were used to transform time.sleep(0.1)#delay of 0.1 seconds
the data stream read from the sensor to the equivalent in
temperature.
Moreover, the students designed the script in Python and
implemented it, to generate an over temperature control for employing variable speed drives as the Telemecanique altivar
the ACIM. The Algorithm (3) describes some parts of the 31, Optidrive E1 or Sinamics G110. The students modeled the
example of code made by the students and the Fig.(5) shows voltage over the digital potenciometer XC9C103 in function of
the design implemented. the ACIM’s speed and they configured the variable speed drive
with an analog reference. The ACIM’s speed was controlled
using the console of the IDE (PyCharm community edition).
Fig. 5. Design 2. The students designed an emergency stop for the ACIM and
they plotted the temperature sensed by the device TMP102 through Matplotlib
in Python.
Fig. 6. Design 3. The students configured the parameters of the variable speed
3) Design 3: Speed control of the ACIM from Arduino: The drive Sinamics G110. The speed was handled through a digital potentiometer
purpose of this design was to control the speed of the ACIM, in the Arduino Mega 2560.
IV. R ESULTS AND FINDINGS TABLE III
S URVEY OF ASSESSMENT OF THE METHODOLOGY (PART II).
In this section, we discuss the results and findings of the
methodology. It is important to mention that the methodology Question \ Yes No
was applied to 22 students (n = 22) of the program of answer option
Electronics Technology during the first semester of 2018 5. With the employment of 100% 0%
(22) (0)
inscribed into the course of Open Hardware. In the first part the methodology, Have you
articulate in an easy way
of the course, it was elaborated a survey with the purpose to hardware components as
know the perception of the students about the concepts and sensors or actuators with
knowledge that they had in the subject of basic programming Python Scripts?
and also the different difficulties in it. This subject is offered 6. Do you consider that 100% 0%
to our students and it is focused on the programming language Python is a powerful (22) (0)
C. The conclusions of this survey are summed up as follows: programming language in
comparison with other
1) 91.6% of the students consider that if it had articulated languages that you have used
the use of hardware devices in the structure of the as C, Java, etc.?
course of programming, their learning would have been 7. Has the methodology 100% 0%
helped me to understand in a (22) (0)
much more meaningful. Moreover, 100% of the students
better way the programming
argued that the course needs a better articulation with algorithms?
hardware components and platforms.
2) One question of the survey consisted in to evaluate in a
The survey searched the point of view of the students
scale to 1 to 5, where 1 is a lowest value and 5 is the
regarding the knowledge of programming, the algorithmic
highest value concerning the learning of the students
thinking developed, the real context of the practices, the
in the subject of basic programming, the mean of the
designs elaborated and the motivation towards programming.
grades in this process was 3.33.
The methodology was evaluated in a scale of 1 to 10 by
3) With regard to the problems in programming, the stu-
the students, the mean of this assessment was 9.3181, which
dents indicated that they have difficulties in: Search
demonstrates that the proposal had a good acceptance between
errors in programming and fixing them; order in the
the students.
sequence of code (algorithmic thinking); library cre-
ation; declaration of variables; use of conditionals and In the same way, it were compared the means of the
statements. students’ grades in the three terms of the semester (scale 0
to 5) without and with the methodology in the (periods 2017-
These elements were taken in the structure of the methodology.
II and 2018-I) respectively. This comparison is shown in the
In the last part of the course was made a survey according to
Fig.(7).
Likert choices to assess the methodology and to compare the
skills and knowledge in the students. The results of this survey
are synthesized in the following tables and figures.
Grades’ average (2017-II-2018-I)
TABLE II
S URVEY OF ASSESSMENT OF THE METHODOLOGY (PART I). 4.31
4.3
Question \ answer Completely
Quit a
A little None
4.24
bit
option 4.2
45.46% 54.54% 0% 0% 4.13
Value
1. Do you consider
that the methodology (10) (12) (0) (0) 4.08
contributed to your
learning in 4
programming?
45.46% 54.54% 0% 0% 3.9
2. Did the practices
(10) (12) (0) (0)
allow me to put in a
real context the
algorithms designed
rm
rm
rm
in Python?
te
te
Te
45.46%
t
nd
54.54% 0% 0%
rd
rs
3. Has the
co
(10)
Fi
hi
me the cooperative
learning, that is to
say, interact, share 2017-II 2018-I
and learn with other
classmates?
4. Has the 86.36% 13.64% 0% 0%
methodology allowed (19) (3) (0) (0) Fig. 7. Comparison of the students’ average grades in the periods (2017-II,
me to get interested 2018-I) by academic terms.
in programming?
A. Discussion the learning of other concepts involved in programmming and
According to the outcomes presented, firstly, the method- Python.
ology attained an increment of the grades in the course
because the motivation to learn programming was fostered V. C ONCLUSIONS AND FUTURE WORK
as is depicted in the table II and Fig.(7). The methodology
In this paper, it has been presented an educational method-
was provided to students of technology in electronics. As
ology that involves programming in Python and hardware
contextualization, in Colombia, the technological programs are
components in the industrial field in order to improve the
understood as a kind of programs focused on labor fields, with
algorithmic thinking and the skills of the students in the
a duration between two or three years. Most of the subjects
software area. It has used these elements due to the course
established in the curriculum search that student develops the
is provided to students of technology in electronics and they
abilities that a determined sector needs, e.g., in some programs
must develop certain abilities and skills between them, the
of electronics technology their emphasis include telecommu-
suitable articulation of hardware and software in designs,
nications, industrial communications, industrial automation or
projects or applications. Moreover, it was employed the DBL
bioengineering [27].
and CL approaches so as to enhance the educational process
Secondly, the proposal provided to the students different
of the students, particularly, the component of the algorithmic
programming skills that can be used in the industrial sector
thinking. The students shared, interacted and learned in group
with different types of devices such as actuators, variable
according to the practices and designs proposed in the different
speed drives or PLCs. The proposal also strengthened the
sessions of the course, therefore, programming was grounded
algorithmic thinking in the students through hands-on designs
to a real context in function of the educational needs of the
and activities as it was indicated by the following students:
students. As future work, on one hand, the methodology should
Student A: Through the methodology, I implemented func- be validate in other subjects of the curriculum, observing the
tional programs with electronic components that can be han- pertinence of it. By the other hand, to technical level, we
dled to industrial level. want to integrate other hardware components mainly focused
Student B: The hands-on laboratories made that the on Internet of Things (IoT) with the industrial field and
learning was autonomous. One interesting element was the programming in Python.
teacher’s support to correct the different programming mis-
takes.
Student C: I consider that the teaching technique allowed ACKNOWLEDGMENT
me understand the principles of programming that I wanted The author wishes to acknowledge to Uniminuto University
to reinforce. for the financial support of this project. The author also wishes
When programming goes joined with practical activities in to extend their acknowledge to the academic community of
context, it can be achieved a better motivation to learn, as well the Electronic Technology program specially to the students
as, an improvement of the algorithmic thinking in the students. of the open hardware workshop and the automatic control
research incubator. For all them, thanks for their help. Finally,
Thirdly, the students considered that Python is a practical
the author acknowledges specially to the reviewers for their
language because they wasted less time in programming
important contributions in the structure of this work.
and debugging in comparison with other languages. It is an
important feature of the high level languages with interpreter.
Some comments concerning this are shown as follows: R EFERENCES
Student D: Python is interesting because it allows to [1] (2017) Introduction to arduino. [Online]. Available: https://www.
interact easily with hardware components. arduino.cc/en/Guide/Introduction
[2] R. P. Foundation. (2017) Raspberry pi specifications. [Online].
Student E: I consider that the structure and syntax of the Available: https://www.raspberrypi.org/
Python language is easier to learn if you compare with other [3] O. Pi. (2018) Orange pi specifications. [Online]. Available: http:
programming languages. //www.orangepi.org/
[4] B. Board. (2018) Beagle bone specifications. [Online]. Available:
Fourthly, although Cooperative Learning (CL) is difficult to https://beagleboard.org/bone
achieve in practice, the methodology searched that the students [5] D. Teague, “Pedagogy of introductory computer programming: A
worked in group and shared their experiences so as to attain the people-first approach,” Master’s thesis, Queensland University of Tech-
nology, 2011.
learning goals. Finally, the educational platforms employed in [6] J. Á. Ariza, “A proposal for teaching programming languages through
the methodology (Arduino and Raspberry Pi) have allowed open hardware tools,” in 2016 IEEE 8th International Conference on
different types of designs and their implementation by the Engineering Education (ICEED), Dec 2016, pp. 202–207.
[7] A. Kak. (2016) Teaching programming. [Online]. Available: https:
students in an easy way as it was mentioned several times by //engineering.purdue.edu/kak/TeachingProgramming.pdf
them. This result is aligned to some references of the related [8] L. B. A. Rabai, B. Cohen, and A. Mili, “Programming language use in
works described. us academia and industry,” Informatics in Education, vol. 14, no. 2, p.
143, 2015.
As difficulties, it is important to mention that the time [9] T. software company. (2018) Tiobe index. [Online]. Available:
dedicated to programming in the methodology is reduced. https://www.tiobe.com/tiobe-index//
[10] A. Marowka, “On parallel software engineering education using python,”
The students indicated that should exist much more time for Education and Information Technologies, vol. 23, no. 1, pp. 357–372,
programming and the designs assigned, which would allow 2018.
[11] Y. C. Huei, “Benefits and introduction to python programming for fresh-
more students using inexpensive robots,” in 2014 IEEE International
Conference on Teaching, Assessment and Learning for Engineering
(TALE), Dec 2014, pp. 12–17.
[12] H. Báez, K. Pérez, E. Rojas, S. Rodríguez, J. López, C. Quintero, and
J. M. Calderón, “Application of an educational strategy based on a soccer
robotic platform,” in 2013 16th International Conference on Advanced
Robotics (ICAR), Nov 2013, pp. 1–6.
[13] A. R. Rao, D. Clarke, M. Bhdiyadra, and S. Phadke, “Development of
an embedded system course to teach the internet-of-things,” in 2018
IEEE Integrated STEM Education Conference (ISEC), March 2018, pp.
154–160.
[14] T. O. Almeida, J. F. d. M. Netto, and M. L. Rios, “Remote robotics
laboratory as support to teaching programming,” in 2017 IEEE Frontiers
in Education Conference (FIE), Oct 2017, pp. 1–6.
[15] M. Gomez Puente, M. van Eijck, and J. W., “A sampled literature review
of design-based learning approaches: A search for key characteristics,”
International Journal of Technology and Design Education, vol. 23(3),
pp. 717–732, 2013.
[16] D. H. Jonassen, “Toward a design theory of problem solving,” Educa-
tional Technology, Research and Development, vol. 48 (4), pp. 63–85,
2000.
[17] S. M. Gómez Puente, Design based learning: exploring an educational
approach for engineering education Eindhoven. Technische Universiteit
Eindhoven, 2014.
[18] D. W. Johnson and R. Johnson, El aprendizaje cooperativo en el aula,
P. SAICF, Ed., 1999.
[19] D. W. Johnson, R. T. Johnson, and S. K. A., “Cooperative learning:
Improving university instruction by basing practice on validated theory,”
Journal on Excellence in University Teaching, 2013.
[20] D. Katzenbach, J Smith, The wisdom of teams. Harvard Business School
Press, 1993.
[21] A. Garrigós, D. Marroquí, J. M. Blanes, R. Gutiérrez, I. Blanquer,
and M. Cantó, “Designing arduino electronic shields: Experiences from
secondary and university courses,” in 2017 IEEE Global Engineering
Education Conference (EDUCON), April 2017, pp. 934–937.
[22] P. Jamieson and J. Herdtner, “More missing the boat - arduino, raspberry
pi, and small prototyping boards and engineering education needs them,”
in 2015 IEEE Frontiers in Education Conference (FIE), Oct 2015, pp.
1–6.
[23] X. Zhong and Y. Liang, “Raspberry pi: An effective vehicle
in teaching the internet of things in computer science and
engineering,” Electronics, vol. 5, no. 3, 2016. [Online]. Available:
http://www.mdpi.com/2079-9292/5/3/56
[24] (2018) Pymata package specifications. [Online]. Available: https:
//github.com/MrYsLab/PyMata
[25] (2018) Pyfirmata package specifications. [Online]. Available: https:
//github.com/tino/pyFirmata
[26] (2018) Firmata protocol specifications. [Online]. Available: https:
//vvvv.org/documentation/firmata-protocol
[27] C. A. Herazo and J. Á. Ariza, “A proposal of educational model for
research incubators in technological programs of electronics,” in 2016
IEEE 8th International Conference on Engineering Education (ICEED),
Dec 2016, pp. 143–148.