Stap 1: Waarom het gebruik van de VIPER
In dit zeer populaire instructable u kunt zien hoe meerdere LEDs met behulp van delay() in de loop functie knipperen. Deze logica is OK als u ze allemaal tegelijk, of wilt als u wilt te knipperen na elkaar of doen andere eenvoudige effecten te knipperen.
Maar wat als u wilt de LEDs op verschillende snelheden knipperen? Deze vraag komt bijna dagelijks op het Arduino forum en dit is waar de functie delay() niet echt helpen. In feite, in Arduino met behulp van de delay() heeft een neveneffect - de Arduino doet niets voor die tijd. Als u twee of meer "acties" uitgevoerd onafhankelijk van elkaar, kunt u niet delay().
U kunt dit probleem oplossen, zijn er vele oplossingen, min of meer moeilijk:
- met behulp van millis() [link]
- met behulp van een tabel gedreven aanpak [link]
- met behulp van een Finite State Machine logica [link]
Echter, ontwerpers en niet-programmeurs gebruikers zijn gefrustreerd door de moeilijkheden bij de tenuitvoerlegging van dergelijke functionaliteiten in microcontrollers. Ze willen gewoon hun prototype en product te werken.
Om op te lossen deze pijnen, VIPER ondersteunt de meest gebruikte high-level functies voor Python, zoals modules, klassen, multithreading, callbacks, timers en uitzonderingen, plus enkele aangepaste hardware-gerelateerde functies zoals interrupts, PWM, digitale i/o, enz.
VIPER is een makkelijk te gebruiken ontwikkelsuite voor het hoog niveau ontwerp van interactieve objecten klaar voor de cloud en de IoT. VIPER is samengesteld uit een platformonafhankelijke IDE, een mobiele APP & een virtuele Machine die op verschillende platformen draait. Met VIPER kunnen creatieven, ontwerpers en professionals ontwikkelen in Python voor Arduino DUE, ST Nucleo en de meeste van de Particle (voorheen Spark) producten, en soortgelijke planken met behulp van paradigma's en functies die typerend voor PC en mobiele programmering.