© StonePictures/Shutterstock.com
Verbesserte Hardwaresteuerung mit Meadow F7

Auf Trab gebracht


Bryan Costanichs Entwicklerteam macht in vielerlei Hinsicht das Unmögliche möglich – so können .NET-Programmierer mit dem Meadow F7 Hardware steuern. Ein kleines Update sorgt nun für höhere Geschwindigkeiten.

Wegen der eher zweifelhaften Reputation von .NET als Werkzeug zur Hardwaresteuerung entschied sich Bryan Costanich, Meadow F7 mit einer vergleichsweise frühen Firmware auszuliefern. Wichtigstes Opfer war die .NET Runtime, die erstens veraltet und zweitens wenig optimiert war. Version Beta 3.7 schafft hier Abhilfe und verbessert nebenbei auch die Gesamtsystemleistung. Im Folgenden werden einige Versuche mit F7 vorgestellt, die mehr über die Eignung als Hardwaresteuerungssystem verraten.

Geschwindigkeit und Stabilität

Wer wie ich schon mit Meadow experimentiert hat, muss die Entwicklungs- und Arbeitsumgebung im ersten Schritt aktualisieren. Dazu öffne ich wie gewohnt Visual Studio, um – mit oder ohne Projekt – in die Menüstruktur zu kommen. Die anfangs verwendete und etwas rustikale Updatemethode unter Kommandozeilenwerkzeugen ist mittlerweile out of date: F7 wird über eine Visual-Studio-Erweiterung verwaltet. Als Erstes klicke ich daher auf Erweiterungen | Erweiterungen verwalten, wo ich nach „VS Tools for Meadow“ suche. Eventuelle Updates installiere ich wie in Visual Studio üblich.

Im nächsten Schritt fokussiere ich den Meadow Device Explorer und klicke Download Meadow OS an. Visual Studio informiert mich in der Ausgabekonsole nach dem folgenden Schema über das Fortschreiten der Aktualisierung: „[12.03.2020 23:48:26] Downloading firmware version: 0.3.8“.

Dann verbinde ich meine Platine mit dem Rechner und klicke auf Flash Device. Damit weise ich das Verwaltungswerkzeug an, die soeben heruntergeladene Betriebssystemversion auf den Mikrocontroller zu brennen – dabei muss ich den Boot-Knopf gedrückt halten, um den Bootloader zu aktivieren. Wie viele andere Embedded-Systeme enthält auch Meadow F7 eine Spezialsoftware, die sich nur um Aktualisierungen des Betriebssystems kümmert und den Endanwender vom Kommandogerät des Mikrocontrollerherstellers unabhängig macht. Der eigentliche Schreibprozess nimmt dann einige Minuten in Anspruch und endet mit der Ausgabe der Meldung „Complete“.

Nun erzeuge ich ein neues Beispielprojekt auf Basis der Vorlage Meadow Application. SUSMeadowWaveOut dient zum Test der Geschwindigkeit und der Stabilität des Systems. Anstatt des von Haus aus generierten LED-Blinkprogramms platziere ich dann die Deklaration eines IDigitalOutputPort-Objekts:

public class MeadowApp : App<F7Micro, MeadowApp>{ IDigitalOutputPort ausgabePin; public MeadowApp() { ausgabePin = Device.CreateDigitalOutputPort(Device.Pins.D05);

Seit dem eingestellten Gadgeteer stehen alle Microsoftschen .NET-Hardwareplattformen in der Tradition starker Abstraktion – wie ich Ihnen im letzten Teil dieser Serie [1] gezeigt habe, erfolgt die Interaktion mit der Hardware über Treiberklassen, die die rohe Elektronik ausblenden. Wenn ich direkt mit einem Pin interagieren möchte, muss ich das über eine Instanz der Klasse IDigitalOutputPort tun.

Zur Fertigstellung meines ersten Testprogramms gebe ich eine Wellenform aus. Das erledige ich durch direktes Anpassen des State-Attributs:

 public MeadowApp() { . . . while (tr...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Gewinner-Teams

Wir bieten Lizenz-Lösungen für Teams jeder Größe: Finden Sie heraus, welche Lösung am besten zu Ihnen passt.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang