Jason Yi-Bing Lin's Resumeliny.csie.nctu.edu.tw/document/10.1007_s11036-018-1086-z.pdf · This...

Click here to load reader

  • date post

    09-Oct-2020
  • Category

    Documents

  • view

    0
  • download

    0

Embed Size (px)

Transcript of Jason Yi-Bing Lin's Resumeliny.csie.nctu.edu.tw/document/10.1007_s11036-018-1086-z.pdf · This...

  • 1 23

    Mobile Networks and ApplicationsThe Journal of SPECIAL ISSUES onMobility of Systems, Users, Data andComputing ISSN 1383-469X Mobile Netw ApplDOI 10.1007/s11036-018-1086-z

    Flower Sermon: An Interactive VisualDesign Using IoTtalk

    Chung-Yun Hsiao, Chih-Chieh Huang,Yi-Bing Lin & Yun-Wei Lin

  • 1 23

    Your article is protected by copyright and

    all rights are held exclusively by Springer

    Science+Business Media, LLC, part of

    Springer Nature. This e-offprint is for personal

    use only and shall not be self-archived in

    electronic repositories. If you wish to self-

    archive your article, please use the accepted

    manuscript version for posting on your own

    website. You may further deposit the accepted

    manuscript version in any repository,

    provided it is only made publicly available 12

    months after official publication or later and

    provided acknowledgement is given to the

    original source of publication and a link is

    inserted to the published article on Springer's

    website. The link must be accompanied by

    the following text: "The final publication is

    available at link.springer.com”.

  • Flower Sermon: An Interactive Visual Design Using IoTtalk

    Chung-Yun Hsiao1 & Chih-Chieh Huang2 & Yi-Bing Lin1 & Yun-Wei Lin1

    # Springer Science+Business Media, LLC, part of Springer Nature 2018

    AbstractIoTtalk is a platform for IoT device interaction, which has been used to develop many IoTapplications such as home automation.This paper uses Flower Sermon artwork as an example to show how interactive visual design can be conveniently implemented inIoTtalk. The Flower Sermon artwork conducts cyber physical interaction, which animates a dandelion in a mirror when a personsmiles at that mirror. The dandelion grows larger as the person smiles bigger. The flower also vibrates following the heartbeat rateof the person. In our approach, the camera detecting the face expression and the heartbeat rate is considered as an input IoTdevice, and the mirror display for dandelion animation is considered as an output IoT device. In IoTtalk, the features of thedandelion animation are considered as the actuators that can be independently controlled. IoTtalk nicely connects these IoTdevices, where various features can be created for interactive visual design with little or without any programming effort. We alsomeasure the time complexity for data delivery among the input and the output IoT devices. Our study indicates that the timedelays are less than 0.07 s on the average even if the IoTtalk server is located in a cloud.

    Keywords IoTtalk . Interactive visual design . IoT platform . Cyber physical interaction

    1 Introduction

    Through cyclical and collaborative processes between peopleand technology, interactive design emphasizes a user-orientedfield of study on meaningful communication of media [1–3].An interactive design typically involves real-time interactionbetween human and machines. Several studies have focusedon interaction between human behavior and visual objects,i.e., interactive visual design. Examples for such interactivevisual design include Wii and Kinect game system, human-computer interaction, and so on [4, 5].

    This paper implements an interactive visual design calledFlower Sermon based on a Zen Buddhism story about BPickup flower, subtle smile^. In this story, Siddhartha Gautamadirects wisdom to the disciple Mahākāśyapa. In this design,the smile expression and the heartbeat rate (HBR) of a personin front of the mirror affect the size and the shape of a dande-lion animation displayed in the mirror. This artwork conductscyber physical integration, where smile and HBR are detectedin the physical domain and the dandelion animation is illus-trated in the cyber domain.

    In fact, our artwork reverses the original Flower Sermon story,where smile affects the flower through the Internet of Things(IoT). We have written a Chinese poem for this art work:

    笑乞花開, 物聯通心懷, 妙法有知否? 拈花問如來.The poem says that smile triggers blooming, IoT connects

    people’s minds, and you can pick up flower to ask Buddha foranswer.

    We use the IoT approach to implement Flower Sermon. Inan IoT system, the IoT devices interact with each otherthrough a network server following protocols such asAllJoyn [6], OM2M [7], OpenMTC [8] or any proprietaryprotocols. An example is a smart home appliance applicationwhere a remote controller (an input IoT device) controls homeappliances such as a fan or a light (output IoT devices oractuators) though the IoT server/gateway. A program callednetwork application is executed at the server to implement the

    * Chung-Yun [email protected]

    Chih-Chieh [email protected]

    Yi-Bing [email protected]

    Yun-Wei [email protected]

    1 Department of Computer Science, National Chiao Tung University,Hsinchu 30010, Taiwan

    2 Center of General Education andCollege of Arts, National TsingHuaUniversity, Hsinchu 30013, Taiwan

    Mobile Networks and Applicationshttps://doi.org/10.1007/s11036-018-1086-z

    Author's personal copy

    http://crossmark.crossref.org/dialog/?doi=10.1007/s11036-018-1086-z&domain=pdfhttp://orcid.org/0000-0002-1986-3717mailto:[email protected]

  • desired interactions between the input and the output devices.This paper utilizes IoTtalk, an IoT platform [9, 10] that sup-ports quick development of network application software. Weuse IoTtalk to implement Flower Sermon. Through this im-plementation, we will demonstrate that IoTtalk nicely con-nects the IoT devices, and through flexible connections, dif-ferent features can be created for interactive visual design withlittle or without any programming effort. The paper is orga-nized as follows. Section 2 introduces IoTtalk. Section 3shows the implementation of the IoT output devices. Section4 shows the implementation of the IoT input devices. Section5 conducts the delay measurements between the input and theoutput IoT devices. Section 6 concludes our work with futureresearch directions.

    2 IoTtalk concept and usage

    In IoTtalk, every IoT device is characterized by its functional-ities or Bdevice features^. A device feature (DF) is a specificinput or output Bcapability^ of the IoT device. Consider a mo-bile phone as an IoT device. The input device features (IDFs)are sensors or controls that can be the microphone, the Gyrosensor, the GPS, the camera, and so on. The output devicefeatures (ODFs) are actuators such as the display screen, thespeaker and so on. An IoT device is connected to the IoTtalkserver in the Internet through wireline or wireless technologies.

    The network application that defines the interaction betweenthe IoT devices is developed and executed at the IoTtalk server.When the values of the IDFs are updated, an IoT device informsthe network application to take some actions, and the networkapplication sends the result to the ODF of the same or anotherIoT device to affect that output device. With this view, the IoTdevices interact with each other through their device features.Details of IoTtalk operations can be found in [9–12].

    The implementation of Flower Sermon in IoTtalk includesan input device called Intel-Cam and an output device calledDandelion. The hardware of Intel-Cam is an Intel RealSenseCamera (model F200 or SR300), which can detect humanfacial expressions and the pulse rate. The detection functionsare provided by Intel RealSense SDK [13]. In our approach,the connections of the input and the output devices can beeasily established through the IoTtalk GUI. In this GUI, aninput device is represented by an icon placed at the left of thewindow, which consists of smaller icons that represent IDFs,and an output device is represented by an icon placed at theright-hand side of the window, which includes ODF icons. Forexample, the icon in Fig. 1(a) represents the input device Intel-Cam. To implement the Flower Sermon application in IoTtalk,Intel-Cam detects the smile expression, and output the resultthrough the Smile IDF (Fig. 1(c)). Intel-Cam also detects theheartbeats, and output the measure through theHBR IDF (Fig.1(b)). In Fig. 1(d), the Dandelion output device is a visual Javaprogram installed in a Mirror display [14], which has two

    Fig. 1 The basic layout of FlowerSermon in IoTtalk GUI

    Fig. 2 Difference appearances ofthe dandelion animation

    Mobile Netw Appl

    Author's personal copy

  • ODFs Size (Fig. 1(e)) and Vibration (Fig. 1(f)). By connectingtheHBR IDF to the VibrationODF (Fig. 1(1)), Dandelion willanimate vibration based on the frequency of the measuredheartbeat rate. By connecting the Smile IDF to the Size ODF(Fig. 1(2)), when the camera detects the smile expression, theflower grows bigger.

    With IoTtalk, we can easily replace the input or the outputdevices of Flower Sermonwith different implementations. Forexample, we can replace Intel-Cam by an ordinary webcam(Fig. 1(g)) connected to a computer or is built in a laptop thatexecutes facial expressions provided by the OpenCV Haarfeature-based cascade classifier [15]. The Webcam devicecan be considered as a simplified version of Intel-Cam withone IDF Smile (Fig. 1(h)). We also implement another outputdevice Dandelion1 (Fig. 1(i)) with three ODFs Angle (Fig.1(j)), Color (Fig. 1(k)) and Size (Fig. 1(l)), which can changethe shape. The Smile IDF of Webcam is connected to theAngle, the Color and the Size ODFs to affect Dandelion1(Fig. 1(3), (4) and (5)). Animations of Dandelion andDandelion1 are implemented by the same Java program butwith different parameter setups. Therefore, their appearancescan be very different (see Fig. 2).

    Through IoTtalk GUI, both Intel-Cam and Webcam areflexibly connected to either Dandelion or Dandelion1.Initially, the colors of both flowers are white. We may connecttheHBR IDF of Intel-Cam to the Vibration ODF of Dandelion(Fig. 3(1)) and the Angle ODF of Dandelion1 (Fig. 3(2)). Inthis way, the heartbeats detected by Intel-Cam will controlDandelion’s vibration and Dandelion1’s angle. Both SmileIDFs of Intel-Cam and Webcam are linked to Join2 and thenconnected to the SizeODF ofDandelion (Fig. 3(3)). In IoTtalk,BJoin^ means a joint point of line segments connected to IDF/ODF icons. By clicking the Join circle, the IoT applicationdesigner can implement functions to effect the data come fromthe IDFs before they are sent to the ODFs. If the smile detectedby Intel-Cam is bigger than that by Webcam, Join2 sends thevalue 1 (large flower) to the SizeODF of Dandelion. Otherwisethe value 0 (no flower) is sent to Dandelion. Join3 links both

    Smile IDFs to the Size ODF of Dandelion1 (Fig. 3(4)). If thesmile detected by Intel-Cam is bigger than that by Webcam,Join3 sends the value 0 to the Size ODF of Dandelion1.

    Fig. 3 An advanced layout ofDandelion in IoTtalk GUI

    1

    2

    3 4

    5 6

    78

    9

    Fig. 4 Device Feature Window for Dandelion1 ODFs

    Mobile Netw Appl

    Author's personal copy

  • Otherwise the value 1 is sent to Dandelion1. With connectionsJoin2 and Join3, big Dandelion appears and Dandelion1 disap-pears if the smile detected by Intel-Cam is bigger than that byWebcam. On the other hand, if the smile detected byWebcam isbigger, then Dandelion1 appears and Dandelion disappears.Therefore, two persons can play a competition game withFlower Sermon. Join4 links both Smile IDFs to the Color ODFof Dandelion1 (Fig. 3(5)) so that if the smile detected by

    Webcam is bigger than that by Intel-Cam, the color ofDandelion1 turns yellow. Otherwise, Dandelion1 is white. Toachieve the effects of Join2, Join3 and Join4, we need to programfunctions at these connections.Wewill elaborate on the details inSection 4.2.

    We may also control the color of Dandelion1 by a colorsensor as shown in Join5 (Fig. 3(6)). In this connection, theinput device is a MorSensor [10] plugged in a color sensor.

    3 The dandelion output device

    This section describes the output device Dandelion1 (Fig. 1(i))with three ODFs Size, Angle and Color. In IoTtalk, the softwarefor an output device consists of two parts. The actuator applica-tion implements the dandelion animation software. The deviceapplication (DA) provides the driver for wired or wireless com-munication to the IoTtalk server. The DA receives the data sentfrom the IoTtalk server and forwards them to the actuator appli-cation through the ODFs. These ODFs are specified in theDevice Feature Window (Fig. 4). This window is provided byIoTtalk to manage the device features [9]. The Device FeatureWindow for the Size ODF (Fig. 4(1)) has one parameter (Fig.4(2)) that represents the maximum level of the Dandelion to begrown. This parameter ranges from 0 to 10 (Fig. 4(3) and (4)).Fig. 5 shows the Dandelion with Size= 8. The Angle ODF rep-resents the growth direction of the Dandelion, which ranges from0 to 120 degrees (Fig. 4(5) and (6)). Fig. 5 illustrates theDandelion with the Angles of 37° and 90°, respectively. TheColor ODF represents the color of the Dandelion in the RGBformat. That is, this ODF has three parameters, each of themranges from 0 to 255 (Fig. 4(7), (8) and (9)).

    The DA for the Dandelion output device is similar to that forthe input devices, and will be described in Section 4.1. We useJava to implement the actuator application for the Dandelion

    s0

    nR,0

    Angle = s0s2 - 90

    Angle1 = s2s3

    Angle1

    s1

    Angle1

    s3

    s3s2

    s2

    Angle

    (a) (b)

    Angle

    s1

    Angle1

    Angle1

    nR,0

    nR,1 nL,1

    s3

    s3s2

    s2

    s0

    Fig. 6 Graphical patterns ofDandelion at level-0

    Angle = 37

    width

    background color

    display

    height

    1

    2

    3

    90

    Fig. 5 Dandelion1 grows with different Angle values (Size = 8)

    Mobile Netw Appl

    Author's personal copy

  • animation that continuously draws graphical patterns to mimcthe morphology of a dandelion. There are two types of param-eters. The parameters for the display layout include the width(Fig. 5(1)), the height (Fig. 5(2)), and the background color(Fig. 5(3)). As shown in Fig. 6, the parameters for the dandelionanimation include the stalks s0, s1, s2, s3, the included anglebetween s2 and the horizontal line (Angle) and the includedangle between s2 and s3 (Angle1). These parameters are sum-marized in Table 1.

    3.1 The graphical pattern of dandelion

    Dandelion is a fractal art implemented by a binary tree datastructure in which each node has two children, the left childnode and the right child node. Dandelion grows from the rootnode (level-0) denoted as nR,0, which connects to stalk s0 (seeFig. 6) with a default length of 384 pixels as defined in Table1. For level l ≥ 1, a level-l node is denoted as nD,lwhereD = Rif it is the right child node of its parent node, and D = L if it isthe left child node. Fig. 6(a) and (b) show the graphical pat-terns between the root node nR,0 and its children nR,1 and nL,1,respectively. The pattern consists of one stalk s1, two stalks s2and two stalks s3, which is a line with arrows at both ends. Thelength of stalk s1 varies with level l expressed as

    s1 lð Þ ¼ s1 0ð Þ 1þ 0:05lð Þ ð1Þ

    where s1(0) is the length of s1 at level-0 with a default value 30pixels as defined in Table 1. The other two stalks s2 and s3have the default values of 17 pixels and 24 pixels, respective-ly. Angle1 has the default value 120°.

    3.2 The implementation of dandelion

    The dandelion animation is written in the Java language usingthe Processing library [16]. The animation effect is produced bycontinuously invoking the function draw(). Each time draw() isexecuted, a frame is drawn on the display with the frame rate at60 fps (frames per second). Fig. 7 lists the Java code for draw().

    Line 3 of Fig. 7 calls background() to set the display’sbackground color (Fig. 5(3)). The default color is Bblack^(i.e., bg_color_r = 0, bg_color_g = 0, bg_color_b = 0). Line4 calls translate() to move the origin of the display’s coordi-nate system from the top left corner of the display at (0, 0) tothe position of the root node nR,0 at (width / 2, height - s0). Line5 calls stroke() to set the color for stalk s0. Line 6 calls line() todraw stalk s0 between nR,0 and (0, s0) as illustrated in Fig. 9(a).At Line 7, grow() is invoked with the argument value 0 todraw the graphic pattern for level 0 of Dandelion. FollowingLine 7 of Figs. 7, 8 lists the Java code for grow().

    The function grow() iteratively draws the graphical patternsof Dandelion with the argument level, an integer variable toindicate the depth of the nodes. Line 10 of Fig. 8 declares the

    Fig. 7 The Java code for draw()

    Table 1 The parameters ofDandelion Parameter Data Type Variable Name Default Value

    ODFs Size int Size 0

    Angle float Angle 0.0

    Color int color_r 0

    int color_g 0

    int color_b 0

    Display layout Width int width 1024 pixels

    Height int height 768 pixels

    Background color int bg_color_r 255

    int bg_color_g 255

    int bg_color_b 255

    Dandelion animation Stalk s0 int s0 384 pixels

    Stalk s1 at level-0 int s1 30 pixels

    Stalk s2 int s2 17 pixels

    Stalk s3 int s3 24 pixels

    Angle1 float a1 120°

    Mobile Netw Appl

    Author's personal copy

  • Fig. 8 The Java code for grow()

    y

    nR,0

    (0,0)

    (0,s0)

    s0

    x

    y

    x

    Angle

    y

    x

    (0,0)

    (s3 cos Angle1,

    -s3 sin Angle1)

    Angle1s3

    y

    x

    (0,0)(s2,0)s2

    y

    x

    (0,0)

    (s1 cos Angle1/2,

    -s1 sin Angle1/2)

    Angle1/2

    s1

    nR,1

    y

    xnR,1

    (0,0)

    nR,0

    y x

    180 - Angle1

    (0,0)

    y x

    s2(s2,0) y x

    s3

    (0,0)(s3 cos Angle1,

    s3 sin Angle1) Angle1

    (a) (b) (c)

    (d) (e) (f)

    (g) (h) (i)

    Fig. 9 The steps for drawing thegraphical pattern between the rootnode nR,0 and the right child nodenR,1

    Mobile Netw Appl

    Author's personal copy

  • function grow(). Line 11 checks if level is larger than the SizeODF. If so, Line 12 exits grow(). Line 15 calls pushMatrix() tosave the current coordinate system in a stack data structure.Note that at Line 4 of Fig. 7, translate() is invoked to movethe origin of the display’s coordinate system to nR,0 as illustratedin Fig. 9(a), and pushMatrix() saves the new coordinate systemto the stack. At Line 16, radians() converts -Angle from thedegree measure to the radian and then rotate() is invoked torotate the coordinate system by -Angle (a positive value meansthe clockwise rotation and a negative value means the counter-clockwise rotation). Suppose that Angle = 45°, Fig. 9(b) illus-trates what Line 16 does. Line 17 calls stroke() to set the colorfor the stalks s1, s2 and s3. Line 18 calls line() to draw stalk s2from (0, 0) to (s2, 0), see Fig. 9(c). Line 19 draws stalk s3 asillustrated in Fig. 9(d). Line 20 draws stalk s1 as illustrated inFig. 9(e). Line 21 calls translate() to move the origin of thecoordinate system from nR,0 to nR,1 as illustrated in Fig. 9(f).At Line 22, rotate() is invoked to rotate the coordinate systemby 180° - Angle1 as illustrated in Fig. 9(g). Line 23 calls line()to draw stalk s2 from (0, 0) to (s2, 0) as illustrated in Fig. 9(h).Line 24 draws stalk s3 as illustrated in Fig. 9(i). The aboveexecution creates the graphical pattern between the root nodenR,0 and its right child node nR,1. Line 25 calls grow() with theargument level + 1 to iteratively draw the graphical pattern be-tween nR,1 and its right child node nR,2. Line 26 callspopMatrix() to retrieve the prior coordinate system (see Fig.9(a)) from the stack. The code for drawing the graphical patternbetween nR,0 and the sub-tree rooted at its left child node nL,1 issimilar to that in Fig. 8, and the details are omitted.

    4 The camera input devices and the IDF-ODFconnections

    This section describes the implementations of the input de-vices Intel-Cam (Fig. 1(a)) and Webcam (Fig. 1(g)), and thenthe functions implemented at Join2, Join3 and Join4 in Fig. 3.

    4.1 The implementation for the camera input devices

    The software for an input device consists of two parts, thesensor application and the DA. The sensor application imple-ments the camera software to be executed at Intel-Cam orWebcam. The DA is similar to that for the output devices,which provides the driver for connection to the IoTtalk server.The DA receives the data sent from the sensor application andforwards them to the IoTtalk server through the IDFs. Intel-Cam has two IDFs Smile and HBR. The Smile IDF representsthe smile level ranging from 0 to 100. The bigger the detectedsmile, the higher the value of Smile IDF (Fig. 10). The HBRIDF represents the heartbeat rate (in beats per minute) rangingfrom 0 to 220. On the other hand, Webcam has one IDF calledSmile ranging from 0 to 100. If Webcam does not detect anysmile, the value of Smile IDF is 0. If Webcam captures smile,the Smile IDF produces a value between 1 and 100 dependingon the time of smiling. The longer the smile, the higher thevalue (Fig. 11).

    The Intel-Cam DA is written in Python and the code islisted in Fig. 12. The DA consists two parts: the DA to theIoT device (DAI) and the DA to the Network (DAN). The

    Fig. 11 Different Smile valuesfrom Webcam

    Fig. 10 Different Smile valuesfrom Intel-Cam

    Mobile Netw Appl

    Author's personal copy

  • DAI is responsible for the interaction with the sensor applica-tion and specifically, should create and maintain the IDFs forthe sensor application. The DAN is responsible for the com-munication (either wired or wirelessly) with the IoTtalk serverin the network. The DAN is typically implemented as a librarythat can be invoked by the DAI. The same DAN is used by allIoT devices connecting to the IoTserver, and the details can befound in [9].

    The sensor application for the Intel-Cam input device iswritten by the C++ language using the Intel RealSense SDK[13]. The SDK provides a set of APIs for face analysis, in-cludes face detection, facial feature landmark, facial expression

    detection, pulse estimation, etc. We use the Intel RealSensecamera model F200 to detect the smile expression and the heartrate by using the face tracking example code provided by Intel[17] partially listed in Fig. 13. In this figure, Lines 1–6 imple-ment smile detection, and Lines 7–11 implement HBR mea-sure. The sensor application for the Webcam input device issimilar to that in Fig. 13 and the details are omitted.

    4.2 The join functions

    IoTtalk allows one to select or implement functions at a Joinpoint. The inputs of the function are the IDFs connected to the

    Fig. 13 The C++ code forcapturing the smile expressionand HBR measure

    Fig. 12 The Python code for DAI

    Mobile Netw Appl

    Author's personal copy

  • join point, and the output is sent to the ODFs connected to thejoin point. The user can select or implement very simple Joinfunctions to create interesting I/O interactions. In Fig. 3, thefunction implemented at Join 2 has two inputs, i.e., the SmileIDFs of Intel-Cam and Webcam, and the result is sent to theSize ODF of Dandelion. By clicking the Join2 circle in theGUI, a window is popped up for the user to write a newfunction or select a predefined function [9]. The window con-sists of one or more IDF tables (Fig. 14(1)), one Join Functiontable (Fig. 14(2)) and one or more ODF tables (Fig. 14(3)).For Join2, we select the predefined Blarger than^ function inthe Join Function table (Fig. 14(4)), which is implemented inPython as

    where the input Ba^ is sent from Intel-Cam and the input Bb^ issent from Webcam. Before the value 0 or 1 is sent to the SizeODF of Dandelion, it can be manipulated by another functionin the ODF table. We select the Btimes10^ function in the SizeODF table (Fig. 14(5)), which is implemented as

    Fig. 15 The functions selected atJoin4

    Fig. 14 The functions selected atJoin2

    Mobile Netw Appl

    Author's personal copy

  • Therefore, if the smile detected by Intel-Cam is bigger thanthat by Webcam, the execution of these functions retunes thevalue 10. Otherwise, the value 0 is returned. The functionimplemented at Join3 is the same as that for Join2 except thatthe Blarger than^ function in the Join Function table is re-placed by the Bsmaller than^ function, and the final resultreverses that of Join2.

    The functions selected for Join4 is illustrated in Fig. 15.The Blarger than^ function in the Join Function table is select-ed as we do for Join2. Since the Color ODF is a triple param-eter, the ODF table has three inputs y1, y2 and y3. Since theRGB codes for the white and the yellow colors are [255, 255,255] and [255, 255, 0], respectively, y1 = y2 = 255. Therefore,

    we select Bconstant255^ function for y1 and y2 (Fig. 15(1)and (2)), which always returns 255. For y3, we implement thefunction Bwhite or yellow^ (Fig. 15(3)) with the followingPython code:

    Execution of the functions at Join4 returns the RGB code foryellow (i.e., [255, 255, 0]) if the smile detected byWebcam isbigger than that by Intel-Cam. Otherwise, the RGB code forwhite (i.e., [255, 255, 255]) is returned.

    5 Delay measurements

    We conduct the delay measurement experiments to investigatethe delays of data delivered from the camera input device tothe Dandelion output device as illustrated in Fig. 16. In termsof the locations for the IoTtalk server, there are two scenarios,local (L) and remote (R). For scenario i (= L or R), wemeasurethe communication delay Ti from the camera (Fig. 16(1) to theDandelion animation (Fig. 16(2)). This delay is caused bywireless transmission (the upstream delay d1,i and the down-stream delay d2,i) and the execution time dp,i of the IoTtalkserver.

    The local scenario 1 (i = L) The sever IoTtalkL is installed in astandalone computation device Acer aBeing One [18], whichcan serve as a Wi-Fi AP. The camera, the Dandelion and theserver IoTtalkL (Fig. 16(3)) are placed in the same room. Eachof d1,L and d2,L is a one-hop Wi-Fi wireless transmissiondelay.

    Perc

    enta

    ge o

    f occ

    urre

    nces

    ti (ms)

    Fig. 17 The histograms of ti fori = L and R

    NTP

    timer

    IoTtalkL

    ODF

    timer

    IoTtalkRtimer

    IDF

    timer

    1 23

    4

    5

    NCTU Campus Network

    Local

    d1,L d2,L

    d1,R d2,R

    Remote

    Fig. 16 Two scenarios for the IoTtalk server placement

    Mobile Netw Appl

    Author's personal copy

  • The remote scenario (i = R) The sever IoTtalkR (Fig. 16(4)) isinstalled in a virtual machine (VM) in the campus cloud atNational Chiao Tung University (NCTU) computer center,and its location is remote from the camera and theDandelion. Each of d1,R and d2,R includes the delays for aone-hop Wi-Fi wireless transmission and the campus networkconnection to the NCTU cloud.

    In our experiments, each of the camera, IoTtalki, and theDandelion is installed a timer module to synchronize with theNetwork Time Protocol (NTP; Fig. 16(5)). For each scenario,we conduct 1200 measurements in the commercial operationenvironments; that is, the involved networks operated withcommercial background traffic. We measure the data deliverydelays TL = d1,L + dp,L + d2,L and TR = d1,R + dp,R + d2,R inFig. 16. Fig. 17 illustrates the histograms of ti = d1,i + d2,i for

    i = L and R. The figure shows that the expected values for tiare E[tL] = 32.87 ms and E[tR] = 34.55 ms. The variances areV[tL] = 0.037E[tL]

    2 and V[tR] = 0.029E[tR]2. The above statis-

    tics show that as compared with the Local scenario, the trans-mission delays are 5% shorter than the IoTtalk server installedin a VM of NCTU campus cloud. The variances for the trans-mission delays are very small for both scenarios.

    Fig. 18 shows the histograms of the IoTtalk computationdelays dp,i for i = L and R. For dp,i, the expected values areE[dp,L] = 36.93 ms and E[dp,R] = 23.81 ms. The variances areV[dp,L] = 0.020E[dp,L]

    2 and V[dp,R] = 0.057E[dp,R]2. It is in-

    teresting to note that the computation of IoTtalkR at the NCTUVM is 36% faster than IoTtalkL. This is due to the fact that theNCTU VM has much better computation power (Intel XeonProcessor E5–2620 [email protected] 2.40 GHz) than the local standalone

    Perc

    enta

    ge o

    f occ

    urre

    nces

    Ti (ms)

    Fig. 19 The histograms of Ti fori = L and R

    Perc

    enta

    ge o

    f occ

    urre

    nces

    dp,i (ms)

    Fig. 18 The histograms of dp,i fori = L and R

    Mobile Netw Appl

    Author's personal copy

  • computation device (Intel Core i3-4005 U Processor @1.7 GHz). The variances for the IoTtalk server computationdelay are small for both scenarios.

    Fig. 19 shows the histograms of Ti for i = L and R. Thefigure shows that the expected values for Ti are E[TL] =69.79 ms and E[TR] = 58.37 ms. The variances are V[TL] =0.013E[TL]

    2 and V[TR] = 0.019E[TR]2. These results indicate

    that the time complexity of the local scenario is higher than theremote scenario. Due to cost consideration, the computerpower of a small standalone IoT server is typically smallerthan that in a cloud. The variances of the delays in both sce-narios are small.

    6 Conclusion

    This paper designs and implements the Flower Sermon art-work using IoTtalk. IoTtalk provides simple yet powerfulconnection mechanism for IoT device interaction, which caneffectively and flexibly implement various features for cyberand physical interaction. There are two major components ofthis visual interactive artwork, a camera and a mirror thatdisplays a dandelion animation. In IoTtalk, the camera is con-sidered as a physical IoT input device, and the dandelion an-imation is a cyber IoT output device. We showed that with theconcept of IDF and ODF, Flower Sermon can be convenientlyimplemented in IoTtalk. Through the ODFs, all features of thedandelion animation (angles, stalks, colors, size, vibration andso on) become the actuators that can be independently con-trolled in IoTtalk. Also, through IDFs, all detection mecha-nisms (for facial expression, color, heart rate and so on) be-come the sensors that can be used to affect all actuators.

    In the original design of this artwork, a dandelion in themirror grows larger as a person in front of the mirror smilesbigger. With IoTtalk, we can easily modify Flower Sermon tocreate many novel and surprising ideas. For example, two setsof Flower Sermon can extend single person-dandelion inter-action to multiple person-dandelion interactions. We showedhow to modify the original Flower Sermon to a two-personcompetition game such that only the dandelion of the personwith bigger smile will be displayed in his/her mirror. The IDF/ODF connections can also be easily modified to createmultiple-person collaboration game on Flower Sermon.

    Furthermore, many sensors and actuators have been con-nected to IoTtalk, and these IoT devices can be used to extendthe interactive visual design. For example, the color sensor ofMorSensor [10] can affect the color of the dandelion anima-tion. To conclude, we have demonstrated that IoTtalk nicelyconnects the IoT devices, and through flexible configurations,

    various features can be created for interactive visual designwith little or without any programming effort.

    Acknowledgements The first version of Dandelion1 is implemented byQing Liu. This work was supported in part by theMinistry of Science andTechnology under Grant 106-2221-E-009 -006 and Grant 106-2221- E-009 -049 -MY2, in part by the Ministry of Education through theSPROUT Project-Center for Open Intelligent Connectivity, NationalChiao Tung University, Taiwan, in part by Academia Sinica underGrant AS-105-TP-A07, and in part by the Ministry of Economic Affairsunder Grant 106-EC-17-A-24-0619.

    References

    1. Crawford C (2003) The art of interactive design. William Pollock,San Francisco

    2. Kolko J (2011) Thoughts on interaction design.Morgan Kaufmann,San Francisco

    3. Saffer D (2010) Designing for interaction. Berkeley, California4. Mendelowitz E, Seeley D, Glicksman D (2016) Whorl: an

    immersive dive into a world of flowers, color, and play. In: ACMCHI Conference Extended Abstracts on Human Factors inComputing Systems, pp 3871–3874

    5. Xiao X, Puentes P, Ackermann E, Ishii H (2016) Andantino: teach-ing children piano with projected animated characters. In: ACMProceedings of the 15th International Conference on InteractionDesign and Children, pp 37–45

    6. AllSeen Alliance (2016) https://allseenalliance.org/. Accessed 13July 2017

    7. oneM2M (2016) Standards for M2M and the Internet of Things.http://www.onem2m.org/. Accessed 13 July 2017

    8. OpenMTC (2016) The open machine type communications plat-form. http://www.open-mtc.org/. Accessed 13 July 2017

    9. Lin YB, Lin YW, Chih CY, Li TY, Tai CC, Wang YC, Lin FJ, KuoHC, Huang CC, Hsu SC (2015) Easy connect: a management sys-tem for IoT devices and its applications for interactive design andart. IEEE Internet Things J 2(6):551–561

    10. Lin YB, Lin YW, Huang CM, Chih CY, Lin P (2017) IoTtalk: amanagement platform for reconfigurable sensor devices. IEEEInternet Things J. https://doi.org/10.1109/JIOT.2017.2682100

    11. Lin YW, Lin YB, Hsiao CY, Wang YY (2017) IoTtalk-RC: sensorsas universal remote control for aftermarket home appliances. IEEEInternet Things J 4(4):1104–1112

    12. Lin YW, Lin YB, Yang MT, Lin JH (2017) ArduTalk: an arduinonetwork application development platform based on IoTtalk. IEEESyst J 99:1–9

    13. Intel (2016) Intel RealSense SDK Developer Reference. https://software.intel.com/intel-realsense-sdk/. Accessed 13 July 2017

    14. Huang SC (2009) MSOrgm (motivational sensitive organism).Leonardo 42(4):374–375

    15. Open CV Open Source Computer Vision (2017) http://opencv.org.Accessed 13 July 2017

    16. Processing (2016) https://processing.org. Accessed 13 July 201717. Intel (2016) Intel RealSense Example Code, https://software.intel.

    com/sites/default/files/managed/d1/2d/Tutorial_VisualStudioProjectSolution.zip. Accessed 13 July 2017

    18. Acer (2017) Acer aBeing One, http://home.cloud.acer.com/abeing-one/. Accessed 13 July 2017

    Mobile Netw Appl

    Author's personal copy

    https://allseenalliance.org/http://www.onem2m.org/http://www.open-mtc.org/https://doi.org/10.1109/JIOT.2017.2682100https://software.intel.com/intel-realsense-sdk/https://software.intel.com/intel-realsense-sdk/http://opencv.orghttps://processing.orghttps://doi.org/https://doi.org/https://doi.org/http://home.cloud.acer.com/abeing-one/http://home.cloud.acer.com/abeing-one/

    Flower Sermon: An Interactive Visual Design Using IoTtalkAbstractIntroductionIoTtalk concept and usageThe dandelion output deviceThe graphical pattern of dandelionThe implementation of dandelion

    The camera input devices and the IDF-ODF connectionsThe implementation for the camera input devicesThe join functions

    Delay measurementsConclusionReferences