13.1.2. Scripts, voorbeelden en de documentenmap

13.1.2.1. Nieuwe bestanden

Maak een nieuw bestand aan en de IDE opent een untitled_N.py-buffer die vooraf is gevuld met een minimale opnamelus – reset de sensor, configureer het pixelformaat en de framegrootte, maak vervolgens eeuwig een momentopname en druk de framesnelheid af. Het startscript is aangepast aan het verbonden bord, dus het draait zoals aangemaakt. De buffer leeft alleen in het geheugen: je kunt hem herhaaldelijk bewerken en uitvoeren zonder hem ooit op te slaan, wat nieuwe bestanden de goedkoopste manier maakt om een idee te testen. Sla het op schijf op en het wordt een gewoon script.

13.1.2.2. Het voorbeeldenmenu

File → Examples bevat een gecategoriseerde bibliotheek van voorbeeldscripts die in wezen elke functie omvatten die de camera heeft – één map per onderwerp, van basismomentopnamen tot en met kleurvolging, machine learning en bordrandapparaten. Het openen van een voorbeeld laadt het in een geheugenbuffer zoals een nieuw bestand, zodat je het vrij kunt aanpassen en uitvoeren zonder de geïnstalleerde kopie aan te raken.

Standaard wordt het menu gefilterd op het verbonden bord en zijn sensor: voorbeelden die hardware nodig hebben die je camera niet heeft worden verborgen, en het menu vraagt om een verbinding voordat er überhaupt iets wordt getoond. Tools → Filter examples by board and sensor type schakelt het filter uit wanneer je de volledige set wilt doorbladeren.

Voorbeelden worden ook aangepast wanneer ze worden geopend. De scripts zijn geschreven voor een typische kleursensor, dus wanneer de verbonden camera anders is – een thermische of event-sensor, een bord met een andere native resolutie – past de IDE de pixelformaat- en framegrootteregels tijdens het laden aan naar waarden die je hardware ondersteunt, en draait het voorbeeld zoals geopend.

Het doorwerken van het voorbeeldenmenu is de snelste manier om te leren wat de camera kan; de meeste applicaties beginnen als een voorbeeld dat is gegroeid.

13.1.2.3. De documentenmap

Voor je eigen scripts houdt de IDE een OpenMV-map in je documentenmap in de gaten (Documents/OpenMV). Alles wat je daar opslaat verschijnt onder File → Documents Folder, inclusief submappen, zodat je scriptverzameling op één menu afstand ligt. Het menu leest de map live – bestanden die je buiten de IDE toevoegt verschijnen de volgende keer dat het menu opent.

De IDE draait als één instantie: open een .py-bestand vanuit je bestandsbeheerder, of sleep er een naar het IDE-venster, en het opent in het draaiende venster in plaats van een tweede kopie te starten.

13.1.2.4. Een script cross-compileren

Tools → MicroPython Tools → Copy/Convert Python File kopieert een .py-bestand naar een bestemming – de schijf van de camera, wanneer er een is verbonden – en laat je kiezen wat er onderweg gebeurt: kopieer het ongewijzigd, verwijder witruimte en/of commentaar om het te verkleinen, of compileer het tot een .mpy-bytecodebestand met de mpy-cross-compiler die bij het doelbord past. Een .mpy-bestand importeert precies zoals de .py waar het vandaan komt, laadt sneller en levert zijn broncode niet mee – de vorm om te gebruiken bij het distribueren van een bibliotheekmodule naar het bestandssysteem van de camera. Met een verbonden camera kiest de IDE automatisch het doelbord; anders vraagt het dialoogvenster voor welk bord moet worden gecompileerd. De bordkeuze is belangrijk omdat deze de processorarchitectuur bepaalt waar de compiler zich op richt: een .mpy-bestand is afgestemd op de camera waarop het zal draaien, en een bestand dat voor een andere bordfamilie is gecompileerd zal niet gegarandeerd laden.

Zie ook

MicroPython-tools voor mpy-cross en mpremote als zelfstandige opdrachtregelprogramma’s, en MicroPython .mpy-bestanden voor het .mpy-bestandsformaat zelf.