Programma's schrijven voor de badge
De Fri3d Camp-badge draait MicroPythonOS. Dat is een licht besturingssysteem voor microcontrollers waarbij toepassingen in MicroPython worden geschreven.
Met de webgebaseerde Fri3d-IDE kun je vanuit je browser code schrijven, bestanden op de badge beheren en programma's uitvoeren.
Python-ervaring is handig, maar niet verplicht
MicroPython lijkt sterk op gewone Python. Heb je nog nooit geprogrammeerd, begin dan met kleine aanpassingen aan een bestaand voorbeeld.
Wat is MicroPythonOS?
MicroPythonOS is een appgericht besturingssysteem dat rond MicroPython is opgebouwd. Functies zoals instellingen, wifi, updates en de App Store worden als toepassingen aangeboden.
Een toepassing kan onder andere:
- tekst, knoppen en afbeeldingen op het scherm tonen;
- reageren op aanrakingen;
- sensoren en uitbreidingsborden uitlezen;
- gegevens bewaren;
- verbinding maken met een netwerk;
- samenwerken met andere onderdelen van MicroPythonOS.
Meer informatie:
- MicroPythonOS-documentatie
- Overzicht van toepassingen
- Een toepassing maken
- Ingebouwde toepassingen
- MicroPythonOS App Store
Wat heb je nodig?
- een Fri3d Camp-badge met MicroPythonOS;
- een USB-kabel die gegevens kan overdragen;
- een computer met een ondersteunde webbrowser;
- de Fri3d-IDE.
Niet elke USB-kabel kan gegevens versturen
Sommige kabels zijn alleen geschikt om apparaten op te laden. Gebruik een andere kabel wanneer de badge niet wordt gevonden.
De badge verbinden
- Verbind de badge via USB met je computer.
- Open de Fri3d-IDE.
- Klik op de knop om een apparaat te verbinden.
- Kies de seriële poort die bij de badge hoort.
- Geef de browser toestemming om verbinding te maken.
Na het verbinden kun je bestanden op de badge bekijken en MicroPython-code uitvoeren.
Note
Sluit andere programma's die dezelfde seriële verbinding gebruiken. Een seriële poort kan doorgaans maar door één programma tegelijk worden geopend.
Losse MicroPython-code uitvoeren
Voor een snelle test kun je een eenvoudig Python-bestand maken en uitvoeren:
Dit is handig om:
- Python-syntax te leren;
- kleine stukken code te testen;
- hardware en sensoren uit te proberen;
- foutmeldingen te onderzoeken.
Een los script verschijnt niet automatisch als toepassing in de launcher van MicroPythonOS.
Een MicroPythonOS-toepassing maken
Een echte MicroPythonOS-toepassing heeft een vaste mappenstructuur en metadata. De toepassing wordt in de map /apps/ op de badge geplaatst.
Een minimale toepassing ziet er ongeveer zo uit:
De mapnaam is de unieke identificatie van je toepassing. Gebruik bij voorkeur kleine letters en punten, bijvoorbeeld:
Bekijk de actuele structuur en manifestvelden in de handleiding:
Een MicroPythonOS-toepassing maken
Een nieuwe toepassing maken in de Fri3d-IDE
Open de Fri3d-IDE, verbind je badge en zoek in het app-overzicht naar Nieuwe app maken.

Klik op Nieuwe app maken. Er verschijnt een formulier waarin je de basisgegevens van je toepassing invult.

Vul minstens deze velden in:
- App-ID: een unieke technische naam, bijvoorbeeld
be.fri3d.lichtspel; - Weergavenaam: de naam die gebruikers in de launcher zien;
- Versie: begin bijvoorbeeld met
0.1.0; - Uitgever: je naam, groep of organisatie;
- Beschrijving: een korte uitleg van wat de toepassing doet;
- Sjabloon: kies voor een eerste project Hello World;
- Icoon: upload een eigen pictogram of gebruik het gegenereerde pictogram.
Bij Sjabloon kun je kiezen tussen een voorbeeldtoepassing en een leeg project. Hello World is de beste keuze voor een eerste toepassing, omdat de noodzakelijke structuur en voorbeeldcode al aanwezig zijn.

