SlideShare a Scribd company logo
1 of 35
Download to read offline
Workshop: Arduino for Makers
DAY #1 – SESSION #4
STRUMENTI SW PER LA PROTOTIPAZIONE ELETTRONICA:
VIPER, THE PYTHON IOT DESIGN
SUITE FOR EMBEDDED SYSTEMS
Workshop: Arduino for Makers
Organizzatore: Gestionali in Opera (GiO) Pisa
Supervisor: Dott. Luigi Francesco Cerfeda
Sommario:
• Day #1: introduzione alla prototipazione elettronica. Strumenti HW, SW e risorse online utili per la
prototipazione elettronica.
• Day #2: programmazione elettronica con la suite VIPER: casi studio ed esercitazione pratica.
21 November 2015 - Day #1 Session #4 Workshop:“Arduino for Makers” - Luigi Francesco Cerfeda 2
Powered by
DAY #1
1. INTRODUZIONE ALLA PROTOTIPAZIONE ELETTRONICA
Nascita ed evoluzione di Arduino e del Movimento Maker
2. STRUMENTI HARDWARE PER LA PROTOTIPAZIONE ELETTRONICA
Presentazione delle principali board di prototipazione (Arduino, Raspberry Pi,
UDOO), sensoristica, attuatori e “shield”.
3. CENNI DI PROGETTAZIONE ELETTRONICA ED UTILIZZO DI SOFTWARE ECAD
Realizzazione e simulazione di un semplice circuito tramite LTSpice. Utilizzo
di Fritzing e KiCAD.
4. STRUMENTI SOFTWARE PER LA PROTOTIPAZIONE ELETTRONICA
Presentazione di VIPER, download, installazione dell’IDE e “viperizzazione” di
una board.
21 November 2015 - Day #1 Session #4 Workshop:“Arduino for Makers” - Luigi Francesco Cerfeda 4
The Python IoT Development Suite
viper.thingsoninternet.biz
viper@thingsoninternet.biz
THINGS ON INTERNET
OPPORTUNITY
“6 billions 32bit microcontrollers sold in 2013, expected 14 billions in 2020”**
*EMC Digital Universe with Research & Analysis by IDC
**grandviewresearch.com
“Data from Embedded Systems Will Account for 10% of the Digital Universe by 2020”*
INTERNET OF THINGS: WHAT’S UP BEHIND THESE “THINGS”?
“I need a flexible and low-cost solution for developing and implementing
customized monitoring and control systems to my business customers”
Mike, IoT System Integrator
“We need to decrease time and resources for the development on new boards,
improving Real-time capability and keeping high hardware and software reliability”
Jeff, Embedded Producer
“I would like to bring interactivity in my products but developing and managing C
code”
Roberto, Interaction Designer
A SOFTWARE CHALLENGE
Product Designers and
Manufacturers
System integrators of IoT
Solutions
Embedded Producers
Usage Analytics
Speed up the adoption
NEEDS
A SOFTWARE CHALLENGE
Time to Market reduction
Focus on high-value tasks
SOLUTION: VIPER
SOLUTION: VIPER
https://www.youtube.com/watch?v=Pbs41E2YaaU
SOLUTION: VIPER
SOLUTION: VIPER
All ARM Powered BOARDSAll Sensors and Kits
VIPER: Advantages
How VIPER works
Program in Python, compile the code
and connect to the cloud
Select and Plug one of the available
prototyping MCU, sensors and
actuators
Develop the HTML5 template for the
VIPER APP to control and monitor
the solution.
1
2
3
SINGLE DEVELOPERS
/ STARTUPS
DEVELOPMENT AND PROTOTYPING PHASE
IF NEEDED, C CODE CAN BE MIXED WITH PYTHON
NO ANDROID OR iOS DEVELOPMENT NEEDED
How VIPER works
4
5
6
Flash the Industrial PCB with
monolithic firmware (VM+bitecode)
based on the code developed at step 2
Porting of VIPER on the industrial PCB
(Chip and/or Peripherals)
Customize the VIPER APP for your
solution or develop your own APP
using the VIPER Android or iOS SDKs
OEM / EMBEDDED
MANUFACTURERS
OEM INDUSTRIALIZATION PHASE
NO BOOTLOADER => LITTLE FLASH MEMORY NEEDED
SINGLE DEVELOPERS
/ STARTUPS
VIPER Vision
1996
2006
2016
“VIPER will become for the embedded software what
Android has been for the mobile phones world”
VIPER: Unique Technical Differentiations
Viper VM:Viper VM:Viper VM:Viper VM:
• The first virtual machine specifically tailored for embedded and IoT
• Unique multi-board design with modular pin/ports naming and automatic detection of pin associated hardware
features
• Unique multi-board code compatibility checker
• The first hybrid C/Python programming suite for embedded
• The first Python programming suite that runs on top of an RTOS
ViperViperViperViper UplinkerUplinkerUplinkerUplinker (Patented) ::::
• The first hybrid C/Python-bytecode linker with integrated multi-board uploader
Viper App:Viper App:Viper App:Viper App:
• The first generic mobile app for embedded devices that renders HTML 5 (Jquery Mobile) templates located on the
MCUs
• WiFi, Bluetooth and any other communication channel compatible
• Portable also on desktop environment (integration in the Viper IDE) for easy and quick UI debug
Viper IDE:Viper IDE:Viper IDE:Viper IDE:
• The first cross-platform and multi-board IDE specifically tailored for embedded than runs on offline browsers
• Integrated multi board manager and uploader with easy to use and unified board flashing (viperization) and
compiled script upload interface
• The first exception based in-line debugger for embedded (integrated in the IDE serial console)
• Integrated bytecode inspector for low-level debug and code optimization
• Offline documentation for professional “on the field” develop and deploy
The VIPER IDE: A Modern User Experience
Support for multiple
opened projects
Optimized coding
environment with syntax
highlight, auto-completion
and multi tab support
Integrated coding tools
User log-in for projects cloud
synching
Board management toolbar
Code verify, upload, clean and
debug integrated in the IDE
Integrated project local
repository with remote git
sync and smart search
Ready-to-use examples for
easy starting-up Integrated serial console with
multi board support
Integrated output console
with compiler log and IDE
feedback and notifications
Confidential - Copyright 2015 – Kinzica Ventures, LLC
DBA VIPER Embedded Technologies. New York City, USA
The VIPER IDE
MAIN FEATURES
• Code Editor:
• syntax highlighting, multi-tab support, code auto-completion and error
highlighting feature;
• off-Line documentation;
• board feature and pin mapping info window;
• Tutorial;
• Examples library with integrated search and tagging feature;
• Themes support;
• Board Tools:
• integrated multi board C/Python hybrid compiler;
• board discovery and management toolbar;
• integrated debugging console and serial port monitor with search and auto
connect features;
• Project Manager:
• project database with tagging and search features;
• local git storage with cloud syncing feature;
• Direct project publishing/forking on GitHub;
• Mobile App Support:
• HTML 5 editor for Viper App templates design;
• Auto-update engine;
The VIPER Virtual Machine
The core of Viper is the Viper Virtual Machine.
• Viper VM has been developed with the aim to bring Python on the embedded world with support for multi-thread and cross
board compatibility.
• With Viper VM it is possible to develop Python scripts that are board independent allowing a high reusability of the code and
also device simulation on PC.
• Viper supports all the most used high-level features of Python like modules, classes, multithreading, callbacks, timers and
exceptions, plus some custom hardware-related features like interrupts, PWM, digital I/O, etc.
• Viper VM runs on top of CHIBIOS RT/OS. However, thanks to the Viper Hardware Abstraction Layer, porting to other RT/OS
is possible
The VIPER Smart Compiler and Uplinker (patent pending)
VIPER COMPILER
The Viper IDE integrates a compiler, written in Python, that reads the source code and produces an optimized
bytecode for the Viper Virtual Machine.
• Everything that can be statically computed at compile time and then saved on the flash to minimize RAM usage
(i.e. code objects are entirely stored on flash, no RAM is used).
• the Viper compiler analyses the code in terms of ”static reachability”. This means for example that if from an
imported modules only a couple of functions are used, the compiler extracts them and generates only the
bytecode necessary to implement those functions thus neglecting and not including the rest of unused code.
VIPER UPLINKER (Patent pending)
A very smart dynamic linker that prepares the package to be uploaded on the Viper VM.
• The linker includes both Python compiled bytecode and C compiled binaries in a single package.
• It is completely integrated in the Viper IDE allowing users to execute the entire process in one click.
VIPER IS AGNOSTIC
VIPER is language agnostic
Javascript, LUA etc.. will be considered as other high level programming languages to be interfaced
with VIPER.
VIPER is OS agnostic
More RT/OS will be ported in future.
VIPER is hardware agnostic
In order to fully exploit its potential, VIPER does not and will not require a specific board. The porting
of boards, sensors, shields is an ongoing activity.
A real case study
Smart Interactive Display installed in Top-Level Jewelries in Paris
Powered by VIPER
• 11 synchronized rotating platforms for jewels display
• Remotely controllable with a mobile app
• Working 24/7
• Installed in July 2015
DEVELOPMENT PROCESS
An independent designer (The startup UANLAB)
has been able to:
1. Develop the electronic prototype based on STM32
Nucleo;
2. Code the product behaviour with the VIPER suite;
3. Develop the functioning prototype in 1 month
4. Release the final product with industrial electronics in
2 months. Installation in customer’s site (Paris)
5. Plan the beginning of series production in 2016
Confidential - Copyright 2015 – Kinzica Ventures, LLC
DBA VIPER Embedded Technologies. New York City, USA
12 synchronized Rotating platforms
for luxury goods exposition
Mobile controlled rover VIPER Smart lamp
featured in Hackaday.io
Designers’ Thoughts
VIPERVIPERVIPERVIPER----POWERED PRODUCTSPOWERED PRODUCTSPOWERED PRODUCTSPOWERED PRODUCTS
THE VIPER LAMP
main.py template.html
THE VIPER LAMP
https://www.youtube.com/watch?v=KMjvH_d8PeQ
THE IOT NOTES PRINTER
main.py template.html
THE IOT NOTES PRINTER
https://www.youtube.com/watch?v=shGbB8a0UgI
VIPER IN NUMBERS
• 400 early-adopters (mainly from Kickstarter campaign) from 25 countries
• 3 large global chip manufacturers supported VIPER
• 3000 Downloads (9th July)
• 2500 Users
• 1 VIPER-powered product commercialized
• 100+ news articles released
ROADMAP
Mar’15 Jul ‘15 Nov‘15 Mar ‘16Jun ‘15
100 Pro
10000 Users400 Early Adopters 3000 Users 4000 Users
VIPER Pro (Commercial development Licence) 1000$
VIPER Pro (OEM Distribution Licence) Negotiable
VIPER Additional Modules 150-500$
21 November 2015 - Day #1 Session #4 Workshop:“Arduino for Makers” - Luigi Francesco Cerfeda 31
TEAM
Gabriele Montelisciani, PhD. Business operations, sales and marketing
PhD in economics and management engineering. He is an expert on methods and tools for early stage innovation, business
modeling, management of organizations and processes. Project Manager of EU projects and freelance consultant.
Location: Pisa, Italy
Daniele Mazzei, PhD. Electronics and System Engineer
biomedical engineer with PhD in robotics. Director of the FACE Team, a research team working on social robotic and affective IoT.
Expertise in system integration for robotics and IoT.
Location: Pisa, Italy
Giacomo Baldi MS in CS. Software Architect and Developer
software architect expert in embedded programming and real-time operating system development and customization. Co-founder
and developer of MeditaEngineering, the Italian market leader on medical app..
Location: Pisa, Italy
Gualtiero Fantoni, PhD. Product Designer and Strategist
Professor in mechanical engineering doing research on advanced robotic and mechanical design. Gualtiero’s research focus on
empowering product design processes with creativity heuristics, functional analysis and co-creation tools.
Location: Pisa, Italy
TEAM
VIPER: getting started
Usare VIPER è molto semplice:
1. si scarica l’installer per Windows, Linux o iOS dalla pagina di download di
VIPER (www.viperize.it/download);
2. si installa e lancia l’applicazione tramite l’icona apparsa sul desktop;
3. si crea un utente VIPER attraverso il pulsante dedicato in alto a destra.
Controlla la tua mail e verifica il tuo nuovo account cliccando sull’apposito
link (registrarsi permette di partecipare alla VIPER community, salvare i propri
progetti on-line nel VIPER Cloud e ricevere automaticamente gli
aggiornamenti);
4. si connette la board ed eventualmente la si rinomina a piacimento in modo
da poterla riconoscere facilmente in futuro;
5. per rendere la board utilizzabile bisogna “viperizzarla”, cioè installare su di
essa la VIPER VM (Virtual Machine), attraverso l’apposito pulsante nella
topbar del VIPER IDE;
6. si crea un nuovo progetto o si clona un esempio, si compila lo script e lo si
carica nella board.
www.viperize.it
Community: https://community.viperize.it
Documentation: http://doc.viperize.it
Sources: https://github.com/viper-dev/Viper
info@viperize.it

