ch-open-wstage2015


/ch/open Workshop WS4 "Internet der Dinge", Referent: Marcel Bernet

Software

Compiler

Aufbau Compiler (Integrierte Entwicklungs Umgebung - IDE)

  • Links: "Program Workspace" mit meinen Programmen
  • Mitte: "Workspace Management" - Import von Programmen, Libraries, Editoren von Sourcecode etc.
  • Rechts: "Workspace Detail" Zusatzinformationen wie: Angemeldeter User, Lokal Veränderte Dateien, Speicherbedarf Programm, Links zu Library Details
  • Unten: Fehlermeldungen, Suchresultate, Hinweise zu Änderungen in Libraries etc.

Haupttoolleiste

  • New: Neues Programm erstellen
  • Import: Import bestehender Programme / Libraries
  • Save und Save All: Aktuelle oder alle Editoreninhalte speichern
  • Compile: Übersetzen eines Programmes in die Maschinensprache
  • Commit/Revision: Sourcecontrolsystem Methoden (wird in Aufbau 1 Behandelt)
  • Undo/Redo: Rückgängig / Zurückstellen
  • Feldstecher: Suchen
  • Zauberstab: Sourcecode formatieren
  • Drucker: Drucken
  • Help: Hilfe anzeigen, schliessen mittel x rechts oben
  • Board: Aktuell ausgewähltes Board

Tastaturkürzel (Shortcuts)

  • Ctrl + Linke Maustaste oder Doppelklick auf Wort Hilfe zum aktuellen Objekte/Methode
  • Ctrl + D oder F9 Compilieren und Download
  • Ctrl + X Kopieren und ausschneiden
  • Ctrl + C Kopieren
  • Ctrl + V Einfügen
  • Ctrl + Shift + F Code (alles oder Selektion) formatieren

Alternativen











mbed OS

mbed OS
Mit dem mbed Betriebssystem (OS) Version 3 entsteht eine Full-Stack-Plattform (Durchgängig, Umfassend), mit Hardware Abstraktion, Konnektivität, Sicherheit Power-Management etc. Weitere Informationen: mbed OS.











Programmiersprache

Das mbed OS ist in der Programmiersprache C und C++ geschrieben bzw. verwendet dessen Libraries.

Beispiele:

    DigitalOut led1( D10 ); // Instanzieren eines Objektes mit dem Namen led1 anhand der Klasse DigitalOut, als Pin (Daten) wird D10 übergeben.
    DigitalOut led2( D11 ); // Gleiche Klasse (DigitalOut), neues Objekt, neuer Name (led2) und andere Daten (D11)
    led1.write( 1 );        // Aufruf der Methode write mit Wert 1, welches die LED zum Leuchten bringt.
    led2.write( 0 );
    // Kurzform
    led1 = 1;
    led2 = 0;
    
    AnalogIn light( A0 );   // Instanzieren eines Objektes mit dem Namen light anhand der Klasse AnalogIn, als Pin (Daten) wird A0 übergeben
    light.read();           // Auslesen des aktuellen Analogen Wertes an Pin A0, mittels der Methode read()
    
    Motor motor1( D3, D2, D4 ); // Instanzieren Motor Objekt
    motor1.speed( 0.5 );        // Setzen der Geschwindigkeit des Motors











Programmaufbau

Folgender Aufbau hat sich für embedded Systeme bewährt

// Import Libraries
 
// Definition der verwendeten Objekte.
 
// Funktionen welche von Hauptprogramm aufgerufen werden.

// Hauptprogramm
int main() 
{
    // Initialisierungen von Variablen und Feintuning von Objekten.

    // Endlosschleife 
    while ( 1 )
   {
        // Anweisungen welche Endlos durchgeführt werden
    }
}

Es kann immer nur ein Programm ins Board geladen werden bzw. aktiv sein!

Beispiel: bringt die erste LED auf dem Shield zum Blinken.

// Import mbed Library
#include "mbed.h"
 
DigitalOut led( D10 );
 
int main()
{
    while(1) 
    {
        led.write( 0 );
        wait(0.8);
        
        led.write( 1 );
        wait(1.0);
    }
}

Das Hauptprogramm wird, in der Regel, in der main.cpp Datei gespeichert

Import programDigitalOut

Mittels DigitalOut kann eine Positive Spannung an einem Pin erzeugt werden.











Zusammenfassung

  • Ein Objekt bildet, in der Regel, Dinge der Realen Welt ab, z.B. Auto, Kontaktstift (GPIO Pin), Sensor, Aktor.
  • Ein Objekt kapselt Methoden (Verhalten) und Attribute (Daten)
  • Objekte werden in Klassen definiert
  • Ein oder mehrere Klassen werden in Programmbibliotheken (Libraries) zusammenfasst
  • Für Sensoren und Aktoren existieren eine Vielzahl von Programmbibliotheken. Diese sind unter Components zusammengefasst.
  • Die '''main''' Funktion repräsentiert das Hauptprogramm.
  • http://mbed.org mbed ist Plattform und Betriebssystem für Internet-verbundene Geräte auf Basis von 32-Bit- ARM Cortex-M -Mikrocontroller. Solche Geräte werden auch als Internet der Dinge Geräte bezeichnet.

Online Bücher / Tutorials zu C / C++


All wikipages