IOIO+App Inventor PDF

Download as pdf or txt
Download as pdf or txt
You are on page 1of 11

IET Circuits, Devices & Systems

Special Issue: Developments and Advancements on Electronics


Education

Easing the development of android apps to ISSN 1751-858X


Received on 14th October 2016
Revised 26th May 2017
create electronic prototypes: IOIO+App Accepted on 1st June 2017
E-First on 19th July 2017
Inventor doi: 10.1049/iet-cds.2016.0381
www.ietdl.org

Slim Chtourou1 , Mohamed Kharrat2, Nader Ben Amor1, Mohamed Jallouli1, Mohamed Abid1
1ElectricalDepartment, Ecole Nationale d'Ingénieurs de Sfax, Route Soukra km4 BP1173, Sfax, Tunisia
2CS Department, Institut Supérieur d'Informatique et de Gestion de Kairouan, Avenue Khemais El Alouini 3100, Kairouan, Tunisia
E-mail: slim.chtourou@ieee.org

Abstract: To validate the concept of an electronic system before thinking of commercial uses, a prototype needs to be
developed first. However, technical knowledge in electronics and computer science (CS) is required. Due to the importance of
these fields in the world of today, where almost everything is regulated by technology, several initiatives emerged to provide the
general public with these knowledge. In this context, there is a focus on the education field where several efforts have been
made to lower the entry level to electronics and CS fields, enabling even kids to learn the basic concepts at an early age and
have the possibility to concretise their ideas and develop their own prototype. The study presents a solution to facilitate the task
of programming electronic gadgets using graphical programming. The authors consider as case study an electronic system built
around the IOIO board. The graphical programming interface was created using App Inventor, a web platform for creating
android apps. Using the proposed system, several basic and complex gadgets were easily created by young school children
with minimal skills in hardware assembly and software programming.

1 Introduction This section presents a fraction of available hardware startups and


the products they offer.
Internet of things (IoT) is one of the current trending evolutions in
technology, making everything smart from homes [1], even to
mirrors [2]. To validate an IoT system, one has to go first through 2.1 LightUp
the prototyping step then the test of his system. When it comes to LightUp is a startup that delivers a product that allows children to
smart devices, it means dealing with electronic components and create electronic circuits without prior knowledge in electrical
hardware programming. The major challenge in such scenario is fields. It stimulates the principle ‘learn by making’ where children
that a minimum of background in electrical and computer science can build their own circuit while understanding what they are
(CS) is required. Unfortunately, only qualified persons can master making [6].
both of them, it is impossible for the general public, including Simple hardware kits are provided and they use magnets to
beginners and school children to master these fields. Therefore, connect different pieces and electricity is transmitted through them
several initiatives are made to simplify these two scientific areas, so there is no need to use cables. It comes also with a compatible
enough to get everyone interested and engaged into building their Arduino board so it is possible to program it quickly and build
own system, without requiring technical knowledge. These efforts interactive circuits.
vary from modular hardware blocks assembly to user friendly LightUp team has also developed a mobile application that
software programming interfaces [3, 4]. troubleshoots the built circuit in search for errors or showing the
Other efforts targeted the field of education, there are many current flow through a circuit.
initiatives that aim to enable wider access to CS education such as
‘Code.org’ [5]. Several startups rose also from these efforts and are 2.2 littleBits
struggling to offer adequate prototyping platforms that can be used
to build electronic systems, but can also be used as educational littleBits is an open source library of hardware components that
tools, to help students learn the basics of electronics and CS at an connects to each other using magnets. No soldering, no wiring, no
early age. programming required, just snap together for. Each bit has a
In this context, we propose a low-cost prototyping platform to specific function (light, sound, sensors, buttons, motors etc.). Just
simplify the process of creating an electronic system, program it as LEGO, it allows the creation of complex structures with very
and control the developed prototype wirelessly through an android little engineering knowledge. littleBits are small, simple, intuitive
smartphone. blocks that make creating with sophisticated electronics a matter of
This paper is organised as follows: in Section 2, we present snapping small magnets together [7].
some projects aiming to facilitate electronics or CS education and The potential of littleBits is expanded thanks to a special block:
compare their features and limitations. In Section 3, we define our the cloud bit. This module brings the internet and all its potential to
goals and present our approach to create an easy-to-use prototyping the existing hardware block, creating therefore an interesting IoT
platform, then we identify the adopted solutions to develop this system [8].
platform in Section 4. The system overview and its functioning Cloud bit makes the data accessible in the cloud, it is possible,
principle is presented in Section 5, we present in Section 6 some for example to control other devices ranging from thermostat,
demos showcasing the new possibilities enabled by the proposed doorbell to a do-it-yourself smart home.
solution. In the last section, we detail the robot car experience
performed on kids and discuss the obtained results.

2 Overview of some educational platforms