More Related Content

What's hot

Arduino as an embedded industrial controller
Arduino as an embedded industrial controllerArduino as an embedded industrial controller
Arduino as an embedded industrial controller
Jose Luis Poza Luján
 

What's hot (16)

Contruindo Robots com Java Embedded Suite, Raspberry PI, Arduino e Things API
Contruindo Robots com Java Embedded Suite, Raspberry PI, Arduino e Things APIContruindo Robots com Java Embedded Suite, Raspberry PI, Arduino e Things API
Contruindo Robots com Java Embedded Suite, Raspberry PI, Arduino e Things API
 
ARDUIO BASIC TUTORIAL
ARDUIO BASIC TUTORIALARDUIO BASIC TUTORIAL
ARDUIO BASIC TUTORIAL
 
Arduino as an embedded industrial controller
Arduino as an embedded industrial controllerArduino as an embedded industrial controller
Arduino as an embedded industrial controller
 
Advanced view of projects raspberry pi list raspberry pi projects
Advanced view of projects raspberry pi list   raspberry pi projectsAdvanced view of projects raspberry pi list   raspberry pi projects
Advanced view of projects raspberry pi list raspberry pi projects
 
Internet of things - انترنت الأشياء
Internet of things - انترنت الأشياءInternet of things - انترنت الأشياء
Internet of things - انترنت الأشياء
 
