<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Supporting End Users in Designing IoT SmartThings with the IoTgo Toolkit</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author role="corresp">
							<persName><forename type="first">Mehdi</forename><surname>Rizvi</surname></persName>
							<email>syedmehdi.rizvi@polimi.it</email>
							<affiliation key="aff0">
								<orgName type="department">DEIB</orgName>
								<orgName type="institution">Politecnico di Milano</orgName>
								<address>
									<settlement>Milan</settlement>
									<country key="IT">Italy</country>
								</address>
							</affiliation>
							<affiliation key="aff1">
								<orgName type="department">Internet of Things Ecosystems. Workshop co-located with INTERACT</orgName>
								<address>
									<addrLine>2021, August 30</addrLine>
									<postCode>2021</postCode>
									<settlement>Bari</settlement>
									<country key="IT">Italy</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Supporting End Users in Designing IoT SmartThings with the IoTgo Toolkit</title>
					</analytic>
					<monogr>
						<idno type="ISSN">1613-0073</idno>
					</monogr>
					<idno type="MD5">54B6B63E67D928B245A6A5959751DBDF</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T04:00+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<textClass>
				<keywords>
					<term>IoT</term>
					<term>Toolkit</term>
					<term>End Users</term>
					<term>Design</term>
					<term>Smart Things</term>
					<term>Ideation</term>
					<term>Reflection</term>
					<term>Prototyping and Programming</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><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 effectively 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></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1.">Introduction</head><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></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.">Related Work</head><p>Numerous toolkits focus on using inspirational cards and/or board games to help end users ideate smart things <ref type="bibr" target="#b0">[1,</ref><ref type="bibr" target="#b1">2,</ref><ref type="bibr" target="#b2">3,</ref><ref type="bibr" target="#b3">4,</ref><ref type="bibr" target="#b4">5]</ref>. In order to offer 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 Lighting User Experience (LUX) cards and Know Cards contain cards for physical devices for specific environments <ref type="bibr" target="#b5">[6,</ref><ref type="bibr" target="#b6">7]</ref>. Similarly, SNaP has different physical device cards, for inputs and outputs, which are selected according to the environment <ref type="bibr" target="#b4">[5]</ref>. 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 <ref type="bibr" target="#b0">[1,</ref><ref type="bibr" target="#b7">8]</ref>. The IoT Service Kit has cards for city services, e.g., parking data <ref type="bibr" target="#b2">[3]</ref>. The majority of toolkits for end users have no separate cloud-computing services, or they offer only physical-computing services <ref type="bibr" target="#b4">[5]</ref>. In the IoT Design Deck and other card-based toolkits, cloud-computing services are not differentiated from the physical components of smart things, but rather categorised as inputs and outputs together with them <ref type="bibr" target="#b1">[2]</ref>. SNaP has no cloud cards at all, being aimed at younger children <ref type="bibr" target="#b4">[5]</ref>. 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 <ref type="bibr" target="#b7">[8,</ref><ref type="bibr" target="#b4">5]</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.">The Toolkit</head><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 <ref type="bibr" target="#b8">[9]</ref> and Raspberry Pi <ref type="bibr" target="#b9">[10]</ref>, 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.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.1.">Tools for Programming &amp; Prototyping</head><p>IoTgo for programming &amp; prototyping contains visual guidebooks, empty and completed ideation boards to help with scaffolding 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></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.1.1.">Tools for physical computing</head><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 <ref type="bibr" target="#b8">[9]</ref>. 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 <ref type="bibr" target="#b10">[11]</ref>. 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></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.1.2.">Tools for cloud services</head><p>IoTgo also contains its own Cloud:bit, developed by the author. Its architecture and what end users interact with is sketched in Fig. <ref type="figure" target="#fig_1">2</ref>. 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 <ref type="table" target="#tab_1">1</ref>.</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. 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></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.">The Overall Ideation Process</head><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 cloud-computing 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></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.">Conclusions and Future Work</head><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></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Figure 1 :</head><label>1</label><figDesc>Figure 1: Various tools included in the IoTgo toolkit: (1) various decks of cards: (top to bottom) Mission cards; Thing, Physical Input and Physical Output cards; Cloud Input and Output cards, with password cards; Reflection Lenses (2) The IoTgo Ideation board with dice and tokens (3) Various electronic components, and (4) IoTgo's companion Web-app, for generating ready-to-use code</figDesc><graphic coords="2,110.13,87.57,375.03,375.03" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Figure 2 :</head><label>2</label><figDesc>Figure 2: Cloud:bit of IoTgo: a sketch of the architecture and what players interact with, in order to program and prototype</figDesc><graphic coords="4,108.88,87.58,375.03,109.23" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_0"><head>Card Deck Type of Cards Online Service</head><label></label><figDesc></figDesc><table><row><cell>Logging</cell><cell>Out</cell><cell>AdafruitIO</cell></row><row><cell>Tweet</cell><cell>Out</cell><cell>Twitter</cell></row><row><cell>Calendar</cell><cell>In</cell><cell>Darksky</cell></row><row><cell>Weather</cell><cell>In</cell><cell>Darksky</cell></row></table></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_1"><head>Table 1</head><label>1</label><figDesc>Mapping from cloud input and output cards to cloud services.</figDesc><table /></figure>
		</body>
		<back>

			<div type="acknowledgement">
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Acknowledgments</head><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.</p></div>
			</div>

			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">Tiles: A card-based ideation toolkit for the internet of things</title>
		<author>
			<persName><forename type="first">S</forename><surname>Mora</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Gianni</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Divitini</surname></persName>
		</author>
		<idno type="DOI">10.1145/3064663.3064699</idno>
		<idno>doi:10.1145/3064663.3064699</idno>
		<ptr target="https://doi.org/10.1145/3064663.3064699" />
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 2017 Conference on Designing Interactive Systems, DIS &apos;17</title>
				<meeting>the 2017 Conference on Designing Interactive Systems, DIS &apos;17<address><addrLine>New York, NY, USA</addrLine></address></meeting>
		<imprint>
			<publisher>ACM</publisher>
			<date type="published" when="2017">2017</date>
			<biblScope unit="page" from="587" to="598" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">The IoT Design Deck: A Tool for the Co-design of Connected Products</title>
		<author>
			<persName><forename type="first">M</forename><surname>Dibitonto</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Tazzi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Leszczynska</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><forename type="middle">M</forename><surname>Medaglia</surname></persName>
		</author>
		<idno type="DOI">10.1007/978-3-319-60492-3_21</idno>
		<ptr target="https://doi.org/10.1007/978-3-319-60492-3_21" />
	</analytic>
	<monogr>
		<title level="m">Advances in Usability and User Experience</title>
				<meeting><address><addrLine>Cham</addrLine></address></meeting>
		<imprint>
			<publisher>Springer International Publishing</publisher>
			<date type="published" when="2018">2018</date>
			<biblScope unit="page" from="217" to="227" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<monogr>
		<author>
			<persName><forename type="first">R</forename><surname>Brito</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Houghton</surname></persName>
		</author>
		<ptr target="http://iotservicekit.com" />
		<title level="m">Iot service kit</title>
				<imprint>
			<date type="published" when="2017">2017. 2019-09-06</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">Designing IoT Applications for Smart Cities: extending the Tiles Ideation Toolkit</title>
		<author>
			<persName><forename type="first">F</forename><surname>Gianni</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Divitini</surname></persName>
		</author>
		<ptr target="http://hdl.handle.net/11250/2561514" />
	</analytic>
	<monogr>
		<title level="j">IxD&amp;A</title>
		<imprint>
			<biblScope unit="volume">35</biblScope>
			<biblScope unit="page" from="100" to="116" />
			<date type="published" when="2017">2017</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">Research on making nature smart with children</title>
		<author>
			<persName><forename type="first">R</forename><surname>Gennari</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Matera</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Melonio</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Roumelioti</surname></persName>
		</author>
		<idno type="DOI">10.1007/978-3-030-24781-2_25</idno>
		<ptr target="https://doi.org/10.1007/978-3-030-24781-2_25" />
	</analytic>
	<monogr>
		<title level="m">End-User Development</title>
				<meeting><address><addrLine>Cham</addrLine></address></meeting>
		<imprint>
			<publisher>Springer International Publishing</publisher>
			<date type="published" when="2019">2019</date>
			<biblScope unit="page" from="249" to="253" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">Lighting user experience (lux) cards: A card-based tool for the design of smart lighting solutions</title>
		<author>
			<persName><forename type="first">K</forename><surname>Choi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Kim</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H.-J</forename><surname>Suk</surname></persName>
		</author>
		<idno type="DOI">10.15187/adr.2020.02.33.1.55</idno>
	</analytic>
	<monogr>
		<title level="j">Archives of Design Research</title>
		<imprint>
			<biblScope unit="volume">33</biblScope>
			<biblScope unit="page" from="55" to="64" />
			<date type="published" when="2020">2020</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<monogr>
		<ptr target="https://know-cards.myshopify.com" />
		<title level="m">Know-Cards, Learn. play. collect. -know cards</title>
				<imprint>
			<date type="published" when="2019-09-06">2019. 2019-09-06</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">Rapid prototyping internet of things applications for augmented objects: The tiles toolkit approach</title>
		<author>
			<persName><forename type="first">F</forename><surname>Gianni</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Mora</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Divitini</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Ambient Intelligence</title>
				<meeting><address><addrLine>Cham</addrLine></address></meeting>
		<imprint>
			<publisher>Springer International Publishing</publisher>
			<date type="published" when="2018">2018</date>
			<biblScope unit="page" from="204" to="220" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<monogr>
		<ptr target="https://microbit.org" />
		<title level="m">Micro:bit-Educational-Foundation, Micro:bit educational foundation | micro:bit</title>
				<imprint>
			<date type="published" when="2019-09-06">2019. 2019-09-06</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<monogr>
		<author>
			<persName><forename type="first">D</forename><surname>Braben</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Lang</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Lomas</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Mycroft</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Mullins</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Upton</surname></persName>
		</author>
		<ptr target="https://www.raspberrypi.org" />
		<title level="m">Teach, learn, and make with raspberry pi -raspberry pi</title>
				<imprint>
			<date type="published" when="2019-09-06">2019. 2019-09-06</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<monogr>
		<ptr target="https://makecode.microbit.org" />
		<title level="m">Microsoft makecode</title>
				<imprint>
			<date type="published" when="2019-09-06">2019. 2019-09-06</date>
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
