Paso 1: Por qué utilizar VIPER
En este muy popular instructable puede ver como a parpadear LEDs múltiples usando delay() en la función loop() . Esta lógica está bien si quieres parpadear a todas a la vez o si lo desean a parpadear uno tras otro o para hacer otros efectos simples.
Pero ¿qué pasa si quieres a parpadear los LEDs a diferentes velocidades? Esta pregunta sale prácticamente todos los días en el foro de Arduino y es donde realmente no ayuda la función delay(). De hecho, en Arduino usando delay() tiene un efecto secundario - Arduino no hace nada durante ese tiempo. Para obtener dos o más "acciones" para funcionar independiente uno del otro, se puede utilizar delay().
Para resolver este problema, hay muchas soluciones, más o menos difíciles:
- utilizando millis() [enlace]
- utilizando una tabla de enfoque [link] impulsado por
- usando una lógica de máquina de estado finito [enlace]
Sin embargo, los diseñadores y los usuarios no programadores se sienten frustrados por las dificultades en la aplicación de tales funcionalidades en microcontroladores. Sólo quieren su prototipo y producto a trabajar.
Para dar solución a estos dolores, VIPER apoya características de alto nivel todas las más utilizadas de Python como módulos, clases, multithreading, callbacks, temporizadores y excepciones, y algunas características relacionadas con el hardware personalizados como interrupciones, PWM, E/S digitales, etc..
VIPER es una suite de desarrollo fácil de utilizar para el diseño de alto nivel de objetos interactivos preparados para la nube y la IoT. VIPER se compone de un IDE multiplataforma, una aplicación móvil y una máquina Virtual que se ejecuta en varias plataformas. Con VIPER creativos, diseñadores y profesionales pueden convertirse en Python para Arduino DUE, Nucleo ST y la mayoría de productos de partícula (anteriormente chispa) y las placas similares con paradigmas y características típicas de PC y programación móvil.