Arduino tutorial A to Z
Arduino tutorial A to ZArduino tutorial A to Z
Arduino tutorial A to Z
 
Introduction of Arduino Uno
Introduction of Arduino UnoIntroduction of Arduino Uno
Introduction of Arduino Uno
 
Taller IoT en la Actualidad
Taller IoT en la ActualidadTaller IoT en la Actualidad
Taller IoT en la Actualidad
 
Introduction To Arduino
Introduction To ArduinoIntroduction To Arduino
Introduction To Arduino
 
Advanced view arduino projects list use arduino for projects (4)
Advanced view arduino projects list   use arduino for projects (4)Advanced view arduino projects list   use arduino for projects (4)
Advanced view arduino projects list use arduino for projects (4)
 
Tinker cad intro
Tinker cad introTinker cad intro
Tinker cad intro
 
Arduino - Block Programming using XOD IDE (No Code)
Arduino - Block Programming using XOD IDE (No Code)Arduino - Block Programming using XOD IDE (No Code)
Arduino - Block Programming using XOD IDE (No Code)
 
Arduino Programming Software Development
Arduino Programming Software DevelopmentArduino Programming Software Development
Arduino Programming Software Development
 
Overview of the Intel® Internet of Things Developer Kit
Overview of the Intel® Internet of Things Developer KitOverview of the Intel® Internet of Things Developer Kit
Overview of the Intel® Internet of Things Developer Kit
 
