Microsoft heeft onlangs een nieuwe UWP-app geïntroduceerd waarmee gebruikers een Raspberry Pi 2, Raspberry 3 of een Raspberry Pi Sense Hat vanuit hun browser kunnen programmeren. Met Windows 10 IoT Core Blockly kunnen gebruikers een programma maken met in elkaar grijpende blokken die vervolgens een Raspberry Pi-minicomputer kunnen besturen.
Microsoft haalde inspiratie uit vier verschillende projecten bij het ontwerpen van deze nieuwe tool, waaronder Google's Blockly open source block-editor, BBC's micro: bit en zijn eigen block-editor.
Windows 10 IoT Core Blockly heeft een eenvoudige structuur: de hoofdapp start een webserver die de Blockly-editorpagina op poort 8000 bedient. Gebruikers hebben toegang tot de Blockly-editor door vanuit een browser naar hun Raspberry Pi: 8000 te bladeren. Microsoft heeft ook aangepaste blokken gemaakt voor specifieke Sense Hat-functionaliteiten die te vinden zijn onder specifieke categorieën Basic, Input, LED, Images, Pin en meer.
Andere kenmerken zijn:
- Blockly maakt het eenvoudig om blokken naar JavaScript te vertalen, zodat we een uitvoerbaar JavaScript-fragment kunnen genereren. U kunt zien waar uw blokprogramma naar vertaalt in JavaScript door op de blauwe knop "Converteren naar JavaScript" te drukken - opmerking: om "gebeurtenissen" zoals "op joystickknop ingedrukt" in te schakelen, hebben we een paar JavaScript-hulpfuncties en we besteden speciale aandacht aan de volgorde van de verschillende functies.
- Op dit moment hebben we een blokeditor die een uitvoerbaar JavaScript-fragment kan genereren: we hebben iets nodig dat dit JavaScript-fragment op een andere thread kan uitvoeren zonder de webserver te verstoren.
- Om het fragment uit te voeren, maken we een instantie van de Chakra JavaScript-engine (die deel uitmaakt van elke Windows 10-editie) en starten we het fragment. Chakra maakt het gemakkelijk om het fragment naar believen te stoppen.
- Veel van de blokken werken rechtstreeks samen met de Sense Hat. We hadden een hoop JavaScript-code kunnen schrijven om de Sense Hat te besturen, maar we gebruikten de complete en gebruiksvriendelijke C # SenseHat-bibliotheek van EmmellSoft. Overbrugging tussen JavaScript en C # was buitengewoon eenvoudig door gebruik te maken van een UWP-bibliotheek van een wrapper.
- Als laatste hebben we een aantal machines toegevoegd om ervoor te zorgen dat het laatste 'run'-fragment wordt opgeslagen op de Raspberry Pi (zowel de blokkenlay-out als het JavaScript-fragment worden in de cache opgeslagen) en opnieuw worden uitgevoerd de volgende keer dat de IoT Core Blockly-app start (bijv. Je toestel).
Bekijk de blogpost van Microsoft voor meer informatie over het instellen van IoT Core Blockly op je Raspberry Pi.