Forum: Mikrocontroller und Digitale Elektronik Visul Studio und Raspberry Pi


von Krajay K. (krajay)


Lesenswert?

Hallo zusammen,
Nach einiger Recherche ob man bzw. wie man auf VisualStudio 
programmierte Anwendungen auf dem RPI zum Laufen bringt, kam ich auf 
keinen eindeutigen Pfad..

Ich möchte ein Programm mit c# schreiben, dass mithilfe eines 
Kameramoduls ein Foto schießt und per WLAN an einen PC weiterschickt..

Was wäre hier die smarteste Lösung?
Ich würde mich sehr über ein paar hilfreiche Antworten freuen.
Danke euch schon im Vorhinein.
LG

von silsi (Gast)


Lesenswert?

Krajay K. schrieb:
> Was wäre hier die smarteste Lösung?

C++, C oder Python zu verwenden

von silsi (Gast)


Lesenswert?

Die einzige Möglichkeit C# auf dem RPi (ich nehm mal an da drauf läuft 
kein Windows) zum laufen zu bekommen wäre, es in ein Java-Bytecode zu 
kompilieren. Dabei verlierst du aber die Möglichkeit auf die GPIO 
zuzugreifen und auf deinem RPi muss eine komplette Java RE laufen!!! 
Sollte deine Kamera über USB (z.B. eine WebCam) angeschlossen werden, 
sollte das möglich sein.

von silsi (Gast)


Lesenswert?

*natürlich meine ich nicht Java Bytecode, sondern der von C#, auf Linux 
kann der von mono geleden werden

von Timmo H. (masterfx)


Lesenswert?

Krajay K. schrieb:
> Ich möchte ein Programm mit c# schreiben, dass mithilfe eines
> Kameramoduls ein Foto schießt und per WLAN an einen PC weiterschickt..
Wenns wirklich nur das sein soll, würde ich Python nehmen, das sind dann 
nur ein paar Zeilen Code. Einzelnes Frame via OpenCV auslesen und dann 
weg schicken.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

silsi schrieb:
> Die einzige Möglichkeit C# auf dem RPi (ich nehm mal an da drauf läuft
> kein Windows) zum laufen zu bekommen wäre, es in ein Java-Bytecode zu
> kompilieren.

Einerseits gibt es eine Windows-Variante, die auf dem RPi läuft (Windows 
10 IoT Core), andererseits gibt es die .Net-Laufzeitumgebung auch für 
Linux, sie heißt dort Mono, und damit können C#-Programme wie auch 
andere Programme für .Net auf dem Pi verwendet werden.

(Willkürlich ausgesuchte Beschreibung:)

https://logicalgenetics.com/raspberry-pi-and-mono-hello-world/

von RudiK (Gast)


Lesenswert?

Eventuell möglich wäre es mit winiot und UWP App.
Oder neuerlich angeblich mit .net core 2.1 Cross Plattform auf winiot 
oder raspian...

(Willkürlich ausgesuchte Beschreibung:) ?

https://cerkit.com/2017/11/23/running-a-net-core-2-0-webapi-app-on-the-raspberry-pi-raspbian/

von Alex G. (dragongamer)


Lesenswert?

Sei dir bewusst dass, wenn du eine Programmiersprache beherscht, du 
ziemlich komfortabel andere lernen kannst.
Am nähesten an C# ist Java. Das läuft auch auf dem Raspi und sogar 
schneller als Python.
Falls du das Visual Studio magst, kannst du dir mal Visual Studio Code 
anschauen. Das kommt zwar nicht ganz an das sehr sauber gemachte Visual 
Studio für C# ran, aber ist nah dran und unterstützt dafür etliche 
Sprachen.

von Fred R. (Firma: www.ramser-elektro.at/shop) (fred_ram)


Lesenswert?

UWP ist gewöhnungsbedürftig.

Mono ist nicht immer das Stabilste.
Ausserdem ergeben sich mit Mono meist Darstellungsprobleme.
Ausserdem: Es werden bei Mono nur Windows Forms unterstützt. Nix mit 
WPF.

: Bearbeitet durch User
von Axel S. (a-za-z0-9)


Lesenswert?

Krajay K. schrieb:
> Nach einiger Recherche ob man bzw. wie man auf VisualStudio
> programmierte Anwendungen auf dem RPI zum Laufen bringt, kam ich auf
> keinen eindeutigen Pfad..

Klar. "VisualStudio" ist ja auch keine Programmiersprache.

> Ich möchte ein Programm mit c# schreiben, dass mithilfe eines
> Kameramoduls ein Foto schießt und per WLAN an einen PC weiterschickt..

C# ist eine Sackgasse, weil es das offiziell nur von Microsoft nur für 
Microsoft "Betriebssysteme" gibt. Es gibt zwar mit Mono eine Portierung 
auf Linux, aber alles was ich bisher von Mono gehört habe, läßt mich 
maximalen Abstand halten. So ist es zwar genauso fett und behäbig wie 
die .Net Umgebung auf Windows, es ist aber unvollständig (nicht alles, 
was mit .Net auf Windows funktioniert, funktioniert auch mit Mono) und 
buggy.