A Robotic Agent Platform for Embedding Software Agents Using Raspberry Pi and...
A Robotic Agent Platform for Embedding Software Agents Using Raspberry Pi and...A Robotic Agent Platform for Embedding Software Agents Using Raspberry Pi and...
A Robotic Agent Platform for Embedding Software Agents Using Raspberry Pi and...
 
Winter traning arduino report final
Winter traning arduino report finalWinter traning arduino report final
Winter traning arduino report final
 

Similar to Workshop: Arduino for makers - Strumenti SW per la prototipazione elettronica: VIPER, The Python IoT Suite for Embedded Systems

Srikanth_PILLI_CV_latest
Srikanth_PILLI_CV_latestSrikanth_PILLI_CV_latest
Srikanth_PILLI_CV_latest
Srikanth Pilli
 
Building End-user Applications on Embedded Devices with WPE
Building End-user Applications on Embedded Devices with WPEBuilding End-user Applications on Embedded Devices with WPE
Building End-user Applications on Embedded Devices with WPE
Igalia
 
Video + Konferecja Polska 2014. Sześć najważniejszych koncepcji związanych z ...
Video + Konferecja Polska 2014. Sześć najważniejszych koncepcji związanych z ...Video + Konferecja Polska 2014. Sześć najważniejszych koncepcji związanych z ...
Video + Konferecja Polska 2014. Sześć najważniejszych koncepcji związanych z ...
TrueConf
 

