j--man
Goto Top

Programmierte Software auf Einplatinencomputer bzw. Mikrokontrollern installieren

Hallo zusammen,

ich programmiere seit mehreren Jahren u. A. mit Java und will mich nun nicht nur auf die Softwareentwicklung spezialisieren sondern mich nun auch mehr mit externer Hardware auseinander setzen. Ich besitze bereits einen Raspberry PI und habe mit diesem auch schon etwas Erfahrung sammeln können. Was aber wäre, wenn ich mir beispielsweise eine eigene Smartwatch programmieren und zusammenbauen möchte? Es gibt bereits Arduino Tutorials, ich will allerdings was komplett eigenes machen. Das heißt: Ich will mir Hardware kaufen und eine bestimmte Programmiersprache verwenden, alles andere zu 100% selbst entwickeln, außer sämtliche Materialen (wie Gehäuse etc.) welches ich für die Uhr aufwenden müsste. Welche Hardware bräuchte ich am Beispiel "SmartWatch" (Arduino-Hardware ausgenommen)? Und wie gehe ich dann mit dieser Hardware um? Ist es möglich pures Java draufzuspielen welches ich nutzen kann? Wenn ja, müsste ja eine bestimmte .jar beim Start ja immer selber starten.. Gibt es im allgemeinen ein spezielles Thema der Informatik wenn es um so etwas geht, in welche ich mir nur reinlesen müsste um dies hinzubekommen?

Vielen Dank im Vorraus!

Content-Key: 282147

Url: https://administrator.de/contentid/282147

Printed on: April 24, 2024 at 03:04 o'clock

Member: broecker
broecker Sep 06, 2015 updated at 19:28:40 (UTC)
Goto Top
Moin,

das Stichwort und Thema ist wohl "embedded systems"?!

Aber Deine Intention wäre wohl ein ganzes OS?:

"Hello everybody out there using minix –
I’m doing a (free) operating system (just a hobby, won’t be big and
professional like gnu) for 386(486) AT clones. This has been brewing
since april, and is starting to get ready."

Warum sollte man also "alles" erneut selbst entwickeln wollen?
Linux würde sich wohl weiterhin als moderne Plattform anbieten, wenn's von der Lizenz her nicht passt, BSD; die Java-VM gibt's wenn's denn sein muß (Performance?) dazu und damit stünde bei einer ARM-Plattform dem Projekt wenig im Weg.
HG
Mark
Member: J--Man
J--Man Sep 06, 2015 at 19:39:01 (UTC)
Goto Top
Guten Abend broecker,

danke für dein Beitrag, das hat mir schon einige Fragen beantwortet. Wenn ich jetzt aber am Beispiel SmartWatch ein Betriebssystem wie Linux benutzen würde:

1. Das Performance-Problem mit Java hatte ich bereits gehabt, aber mir ist keine Alternative in den Kopf gekommen. Was bietet sich als Programmiersprache an, Python?
2. Wenn ich eine selbstgebaute SmartWatch mit einem eigenen Online-Shop verkaufe welche auf Linux basiert, benötige ich eine spezielle Erlaubnis aufgrund Linux?

Über BSD werde ich mich informieren, "embedded systems" ist ein gutes Stichwort, vielen Dank!
Habe meine Ausbildung als Fachinformatiker AE erst letzte Woche begonnen, vielleicht erfahre ich da ja noch etwas davon. Habe wie gesagt die letzten Jahre nur programmiert.
Member: broecker
broecker Sep 06, 2015, updated at Sep 07, 2015 at 13:39:14 (UTC)
Goto Top
1) Python durchaus, Perl auch, aber auch jede andere Compiler-basierte Sprache, eher wäre die Frage nach einfachen Frameworks für die Hardware-Integration zu stellen - damit kenne ich mich aber bei ARM nicht aus.
2) Linux ist ja OpenSource nach GPL, d.h. die Weitergabe wird mit SourceCode kein Lizenz-Problem aufwerfen, der Name "Linux" ist geschützt, dafür wäre tatsächlich in der Werbung eine Erlaubnis nötig.
Wenn es auch darum geht, das eigene Projekt bestmöglich vor Weitergabe zu schützen, bietet Dir die BSD-Lizenz von Anfang an mehr Freiheit, den Kunden und anderen Mitmachern aber weniger.
Was ist also das Ziel? ein vermarktbares Produkt oder die Technologie mit Unterstützung kennenzulerenen?
HG
Mark
Member: Dirmhirn
Dirmhirn Sep 07, 2015 updated at 13:23:45 (UTC)
Goto Top
Hi,

