Benutzer-Werkzeuge

Webseiten-Werkzeuge


schule:raspberrypi-programmierung_mit_c-sharp

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
schule:raspberrypi-programmierung_mit_c-sharp [2017-04-19 14:51] – [Vorgehen] changed man page interwiki link to debian manpages marco.bakeraschule:raspberrypi-programmierung_mit_c-sharp [2024-01-25 17:35] (aktuell) – mv pintman
Zeile 1: Zeile 1:
-====== RaspberryPi-Programmierung mit C# ====== +Verschoben nach [[edu:RaspberryPi-Programmierung mit C-Sharp]].
- +
-Mit diesem kleinen Projekt sollen die GPIO-Pins eines [[Raspberry Pi]] mit einem C#-Programm angesteuert werden. +
- +
-===== Auftrag ===== +
- +
-Eine LED, die an einem Pi angeschlossen ist, soll über einen Button in einer +
-Windwos-Forms-Anwendung ein- und wieder ausgeschaltet werden können. Die LED wird über +
-GPIO PIN7 und GND PIN6 angeschlossen. Vor der LED wird ein Widerstand (500 Ohm) geschaltet. +
- +
-===== Vorgehen ===== +
-  - Baue die Schaltung auf dem Steckbrett auf. \\ {{:schule:prog:rpi-schaltung.png|}} +
-  - Lade die [[https://github.com/cypherkey/RaspberryPi.Net/|RaspberryPi.Net]] C# Bibliothek herunter und kompiliere sie. Es wird eine DLL in ''bin/Debug'' erzeugt. Diese wird benötigt, wenn wir aus C# heraus auf die GPIO des Pi zugreifen möchten. +
-  Erstelle ein Projekt und eine GUI nach dem folgenden Vorschlag. \\ {{:schule:prog:rpi-programmierung-gui-screenshot.png|}} +
-  - Binde die RPi-DLL als Verweis in dein Projekt ein. \\ {{:schule:prog:rpi-prigrammierung-verweise.png|}} +
-  - Erstelle den Quellcode für den Button. +
-  - Übertrage das fertige Projekt auf den Pi (z.B. mit [[debman>scp]]) und teste es. Du kannst es dort wie folgt starten. +
- +
-  $ sudo mono Projekt/bin/Debug/Projekt.exe +
- +
-===== FAQ ===== +
- +
-**Warum lässt sich die C#-Bibliothek nicht mit ''xbuild'' auf dem Pi kompilieren?** \\ +
-Es scheint ein Fehler in den locales zu sein. [[https://github.com/cypherkey/RaspberryPi.Net/issues/27#issuecomment-76073166|Quelle]] +
- +
-Folgender Aufruf klappt: +
- +
-  $ LANG=en_GB.UTF-8 xbuild RaspberryPiDotNet.csproj +
- +
-**Warum wird der Namespace ''RaspberryPiDotNet'' nicht gefunden?** \\  +
-Es fehlt der Verweis auf die entsprechende dll in den Projektverweisen. +
- +
-**Warum lässt sich mein Projekt unter MonoDevelop nicht erstellen?**\\  +
-Wieder ein Problem mit den locales. Du kannst monodevelop wie folgt starten. +
- +
-  $ LANG=en_GB.UTF-8 monodevelop +
- +
-===== Lösung ===== +
-Es folgt die Lösung für dieses Projekt. Probiere erst selbst aus, auf eine Lösung zu kommen, bevor du diesen Abschnitt liest. +
- +
-<code csharp> +
-using System; +
-using Gtk; +
-using RaspberryPiDotNet; +
- +
-public partial class MainWindow: Gtk.Window +
-+
-    // Der aktuelle Status, der angibt, ob die LED leuchten soll. +
-    bool bStatus; +
- +
-    // Steuert einen GPIO über das Dateisystem an. +
-    GPIOFile led; +
- +
-    public MainWindow() : base(Gtk.WindowType.Toplevel) +
-    { +
-        Build(); +
- +
- bStatus = false; +
- lblStatus.Text = "Status: " + bStatus; +
- +
- // Pins konfigurieren +
- +
- // Es wird PIN7 auf einem RPi 2 gewählt +
- led = new GPIOFile (GPIOPins.V2_Pin_P1_07); +
- led.PinDirection = GPIODirection.Out; +
-    } +
- +
-    protected void OnDeleteEvent(object sender, DeleteEventArgs a) +
-    { +
-        Application.Quit(); +
-        a.RetVal = true; +
-    } +
- +
-    protected void OnBtnOnOffClicked (object sender, EventArgs e) +
-    {         +
-  bStatus = !bStatus; +
- +
- lblStatus.Text = "Status: " + bStatus; +
- +
- if (bStatus) { +
-            led.Write (PinState.High); +
- } else { +
-     led.Write (PinState.Low); +
-+
-    } +
-+
-</code> +
- +
-===== Links ===== +
- +
-  * [[http://raspberrypiguide.de/howtos/raspberry-pi-gpio-how-to/|GPIO ansteuern]] ist eine ausführliche Beschreibung dazu, wie GPIOs angesteuert werden können. +
-  * [[https://github.com/cypherkey/RaspberryPi.Net/|RaspberryPi.Net]] ist C# Bibliothek zur Ansteuerung von GPIO aus C# heraus. +
schule/raspberrypi-programmierung_mit_c-sharp.1492606312.txt.gz · Zuletzt geändert: 2017-04-19 14:51 von marco.bakera