19
VIPLE: Visual IoT/Robotics Programming Language Environment for Computer Science Education Yinong Chen and Gennaro De Luca School of Computing, Informatics, and Decision Systems Engineering Arizona State University Tempe, AZ 85287-8809, U.S.A.

VIPLE: Visual IoT/Robotics Programming Language ...tcpp.cs.gsu.edu/.../EduPar_2016-VIPLE-Presentation.pdf · VIPLE: Visual IoT/Robotics Programming Language Environment for Computer

  • Upload
    others

  • View
    16

  • Download
    0

Embed Size (px)

Citation preview

Page 1: VIPLE: Visual IoT/Robotics Programming Language ...tcpp.cs.gsu.edu/.../EduPar_2016-VIPLE-Presentation.pdf · VIPLE: Visual IoT/Robotics Programming Language Environment for Computer

VIPLE: Visual IoT/Robotics Programming Language Environment for Computer Science

Education

Yinong Chen and Gennaro De Luca

School of Computing, Informatics, and Decision Systems Engineering

Arizona State University

Tempe, AZ 85287-8809, U.S.A.

Page 2: VIPLE: Visual IoT/Robotics Programming Language ...tcpp.cs.gsu.edu/.../EduPar_2016-VIPLE-Presentation.pdf · VIPLE: Visual IoT/Robotics Programming Language Environment for Computer

Overview

• Introduction to IoT and RaaS

• IoT Standards and Protocols

• Definition of VIPLE

• Educational examples in VIPLE

• VIPLE and IoT devices

Page 3: VIPLE: Visual IoT/Robotics Programming Language ...tcpp.cs.gsu.edu/.../EduPar_2016-VIPLE-Presentation.pdf · VIPLE: Visual IoT/Robotics Programming Language Environment for Computer

History of IoT

• Internet of Things

• RFID tags and Electronic Product Code (Auto-ID Lab)

• IoIT = IoT + computing power

• 15 billion IoT devices

• 5 billion IoIT devices

• 1 billion intelligent systems

Page 4: VIPLE: Visual IoT/Robotics Programming Language ...tcpp.cs.gsu.edu/.../EduPar_2016-VIPLE-Presentation.pdf · VIPLE: Visual IoT/Robotics Programming Language Environment for Computer

Internet-based Computing

• Cloud computing

– Desktop-based => Internet-based

– Physical products => “Things” or services

• Cyber Physical Systems (CPS)

– Extended/decentralized version of embedded systems

• Autonomous Decentralized Systems (ADS)

– Loosely coupled/content-oriented systems

– Industrial production lines, railway signaling, robotics

Page 5: VIPLE: Visual IoT/Robotics Programming Language ...tcpp.cs.gsu.edu/.../EduPar_2016-VIPLE-Presentation.pdf · VIPLE: Visual IoT/Robotics Programming Language Environment for Computer

Robot as a Service

• Composed of services, a service directory, and service

clients

• IoIT (and IoT) device

• IoT-enabled hardware:

– Intel Galileo/Edison

• CPS

• ADS

Page 6: VIPLE: Visual IoT/Robotics Programming Language ...tcpp.cs.gsu.edu/.../EduPar_2016-VIPLE-Presentation.pdf · VIPLE: Visual IoT/Robotics Programming Language Environment for Computer

IoT Standards

• Supports many protocols/standards

• Connection to physical world

– Also supports various standards

– ADS uses a content-oriented protocol

• DPWS

• RaaS

IoT

Web Data Representations: HTML, JSON, OWL, RDF, XML, etc.

Service and Web-Based Computing

Cloud Computing and Big Data Processing

Internet Protocols, HTTP, TCP, IP

Device Connection Protocols: ADS, DPWS, RaaS,

Industry Control Systems, Industry Internet, etc.

Tec

hno

logie

s Ap

plicatio

ns

Page 7: VIPLE: Visual IoT/Robotics Programming Language ...tcpp.cs.gsu.edu/.../EduPar_2016-VIPLE-Presentation.pdf · VIPLE: Visual IoT/Robotics Programming Language Environment for Computer

IoT/RaaS Programming

• Visual programming environments for education

– MIT App Inventor

– Alice

• Robotics programming

– MSRDS VPL

• Used at ASU, FSE 100

• Discontinued 2014

• Lacks support for new robots

Page 8: VIPLE: Visual IoT/Robotics Programming Language ...tcpp.cs.gsu.edu/.../EduPar_2016-VIPLE-Presentation.pdf · VIPLE: Visual IoT/Robotics Programming Language Environment for Computer

Definition of VIPLE

• Based on Microsoft VPL

• VIPLE supports similar applications

• Additional VIPLE services:

– General services (e.g. User I/O, Timers)