IET Circuits Devices Syst., 2017, Vol. 11 Iss. 4, pp. 310-320 310
© The Institution of Engineering and Technology 2017
2.3 Micro:bit low complex embedded systems used in automation systems or
education. Such systems are managed by a low-cost
The Micro:bit is a pocket size computer that can be programmed to microcontroller and rich I/O interfaces. A graphic interface is used
accomplish several tasks. The device features a 5 × 5 led matrix, a to program the microcontroller and the various I/O pins to obtain
motion sensor, a compass, bluetooth and several I/O pins [9, 10]. the desired functionality. To illustrate this concept, we adopt as
The device is programmed through a web-based interface that hardware platform the IOIO board and as programming tool the
supports various programming languages such as JavaScript, App Inventor.
Python, C++ etc.
Even though the micro bit lacks the raspberry Pi processing
power and Arduino's extensive system, it remains an interesting 3.1.1 IOIO board: IOIO is an open source board designed to add
educational device. advanced hardware I/O capabilities to a PC or android application
[16]. The board used here is the IOIO OTG. It allows to interface
USB devices. It is an interesting feature that can enable wireless
2.4 Blockly transmission by inserting a Bluetooth USB dongle, allowing it
Blockly is an online open source visual programming editor that therefore to program and control the board wirelessly whether from
allows a user to generate complex code just by dragging and a PC or a Smartphone.
dropping blocks and connecting them together like puzzle [11]. It integrates also a java library, therefore, it is possible to create
There is no typing required except for configuring some settings applications for PCs or android smartphones that can control this
and values, which makes the code creation easier. Many platforms board.
have emerged from this platform such MIT's Scratch, App Inventor
and code studio. 3.1.2 Presentation of App Inventor: App Inventor is an online
open source platform created by MIT [17] that simplifies the
2.5 Scratch android programming process to the concept of configuring
interconnected blocks. There is no Java code to write, no need to
Scratch is a free educational programming language that was consider android constraints, and the design and script interface are
developed by Massachusetts Institute of Technology (MIT). It is an user friendly. With this platform, even kids are able to create
educational platform that initiates beginners to the programming interesting projects.
basics via games, art, simulations. Scratch is based on Blockly and App Inventor is also capable of performing other advanced
uses graphical blocks to create programs via drag-and-drop [12]. tasks such as bluetooth communication, speech recognition and
Scratch is used in many schools around the world to teach kids even controlling some LEGO MINDSTORMS robotic kits.
the basic of CS. In USA for example, it is one of the languages
used in top 39 CS departments to teach introductory courses [13] 3.2 Contribution
and is ranked 22 in Tiobe Index as of Sep 2016 [14].
When considering IOIO and App Inventor side by side, a gap is
2.6 Tynker noticed: while it is interesting to control IOIO wirelessly from a
smartphone via bluetooth, developing the required application
Tynker is an online platform that focuses on education, by requires a minimum of expertise in programming with java and
motivating kids to create their own games and web apps. The android, which is not obvious for primary school and college kids.
programming is based on a graphical programming approach so no Moreover, while App Inventor provides a software platform to
technical knowledge is needed [15]. graphically create android applications without writing a single line
Tynker is not dedicated to software only, it is capable of of code, it remains limited in terms of features and in this particular
interfacing other hardware components, making it possible to case, it does not provide dedicated blocks to control the IOIO
program the hardware side (e.g. a robot) board.
Therefore, the contribution of this paper is to fill in this gap and
2.7 Comparison between different products become able to graphically create android apps with App Inventor
that can control the IOIO board.
Table 1 presents an overview of the different projects discussed
above.
While each of the aforementioned projects provides an 4 Exploring the different solutions
interesting product that simplifies whether electronics or CS, all of When exploring the issue of combining IOIO and App Inventor
them tend to be very specific and focus whether on HW only or features, there are two approaches to consider.
SW only. Some of these platforms do not offer concrete application
in the education field or are not fit for that field. In addition, some 4.1 Approach 1: IOIO code in App Inventor
products can be quite expensive for children or beginners
especially when they provide HW components. When developing an android application for IOIO, the usual way is
to use an IDE like Eclipse or Android Studio. Since IOIO has a
3 Goals and contribution java library, it needs to be imported to the current project in order
to incorporate IOIO features, the use of import command is
3.1 Goals enough.
The aforementioned solutions are whether hardware focused or The same principle can be considered for App Inventor:
software focused. The authors’ goal is to create an HW and SW integrate IOIO library into it. However, this task is not simple since
combination that facilitates the development of applications to App Inventor is a whole platform that is hosted in the cloud using
control hardware that is also cheaper and easier to build. We target Google AppEngine.

Table 1 Comparison of different products


Product HW features SW features Ease of use Price Programming complexity
LightUp ✓ Ø ++ expensive difficult
littleBits ✓ Ø ++ expensive difficult
Micro:bit ✓ Ø −− cheap complex
Blockly Ø ✓ + free easy
Scratch Ø ✓ +++ free very easy
Tynker Ø ✓ + cheap easy

IET Circuits Devices Syst., 2017, Vol. 11 Iss. 4, pp. 310-320 311
© The Institution of Engineering and Technology 2017
Fig. 1  Overview of the system
(a) Big picture of the proposed solution, (b) IOIOAI service launched, (c) Activity starter for IOIOAI Service, (d) App Inventor blocks for calling the service and passing the IOIO
command

