<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Users in Designing IoT SmartThings with the IoTgo Toolkit</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Mehdi Rizvi</string-name>
          <email>syedmehdi.rizvi@polimi.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>DEIB, Politecnico di Milano</institution>
          ,
          <addr-line>Milan</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>IoT</institution>
          ,
          <addr-line>Toolkit, End Users, Design, Smart Things, Ideation, Reflection, Prototyping and Programming</addr-line>
        </aff>
      </contrib-group>
      <abstract>
        <p>The “Game of Internet of Things” toolkit (IoTgo) follows a playful approach for supporting end users in creating Internet of Things (IoT) smart things. End users, especially teens, often do not have prior expertise or familiarity with programming and prototyping to efectively create such smart things. Thus, they require easy to use and readily available tools to do so. The IoTgo toolkit aims to fill this gap, by covering the exploration, ideation, reflection, programming and prototyping of IoT smart things. This paper focuses particularly on the set of IoTgo tools that focus on supporting end users in the programming and prototyping aspects of creating IoT smart things.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>Smart things which are either physically interactive, internet connected or both, are becoming
part of our lives in the form of toys, interactive artworks, and health &amp; fitness devices etc.
However, designing such smart things is not an easy task for end users, especially younger ones
such as teens. It requires knowledge of the design process, familiarity with the technology related
to physical computing as well as cloud computing, expertise in programming and prototyping,
as well as critical reflection on all these aforementioned things. This paper presents the IoTgo
toolkit which playfully guides end users through all these stages of design. A particular focus
in this paper is on the the programming and prototyping tools available in IoTgo.</p>
    </sec>
    <sec id="sec-2">
      <title>2. Related</title>
    </sec>
    <sec id="sec-3">
      <title>Work</title>
      <p>
        Numerous toolkits focus on using inspirational cards and/or board games to help end users
ideate smart things [
        <xref ref-type="bibr" rid="ref1 ref2 ref3 ref4 ref5">1, 2, 3, 4, 5</xref>
        ]. In order to ofer more flexibility, most of these toolkits are
