schule:raspberrypi-programmierung_mit_c-sharp
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende Überarbeitung | |||
| schule:raspberrypi-programmierung_mit_c-sharp [2017-04-19 12:51] – [Vorgehen] changed man page interwiki link to debian manpages marco.bakera | schule:raspberrypi-programmierung_mit_c-sharp [2024-01-25 16:35] (aktuell) – mv pintman | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | ====== RaspberryPi-Programmierung mit C# ====== | + | Verschoben nach [[edu: |
| - | + | ||
| - | 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: | + | |
| - | - Lade die [[https:// | + | |
| - | | + | |
| - | - Binde die RPi-DLL als Verweis in dein Projekt ein. \\ {{: | + | |
| - | - Erstelle den Quellcode für den Button. | + | |
| - | - Übertrage das fertige Projekt auf den Pi (z.B. mit [[debman> | + | |
| - | + | ||
| - | $ sudo mono Projekt/ | + | |
| - | + | ||
| - | ===== FAQ ===== | + | |
| - | + | ||
| - | **Warum lässt sich die C#-Bibliothek nicht mit '' | + | |
| - | Es scheint ein Fehler in den locales zu sein. [[https:// | + | |
| - | + | ||
| - | Folgender Aufruf klappt: | + | |
| - | + | ||
| - | $ LANG=en_GB.UTF-8 xbuild RaspberryPiDotNet.csproj | + | |
| - | + | ||
| - | **Warum wird der Namespace '' | + | |
| - | 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 = " | + | |
| - | + | ||
| - | // 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) | + | |
| - | { | + | |
| - | | + | |
| - | + | ||
| - | lblStatus.Text = " | + | |
| - | + | ||
| - | if (bStatus) { | + | |
| - | led.Write (PinState.High); | + | |
| - | } else { | + | |
| - | led.Write (PinState.Low); | + | |
| - | } | + | |
| - | } | + | |
| - | } | + | |
| - | </ | + | |
| - | + | ||
| - | ===== Links ===== | + | |
| - | + | ||
| - | * [[http:// | + | |
| - | * [[https:// | + | |
schule/raspberrypi-programmierung_mit_c-sharp.1492606312.txt.gz · Zuletzt geändert: von marco.bakera