Even with a local version of App Inventor, there is little room Based on these information, we adopt the second approach,
for modifications, the code associated to each block is not which consists of developing an android service that App Inventor
accessible. developed Apps can call in order to add IOIO support and extend
The source code of App Inventor is very long and split into its features. The next section explains the different steps to link
hundreds of java files. In addition, the developing environment IOIO and App Inventor
needs to be setup: a user needs to install AppEngine SDK, python,
maven DB. Working with these languages implies a minimum of 5 Overview of the system
experience (Table 2).
The big picture of the system is illustrated in Fig. 1a:
4.2 Approach 2: App Inventor calls IOIO service The App Inventor application will communicate with a second
application called IOIOAI to execute IOIO commands and retrieve
When a task is too complex to be integrated for a specific platform data from IOIO pins.
or in a specific device, a common practice is to execute the needed IOIOAI is available as an android service running in the
task in the cloud or call the desired function from another source background. It can be deactivated by clicking on the notification
and execute it. android offers a similar feature: it is possible for an icon as illustrated in Fig. 1b
android application ‘App1’ to extend its features by calling the The App Inventor feature that allows the call of another App is
function located within ‘App2’. When considering this approach ‘ActivityStarter’, the blocks required to communicate with IOIOAI
for IOIO and App Inventor case, it seems a good path to explore. Service are illustrated in Fig. 1c
Before starting the activity, some settings need to be configured
4.3 Choice of the approach to adopt first [18]:

To decide which approach is better to explore, we compare the two • setActivityPackage and setActivityClass are used to uniquely
approaches discussed above. identify the App to call,
• setResultName block to determine the name of the variable that
App Inventor should read when a result is sent back from the
called application,
Table 2 Comparison between approach 1 and approach 2
• setExtraKey and setExtraValue blocks define the name of
Approach 1 Approach 2 variable that will be passed to the called App, along with its
required technologies Android Android contents, that content is passed as a parameter when calling the
Google App engine IOIO function.
Python
java For example, in order to set the digital pin 2 to the LOW state,
JavaScript
the IOIO function is called and the parameter ‘digitalWrite,2,true’
is passed to the key_command variable.
Maven
For every App Inventor application, this group of blocks should
ease of integration −− ++ always be inserted in order to call the service
complexity −−− +
implementation time −−− +++

312 IET Circuits Devices Syst., 2017, Vol. 11 Iss. 4, pp. 310-320
© The Institution of Engineering and Technology 2017
Fig. 2  App Inventor blocks for controlling the heater

6 Demos 6.3 Demo 3: robot


In this section, we show how IOIO-based applications are created 6.3.1 Experimentation with different approaches: In this demo,
with App Inventor and highlight the tasks that are whether difficult we developed a common application: control a car robot wirelessly.
to achieve or cannot be achieved with IOIO alone or App Inventor Two different methods are used: the classical method and the
alone. developed solution (Table 3).
The car uses two motors, the car's direction is controlled with
6.1 Demo 1: smart house with voice recognition the motors’ rotation as follows.
IOIO is not capable of controlling motors since it cannot
Usually, embedded systems based on microcontrollers are not support high currents, so the L298 motor driver is used.
powerful enough to run complex tasks like speech recognition, and Use standard electronic components: In this approach, the
a Wi-Fi module is required to connect to the internet. This section hardware is developed from scratch, the electrical circuit is
demonstrates the concept of smart house where a user can control illustrated in Fig. 4a. The developed robot is illustrated in Fig. 4b.
his house using voice recognition. This demo will focus on the case The initial design contains a lot of wires and components set on a
of controlling a heater connected to an AC outlet using a relay. The breadboard, adding two power supplies: one for IOIO and one for
relay is activated by receiving a digital signal from the IOIO board. the motor driver. The weight of the car was so heavy that the
App inventor integrate blocks for voice recognition tasks, when motors could not spin properly without lifting the car.
a user speaks to the smartphone, the speech is processed and Before starting developing the application, the environment
converted to text. It will then be compared to predefined strings: needs to be set: install jdk, register the environment variables,
‘establish the current’ & ‘stop’. Based on the match, the relay will import IOIO libraries into Android Studio. Usually, it can take days
whether turn on the AC outlet and activate the heater connected to for newbies to accomplish these tasks.
it, or turn the heater off. The development of the application is not easy either: the code
The screenshot and the group of blocks used to compare the is quite long, errors pop out the whole time and debugging the
processed voice are illustrated in Fig. 2. mistakes is not easy.
Use the adopted solution: After developing the application the
6.2 Demo 2: fire detector hard way and showing the encountered challenges, this section
illustrates the same application but using the adopted solution
This demo focuses on home security and highlights the possibility instead.
for App Inventor developed Apps to read sensor values returned by For the hardware side, we use ready-to-use modules as
IOIOAI. The principle is as follows. illustrated in Fig. 4c. With these modules, the final design of the
A standard flame sensor is connected to the IOIO board at an robot car is obtained as illustrated in Fig. 4d:
analogue pin. When it detects a fire, an SMS is sent to the house To control the robot car in one direction, two groups of blocks
owner to warn him about the possible presence of a fire in the are required, one block calls the function, the other one contains
house and suggest to call firefighters. the motor command: Motor,direction,state.
When testing the sensor with no fire, the voltage returned by the Therefore, eight block groups are required in total to control the
sensor is >0.1 V. In the presence fire, the voltage drops <0.1 V, so car in the four directions.
this value will be interpreted as the presence of fire.
To send an SMS, the hardware method is to use an SIM module
like SIM900A. However, this module can be quite expensive and 7 Experimentation
configuring it is quite complex. Therefore, this application will 7.1 Evaluation of performance of HW modules and IOIOAI
take once again the smartphone features to send the SMS using just
few App Inventor blocks and no hardware configuration at all. In this section, the previous robot example is evaluated to measure
The screenshot and groups of block used to read the sensor data the performance of the adopted solution. With it, to create the
and decide the action to do based on this information are illustrated necessary app design (buttons) and their programming to get the
in Fig. 3. application ready to run on a smartphone, it needed 20 min in the
first try and then, as little as 7 min in next essays. Connecting the
different electronic components required almost 30 min on the first
try, then around 10 min in the next essays. That task became easier