Angesichts deines anscheinend überschaubaren Kenntnisstandes habe ich 
große Zweifel, daß du mit Mono zum Ziel kommst.

> Was wäre hier die smarteste Lösung?

Eine Programmiersprache verwenden, die der RasPi direkt unterstützt. 
Sehr beliebt auf dem Pi ist Python. Aber du hast auch C, C++, Perl, 
Java, Tcl, Lua, Node.js und eine Tonne weiterer Sprachen zur Verfügung. 
Nur halt nichts, was mit "Visual" anfängt, das ist alles proprietärer 
Windows-only Krempel.

Alternativ: pack ein Windows auf deinen Pi.

: Bearbeitet durch User
von Alex G. (dragongamer)


Lesenswert?

Naja, also Mono ist jedenfalls gut genug um Unity damit zu betreiben.

von Axel S. (a-za-z0-9)


Lesenswert?

Alex G. schrieb:
> Naja, also Mono ist jedenfalls gut genug um Unity damit zu betreiben.

Da ist kein Widerspruch. Wenn man von Anfang an mit Mono programmiert, 
dann fallen einem die Inkompatibilitäten oder fehlenden Features im 
Vergleich zu .Net wahrscheinlich gar nicht auf. Als geübter 
Programmierer (der TE also eher nicht) kann man um Bugs notfalls herum 
programmieren.

Und daß Mono fett ist - ok, Java hat da die Latte weit nach oben gelegt. 
Für irgendwas müssen die 4 Kerne und das GB RAM des RasPi 2/3 ja auch 
genutzt werden.

von RudiK (Gast)


Lesenswert?

Axel S. schrieb:
> C# ist eine Sackgasse, weil es das offiziell nur von Microsoft nur für
> Microsoft "Betriebssysteme" gibt.

Das war mal... Stimmt so schon lange nicht mehr...  .net core läuft auf 
Linux ohne mono und ohne zusätzlicher virtueller Maschine die mein 
"sicheres" Linux wieder gefährdet wie Java ?. Läuft quasi native und 
wesentlich Ressourcen sparender. Ist extra dafür OpenSource damit es 
nicht nur für MS-OS ist und wird speziell für C# angeboten. Aktuell noch 
mit Einschränkungen wie keine GUI, aber die braucht ein echter Linuxer 
nicht^^. Möglich wäre auch VS und C++ und wirklich native ohne .net core 
inkl nativen debuggen der Linux Anwendung unter Windows...
Der TE wollte VS und C#. Bin aber aktuell trotzdem auch der Meinung das 
dies keine ideale Lösung für Linux im speziellen für RPi ist, eher ein 
Notbehelf.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

RudiK schrieb:
> Möglich wäre auch VS und C++ und wirklich native ohne .net core inkl
> nativen debuggen der Linux Anwendung unter Windows...

Das ist mit "VisualGDB" möglich.

von guest (Gast)


Lesenswert?

Rufus Τ. F. schrieb:
> Das ist mit "VisualGDB" möglich.

Das ist auch ohne VisualGDB möglich.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

guest schrieb:
> Das ist auch ohne VisualGDB möglich.

Auch als "cross debugging", d.h. mit dem unter Windows laufendem VS und 
einem auf dem RPi laufenden Linux-Programm?

von 900ss (900ss)


Lesenswert?

Rufus Τ. F. schrieb:
> Auch als "cross debugging", d.h. mit dem unter Windows laufendem VS und
> einem auf dem RPi laufenden Linux-Programm?

Ob mit VS weiß ich nicht. Aber mit Eclipse das sehr gut. Wenn nur VS 
gefragt ist, dann hab ich nichts gesagt ;)

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

900ss D. schrieb:
> Wenn nur VS gefragt ist,

Sieh Dir den Threadtitel an.
Und das hier:

RudiK schrieb:
> Möglich wäre auch VS und C++ und wirklich native ohne .net core inkl
> nativen debuggen der Linux Anwendung unter Windows...

Insofern ist Eclipse die falsche Antwort.

von 900ss (900ss)


Lesenswert?

Rufus Τ. F. schrieb:
> Threadtitel

Hmmmmm.... kein Kommentar ;)

: Bearbeitet durch User
von guest (Gast)


Lesenswert?

Rufus Τ. F. schrieb:
> Auch als "cross debugging", d.h. mit dem unter Windows laufendem VS und
> einem auf dem RPi laufenden Linux-Programm?

Jep, ein paar mehr Infos gibt es hier:
https://blogs.msdn.microsoft.com/vcblog/2017/04/11/linux-development-with-c-in-visual-studio/

Oder als "open folder project", ähnllich wie bei VSCode:
https://docs.microsoft.com/en-us/cpp/ide/non-msbuild-projects?view=vs-2017

Oder via CMake:
https://blogs.msdn.microsoft.com/vcblog/2018/11/26/using-visual-studio-for-cross-platform-c-development-targeting-windows-and-linux/

von guest (Gast)


Lesenswert?


Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.