dafür benötigst du einen Microcontroller. Gibt es in vielen Varianten von der Stange (Speicher, Takt, IO-Ports, ...) oder FPGAs (das ist aber noch 3 Nummern über Arduino-MC programmieren) für mehr Speed und individuelle Funktionen.

MCs programmierst du meist in C/C++ oder Assembler wenn es sehr zeitkritische Funktionen sind. Du programmierst aber im Allgemeinen eher die Funktionen die benötigt werden und kein Betriebssystem auf dem du dann verschiedene Programme ausführen kannst. (Linux & Co vs. MC-Programm - sehr kurz zusammengefasst.) Bevor du dich an dein eigenes OS machst solltest du dir wie gesagt Linux oder zb Android ansehen (ja auch Linux, aber mit Apps & Co ein anderes Konzept.)

Smartwatch ist da ein eher schweres Einstiegsthema, da du mit Leistung und Energieversorgung sehr begrenzt bist. Zb gibt es viele MCs in normaler und SMD bauweise (kleiner). Ohne SMD wird eine Smartwatch wohl recht klobig werden ;-/ Aber SMD ist wieder kompliziert mit der Hand zu löten - dafür brauchst du auf jeden Fall Erfahrung.

Atmel wäre auch eine mögliche MC Marke. Haben auch ein eigenes Toolset: http://www.mikrocontroller.net/articles/Atmel_Studio (MC.net ist ebenfalls zu empfehlen)

sonst:
https://en.wikipedia.org/wiki/Java_Optimized_Processor
hat ein Kollege sein Diplomarbeit drüber geschrieben, kann zach sein wie alle MCs face-wink kA wie viele Implementationen es davon wirklich gibt.

sg Dirm
Member: J--Man
J--Man Sep 07, 2015 updated at 13:38:47 (UTC)
Goto Top
Hi Dirnhim,

zum ersten Abschnitt: Du hast damit einen meiner großen Zweifel ("Welche Hardware benötige ich?") beseitigt. Mikrocontroller also. Wie aber meinst du "noch 3 Nummern"?.. Dass das schwerer ist und mehr Erfahrung benötigt?

zum zweiten Abschnitt: Genau so hatte ich mir das vorgestellt: Ich programmiere eine in C. Java wäre wie broecker schon meint zu unperformant. Doch wie ist das bei den Mikrokontrollern? Kann ich die auf irgendeine weise mit meinem PC verbinden und mss ich einen bestimmten Export meines C-Programms auf den Speicher des MCs schieben?
Was genau sollte ich mir bei Linux angucken? Linux ist ja jetzt nix allzu kleines. Werde mich aber sofort informieren.

Zum Löten hätte ich einen erfahrenen Handwerker an meiner Seite. Aber sich mit Mikrocontrollern zu beschäftigen ist natürlich wieder ein anderes Thema würde man sich wahrscheinlich intensiv informieren sollte. Dazu wäre ich allerdings auch bereit.

Den JOP werde ich mir auch mal genauer anschauen. Wenn da wirklich alle Faktoren stimmen die ich mir so vorstelle, wärs damit auf jeden Fall ein Versuch wert.

Vielen Dank schonmal für die hilfreiche Auskunft!

Viele Grüße
Member: J--Man
J--Man Sep 07, 2015 at 13:49:06 (UTC)
Goto Top
Hallo broecker,

ich will mich intensiv damit beschäftigen und mich soweit lehren ein vermarktbares Produkt herstellen zu können, auch wenn ich mir dazu neues beibringen muss. Auch etwas wichtig ist z. B. dass ein Kunde, welcher Kenntnisse in der IT besitzt nicht direkt das Produkt decompilen und den Code sehen kann.

Ich verstehe nur nicht den Unterschied zu "Technologie mit Unterstützung kennenlernen". Obwohl ich ein vermarktbares Produkt anziele soll dies möglichst qualitativ sein. Das soll möglich sein, indem ich mich stark mit dem Thema beschäftige und auseinander setze.