Similar to Workshop: Arduino for makers - Strumenti SW per la prototipazione elettronica: VIPER, The Python IoT Suite for Embedded Systems (20)

Srikanth_PILLI_CV_latest
Srikanth_PILLI_CV_latestSrikanth_PILLI_CV_latest
Srikanth_PILLI_CV_latest
 
Quick prototyping using Gadgeteer, Raspberry Pi + Fez Cream
Quick prototyping using Gadgeteer, Raspberry Pi + Fez CreamQuick prototyping using Gadgeteer, Raspberry Pi + Fez Cream
Quick prototyping using Gadgeteer, Raspberry Pi + Fez Cream
 
Kivy report
Kivy reportKivy report
Kivy report
 
Peripheral Programming using Arduino and Python on MediaTek LinkIt Smart 7688...
Peripheral Programming using Arduino and Python on MediaTek LinkIt Smart 7688...Peripheral Programming using Arduino and Python on MediaTek LinkIt Smart 7688...
Peripheral Programming using Arduino and Python on MediaTek LinkIt Smart 7688...
 
iRidium pro for HDL
iRidium pro for HDLiRidium pro for HDL
iRidium pro for HDL
 
MicroEJ, the OS for IoT
MicroEJ, the OS for IoTMicroEJ, the OS for IoT
MicroEJ, the OS for IoT
 
MicroEJ OS for IoT devices
MicroEJ OS for IoT devicesMicroEJ OS for IoT devices
MicroEJ OS for IoT devices
 
PalinaBheemaRao_CV
PalinaBheemaRao_CVPalinaBheemaRao_CV
PalinaBheemaRao_CV
 
Building End-user Applications on Embedded Devices with WPE
Building End-user Applications on Embedded Devices with WPEBuilding End-user Applications on Embedded Devices with WPE
Building End-user Applications on Embedded Devices with WPE
 
Kahuna Systems : Product Engineering Services
Kahuna Systems : Product Engineering ServicesKahuna Systems : Product Engineering Services
Kahuna Systems : Product Engineering Services
 
Develer - Company Profile
Develer - Company ProfileDeveler - Company Profile
Develer - Company Profile
 
Summit 16: NetIDE: Integrating and Orchestrating SDN Controllers
Summit 16: NetIDE: Integrating and Orchestrating SDN ControllersSummit 16: NetIDE: Integrating and Orchestrating SDN Controllers
Summit 16: NetIDE: Integrating and Orchestrating SDN Controllers
 
Develer - Company Profile
Develer - Company ProfileDeveler - Company Profile
Develer - Company Profile
 
Microsoft IT Academy Summit 2011
Microsoft IT Academy Summit 2011Microsoft IT Academy Summit 2011
Microsoft IT Academy Summit 2011
 
Resin.io overview (2016 July)
Resin.io overview (2016 July)Resin.io overview (2016 July)
Resin.io overview (2016 July)
 
Zephyr Introduction - Nordic Webinar - Sept. 24.pdf
Zephyr Introduction - Nordic Webinar - Sept. 24.pdfZephyr Introduction - Nordic Webinar - Sept. 24.pdf
Zephyr Introduction - Nordic Webinar - Sept. 24.pdf
 
Matteo Valoriani, Antimo Musone - The Future of Factory - Codemotion Rome 2019
Matteo Valoriani, Antimo Musone - The Future of Factory - Codemotion Rome 2019Matteo Valoriani, Antimo Musone - The Future of Factory - Codemotion Rome 2019
Matteo Valoriani, Antimo Musone - The Future of Factory - Codemotion Rome 2019
 
AGILE software, devices and wider ecosystem
AGILE software, devices and wider ecosystemAGILE software, devices and wider ecosystem
AGILE software, devices and wider ecosystem
 
Meego의 현재와 미래(2)
Meego의 현재와 미래(2)Meego의 현재와 미래(2)
Meego의 현재와 미래(2)
 
Video + Konferecja Polska 2014. Sześć najważniejszych koncepcji związanych z ...
Video + Konferecja Polska 2014. Sześć najważniejszych koncepcji związanych z ...Video + Konferecja Polska 2014. Sześć najważniejszych koncepcji związanych z ...
Video + Konferecja Polska 2014. Sześć najważniejszych koncepcji związanych z ...
 