IET Circuits Devices Syst., 2017, Vol. 11 Iss. 4, pp. 310-320 313
© The Institution of Engineering and Technology 2017
Fig. 3  App Inventor blocks to detect fire and send SMS

Fig. 4  Robot car demo


(a) Schematic of robot wireless remote control with IOIO, (b) IOIO robot car built from scratch, (c) Robot car components: wheel robot chassis, L298 module, power bank (5v) and
rechargeable battery 9v, (d) IOIO robot car built using ready-to-use HW modules

thanks to HW modules that minimised the manual electrical Creating this robot from scratch would have required hours and
connections and required technical knowledge. technical background in electronics and CS. The presented demo
highlights how easy it became to create an electronic system and
program it in the matter of minutes.
Table 3 Movement of the robot car according to two motors When developing the system using the two methods, the time
Direction Motors involved required for the different steps is noted. Table 4 illustrates the
difference of the two approaches in terms of time and efforts
up right motor+left motor: upwards
With the standard approach, it can easily take around 2 months
down right motor+left motor: backwards for a beginner to achieve the system, that huge amount of time, in
right right motor: backwards addition to many encountered technical challenges is enough to
left left motor: backwards scare kids and beginners away from electrical and CS fields.

314 IET Circuits Devices Syst., 2017, Vol. 11 Iss. 4, pp. 310-320
© The Institution of Engineering and Technology 2017
Fig. 5  Robot car App Inventor application with Arduino
(a) Screen design, (b) App Inventor blocks to establish BT communication and control the up direction

On the other side, the proposed solution offered these people a 7.2 IOIO and Arduino, a comparative study
ready-to-use prototyping platform that requires no deep technical
background. A beginner can create the same system in less than an Arduino is an open source prototyping platform that is rather easy
hour. Such easy and rapid solution can boost one's confidence, to use and widely adopted for education around the world [19]. In
stimulate his curiosity and encourages him to try other this section, we compare the Arduino UNO board with the
combinations of HW and SW and create the next innovative proposed solution in terms of ease of use for creating the same
system. robot car presented in previous sections.
Arduino is also capable of communicating with App Inventor
via the ‘BT Client’ feature. However, first, a bluetooth module
needs to be attached to the board. A common module is HC-06
[20] which is composed of four pins: two for the power supply and
Table 4 Evaluation of performance of the two approaches the two others for the serial communication (RX and TX). The
at the first try smartphone application cannot communicate directly with Arduino,
Tasks Standard Using HW the BT module's address needs to be specified and the connection
approach modules and requires user interaction. For the IOIO board, all the user needs is
IOIOAI service to plug a ready-to-use BT USB dongle, the IOIOAI service will
configure the development 1 day not needed take care of paring with the IOIO's associated BT dongle.
environment In addition, for the Arduino board to react to the commands
learn java and android 1 month not needed received from the smartphone application, a separate program
integrate IOIO libraries 3 weeks not needed needs to be uploaded. Usually, the program is written using
create the robot car Arduino IDE, yet, coding skills are required for this part. On the
other side, the IOIO board does not need to be programmed.
 electronic components 2 h 20 min
Also, in the App Inventor application, the user needs to
 develop the program 8 h 20 min manually identify the BT address and add the code to establish the
overall complexity high low connection with the BT module.
debugging programming difficult easy Fig. 5 presents the design and blocks parts for the App Inventor
errors application that communicates with the Arduino board.
tracing electrical errors difficult easy In other words, while it is possible to develop the same
applications with Arduino, it does not work right out of the box.

IET Circuits Devices Syst., 2017, Vol. 11 Iss. 4, pp. 310-320 315
© The Institution of Engineering and Technology 2017
Fig. 6  Robot car experience
(a) HW part explaining how to connect the robot car wires, (b) SW part explaining how to connect App Inventor blocks

