Der Unterschied zwischen dem Entwickeln einer Anwendung mit einem Pi kann aufgrund von Hardware- und Softwareentwicklungs-Toolchain-Unterschieden sehr unterschiedlich oder ähnlich zum Entwickeln einer Anwendung mit einem Mikrocontroller sein.
Es gibt eine breite Palette von verfügbaren Mikrocontrollern, die zwischen 8-Bit- und 64-Bit-Prozessoren und zwischen einigen K RAM und einigen Gigabyte RAM liegen. Leistungsfähigere Mikrocontroller bieten eine Pi-ähnliche Erfahrung. Weniger leistungsfähige Mikrocontroller nicht.
Und selbst mit dem Pi gibt es große Unterschiede zwischen der Entwicklung für das Windows 10 IoT-Betriebssystem und der Entwicklung für Raspian, Mate oder andere Linux-basierte Betriebssysteme. Für Windows 10 IoT ist ein Entwicklungs-PC erforderlich, der eine Visual Studio-Toolchain mit einem Remote-Debugger verwendet, der auf die Universal Windows Program (UWP) -Umgebung abzielt. Die Entwicklung für Raspian oder Mate kann tatsächlich auf einem Pi mit den auf dem Pi verfügbaren Tools durchgeführt werden.
Das Constrained Application Protocol wird für kleine, eingeschränkte Geräte verwendet, die mit der Internet of Things-Umgebung verwendet werden. Auf dieser Seite der Implementierung des CoAP-Protokolls erhalten Sie einen Überblick über die Vielfalt der Hardware und Software für Mikrocontroller . Es erwähnt das Contiki-Betriebssystem, von dem ich vage gehört habe, zusammen mit bekannteren Betriebssystemen wie iOS, OSX und Android. Die genannten Programmiersprachen sind Java, JavaScript, C, C #, Ruby, Go, Erlang, Rust und Python.
Die für die Entwicklung mit Mikrocontrollern verwendete Toolkette variiert je nach Hersteller sowie je nach Art der Ressourcen, die von Entwicklungsgemeinschaften und Open Source-Initiativen zur Verfügung gestellt werden. In einigen Fällen erhalten Sie einen Cross-Assembler, in anderen Fällen einen C-Cross-Compiler und in anderen Fällen eine nützliche Toolkette mit allen wichtigen Funktionen und Emulatoren, die der Visual Studio-Toolkette für Windows 10 IoT ähneln.
Die eigentliche Entwicklungsumgebung für einen Mikrocontroller umfasst möglicherweise die Verwendung eines EEPROM- Programmiergeräts und der Softwaretools zum Erstellen eines neuen Abbilds und zum Übertragen auf das Gerät, oder das Gerät verfügt möglicherweise über die erforderliche Konnektivität, um das Herunterladen eines neuen Abbilds über eine serielle Verbindung oder über eine serielle Verbindung zu ermöglichen eine Netzwerkverbindung.
Mein Eindruck ist, dass die meisten Mikrocontroller einen C-Cross-Compiler haben, obwohl der Compiler möglicherweise nur ältere Standards wie K & R oder C98 unterstützt. C-Cross-Compiler verfügen häufig über nicht standardmäßige Schlüsselwörter für mikroprozessorspezifische Funktionen, z. B. far
und near
Schlüsselwörter für Zeiger bei den alten 8080- und 8086-Prozessoren mit segmentiertem Speicher.
Es gibt auch Spezialsprachen, die auf Mikrocontroller wie die Programmiersprache FORTH abzielen . Diese Sprachen haben häufig ein Laufzeitdesign, das auf das Bare-Metal-System abzielt, sodass es kein anderes Betriebssystem als die Laufzeit der Sprache gibt.
Das Betriebssystem kann von praktisch nicht existierendem bis hin zu einfachem Linux bis hin zu einem speziellen Betriebssystem wie freeRTOS oder Windows Embedded oder einem vollständigen Linux oder Microsoft Windows reichen . Sehen Sie dieses SourceForge-Projekt MINIBIAN für Raspberry Pi . Siehe auch dieses eBook, Baking Pi: Operating Systems Development, das die Entwicklung eines rudimentären Betriebssystems für Raspberry Pi in Assembler beschreibt.
Dieser Artikel aus dem Visual Studio Magazine, Programmieren des Internets der Dinge mit Visual Studio , bietet einen Überblick über die vielen verschiedenen verfügbaren Geräte, gefolgt von einem Überblick über die Verwendung der Visual Studio-IDE für die Entwicklung unter Linux sowie unter Windows.
Es gibt ein riesiges und wachsendes Universum an programmierbaren, netzwerkfähigen Standard-Mikrocontrollern. Auf einem sehr niedrigen Niveau haben Sie eine Vielzahl einfacher 16- und 32-Bit-Geräte von einer Vielzahl traditioneller Chiphersteller wie Texas Instruments. (Ich habe ein bisschen mit dem SensorTag-Entwicklungskit gespielt und es macht viel Spaß. Ich denke, dass das Watch DevPack auch ein großartiges Lern-Toolset sein könnte.)
Einige bekanntere Mikrocontroller-Geräte umfassen Arduino, BeagleBoard und Raspberry Pi. Diese Umgebungen verfügen alle über umfangreiche Community-Unterstützung und können an eine Vielzahl von vorgefertigten externen Sensoren, Motoren, Servos und was auch immer Sie sich vorstellen können, angeschlossen werden. Adafruit, der von Limor "Ladyada" Fried gegründete Elektronik-Lern-Superstore, bietet alle möglichen Peripheriegeräte für diese Boards sowie eine eigene Reihe leichter Feather-Entwicklungsboards.
...
Das interessanteste Universum an Geräten für Entwickler, die mit Microsoft .NET Framework und Visual Studio vertraut sind, sind möglicherweise Windows 10 IoT Core-kompatible Umgebungen. Hierbei handelt es sich um x86- und ARM-Geräte, die UWP-Apps (Universal Windows Platform) unterstützen, die in einer Vielzahl von Sprachen geschrieben wurden, darunter C #, Visual Basic, Python und Node.js / JavaScript. Windows 10 IoT Core unterstützt Geräte wie Raspberry Pi, Arrow DragonBoard 410C, Intel Joule und Compute Stick sowie MinnowBoard. Es gibt auch interessante Produktplattformen, wie das Askey TurboMate E1 Wearable.
Ein spezielles Beispiel für eine Mikrocontroller-Anwendung
Dies ist ein Bild einer Mikrocontroller-Platine von einer automatischen Kaffeemaschine. Dies scheint eine Standardkomponente für in China hergestellte Kaffeemaschinen zu sein. Die Website des Herstellers ist auf der Leiterplatte aufgedruckt.
Das Bild besteht aus zwei Ansichten. Die Ansicht auf der linken Seite ist die Rückseite der Platine, die den Mikrocontroller und die unterstützende Schaltung enthält. Die Ansicht auf der rechten Seite ist die Vorderseite der Platine mit dem LCD-Bildschirm und einer Reihe von Tasten, mit denen die aktuelle Uhrzeit eingestellt und Aktionen wie das Programmieren einer Startzeit usw. ausgeführt werden.
Die Ansicht rechts passt in einen Träger, der dann in eine Öffnung an der Vorderseite der Kaffeemaschine passt. Die Schalter auf der unteren Leiterplatte werden mit Kippschaltern betätigt. Das LCD-Display, das als Sonderzweck erscheint, dient zur Anzeige der aktuellen Uhrzeit und des aktuellen Status sowie zur Anzeige der Benutzeroberfläche, wenn die Einstellungen der Kaffeemaschine geändert werden. Die rote LED wird verwendet, um anzuzeigen, wann die Kaffeemaschine tatsächlich Kaffee kocht, und um anzuzeigen, wann der Vorgang abgeschlossen ist, indem die Beleuchtung wieder ausgeschaltet wird.
Der Mikrocontroller ist ein ELAN Microelectronics Corp EM78P447NAM (Datenblatt), bei dem es sich um einen 8-Bit-Mikrocontroller handelt. Einige der grundlegenden Statistiken zeigen, was für ein kleines und minimales Gerät dies ist, aber es funktioniert gut für den beabsichtigten Zweck. Die Absicht ist, Software zu entwickeln, die dann als Teil der Herstellung in das einmal beschreibbare ROM heruntergeladen wird.
• Energieeffizient:
* Less then 2.2 mA at 5V/4MHz
* Typically 35 µA, at 3V/32KHz
* Typically 2 µA, during sleep mode
• 4K × 13 Bits im Chip-ROM
• Drei Schutzbits, um das Eindringen von OTP-Speichercodes zu verhindern
• Ein Konfigurationsregister, um den Anforderungen des Benutzers gerecht zu werden
• 148 × 8 Bits auf Chip-Registern (SRAM, Allzweckregister)