habe eben etwas länger nach einer BSD-Lizenz gegooglet, allerdings nix erwerbbares gefunden, nur einige Erklärungen zu Open-Source-Softwares wie GLP, BSD, ...

Viele Grüße
Member: Dirmhirn
Dirmhirn Sep 07, 2015 at 14:13:46 (UTC)
Goto Top
Hi,

Zitat von @J--Man:
Wie aber meinst du "noch 3 Nummern"?.. Dass das schwerer ist und mehr Erfahrung benötigt?
das war auf FPGAs bezogen - da du dann auch VHDL lernen musst und afaik recht teure Tools benötigst.

Doch wie ist das bei den Mikrokontrollern? Kann ich die auf irgendeine weise mit meinem PC verbinden und mss ich einen bestimmten Export meines C-Programms auf den Speicher des MCs schieben?
Du musst den code für den MC kompilieren und dann mit dem "Programmer" ein Baustein (am Board oder für eine Smartwatch wohl mit Stecker) auf den MC laden. gibt's zb mit USB-Kabel. Einige Flags musst du auch noch pasend setzen.
Für MCs musst du viel Manuals lesen.

Zum Löten hätte ich einen erfahrenen Handwerker an meiner Seite. Aber sich mit Mikrocontrollern zu beschäftigen ist natürlich wieder ein anderes Thema würde man sich wahrscheinlich intensiv informieren sollte. Dazu wäre ich allerdings auch bereit.
SMD-Ofen & Co vorhanden - gut face-wink

lange Rede kurzer Sinn, ich denke du bist auf http://www.mikrocontroller.net/ besser aufgehoben.

Obwohl ich ein vermarktbares Produkt anziele soll dies möglichst qualitativ sein. Das soll möglich sein, indem ich mich stark mit dem Thema beschäftige und auseinander setze.
dann kann man eigentlich nur ein entsprechendes Studium (elektrotechnik, technische Informatik), entsprechende Kurse oder eine Schule empfehlen.

sg Dirm
Member: broecker
broecker Sep 07, 2015 at 14:52:34 (UTC)
Goto Top
... und das würde alles nebenbei eben sprengen,
wenn man auf 20% Leistung und 50% Laufzeit verzichten kann, sollte auf ARM-Basis ein Android/Linux und eine Hochsprache auch vernünftige Ergebnisse in erträglicher Zeit "als Hobby" neben der Ausbildung möglich sein - nicht alles neu erfinden.
Zur Lizenz: ich sprach gar nicht von kaufen, sondern von unterschiedlichen OS (Linux oder BSD) um dann später offen zu legen (GPL: mehr Unterstützung) oder mehr verheimlichen zu dürfen (BSD), "kostenlos" ist beides.
Ich denke, eine Smartwatch mit Custom-ROM sollte für <150 Euro schon zu kriegen sein, damit würde man eine funktionsfähige Plattform als Prototyp haben -
HG
Mark
Member: J--Man
J--Man Sep 07, 2015 at 19:59:20 (UTC)
Goto Top
Guten Abend broecker,

dass etwas mit Linux/Android zu programmieren leichter und schneller möglich wäre wusste ich bereits. Aber durch deine Aussage, dass nur so ca. 20% der Leistung wegfallen ist mir aufgefallen dass du komplett recht hast, dass ein solches Betriebssystem zu nutzen tatsächlich viel einfacher wäre. Meine Angst war anfangs, dass mein Produkt nicht professionell genug werden könnte, wenn ich so etwas wie Linux nutzen würde. Für große Unternehmen bzw. Projekte ist es das wahrscheinlich auch nicht. Für mich aber vorerst aber sicherlich ausreichend.

Ich werde mich nochmal melden sobald ich denn genauere Ideen habe was ich brauche und bedanke mich für deine Hilfe, habe hier durch vieles neues durchblicken können.

Viele Grüße
Member: J--Man
J--Man Sep 07, 2015 at 20:05:23 (UTC)
Goto Top
das war auf FPGAs bezogen - da du dann auch VHDL lernen musst und afaik recht teure Tools benötigst.
Ach, verstehe, müsste mir also wohl einiges neues erlernen, das würde wahrscheinlich erst zu späteren Zeitpunkten der Fall sein.