Creating the electronic system using IOIO and the ‘App Inventor + participant do the HW part at a time, once he finishes, another
IOIOAI’ set is easier and faster. Even in terms of price, it is participant will start his part
cheaper since a bluetooth module HC-06 is more expensive than a • The third set is done in the context of a training for scientific
BT USB dongle [21]. association's young members to initiate to the robotics field. Due
to the big number of participants and the lack of equipment,
7.3 Experimentation on kids only the SW part is done and simultaneously. However, once
they finish it, participants can test their developed application on
7.3.1 Preparing the experiment: To demonstrate the easiness to a pre-assembled robot.
create and program electronic system, we had a group of kids aged
between 8 and 18 years old, create the robot car all by themselves Among the participants, we chose three participants to do build the
using the proposed solution, an adult had also performed the same system using Arduino.
experiment in order to compare the performance between different
age fragments. The participants have to individually watch a
7.3.2 Results: Fig. 7 illustrates the participants’ results, the
tutorial video that explains in simple words and in their mother
detailed results for each participant are located in Appendix 3.
language (Arabic) the objectives and different steps to build the
Different answers to question 15:
prototype [22]. Figs. 6a and b present an overview of the main
parts of the system (HW and SW)
• App Inventor layouts (table arrangement)
The video incorporates also a live demo of assembling the robot
car and developing the App Inventor App. After watching the • programming (x7)
video, the participants will try to build the prototype without any • language (not familiar with French or English)
assistance. They can though refer again to the video in case of • difficulty to distinguish between some blocks in App Inventor
difficulties; however, the chronometer remains active until they (x2)
finish the whole experiment.
After finishing the experiment, each candidate answers a series Different answers to question 16:
of survey's questions (see Appendix 2)
Three sets of experiences have been conducted in different • I learned something new
conditions: • I discovered that I am capable to do something: I felt very happy
when everything worked
• The first set is composed of different individuals who do the • the video is clear
experience one after another. The participant is alone in the • I liked the fact that the authors reassured me that there is no
room, so there is no communication with other participants danger of electricity, otherwise I would be afraid to manipulate
• The second set is composed of primary school students wires
attending a robotic club, this experience is their first session and • Doing it is easy when following the video tutorial
aimed to initiate them to the world of Robotics that relies a lot • The best moment was when I managed to make it work all by
on electronic and CS. The participants perform the SW part myself
simultaneously, due to the lack of equipment, only one • Assembling the robot

316 IET Circuits Devices Syst., 2017, Vol. 11 Iss. 4, pp. 310-320
© The Institution of Engineering and Technology 2017
Fig. 7  Robot car experience results
(a) Participants’ age range, (b) Familiarity with electronics and CS, (c) Average difficulty level for the HW part and the SW part, (d) Average feedback (enjoyment and curiosity
stimulation)

7.3.3 Discussion: As illustrated in Figs. 7a and b, participants are his curiosity and get him interested in discovering more about
from different age levels and most of them are not familiar with electronics and CS.
electronics or CS. However, regardless of their age or experience The experience did not seem difficult for most of the
level, all participants were able to carry on the task to the end all by participants, a major role in this is attributed to the video which
themselves. The youngest participant is 9 years old and studies at covered the necessary details using simple language, and covering
primary school, this makes the proposed solution suitable for +9 only the necessary topics without entering into needless complex
kids. technical details. A participant who qualified the experience as
The average time required to finish both the HW part is 10 min: very easy (rate 1), said he would have rated it 8, should there has
50 s and for the SW part is 48 m: 11 s, and there is a young been no video to follow.
participant kid who finished before an adult. For a child, this According to Fig. 7d, most of the participants enjoyed the
amount of time seems reasonable considering the achieved task. experience, they were very excited by their ‘first achievement’ and
The HW part did not take too much time: the use of modular expressed their willingness to try other projects when possible.
components has simplified the task to very few simple wiring More importantly, they have gained a confidence in themselves and
connections and limited the error possibilities. are now more open to discover the electronics and CS fields. A
By analysing Fig. 7c, we observe that challenges encountered road map should still be dressed for each one based on their age to
for kids were mainly related to programming: App Inventor is a accompany them little by little until reaching more advanced
very rich platform with dozen of objects and hundreds of possible levels.
blocks to combine together. Even though the video tutorial clearly The participants who did the experience using Arduino board
shows the necessary blocks to use for this experience and where to were able to finish it too. However, they took more time in both
get them, it was easy to get confused. Some participants had to part since there are additional wiring to do, they needed also to
watch specific parts of the video or its integrity in order to write a program for the Arduino board. Compared to IOIO, they
overcome eventual encountered difficulties and move on with the found this experience more difficult to achieve
programming task.
Another challenge encountered is the language barrier, since the 7.3.4 Implications for practice: We identify two main
kids’ native language is Arabic and they just began learning French implications of this work for educators.
and English, some did have issue reading word and even typing First include the demos in introductory courses to electronics
different characters such as ‘_’ and ‘-’. This is the only situation and CS. All participants in the experience managed to build an
where a human intervention was needed to explain the different electronic system and program it by themselves. In addition, their
words for some kids and perform the translation. curiosity for these two fields is stimulated making them more open
How difficult the experience seemed for the participant to learn more.
depended mainly on his age. In fact, the younger the participant is, Second, by providing the adequate support, participants can go
the more difficult it will be to finish the task. On the other side, the through the assignment by themselves. Over supporting is a bad
platform was easy to use, enough for a 9 years child to stimulate idea because a child can develop the bad habit of always depending
on others on the first encountered obstacle [23], this can also erode

