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 14:51] – [Vorgehen] changed man page interwiki link to debian manpages marco.bakera | schule:raspberrypi-programmierung_mit_c-sharp [2024-01-25 17: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: 2017-04-19 14:51 von marco.bakera