Klik daarna op Maken. De Fri3d-IDE maakt de projectbestanden en opent ze zodat je meteen kunt beginnen programmeren.
Gebruik een blijvend App-ID
Het App-ID identificeert je toepassing op de badge en in appstores. Verander het daarom niet meer nadat je de toepassing hebt gedeeld.
Het programma testen
Een handige ontwikkelcyclus is:
- pas de code aan in de Fri3d-IDE;
- sla het bestand op;
- kopieer of synchroniseer het bestand met de badge;
- voer het programma uit;
- bekijk de uitvoer en eventuele foutmeldingen;
- verbeter de code en probeer opnieuw.
Werk telkens in kleine stappen. Wanneer je meerdere wijzigingen tegelijk uitvoert, is het moeilijker om te vinden welke wijziging een probleem veroorzaakt.
De toepassing installeren
MicroPythonOS zoekt geïnstalleerde toepassingen in:
Kopieer daarom de volledige projectmap naar:
De badge bevat daarna:
Start de toepassing daarna vanuit de launcher. Verschijnt ze niet meteen, herstart dan de launcher of de badge.
Een pictogram toevoegen
Een toepassing gebruikt normaal een pictogram met de naam:
Gebruik bij voorkeur:
- een PNG-afbeelding;
- een vierkante afbeelding;
- een resolutie van minstens 64 bij 64 pixels;
- een eenvoudig ontwerp dat ook op klein formaat herkenbaar blijft;
- een zo klein mogelijk bestand.
Foutmeldingen begrijpen
Wanneer een programma niet werkt, kijk dan eerst naar de console van de Fri3d-IDE.
Een foutmelding bevat meestal:
- het bestand waarin de fout gebeurde;
- het regelnummer;
- het soort fout;
- een korte beschrijving.
Bijvoorbeeld:
Dit betekent dat de naam bericht wordt gebruikt voordat ze is aangemaakt, of dat er een typefout in de naam staat.
Inspringing
Python gebruikt inspringing om codeblokken aan te duiden.
Fout:
Correct:
Verkeerde bestandsnaam
Wanneer het manifest hello.py probeert te starten, moet dat bestand exact zo heten. Hello.py en hello.py kunnen als verschillende bestandsnamen worden behandeld.
Ongeldige JSON
Ongeldig:
Geldig:
Te weinig geheugen
Microcontrollers hebben minder geheugen dan een gewone computer. Grote afbeeldingen, lange lijsten en veel tegelijk geopende schermen kunnen problemen veroorzaken.
Probeer dan:
- kleinere afbeeldingen te gebruiken;
- ongebruikte objecten te verwijderen;
- bestanden pas te laden wanneer ze nodig zijn;
- de badge opnieuw op te starten;
- het programma in kleinere delen te testen.
Een toepassing delen
Wanneer je toepassing klaar is, kun je ze bundelen en publiceren.
Lees hiervoor:
Controleer vóór publicatie minstens het volgende:
- de toepassing heeft een unieke identificatie;
MANIFEST.JSONis geldig;- het versienummer is aangepast;
- het pictogram wordt correct weergegeven;
- de toepassing start zonder foutmelding;
- tijdelijke testbestanden zijn verwijderd;
- er staan geen wachtwoorden of geheime sleutels in de broncode;
- de toepassing kan netjes worden afgesloten.
Je toepassing delen via BadgeHub
Je kunt een toepassing rechtstreeks vanuit de Fri3d-IDE naar
BadgeHub publiceren. Je hoeft daarvoor niet eerst
handmatig een .mpk-bestand te uploaden via de BadgeHub-website.
Open je toepassing in de Fri3d-IDE en klik bovenaan op het wolkicoon Publiceren naar BadgeHub.

Wanneer je nog niet bent aangemeld, vraagt de Fri3d-IDE om in te loggen met je BadgeHub-account.

Klik op Inloggen bij BadgeHub en rond de aanmelding af. Daarna opent het publicatieformulier in de Fri3d-IDE.

Controleer of vul deze gegevens aan:
- Weergavenaam: de naam die gebruikers in BadgeHub en de App Store zien;
- Versie: verhoog dit nummer bij iedere nieuwe publicatie;
- Auteur: je naam, groep of organisatie;
- Korte beschrijving: een bondige uitleg van de toepassing;
- Lange beschrijving: meer informatie over functies en gebruik;
- Categorie: kies de categorie die het beste bij je toepassing past;
- Licentie: vermeld onder welke licentie je code wordt gedeeld;
- Git-URL: voeg indien mogelijk een link naar de broncode toe;
- Verborgen: gebruik dit om de toepassing nog niet in het openbare BadgeHub-overzicht te tonen;
- Ontwikkelstatus: geef aan of de toepassing nog in ontwikkeling is of klaar is voor gebruik.
Klik daarna op Publiceren. De Fri3d-IDE maakt het pakket aan en verstuurt het samen met de metadata naar BadgeHub.
Eerst verborgen publiceren
Publiceer een eerste testversie als verborgen en met de status In ontwikkeling. Controleer daarna of installatie en opstarten correct werken voordat je de toepassing openbaar maakt.
Verhoog altijd het versienummer
BadgeHub en de MicroPythonOS App Store herkennen een update alleen wanneer de nieuwe publicatie een hoger versienummer heeft.
Meer informatie:
Goede gewoontes
Bewaar een kopie op je computer
De badge is geen veilige plaats voor de enige kopie van je project. Bewaar de broncode ook lokaal of in een Git-repository. Je kan hem exporteren.

Gebruik versienummers
Gebruik bijvoorbeeld:
Een gebruikelijke indeling is:
Test zonder netwerk
Een toepassing moet duidelijk reageren wanneer wifi of een internetdienst niet beschikbaar is.
Hou rekening met beperkte hardware
Vermijd onnodige achtergrondprocessen en lange blokkerende lussen.
Maak fouten zichtbaar
Toon een begrijpelijke melding wanneer iets mislukt. Alleen een foutmelding in de seriële console is voor gewone gebruikers vaak onvoldoende.