not tied to specific physical devices for input or output. However, they risk to lead to ideas
which are not feasible to be implemented by end users. If end users are involved in the entire
design process, having cards that match physical devices and the environment can smooth
the transition from the ideation to the programming and prototyping stage. For instance, the
EMPATHY: Empowering People in Dealing with Internet of Things Ecosystems. Workshop co-located with INTERACT
Lighting User Experience (LUX) cards and Know Cards contain cards for physical devices for
specific environments [ 6, 7]. Similarly, SNaP has diferent physical device cards, for inputs and
outputs, which are selected according to the environment [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. A similar choice is made in IoTgo.
      </p>
      <p>
        Cards related to cloud services constitute a broad category and usually serve to augment
smart things with interaction capabilities related to data coming from cloud-computing services.
For instance, the Tiles IoT Inventor Toolkit has cloud cards for data such as maps or news
information [
        <xref ref-type="bibr" rid="ref1">1, 8</xref>
        ]. The IoT Service Kit has cards for city services, e.g., parking data [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. The
majority of toolkits for end users have no separate cloud-computing services, or they ofer
only physical-computing services [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. In the IoT Design Deck and other card-based toolkits,
cloud-computing services are not diferentiated from the physical components of smart things,
but rather categorised as inputs and outputs together with them [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. SNaP has no cloud cards
at all, being aimed at younger children [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. In IoTgo, cloud-computing cards are present but
separated from physical computing cards. Many of these toolkits, with the exception of a few,
focus primarily on the ideation and reflection parts of the design stage and not on programming
and prototyping with end users [
        <xref ref-type="bibr" rid="ref5">8, 5</xref>
        ].
      </p>
    </sec>
    <sec id="sec-4">
      <title>3. The Toolkit</title>
      <p>IoTgo is a card-based toolkit. As illustrated in Fig1, it has decks of game cards and game boards,
where cards are played, for ideating IoT-enabled smart things, and for reflecting on various
issues related to the creation of such smart things. Decks include mission cards, thing cards,
physical input and output cards, cloud input and output cards, reflection lenses and ideation
boards.</p>
      <p>For programming and prototyping, it also contains ad-hoc developed electronic devices, based
on Micro:bit [9] and Raspberry Pi [10], for translating ideas specified through the cards and
the game boards into working prototypes. A companion web app helps translate the selected
cards into ready-to-use code for Micro:bits. This is further explained in the next sub-sections.
3.1. Tools for Programming &amp; Prototyping
IoTgo for programming &amp; prototyping contains visual guidebooks, empty and completed ideation
boards to help with scafolding ideas and links to related programs created by other end users.
Moreover, programming tools are divided into tools for physical computing, with physical input
and output devices, and tools for cloud services, with data exchanged with Web and IoT services.</p>
      <sec id="sec-4-1">
        <title>3.1.1. Tools for physical computing</title>
        <p>IoTgo contains programmable Micro:bits with a number of on-board inputs and outputs,
besides further input and output devices made easy to connect for children or teens [9]. All
physical devices are matched, one-to-one, to input and output cards of the ideation tools. For
programming, the block-based, Scratch-like environment called Makecode was used [11]. The
companion web app of IoTgo helps translate the selected cards into Makecode code blocks
which is ready-to-use and can be directly downloaded to Micro:bit . The end users can also edit
the code using Makecode blocks, as well as Javascript or Python, if they wish to do so.</p>
      </sec>
      <sec id="sec-4-2">
        <title>3.1.2. Tools for cloud services</title>
        <p>IoTgo also contains its own Cloud:bit, developed by the author. Its architecture and what end
users interact with is sketched in Fig. 2. Although Micro:bits are easy-to-use and powerful,
they have Bluetooth but lack WiFi connectivity. There are a number of commercially available
hardware add-ons for Micro:bits, but due to the cost factor, proprietary choices or
not-sotransparent services, they were discarded. Instead, the IoTgo Cloud:bit was developed ad-hoc,
as open-source, so as to provide a seamless and safe Bluetooth to WiFi gateway for players’
Micro:bits towards selected and safe cloud-computing services. From the architecture viewpoint,
Cloud:bit consists of a Raspberry Pi , connected via the serial port to a Micro:bit , which in
turn communicates with end users’ Micro:bits. The services provided by Cloud:bit and their
correspondence with the IoTgo cards and decks is reported in Table 1.</p>
        <p>Using such an architecture serves a number of purposes. First and foremost, it provides a way
for Micro:bits to send or receive data to or from cloud computing services, which are controlled
by researchers so as to be safe for minors. Secondly, it hides the complexity away from the end
users, and it is open to more expert end users.</p>
        <p>Card Deck
Logging
Tweet
Calendar
Weather</p>
        <p>Type of Cards
Out
Out
In
In</p>
        <p>Online Service
AdafruitIO
Twitter
Darksky
Darksky</p>
        <p>As Micro:bit has no WiFi capabilities of its own, therefore Makecode also has no relevant
blocks for this purpose. To remedy this, Makecode ’s radio blocks were repurposed so as to
enable end users to continue using Makecode blocks for programming, and seamlessly send or
receive data from or to the cloud through the gateway, without the need of installing any new
extensions.</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>4. The Overall Ideation Process</title>
      <p>The overall ideation process with IoTgo toolkit consists of a number of stages. First is exploration
&amp; familiarization where end users are introduced to input and output cards and devices. They
also use completed ideation boards by other end users as inspiration. Second is the actual
ideation, in which end users use the IoTgo ideation tools such as decks of game cards and
ideation boards, besides other game elements for conceptualising smart thing ideas. Third is
reflection where end users are given reflection lenses with questions inviting them to reflect
on the various issues related to the physical nature of design and data exchanged with
cloudcomputing services. In light of the answers to reflection questions, the end users are invited to
modify their ideas.</p>
      <p>The ideas, conceptualised with the ideation and then reflected on, then become the starting
point for the IoTgo programming &amp; prototyping tools, as discussed in this paper, for turning
ideas into working prototypes. The reflection lenses are carried on into this stage too, in order
to ensure continued reflection on the design process by end users.</p>
    </sec>
    <sec id="sec-6">
      <title>5. Conclusions and Future Work</title>
      <p>There are numerous toolkits for either ideating smart things or for programming smart things
with end users, especially teens. However, there is less literature regarding toolkits that engage
end users through stages of exploration, ideation, reflection, programming and prototyping
their own smart things. IoTgo addresses this gap. IoTgo playfully guides end users across all
design stages of smart things and reflections on their physical nature and data exchanged with
cloud-computing services. This paper particularly focused on the programming &amp; prototyping
tools available in IoTgo toolkit. The toolkit has been used with a variety of end users such as
teens and traditional artists. In next few months, it will be used with citizens attending an
interactive exhibition and later by school teachers, willing to use the toolkit independently
within their classrooms.</p>
    </sec>
    <sec id="sec-7">
      <title>Acknowledgments References</title>
      <p>The author would like to thank Dr Rosella Gennari, Dr Maristella Matera, Dr Alessandra Melonio
and Eftychia Roumelioti, who have contributed in the development of the IoTgo toolkit.
[6] K. Choi, T. Kim, H.-J. Suk, Lighting user experience (lux) cards: A card-based tool for
the design of smart lighting solutions, Archives of Design Research 33 (2020) 55–64.
doi:10.15187/adr.2020.02.33.1.55.
[7] Know-Cards, Learn. play. collect. - know cards, https://know-cards.myshopify.com, 2019.</p>
      <p>Accessed: 2019-09-06.
[8] F. Gianni, S. Mora, M. Divitini, Rapid prototyping internet of things applications for
augmented objects: The tiles toolkit approach, in: Ambient Intelligence, Springer International
Publishing, Cham, 2018, pp. 204–220.
[9] Micro:bit-Educational-Foundation, Micro:bit educational foundation | micro:bit, https:
//microbit.org, 2019. Accessed: 2019-09-06.
[10] D. Braben, J. Lang, P. Lomas, A. Mycroft, R. Mullins, E. Upton, Teach, learn, and make with
raspberry pi – raspberry pi, https://www.raspberrypi.org, 2019. Accessed: 2019-09-06.
[11] Microsoft, Microsoft makecode, https://makecode.microbit.org, 2019. Accessed: 2019-09-06.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>S.</given-names>
            <surname>Mora</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Gianni</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Divitini</surname>
          </string-name>
          ,
          <article-title>Tiles: A card-based ideation toolkit for the internet of things</article-title>
          ,
          <source>in: Proceedings of the 2017 Conference on Designing Interactive Systems, DIS '17</source>
          ,
          <string-name>
            <surname>ACM</surname>
          </string-name>
          , New York, NY, USA,
          <year>2017</year>
          , pp.
          <fpage>587</fpage>
          -
          <lpage>598</lpage>
          . URL: https://doi.org/10.1145/3064663.3064699. doi:
          <volume>10</volume>
          .1145/3064663.3064699.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>M.</given-names>
            <surname>Dibitonto</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Tazzi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Leszczynska</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C. M.</given-names>
            <surname>Medaglia</surname>
          </string-name>
          ,
          <article-title>The IoT Design Deck: A Tool for the Co-design of Connected Products</article-title>
          ,
          <source>in: Advances in Usability and User Experience</source>
          , Springer International Publishing, Cham,
          <year>2018</year>
          , pp.
          <fpage>217</fpage>
          -
          <lpage>227</lpage>
          . URL: https://doi.org/10.1007/ 978-3-
          <fpage>319</fpage>
          -60492-3_
          <fpage>21</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>R.</given-names>
            <surname>Brito</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Houghton</surname>
          </string-name>
          , Iot service kit, http://iotservicekit.com,
          <year>2017</year>
          . Accessed:
          <fpage>2019</fpage>
          -09-06.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>F.</given-names>
            <surname>Gianni</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Divitini</surname>
          </string-name>
          ,
          <article-title>Designing IoT Applications for Smart Cities: extending the Tiles Ideation Toolkit</article-title>
          ,
          <source>IxD&amp;A</source>
          <volume>35</volume>
          (
          <year>2017</year>
          )
          <fpage>100</fpage>
          -
          <lpage>116</lpage>
          . URL: http://hdl.handle.net/11250/2561514.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>R.</given-names>
            <surname>Gennari</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Matera</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Melonio</surname>
          </string-name>
          ,
          <string-name>
            <surname>E. Roumelioti,</surname>
          </string-name>
          <article-title>Research on making nature smart with children</article-title>
          ,
          <source>in: End-User Development</source>
          , Springer International Publishing, Cham,
          <year>2019</year>
          , pp.
          <fpage>249</fpage>
          -
          <lpage>253</lpage>
          . URL: https://doi.org/10.1007/978-3-
          <fpage>030</fpage>
          -24781-2_
          <fpage>25</fpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>