IET Circuits Devices Syst., 2017, Vol. 11 Iss. 4, pp. 310-320 317
© The Institution of Engineering and Technology 2017
his sense of self-determination [24]. Even though participants [2] Business Insider: ‘Samsung invented a crazy mirror that can show you how
clothing looks on you before you buy’. Available at http://
asked for help during the experience, the only advice given to them www.businessinsider.fr/us/samsung-smart-mirror-photos-2015-6/, accessed 7
is to re-watch the video when stuck. Time varied from a participant January 2017
to another, but eventually, they made it through the assignment, [3] Tech Crunch: ‘corpFormer googler opens crowdfunding campaign to teach
improving their confidence remarkably. kids to code with a cute, blinking bot’. Available at http://techcrunch.com/
2013/10/29/former-googler-opens-crowdfunding-campaign-to-teach-kids-to-
code-with-a-cute-blinking-bot/, accessed 21 August 2015
7.3.5 Limitations and future research: Next, although we [4] Kickstarter: ‘SAM: the ultimate internet connected electronics kit’. Available
managed to present several demos in this paper, most of them at https://www.kickstarter.com/projects/1842650056/sam-the-ultimate-
internet-connected-electronics-ki, accessed 21 August 2015
remain simplistic. While it is good to be simple when considering [5] Tech Crunch: ‘Code.org launches code studio, a toolset and curriculum for
children education (up to K-6), it will be more compelling to teaching kids programming’. Available at http://techcrunch.com/2014/09/11/
develop more advanced systems. Two limitations need to be code-org-launches-code-studio-a-toolset-and-curriculum-for-teaching-kids-
addressed though: the first is the IOIOAI features which provides programming/, accessed 21 August 2015
[6] LightUp Official Website. Available at https://www.lightup.io/, accessed 21
currently a few set of commands. Adding more option to control August 2015
special components (such as servo motor, ultrasound sensor etc.) [7] littleBits Official Website. Available at http://littlebits.cc/, accessed 21 August
will provide more possibilities for HW development. Second is the 2015
limitation of App Inventor itself. While this platform is ideal for [8] GIZMODO: ‘littleBits now lets you build your own DIY smart home’,
Available at http://gizmodo.com/littlebits-now-lets-you-to-build-your-own-
creating android application quickly and easily, it does not support diy-smart-hom-1609215918, accessed 21 August 2015
all commands (e.g. file, FTP, facial recognition etc.). A [9] Tech Crunch: ‘The Micro:bit is shaping up to be the perfect programming
workaround for this limitation to develop extensions (same way as device for kids’, Available at http://techcrunch.com/2015/07/07/the-microbit-
plugins) that can be integrated into App Inventor platform to is-shaping-up-to-be-the-perfect-programming-device-for-kids/, accessed 21
August 2015
complete these missing features. [10] TechCrunch: ‘In bid to get British kids coding, BBC to give away 1 million
The results of the experience were promising. Almost all ‘micro bit’ computers’, Available at http://techcrunch.com/2015/03/12/
participants are children and they all managed to create an chuckie-egg, accessed 21 July 2016
electronic system and program it using the proposed platform using [11] Google (maintained by Neil Fraser), ‘Blockly – a visual programming editor’
2012. Available at http://code.google.com/p/blockly/
IOIOAI service. The experience did not seem difficult for them but [12] Malan, D.J., Leitner, H.H.: ‘Scratch for budding computer scientists’.
it can be optimised especially for the programming side. We plan to SIGCSE '07, 38th SIGCSE Technical Symp. on Computer Science Education,
integrate this work in a lab series for first year CS engineering pp. 223–227
students, in order to validate the efficiency of this platform as an [13] Stack Sidebar: ‘The most popular coding language at top US universities’.
Available at http://blog.stacksocial.com/popular-coding-language/, accessed
introductory course and identify new ways to make the platform 29 September 2016
easier to use for younger audience. [14] Tiobe the software quality company, Tiobe Index, Available at http://
Since the platform can be used by users with various skills from www.tiobe.com/tiobe-index/, accessed 29 September 2016
different ages, we consider to further investigate the difficulty [15] Tynker official home page. Available at https://www.tynker.com/, accessed 21
August 2015
level. A possible path is to create other level difficulties that [16] IOIO GitHub repository,ytai/ioio wiki, Available at www.github.com/ytai/
prepare beginners for the App Inventor platform before trying more ioio/wiki, accessed 22 March 2017
advanced projects. These different levels shall be tested on a wider [17] Hsu, Y.-C.: ‘Empowering educators with Google's Android App Inventor: an
audience in order to identify the adequate age range for each level online workshop in mobile app design’ (British Journal of Educational
Technology, 2012)
of difficulty. [18] Chtourou, S., et al.: ‘Development of an Android service to add IOIO
hardware features to Android apps’. 13th IEEE Int. Conf. on Computer and
8 Conclusion Information Technology CIT, Fiji, 7–10 December 2016
[19] Arduino official website. Available at http://arduino.cc, accessed 21 August
With the rising popularity of hardware modules, creating electronic 2015
[20] AliExpress: ‘HC-06 wireless serial 4 pin bluetooth RF transceiver module
systems is becoming easier and teaching electronics is adopted at RS232 TTL for Arduino bluetooth module’, Available at https://
earlier levels in school. The problem that could face kids however www.aliexpress.com/item/Free-shipping-HC06-HC-06-Wireless-Serial-4-Pin-
is the programming side where an advanced technical knowledge is Bluetooth-RF-Transceiver-Module-RS232-TTL-for/32272894331.html,
required. Most of the existing solutions focus whether on the accessed 22 March 2017
[21] AliExpress: ‘Mini USB bluetooth dongle adapter for laptop PC Win Xp Win7
hardware only or the software only. The IOIOAI solution presented 8 for iPhone 4GS 5GS’, Available at https://www.aliexpress.com/item/
in this paper provides an abstraction level for the programming of Mecall-Mini-USB-Bluetooth-Dongle-Adapter-for-Laptop-PC-Win-Xp-
the IOIO board, allowing the control it with graphical blocks, Win7-8-for-iPhone-4GS/32788577317.html, accessed 22 March 2017
adding therefore the simplification of the programming side. [22] YouTube, Robot car experience, Available at https://youtu.be/FxKeIc3cyUs,
accessed 29 September 2016
The possibilities with just electronic components are endless. [23] Causton-Theoharis, J.N.: ‘The golden rule of providing support in inclusive
Adding the support for IOIO in App Inventor made creating IOIO classrooms: support others as you would wish to be supported’, TEACHING
apps a lot easier and opened more infinite possibilities to run Exceptional Children, 2009, 42, pp. 36–43. doi:
embedded systems applications that take advantage of existing 10.1177/004005990904200204
[24] Stoner, J.B., Angell, M.E., House, J.J., et al.: ‘Self-determination: hearing the
smartphones and their sensors and processing power to control an voices of adults with physical disabilities’, Physical Disabilities: Education
electronic board without a technical background in programming. and Related Services, 2006, 25, pp. 3–35
This makes IOIOAI a potential solution to initiate children in [25] FrenchEntrée: ‘Education in France: French school grade equivalents’,
secondary and even primary schools to the basics concepts of Available at https://www.frenchentree.com/living-in-france/education/french-
school-grade-equivalents/, accessed 20 August 2016
electronics, CS and embedded systems.
The focus of this paper is mainly about simplifying software
mainly, there is also an interest in hardware with the introduction 10 Appendix
of HW modules, even though they still present some limitations.
When kids’ curiosity is stimulated by succeeding to create simple

