Stap 3: De ingesloten werk
Eerste regeling van de werkzaamheden in de knop tot leven brengen is krijgen van het GMB aan interface goed met de knop en de LEDs, dan krijgt het om te praten met het Internet.
Hebt u enige ervaring met Arduino of andere microcontrollers, zou deze stap normaal:
- afvuren van uw voorkeur IDE (geïntegreerde ontwikkelomgeving of software die u code schrijven in een biedt extra functies, zoals het controleren van uw syntaxis, kleuren van uw code te lezen gemakkelijker, en anderen)
- het schrijven van een programma dat pinnen op uw microcontroller ingesteld als voor de knop in- en uitgangen voor de LED's, dan logica de controller gebruikt om te nemen van sequenties van evenement (knop duwt) om te rijden de actuatoren (lichte kleuren en sequenties, verzenden van berichten naar het internet)
- laden van dat programma op uw microcontroller met een soort communicatie kabel (vaak USB)
De elektrische Imp gebruikt echter een online IDE. Dit betekent dat u uw programma te schrijven in een webbrowser op de site van het GMB, dan druk op een knop die automagisch duwt het programma naar het GMB via Wifi. Heeft het voordeel dat niet hoeft te installeren van een IDE op alle computers die u wenst te programmeren van, alsmede het veilig houden van uw code in van het GMB wolk.
Elektrische Imp de ontwikkelaar wiki heeft veel voorbeelden over het programma in eekhoorn te krijgen van het Imp te doen wat je wilt.
Als u bekend met Arduino bent, eekhoorn van syntax is relatief vergelijkbaar (vergelijkbaar met C en Java), maar is meer dynamisch als Python. De grote verschillen die u nodig hebt om uw hoofd wikkelen rond:
- Er is niet een functie van de lus in de eekhoorn. In plaats daarvan wordt de code uitgevoerd van begin tot eind, functies worden uitgevoerd, zoals het loopt in hen. Terugkerende functionele code uitvoeren (zoals een lus functie) kan als volgt worden gemaakt. Als u beschikt over een functie testFunction, gebruikt u imp.wakeup (X, testFunction) aan het einde van de definitie van testFunction. Imp.wakeup vertelt het GMB Bel testFunction opnieuw in xseconden. Dus telkens wanneer testFunction wordt aangeroepen, zal worden uitgevoerd in xseconden. Als een lus waar in plaats van het lopen zo snel mogelijk, kunt u de tijd tussen runs instellen.
- Als uw code wordt uitgevoerd door gebeurtenissen die niet een lus (zoals ingangen van het web hoeft), definieert u klassen van de INPUT voor het GMB, die het welke functies vertellen Bel wanneer dat bepaalde "input" wordt gedetecteerd.
- Tot slot zijn er OUTPUT klassen, die bepaalde gegevens te sturen naar de poorten van de output in de elektrische Imp-planner worden gebruikt.
- Definiëren van INPUT en OUTPUT poorten kunt u functionele blokken (zoals HTTP-verzoeken) haak in de Planner op uw apparaten die communiceren met het internet maken
Welke logische stroom willen wij? Heel eenvoudig.
- Hardware-interrupt wordt gecontroleerd wanneer de knop wordt gedrukt.
- Wanneer de knop wordt gedrukt, actuate de impServerOut OUTPUT-klasse (die we zullen aansluiting aan een HTTP-verzoek naar onze server zien dat de knop is ingedrukt)
- Daarnaast is er een Eenvoudige statusmachine die houdt van al dan niet de knop in de modus van de dans is, en het licht bezielt wanneer het is.
De bijgevoegde code danceButtonSimple.txt, samen met de configuratie van de Planner is alles wat die we nodig aan de kant van de microcontroller. Wanneer de knop is ingedrukt, stuurt de Planner een HTTP POST-aanvraag naar de server, die zal bijhouden van de tijden van de verzoeken dus dienovereenkomstig haar webpagina's kunt bijwerken. Nu op naar de server!