Du musst den code für den MC kompilieren und dann mit dem "Programmer" ein Baustein (am Board oder für eine Smartwatch wohl mit Stecker) auf den MC laden. gibt's zb mit USB-Kabel. Einige Flags musst du auch noch passend setzen.
Für MCs musst du viel Manuals lesen.
Ach dann sollte das kein Problem werden. Finde ich Informationen zu den Flags auch in den Manuals oder ist das wiederum ein weiteres Thema?

SMD-Ofen & Co vorhanden - gut face-wink

lange Rede kurzer Sinn, ich denke du bist auf http://www.mikrocontroller.net/ besser aufgehoben.


Bin ich ab und zu drauf gestoßen in letzter Zeit ohne der Seite meine Aufmerksamkeit zu schenken, werd' mich nun aber machen, danke!

dann kann man eigentlich nur ein entsprechendes Studium (elektrotechnik, technische Informatik), entsprechende Kurse oder eine Schule empfehlen.

Auch wenn ich vor kurzem eine Ausbildung als Fachinformatiker für Anwendungsentwicklung gestartet habe, hoffe ich mal, dass solche Themen, beziehungsweise Teile solcher Themen vielleicht mal kurz angesprochen werden. Genauer informieren kann ich mich dann ja selbstständig nochmal.

Danke für die vielen guten Vorschläge und noch einen schönen Abend!
Member: Dirmhirn
Dirmhirn Sep 08, 2015 at 07:47:37 (UTC)
Goto Top
Finde ich Informationen zu den Flags auch in den Manuals oder ist das wiederum ein weiteres Thema?
ja.

nicht schlecht für den Einstieg sind auch Einsteiger Sets. Da kannst du dich vorerst aufs programmieren konzentrieren und weißt, dass zmdest die Hardware passt.
zb sowas:
http://shop.myavr.de/index.php?404;http://www.myavr.de:80/shop/article. ...
(kenn das Set nicht, nur ein Beispiel - hier würde ich auch einmal auf MC.net stöbern.)

Meine Angst war anfangs, dass mein Produkt nicht professionell genug werden könnte, wenn ich so etwas wie Linux nutzen würde. Für große Unternehmen bzw. Projekte ist es das wahrscheinlich auch nicht.
bei sehr sehr vielen "großen und riesigen" Projekten hast du Linux, Windows & Co drunter laufen. In Österreich sah man immer wieder bei Fahrkartenautomaten Windows Absturzmeldungen face-wink
Android baut auch auf Linux auf... und das ist auch kein kleines Projekt.

sg Dirm
Member: J--Man
J--Man Sep 08, 2015 at 14:04:19 (UTC)
Goto Top
nicht schlecht für den Einstieg sind auch Einsteiger Sets. Da kannst du dich vorerst aufs programmieren konzentrieren und weißt, dass zmdest die Hardware passt.
zb sowas:
http://shop.myavr.de/index.php?404;http://www.myavr.de:80/shop/article. ...
(kenn das Set nicht, nur ein Beispiel - hier würde ich auch einmal auf MC.net stöbern.)


Hast du neben avr noch andere Alternativen zu empfehlen? Benötige ich die AVR-Umgebungsentwicklung für 99,- € wirklich? Das Amtel AVR Studio ist anscheinend gratis und eignet sich auch zum Programmieren. Ich weiss ja nicht ob du auch schonmal Erfahrung mit AVR gesammelt hast.

bei sehr sehr vielen "großen und riesigen" Projekten hast du Linux, Windows & Co drunter laufen. In Österreich sah man immer wieder bei Fahrkartenautomaten Windows Absturzmeldungen face-wink
Android baut auch auf Linux auf... und das ist auch kein kleines Projekt.

Ach stimmt, Linux wird dann wohl meine 1. Option sein face-smile
Member: Dirmhirn
Dirmhirn Sep 08, 2015 at 15:22:40 (UTC)
Goto Top
http://www.mikrocontroller.net/

aber wenn es an den 99€ scheitert wirst du mit Mikrocontrollern wenig Freude haben face-wink

Ich hatte das alles an der Uni - da ist's gratis und man will lieber nicht wissen wie teuer die Geräte sind face-smile