– Vendor robot services

– Generic robot services

• Educational tool

ASU VIPLE Basic Activities

Microsoft VPL

Basic Activities

Page 9: VIPLE: Visual IoT/Robotics Programming Language ...tcpp.cs.gsu.edu/.../EduPar_2016-VIPLE-Presentation.pdf · VIPLE: Visual IoT/Robotics Programming Language Environment for Computer

Fundamental Programming in VIPLE

Page 10: VIPLE: Visual IoT/Robotics Programming Language ...tcpp.cs.gsu.edu/.../EduPar_2016-VIPLE-Presentation.pdf · VIPLE: Visual IoT/Robotics Programming Language Environment for Computer

VIPLE Multithreading

• Teaching parallel computing

– Handles low-level synchronization, thread safety, data

passing.

– Allows building of multithreaded applications.

– Race conditions may still occur.

• Hardware is fully utilized

– Students can experiment with speedups/optimizations.

Page 11: VIPLE: Visual IoT/Robotics Programming Language ...tcpp.cs.gsu.edu/.../EduPar_2016-VIPLE-Presentation.pdf · VIPLE: Visual IoT/Robotics Programming Language Environment for Computer

Parallel Computing in VIPLE

Page 12: VIPLE: Visual IoT/Robotics Programming Language ...tcpp.cs.gsu.edu/.../EduPar_2016-VIPLE-Presentation.pdf · VIPLE: Visual IoT/Robotics Programming Language Environment for Computer

Event-driven Programming in VIPLE

button pressed

door

closingdoor

opened

door

closed

door

opening

button pressed

limit

trippedlimit

tripped

opening

stopped

button

pressed

closing

stopped

button

pressed

button

pressed

button

pressed

Page 13: VIPLE: Visual IoT/Robotics Programming Language ...tcpp.cs.gsu.edu/.../EduPar_2016-VIPLE-Presentation.pdf · VIPLE: Visual IoT/Robotics Programming Language Environment for Computer

VIPLE’s IoT Interface Definition

• Internet Protocol

– Multiple supported standards

• Data Format

– Standardized JSONASU VIPLE

Visual IoT

Programming

IoT / Robot

An object pair, with

the second element

an array of objects

Page 14: VIPLE: Visual IoT/Robotics Programming Language ...tcpp.cs.gsu.edu/.../EduPar_2016-VIPLE-Presentation.pdf · VIPLE: Visual IoT/Robotics Programming Language Environment for Computer

Connecting VIPLE to Devices

Page 15: VIPLE: Visual IoT/Robotics Programming Language ...tcpp.cs.gsu.edu/.../EduPar_2016-VIPLE-Presentation.pdf · VIPLE: Visual IoT/Robotics Programming Language Environment for Computer

Drive-by-Wire

Page 16: VIPLE: Visual IoT/Robotics Programming Language ...tcpp.cs.gsu.edu/.../EduPar_2016-VIPLE-Presentation.pdf · VIPLE: Visual IoT/Robotics Programming Language Environment for Computer

Maze Navigation with an IoT Device

DistanceMeasured

< 400Turned

Right

Turned

Left

rightFinished

Resume

180 DistanceMeasured

< rightDistance

Turning

Right

Turning

Left

leftFinished

DistanceMeasured

>= rightDistance

Resume180

Finished

Start

RightDistance DistanceMeasured

Forward

Page 17: VIPLE: Visual IoT/Robotics Programming Language ...tcpp.cs.gsu.edu/.../EduPar_2016-VIPLE-Presentation.pdf · VIPLE: Visual IoT/Robotics Programming Language Environment for Computer

Maze Navigation Implementation

Intel Edison-based robot with built-in

Wi-Fi and Bluetooth components. A

distance sensor is installed in front.

Page 18: VIPLE: Visual IoT/Robotics Programming Language ...tcpp.cs.gsu.edu/.../EduPar_2016-VIPLE-Presentation.pdf · VIPLE: Visual IoT/Robotics Programming Language Environment for Computer

Multithreading and Maze Navigation

• Multithreading is a key part of maze navigation.

– Many algorithms require concurrent sensor data readings.

– Some actions do not need to be waited on.

• Many applications are facilitated by multithreading.

– New users have more freedom and power in their

application development.

Page 19: VIPLE: Visual IoT/Robotics Programming Language ...tcpp.cs.gsu.edu/.../EduPar_2016-VIPLE-Presentation.pdf · VIPLE: Visual IoT/Robotics Programming Language Environment for Computer

Conclusion

• New Visual Programming Language: VIPLE

– Extends Microsoft VPL

– Supports Lego EV3

– Supports all IoT devices based on an open architecture

• VIPLE has been pilot tested at ASU and several other

universities globally.