Recently uploaded

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Recently uploaded (20)

Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 

Workshop: Arduino for makers - Strumenti SW per la prototipazione elettronica: VIPER, The Python IoT Suite for Embedded Systems

  • 1. Workshop: Arduino for Makers DAY #1 – SESSION #4 STRUMENTI SW PER LA PROTOTIPAZIONE ELETTRONICA: VIPER, THE PYTHON IOT DESIGN SUITE FOR EMBEDDED SYSTEMS
  • 2. Workshop: Arduino for Makers Organizzatore: Gestionali in Opera (GiO) Pisa Supervisor: Dott. Luigi Francesco Cerfeda Sommario: • Day #1: introduzione alla prototipazione elettronica. Strumenti HW, SW e risorse online utili per la prototipazione elettronica. • Day #2: programmazione elettronica con la suite VIPER: casi studio ed esercitazione pratica. 21 November 2015 - Day #1 Session #4 Workshop:“Arduino for Makers” - Luigi Francesco Cerfeda 2 Powered by
  • 3.
  • 4. DAY #1 1. INTRODUZIONE ALLA PROTOTIPAZIONE ELETTRONICA Nascita ed evoluzione di Arduino e del Movimento Maker 2. STRUMENTI HARDWARE PER LA PROTOTIPAZIONE ELETTRONICA Presentazione delle principali board di prototipazione (Arduino, Raspberry Pi, UDOO), sensoristica, attuatori e “shield”. 3. CENNI DI PROGETTAZIONE ELETTRONICA ED UTILIZZO DI SOFTWARE ECAD Realizzazione e simulazione di un semplice circuito tramite LTSpice. Utilizzo di Fritzing e KiCAD. 4. STRUMENTI SOFTWARE PER LA PROTOTIPAZIONE ELETTRONICA Presentazione di VIPER, download, installazione dell’IDE e “viperizzazione” di una board. 21 November 2015 - Day #1 Session #4 Workshop:“Arduino for Makers” - Luigi Francesco Cerfeda 4
  • 5. The Python IoT Development Suite viper.thingsoninternet.biz viper@thingsoninternet.biz
  • 7. OPPORTUNITY “6 billions 32bit microcontrollers sold in 2013, expected 14 billions in 2020”** *EMC Digital Universe with Research & Analysis by IDC **grandviewresearch.com “Data from Embedded Systems Will Account for 10% of the Digital Universe by 2020”* INTERNET OF THINGS: WHAT’S UP BEHIND THESE “THINGS”?
  • 8. “I need a flexible and low-cost solution for developing and implementing customized monitoring and control systems to my business customers” Mike, IoT System Integrator “We need to decrease time and resources for the development on new boards, improving Real-time capability and keeping high hardware and software reliability” Jeff, Embedded Producer “I would like to bring interactivity in my products but developing and managing C code” Roberto, Interaction Designer A SOFTWARE CHALLENGE
  • 9. Product Designers and Manufacturers System integrators of IoT Solutions Embedded Producers Usage Analytics Speed up the adoption NEEDS A SOFTWARE CHALLENGE Time to Market reduction Focus on high-value tasks
  • 13. SOLUTION: VIPER All ARM Powered BOARDSAll Sensors and Kits
  • 15. How VIPER works Program in Python, compile the code and connect to the cloud Select and Plug one of the available prototyping MCU, sensors and actuators Develop the HTML5 template for the VIPER APP to control and monitor the solution. 1 2 3 SINGLE DEVELOPERS / STARTUPS DEVELOPMENT AND PROTOTYPING PHASE IF NEEDED, C CODE CAN BE MIXED WITH PYTHON NO ANDROID OR iOS DEVELOPMENT NEEDED
  • 16. How VIPER works 4 5 6 Flash the Industrial PCB with monolithic firmware (VM+bitecode) based on the code developed at step 2 Porting of VIPER on the industrial PCB (Chip and/or Peripherals) Customize the VIPER APP for your solution or develop your own APP using the VIPER Android or iOS SDKs OEM / EMBEDDED MANUFACTURERS OEM INDUSTRIALIZATION PHASE NO BOOTLOADER => LITTLE FLASH MEMORY NEEDED SINGLE DEVELOPERS / STARTUPS
  • 17. VIPER Vision 1996 2006 2016 “VIPER will become for the embedded software what Android has been for the mobile phones world”
  • 18. VIPER: Unique Technical Differentiations Viper VM:Viper VM:Viper VM:Viper VM: • The first virtual machine specifically tailored for embedded and IoT • Unique multi-board design with modular pin/ports naming and automatic detection of pin associated hardware features • Unique multi-board code compatibility checker • The first hybrid C/Python programming suite for embedded • The first Python programming suite that runs on top of an RTOS ViperViperViperViper UplinkerUplinkerUplinkerUplinker (Patented) :::: • The first hybrid C/Python-bytecode linker with integrated multi-board uploader Viper App:Viper App:Viper App:Viper App: • The first generic mobile app for embedded devices that renders HTML 5 (Jquery Mobile) templates located on the MCUs • WiFi, Bluetooth and any other communication channel compatible • Portable also on desktop environment (integration in the Viper IDE) for easy and quick UI debug Viper IDE:Viper IDE:Viper IDE:Viper IDE: • The first cross-platform and multi-board IDE specifically tailored for embedded than runs on offline browsers • Integrated multi board manager and uploader with easy to use and unified board flashing (viperization) and compiled script upload interface • The first exception based in-line debugger for embedded (integrated in the IDE serial console) • Integrated bytecode inspector for low-level debug and code optimization • Offline documentation for professional “on the field” develop and deploy
  • 19. The VIPER IDE: A Modern User Experience Support for multiple opened projects Optimized coding environment with syntax highlight, auto-completion and multi tab support Integrated coding tools User log-in for projects cloud synching Board management toolbar Code verify, upload, clean and debug integrated in the IDE Integrated project local repository with remote git sync and smart search Ready-to-use examples for easy starting-up Integrated serial console with multi board support Integrated output console with compiler log and IDE feedback and notifications Confidential - Copyright 2015 – Kinzica Ventures, LLC DBA VIPER Embedded Technologies. New York City, USA
  • 20. The VIPER IDE MAIN FEATURES • Code Editor: • syntax highlighting, multi-tab support, code auto-completion and error highlighting feature; • off-Line documentation; • board feature and pin mapping info window; • Tutorial; • Examples library with integrated search and tagging feature; • Themes support; • Board Tools: • integrated multi board C/Python hybrid compiler; • board discovery and management toolbar; • integrated debugging console and serial port monitor with search and auto connect features; • Project Manager: • project database with tagging and search features; • local git storage with cloud syncing feature; • Direct project publishing/forking on GitHub; • Mobile App Support: • HTML 5 editor for Viper App templates design; • Auto-update engine;
  • 21. The VIPER Virtual Machine The core of Viper is the Viper Virtual Machine. • Viper VM has been developed with the aim to bring Python on the embedded world with support for multi-thread and cross board compatibility. • With Viper VM it is possible to develop Python scripts that are board independent allowing a high reusability of the code and also device simulation on PC. • Viper supports all the most used high-level features of Python like modules, classes, multithreading, callbacks, timers and exceptions, plus some custom hardware-related features like interrupts, PWM, digital I/O, etc. • Viper VM runs on top of CHIBIOS RT/OS. However, thanks to the Viper Hardware Abstraction Layer, porting to other RT/OS is possible
  • 22. The VIPER Smart Compiler and Uplinker (patent pending) VIPER COMPILER The Viper IDE integrates a compiler, written in Python, that reads the source code and produces an optimized bytecode for the Viper Virtual Machine. • Everything that can be statically computed at compile time and then saved on the flash to minimize RAM usage (i.e. code objects are entirely stored on flash, no RAM is used). • the Viper compiler analyses the code in terms of ”static reachability”. This means for example that if from an imported modules only a couple of functions are used, the compiler extracts them and generates only the bytecode necessary to implement those functions thus neglecting and not including the rest of unused code. VIPER UPLINKER (Patent pending) A very smart dynamic linker that prepares the package to be uploaded on the Viper VM. • The linker includes both Python compiled bytecode and C compiled binaries in a single package. • It is completely integrated in the Viper IDE allowing users to execute the entire process in one click.
  • 23. VIPER IS AGNOSTIC VIPER is language agnostic Javascript, LUA etc.. will be considered as other high level programming languages to be interfaced with VIPER. VIPER is OS agnostic More RT/OS will be ported in future. VIPER is hardware agnostic In order to fully exploit its potential, VIPER does not and will not require a specific board. The porting of boards, sensors, shields is an ongoing activity.
  • 24. A real case study Smart Interactive Display installed in Top-Level Jewelries in Paris Powered by VIPER • 11 synchronized rotating platforms for jewels display • Remotely controllable with a mobile app • Working 24/7 • Installed in July 2015 DEVELOPMENT PROCESS An independent designer (The startup UANLAB) has been able to: 1. Develop the electronic prototype based on STM32 Nucleo; 2. Code the product behaviour with the VIPER suite; 3. Develop the functioning prototype in 1 month 4. Release the final product with industrial electronics in 2 months. Installation in customer’s site (Paris) 5. Plan the beginning of series production in 2016 Confidential - Copyright 2015 – Kinzica Ventures, LLC DBA VIPER Embedded Technologies. New York City, USA
  • 25. 12 synchronized Rotating platforms for luxury goods exposition Mobile controlled rover VIPER Smart lamp featured in Hackaday.io Designers’ Thoughts VIPERVIPERVIPERVIPER----POWERED PRODUCTSPOWERED PRODUCTSPOWERED PRODUCTSPOWERED PRODUCTS
  • 26. THE VIPER LAMP main.py template.html
  • 28. THE IOT NOTES PRINTER main.py template.html
  • 29. THE IOT NOTES PRINTER https://www.youtube.com/watch?v=shGbB8a0UgI
  • 30. VIPER IN NUMBERS • 400 early-adopters (mainly from Kickstarter campaign) from 25 countries • 3 large global chip manufacturers supported VIPER • 3000 Downloads (9th July) • 2500 Users • 1 VIPER-powered product commercialized • 100+ news articles released
  • 31. ROADMAP Mar’15 Jul ‘15 Nov‘15 Mar ‘16Jun ‘15 100 Pro 10000 Users400 Early Adopters 3000 Users 4000 Users VIPER Pro (Commercial development Licence) 1000$ VIPER Pro (OEM Distribution Licence) Negotiable VIPER Additional Modules 150-500$ 21 November 2015 - Day #1 Session #4 Workshop:“Arduino for Makers” - Luigi Francesco Cerfeda 31
  • 32. TEAM Gabriele Montelisciani, PhD. Business operations, sales and marketing PhD in economics and management engineering. He is an expert on methods and tools for early stage innovation, business modeling, management of organizations and processes. Project Manager of EU projects and freelance consultant. Location: Pisa, Italy Daniele Mazzei, PhD. Electronics and System Engineer biomedical engineer with PhD in robotics. Director of the FACE Team, a research team working on social robotic and affective IoT. Expertise in system integration for robotics and IoT. Location: Pisa, Italy Giacomo Baldi MS in CS. Software Architect and Developer software architect expert in embedded programming and real-time operating system development and customization. Co-founder and developer of MeditaEngineering, the Italian market leader on medical app.. Location: Pisa, Italy Gualtiero Fantoni, PhD. Product Designer and Strategist Professor in mechanical engineering doing research on advanced robotic and mechanical design. Gualtiero’s research focus on empowering product design processes with creativity heuristics, functional analysis and co-creation tools. Location: Pisa, Italy
  • 33. TEAM
  • 34. VIPER: getting started Usare VIPER è molto semplice: 1. si scarica l’installer per Windows, Linux o iOS dalla pagina di download di VIPER (www.viperize.it/download); 2. si installa e lancia l’applicazione tramite l’icona apparsa sul desktop; 3. si crea un utente VIPER attraverso il pulsante dedicato in alto a destra. Controlla la tua mail e verifica il tuo nuovo account cliccando sull’apposito link (registrarsi permette di partecipare alla VIPER community, salvare i propri progetti on-line nel VIPER Cloud e ricevere automaticamente gli aggiornamenti); 4. si connette la board ed eventualmente la si rinomina a piacimento in modo da poterla riconoscere facilmente in futuro; 5. per rendere la board utilizzabile bisogna “viperizzarla”, cioè installare su di essa la VIPER VM (Virtual Machine), attraverso l’apposito pulsante nella topbar del VIPER IDE; 6. si crea un nuovo progetto o si clona un esempio, si compila lo script e lo si carica nella board.