systems easily, they will want to try all electrical possibilities and 10.1 Appendix 1
may plug wires in the wrong order (e.g. invert 5 V and GND),
causing damage to the system and maybe threatening the child's See Table 5.
life. This issue could be overcome with the development of
littleBits’ style hardware modules, where connectors can be 10.2 Appendix 2: Robot car experience survey questions
inserted in one direction only for avoiding electric hazard. • Candidate information:

9 References 1 | 2-Name, family name | Sex


[1] IEEE Spectrum: ‘How to automate your home without rewiring’. Available at 3-Date of birth (age is deduced and displayed later in the results
http://spectrum.ieee.org/geek-life/hands-on/how-to-automate-your-home- section)
without-rewiring, accessed 21 August 2015 4-School level (class)
318 IET Circuits Devices Syst., 2017, Vol. 11 Iss. 4, pp. 310-320
© The Institution of Engineering and Technology 2017
Table 5 Educational system equivalences for Tunisia [25] 6-Are you familiar with using smartphones? ◻ yes  ◻ no
Age Tunisia France UK USA 7-What is your experience with electronics?
3 kindergarten kindergarten nursery nursery ◻ 1-No experience   ◻ 2-Beginner   ◻ 3-
4 kindergarten kindergarten reception pre-K Intermediate   ◻ 4-Expert
5 kindergarten kindergarten year 1 kindergarten
8-What is your experience with computer science
(programming)?
6 primary school (1st C.P. year 2 1st grade (K-1)
◻ 1-No experience   ◻ 2-Beginner   ◻ 3-
grade)
Intermediate   ◻ 4-Expert
7 primary school (2nd C.E. 1 year 3 2nd grade (K-2) • Candidate experiment results (chronometered and filled by the
grade) authors)
8 primary school (3rd C.E. 2 year 4 3rd grade (K-3)
grade) 9-Time required to finish the HW part
9 primary school (4th C.M. 1 year 5 4th grade (K-4) 10-Time required to finish the SW part
grade) • Candidate's feedback about the experiment:
10 primary school (5th C.M. 2 year 6 5th grade (K-5)
grade) 11-How do you rate the difficulty level of the experience? (HW
11 primary school (6th 6th grade year 7 6th grade (K-6) level) (1: easiest, 10: hardest)
grade) 12-How do you rate the difficulty level of the experience? (SW
12 college (1st grade) 5th grade year 8 7th grade (K-7) level) (1: easiest, 10: hardest)
13 college (2nd grade) 4th grade year 9 8th grade (K-8) 13-Was the experience enjoyable? (1: worst, 5: best)
14 college (3rd grade) 3rd grade year 10 9th grade (K-9) 14-Did this experience raise your curiosity to learn more about
15 high school (1st 2nd grade year 11 10th grade (K-10) electronics or CS?
grade) ◻ 1-strongly disagree ◻ 2-partially agree ◻ 3-neutral ◻ 4-
16 high school (2nd 1st grade year 12 11th grade (K-11) partially agree ◻ 5-strongly agree
grade) 15-What was the most difficult part encountered during this
17 high school (3rd Terminale year 13 12th grade (K-12) experience?
grade) 16-What did you like most in this experience?
18 high school (terminal) — — —
10.3 Appendix 3

Table 6 Robot car experience detailed results of participants (IOIO)


Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Q11 Q12 Q13 Q14
1 M 10 years primary (5th grade) ✓ ✓ 1 1 05:50 35:58 1 2 5 5
2 M 9 years primary (4th grade) ✓ ✓ 1 1 26:15 95:59 6 8 5 4
3 M 17 years secondary (2nd grade) ✓ ✓ 3 1 02:57 11:33 1 3 5 5
4 M 14 years college (3rd grade) ✓ ✓ 1 1 06:09 27:18 2 5 5 4
5 F 21 years English Univ 3rd year ✓ ✓ 2 1 05:44 13:25 2 4 5 5
6 F 18 years secondary (2nd grade) ✓ ✓ 2 1 05:31 22:51 4 6 4 4
7 M 9 years primary (5th grade) ✓ ✓ 2 2 12:52 82:52 6 5 4 4
8 F 10 years primary (5th grade) ✓ ✓ 2 1 09:43 92:05 2 6 5 5
9 M 9 years primary (4th grade) ✓ ✓ 2 1 13:45 130:13 1 4 5 5
10 M 9 years primary (4th grade) ✓ ✓ 1 2 24:25 79:46 5 10 5 3
11 M 10 years primary (5th grade) ✓ ✓ 2 2 08:14 103:08 2 3 5 5
12 F 10 years primary (4th grade) ✓ ✓ 1 2 07:33 47:38 1 1 5 5
13 M 10 years primary (5th grade) ✓ ✓ 2 2 11:52 101:23 2 8 5 5
14 F 10 years primary (5th grade) ✓ ✓ 2 1 20:52 95:52 7 2 5 4
15 M 10 years primary (5th grade) ✓ ✓ 2 1 07:50 65:54 3 1 5 5
16 M 10 years primary (5th grade) ✓ ✓ 1 1 16:44 59:33 1 8 5 5
17 F 15 years secondary (2nd grade) ✓ ✓ 1 1 — 21:37 — 3 5 5
18 F 16 years secondary (2nd grade) ✓ ✓ 1 1 — 48:15 — 5 5 5
19 M 17 years secondary (3rd grade) ✓ ✓ 2 2 — 07:54 — 4 4 5
20 M 14 years secondary (1st grade) ✓ ✓ 2 2 — 17:35 — 4 4 4
21 M 16 years secondary (2nd grade) ✓ ✓ 1 1 — 22:45 — 7 5 4
22 M 15 years secondary (1st grade) ✓ ✓ 1 1 — 13:16 — 5 6 4
23 M 15 years secondary (1st grade) ✓ ✗ 4 2 — 11:05 — 6 5 5
24 M 13 years college (2nd grade) ✓ ✗ 2 2 — 15:45 — 4 5 5
25 M 13 years college (2nd grade) ✓ ✓ 2 2 — 50:25 — 1 5 5
26 F 17 years secondary (3rd grade) ✗ ✓ 2 2 — 27:48 — 5 5 5
27 M 12 years college (1st grade) ✓ ✓ 2 2 — 36:15 — 4 4 3
28 M 14 years college (1st grade) ✓ ✓ 2 3 — 08:34 — 5 5 5
29 M 12 years college (2nd grade) ✓ ✓ 2 2 — 19:18 — 3 5 5
30 F 12 years college (1st grade) ✗ ✗ 1 1 — 95:45 — 7 4 4
31 M 14 years college (3rd grade) ✓ ✓ 1 1 — 32:20 — 5 4 4

5-Are you familiar with using PCs?     ◻ yes  ◻ no See Tables 6 and 7.

IET Circuits Devices Syst., 2017, Vol. 11 Iss. 4, pp. 310-320 319
© The Institution of Engineering and Technology 2017
Table 7 Robot car experience detailed results of participants (Arduino)
Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Q11 Q12 Q13 Q14
participant no. 1 07:21 54:33 1 6 5 5
participant no. 15 08:21 76:27 1 5 5 5
participant no. 16 21:01 88:52 3 8 4 5

320 IET Circuits Devices Syst., 2017, Vol. 11 Iss. 4, pp. 310-320
© The Institution of Engineering and Technology 2017

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy