schule:raspberrypi-programmierung_mit_c-sharp
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungNächste ÜberarbeitungBeide Seiten der Revision | ||
schule:raspberrypi-programmierung_mit_c-sharp [2015-12-01 14:42] – [Vorgehen] Formatierung marco.bakera | schule:raspberrypi-programmierung_mit_c-sharp [2017-04-19 08:39] – Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== RaspberryPi-Programmierung mit C# ====== | ||
+ | |||
+ | 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. \\ {{: | ||
+ | - Lade die [[https:// | ||
+ | - Erstelle ein Projekt und eine GUI nach dem folgenden Vorschlag. \\ {{: | ||
+ | - 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 [[man> | ||
+ | |||
+ | $ sudo mono Projekt/ | ||
+ | |||
+ | ===== FAQ ===== | ||
+ | |||
+ | **Warum lässt sich die C# | ||
+ | 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.txt · Zuletzt geändert: 2024-01-25 17:35 von pintman