Hallo Communitiy,
ich habe vor mein eigenes Autoradio mit folgenden Funktionen zu
programmieren.
- Daten via OBD2 Schnittstelle aus zu lesen und an die richtigen Stellen
einsetzen
- die Funktionen der Button sollten selbst erklärend sein :)
der Miniplayer soll nur eine art Widget sein, der richtige Player
befindet sich im Mediacenter..
durch den Button "Klappe" soll ein Relai angesteuert werden.
Mein Gedanke war ein Raspberry Pi 3 b mit GPS, einer passenden
Soundkarte und obd2 Auslesegerät..
Jedoch scheitert das Projekt wahrscheinlich schon am realisieren der
Grafik im Anhang..
Könntet ihr mir weiter helfen, wie ich mein/dieses Projekt programmieren
kann? (möchte gern mein Design, wie auf dem Bild nutzen)
Ja, die Betriebserlaubnis des Fahrzeuges wird dadurch erlöschen.
Ein Tablet oder ein Androidradio möchte ich nicht verbauen :)
über hilfreiche Antworten würde ich mich freuen :)
Michele96 schrieb:> ich habe vor mein eigenes Autoradio
:
Der Aspekt Radio ist durch blosses so Beschriften einer Schaltfläche
wohl ganz untergegangen... oder abgedeckt.
> über hilfreiche Antworten würde ich mich freuen :)
Würdest wirklich? Ausser es ist hier im uC Forum?
Vielleicht aber doch, jedoch wohl nicht lange... :-(
Michele96 schrieb:> Mein Gedanke war ein Raspberry Pi 3 b mit GPS, einer passenden> Soundkarte und obd2 Auslesegerät..
Warum nicht einfach ein CAN Modul? Oder gleich einen SBC mit
CAN-Funktionalität nutzen? Es gibt auch Mikrocontroller mit genug
Leistung für Grafik-Displays und CAN-Schnittstelle, z.B. STM32F7. Ist
dann halt mehr Programmieraufwand.
> Warum nicht einfach ein CAN Modul? Oder gleich einen SBC mit> CAN-Funktionalität nutzen? Es gibt auch Mikrocontroller mit genug> Leistung für Grafik-Displays und CAN-Schnittstelle, z.B. STM32F7. Ist> dann halt mehr Programmieraufwand.
v.A. f. den Radio Teil - oder ist der nur da um die Betreffzeile zu
schmücken?
unter den einzelnen Menüreitern sollen natürlich die aufgeschrieben
funktionen mit neuem Fenster geöffnet werden.
Drahtloser Autologe schrieb:> Warum nicht einfach ein CAN Modul? Oder gleich einen SBC mit> CAN-Funktionalität nutzen? Es gibt auch Mikrocontroller mit genug> Leistung für Grafik-Displays und CAN-Schnittstelle, z.B. STM32F7. Ist> dann halt mehr Programmieraufwand.>> v.A. f. den Radio Teil - oder ist der nur da um die Betreffzeile zu> schmücken?
Kann man hiermit auch eigene Grafiken zu Button Verwenden?
und wie bekomm ich von dem Chip ein Soundsignal an das Audiodignal des
KFZ? (mind. 50W)
Welche Programmiersprachen kann man hierfür verwenden? (C++?)
Drahtloser Autologe schrieb:> Warum nicht einfach ein CAN Modul? Oder gleich einen SBC mit> CAN-Funktionalität nutzen? Es gibt auch Mikrocontroller mit genug> Leistung für Grafik-Displays und CAN-Schnittstelle, z.B. STM32F7. Ist> dann halt mehr Programmieraufwand.>> v.A. f. den Radio Teil - oder ist der nur da um die Betreffzeile zu> schmücken?
Naja, der Begriff "Autoradio" ist ja viel seitig.. Hoffe allerdings, das
ich das Thema verständlich erklären konnte.. :)
So einfach ist das nicht...
Was für Vorerfahrungen hast du so?
Ich würde empfehlen erstmal das nötige zu lernen um die Software mittels
Python auf dem PC zum laufen zu bringen weil diese Programmeirsproche
auch auf dem Raspi läuft.
Dafür gibt es Grafiklibrarieries mit denen man das in ein paar Wochen
von grundauf als Hobby erlernen kann:
https://wiki.python.org/moin/GuiProgramming
Zumindest sofern du zum programmierer geignet bist. Jeder lernt das in
anderem Tempo...
Die einfachste Möglichkeit sowas mit der Funktionalität zu kriegen
dürfte Kodi (ehemals XBMC) mit einem Theme drauf sein.
Dazu ein Plugin für deine Fahrzeug-Parameter und das Relais.
Alex G. schrieb:> So einfach ist das nicht...> Was für Vorerfahrungen hast du so?>> Ich würde empfehlen erstmal das nötige zu lernen um die Software mittels> Python auf dem PC zum laufen zu bringen weil diese Programmeirsproche> auch auf dem Raspi läuft.> Dafür gibt es Grafiklibrarieries mit denen man das in ein paar Wochen> von grundauf als Hobby erlernen kann:> https://wiki.python.org/moin/GuiProgramming> Zumindest sofern du zum programmierer geignet bist. Jeder lernt das in> anderem Tempo...
geht das doch mit Python? cool, habe bei Python nie was passendes
Gefunden bezüglich 'Grafiken' als Button zu benutzen.
Ich habe bis jetzt nur gelernt, wie man mit CoDeSys im Strukturiertem
Text programmiert. habe allerdings nebenbei in Python und C++ rein
geschaut.. aber dann würde ich mir Python nochmal genauer anschauen und
das projekt nach und nach aufbauen..
Gibt es bei Python auch .lib zum auslesen von USB Mediadatein? und
Radiofunktionen?
Max D. schrieb:> Die einfachste Möglichkeit sowas mit der Funktionalität zu kriegen> dürfte Kodi (ehemals XBMC) mit einem Theme drauf sein.> Dazu ein Plugin für deine Fahrzeug-Parameter und das Relais.
Das war das Fertige Design? das gefällt mir nicht und bringt mir nicht
das, was ich mir vorstelle :)
Du kannst natürlich alles selber programmieren, aber bis du z.B. einen
Mediaplayer programmiert hast bist du ganz schön beschäftigt.
Mit Kodi hast du ein gutes Gerüst (GUI+Player-Funktionen) auf das du zum
einen dein Theme legen kannst und zum anderen in das du über Plugins
verschiedene Funktionen einbinden kannst.
Über die Themes kann man eigtl. die komplette UI selber definieren (z.B.
hier: https://forum.kodi.tv/showthread.php?tid=225688 mit bmw logo).
Ich will dir die Fähigkeit selber sowas zu schreiben nicht absprechen,
aber es wird garantiert ein großer Brocken Arbeit und am Ende hast du
etwas das von aussen auch nicht besser aussieht.
Ich würde meine Energie lieber in das grafische Design und das Interface
zum Auto stecken. Damit bist du nämlich eh erstmal beschäftigt.
Max D. schrieb:> Du kannst natürlich alles selber programmieren, aber bis du z.B.> einen Mediaplayer programmiert hast bist du ganz schön beschäftigt.> Mit Kodi hast du ein gutes Gerüst (GUI+Player-Funktionen) auf das du zum> einen dein Theme legen kannst und zum anderen in das du über Plugins> verschiedene Funktionen einbinden kannst.>> Über die Themes kann man eigtl. die komplette UI selber definieren (z.B.> hier: https://forum.kodi.tv/showthread.php?tid=225688 mit bmw logo).>> Ich will dir die Fähigkeit selber sowas zu schreiben nicht absprechen,> aber es wird garantiert ein großer Brocken Arbeit und am Ende hast du> etwas das von aussen auch nicht besser aussieht.>> Ich würde meine Energie lieber in das grafische Design und das Interface> zum Auto stecken. Damit bist du nämlich eh erstmal beschäftigt.
Ich glaub ich verstehe es nicht richtig mit dem Kivy.
Ich habe ja oben ein Bild von meinem Design (Alpha, wird noch ein wenig
bearbeitet)
Besteht mit Kivy die Möglichkeit, die Funktionen des players zu
verwenden?
Drahtloser Autologe schrieb:> v.A. f. den Radio Teil - oder ist der nur da um die Betreffzeile zu> schmücken?
Da gibts doch IC's für, oder? Der STM32 hat Audio-Interfaces (I2S u.a.).
Michele96 schrieb:> Kann man hiermit auch eigene Grafiken zu Button Verwenden?
Der Controller weiß nichts von "Buttons" oder "Grafiken". Du sendest dem
Display Pixel für Pixel, was es anzeigen soll. Da kannst du Buttons,
Bilder, Diagramme, was auch immer darstellen. Es empfiehlt sich die
Verwendung einer Grafik-Bibliothek, um das zu vereinfachen, z.B.
STemWin.
Michele96 schrieb:> und wie bekomm ich von dem Chip ein Soundsignal an das Audiodignal des> KFZ? (mind. 50W)
Audio-Interface (I2S), Audio-Codec und dann irgendein Verstärker?
Das STM32F7-Discovery Board hat ein Display und einen Audio-Codec mit
Klinken-Buchsen eingebaut, so als Start.
Michele96 schrieb:> Welche Programmiersprachen kann man hierfür verwenden? (C++?)
C, C++, Basic, Python, Lua, Assembler, Pascal, ...
Michele96 schrieb:> geht das doch mit Python? cool, habe bei Python nie was passendes> Gefunden bezüglich 'Grafiken' als Button zu benutzen.
Python ist eine universelle Programmiersprache, die kann prinzipiell
alles darstellen. Je nach verwendetem Grafik-System auch beliebige
Buttons.
Ich finde es jedenfalls niedlich, dass du die "Grafik-Buttons" so als
Hauptkriterium siehst. Das ist so wie zu sagen "ich möchte ein Auto
bauen und suche dafür eine Chassis-Fertigungs-Technologie, mit der ich
die Lenkradfarbe ändern kann".
Michele96 schrieb:> Ich habe bis jetzt nur gelernt, wie man mit CoDeSys im Strukturiertem> Text programmiert.
Das ist ja auch kein "programmieren"...
Michele96 schrieb:> Gibt es bei Python auch .lib zum auslesen von USB Mediadatein? und> Radiofunktionen?
Python verwendet keine .lib Dateien. Python selber kann wohl kaum USB
direkt ansprechen, aber wenn ein Betriebssystem wie Linux darunter liegt
ist es kein Problem Dateien von USB-Sticks zu öffnen.
Die Radiofunktion ist doch ein Hardware-Problem, eine Programmiersprache
kann wohl kaum Hochfrequenz-Signale empfangen.
Michele96 schrieb:> Das war das Fertige Design? das gefällt mir nicht
Das Design eines fertigen Systems anzupassen sollte die allereinfachste
Möglichkeit sein... Du kaufst doch auch kein neues Auto, nur weil dir
die Lenkradfarbe des alten nicht gefällt.
Michele96 schrieb:> Ich glaub ich verstehe es nicht richtig mit dem Kivy.> Ich habe ja oben ein Bild von meinem Design (Alpha, wird noch ein wenig> bearbeitet)>> Besteht mit Kivy die Möglichkeit, die Funktionen des players zu> verwenden?
Kodi ist erstmal ein Media-Center.
In dem default-theme ist das ausgelegt um auf einem TV oder dgl benutzt
zu werden. (XBMC war die Abkürzung für Xbox Media Center)
Der "media-player" teil ist schon fertig.
Du gehst jetzt her und schreibst ein theme dafür mit dem du die
Menüstruktur und Darstellung der Knöpfe anpasst.
Max D. schrieb:> Michele96 schrieb:> Ich glaub ich verstehe es nicht richtig mit dem Kivy.> Ich habe ja oben ein Bild von meinem Design (Alpha, wird noch ein wenig> bearbeitet)> Besteht mit Kivy die Möglichkeit, die Funktionen des players zu> verwenden?>> Kodi ist erstmal ein Media-Center.> In dem default-theme ist das ausgelegt um auf einem TV oder dgl benutzt> zu werden. (XBMC war die Abkürzung für Xbox Media Center)> Der "media-player" teil ist schon fertig.>> Du gehst jetzt her und schreibst ein theme dafür mit dem du die> Menüstruktur und Darstellung der Knöpfe anpasst.
also könnte ich das Media-Center so verwenden, wenn ixh auf meinen
button drücke, das ich dann zu diesem Mediamenü gelange? das wär aufjede
fall nice :)
möchte mich schonmal für die, bis jetzt reichlichen und hilfreichen
Antworten bedanken :)
Ich würde dieses Projekt anschließend mit euch Teilen (inkl.
Beschreibung)
Ich weiß nicht zu 100% wie jedes Detail von Kodi gelöst ist, aber ich
würde mir an deiner Stelle einfach mal Kodi auf den Desktop laden und da
z.B. das bmw theme installieren. Dann kannst kannst du dir anhand der
Struktur der Dateien einen Überblick verschaffen wie das ganze gelöst
ist und wo du eingreifen müsstest um deine Lösung umzusetzen.
Für Sachen wie Ladedruck würde ich als Ausgangspunkt vlt. ein
Wetterdaten Plugin nehmen. Da werden externe Daten geladen und
visualisiert. Da könntest du ansetzen um deine Daten aus deinem Kfz zu
holen und ebenfalls anzuzeigen.
Max D. schrieb:> Ich weiß nicht zu 100% wie jedes Detail von Kodi gelöst ist, aber> ich würde mir an deiner Stelle einfach mal Kodi auf den Desktop laden> und da z.B. das bmw theme installieren. Dann kannst kannst du dir anhand> der Struktur der Dateien einen Überblick verschaffen wie das ganze> gelöst ist und wo du eingreifen müsstest um deine Lösung umzusetzen.> Für Sachen wie Ladedruck würde ich als Ausgangspunkt vlt. ein> Wetterdaten Plugin nehmen. Da werden externe Daten geladen und> visualisiert. Da könntest du ansetzen um deine Daten aus deinem Kfz zu> holen und ebenfalls anzuzeigen.
Danke sehr :)
Ich probier das mal aus..
Mit den Auslesedaten werde ich ein OBD2 auslesemodul für den Pi
verwenden (Ladedruck muss evtl. extra abgegriffen werden)
Max D. schrieb:> Ich weiß nicht zu 100% wie jedes Detail von Kodi gelöst ist, aber> ich> würde mir an deiner Stelle einfach mal Kodi auf den Desktop laden und da> z.B. das bmw theme installieren. Dann kannst kannst du dir anhand der> Struktur der Dateien einen Überblick verschaffen wie das ganze gelöst> ist und wo du eingreifen müsstest um deine Lösung umzusetzen.> Für Sachen wie Ladedruck würde ich als Ausgangspunkt vlt. ein> Wetterdaten Plugin nehmen. Da werden externe Daten geladen und> visualisiert. Da könntest du ansetzen um deine Daten aus deinem Kfz zu> holen und ebenfalls anzuzeigen.
Ich habe jetzt mal grob geschaut, wie das mit dem "KODI" aussieht..
Leider habe ich da keinen Ansatz gefunden, wie man da eingreifen kann..
Von der Seite "Python" gibt es evtl. das ein oder andere Tool mit dem
etwas brauchbares raus kommen könnte, jedoch würde ich dies bezüglich
gern mit erfahrerenen Leuten auseinander setzen.
Bin Leider einfach zu neu im Gebiet der Programmierung von, für mich, so
komplexen Systemprogrammierungen.
Wenn jemand die ein oder andere Idee hat, wie man einzelne Komplexe in
ein schon recht komplexes Projekt mit einzubinden, wär das natürlich
mega :)
Ich zähle mal ein paar Thematiken auf:
- die Schrift der Button sollen sich beim Betätigen ändern (auf dem Bild
sind die Button transparent und ich habe das mit einer Ebene geregelt,
die sic unter dem Button Befindet)
- Navigationssystem (mir würde google-maps reichen o.ä.)
- Bluetooth und W-Lan Verbindung (Bluetooth zur Datenübertragung und zum
abspielen von Musik und Videos (wenn möglich mit anzeige von den
Titeln), W-Lan ganz klar für das Internet)
- Der "kleine" Mediaplayer, soll synchron zu dem laufen, der sich im
Mediacenter befindet.
- Es soll auch im Bereich des Sounds eine Einstellung des Klang geben
(Bass, Höhen, Tiefen, ..)
- auslesen von Livedaten aus dem Canbus (OBD2 Funktion, nur Livedaten,
keine Veränderung wie Codieren! oder Fehlerspeicher auslesen, das soll
noch unabhängig des Radios geschehen)
- nach und nach kommt sicher die ein oder andere Funktion dazu, jedoch
sollen die Punkte erstmal genügen, ist ja bis hier hin erstmal eine
Menge Aufwand
Ihr könnt euch gern auch privat melden
Email: MickelMichele@web.de
Wenn das Projekt funktioniert, würde ich es gern mit Beschreibung
vorstellen :)
hab mich mal registriert..
Das ein oder andere "Problem" in meinen Augen sehe ich wahrscheinlich
auch zu kritisch oder falsch, man merkt villt. das ich ziemlicher
Neuling auf dem Gebiet bin und Bitte daher auf Verständnis :)
An welche Informationen kommst du denn jetzt schon dran?
Ein Vollbild-Fenster mit ein paar Buttons drin ist nicht besonders
schwer, das kann man sich mit SDL oder einer anderen Bibliothek (Python
kommt z.B. mit Tkinter) schnell zusammenzimmern.
Aber deine Hauptaufgabe liegt darin, die Daten korrekt auszulesen bzw.
zu empfangen, passend aufzubereiten (d.h. in die darzustellenden
Einheiten umzuwandeln) und eventuell bestimmte Aktionen auszulösen.
Und dann hast du da noch lange kein Radio mit Bluetooth-Eingang drin.
Schon gar keins, was auch dann noch weiterspielt, wenn du einen Button
gedrückt hast und jetzt das Bild der Rückfahrkamera einblendest. Das ist
nämlich alles nicht so ganz einfach.
Außerdem verwechselst du "Raspberry Pi" und "komplexe
Systemprogrammierung". Einen Raspberry Pi programmierst du wie einen
ganz normalen Linux-PC. Also besorge dir erstmal einen Linux-PC (VMware
Player oder Virtual PC reicht) und schreibe dir erstmal alles, was ohne
Auto funktioniert, da drauf. Wenn das funktioniert, teste es auf dem Pi.
Ein erfahrener Entwickler wird für dein Vorhaben vielleicht 3-6 Monate
brauchen. Vollzeit. Wenn er weiß, was er zu tun hat.
Für dich selbst, rechne mal mit 3-6 Jahren. Danach hast du zwar das Auto
nicht mehr, dein Radio passt in kein dann aktuelles Auto mehr rein, aber
du hast viel gelernt. Viel Erfolg.
S. R. schrieb:> An welche Informationen kommst du denn jetzt schon dran?>...
das mit dem Pi war ja nur ein erster Ansatz, ich würde halt sehr gern
mehr davon lernen, jedoch ohne hilfe und ohne guten ansatz kommt man
nicht weit.
möchte nicht unfreundlich wirken, aber "viel erfolg" und kontra meiner
ideen, ohne verbesserungsvorschläge zu liefern, helfen leider kein stück
weiter :(
SM schrieb:> Michele96 schrieb:> Könntet ihr mir weiter helfen, wie ich mein/dieses Projekt programmieren> kann?>> Das geht mit Python und QT :)
Dann nehme ich Python..
Wie kann man denn Kodi mit Python zerflücken und auf den quelltext
zugreifen?
Eigentlich wollte ich gerade anmerken, dass die Implementierung eines
eigenen Navigationssystems schon eine gewaltige Aufgabe ist. Dann habe
ich aber bemerkt, dass es für Kodi offenbar sogar schon ein Google
Maps-Addon gibt. Allerdings ist es keine Kleinigkeit, daraus ein
richtiges Navi zu machen, insbesondere wegen der erforderlichen
Kartendrehung und fortwährenden Aktualisierung des Aufenthaltsortes.,
ohne dass es zu sehr ruckelt.
http://kodi.wiki/view/Add-on:Maps_Browser
Die o.a. Schätzung von 3-6 Mannmonaten für einen hinreichend erfahrenen
Entwickler halte ich für das Gesamtpaket des "Autoradios" reichlich
knapp bemessen. In der Zeit schafft man es vielleicht, die allerersten
Grundfunktionen zu implementieren bzw. aus bestehenden Projekten
anzupassen.
Dr. Sommer schrieb:> Michele96 schrieb:>> Ich habe bis jetzt nur gelernt, wie man mit CoDeSys im Strukturiertem>> Text programmiert.> Das ist ja auch kein "programmieren"...
Strukturierter Text (ST bzw. Siemens SCL) ist doch ein normaler
Pascal-Dialekt. Damit kann schon durchaus schon sehr ordentliche
Ablaufsteuerungen usw. programmieren, und das durchaus auch mit
gehobenen Ansprüchen an die Softwarestruktur.
Allerdings sollte man nicht den Umkehrschluss ziehen, d.h. aus der
erfolgreichen Implementierung einer trivialen Ablaufsteuerung schließen,
dass man nun den großen Durchblick in Sachen Softwareentwicklung habe.
Michele96 schrieb:> SM schrieb:>> Michele96 schrieb:>> Könntet ihr mir weiter helfen, wie ich mein/dieses Projekt programmieren>> kann?>>>> Das geht mit Python und QT :)>> Dann nehme ich Python..>> Wie kann man denn Kodi mit Python zerflücken und auf den quelltext> zugreifen?
Mit open("Dateiname") sowie mit dem Python ast Parser.
hab gehofft, das es eine Copy&Past sache, mit kleinigkeiten anzupassen,
wird :D
scheinbar ist der aufwand zu hoch.. aber falls sich jmd ein paar münzen
verdienen möchte, kann er gern eine pn schreiben ^^
Michele96 schrieb:> hab gehofft, das es eine Copy&Past sache, mit kleinigkeiten> anzupassen, wird :D>> scheinbar ist der aufwand zu hoch.. aber falls sich jmd ein paar münzen> verdienen möchte, kann er gern eine pn schreiben ^^
dann bitte an michele_h die pn.
Copy&Paste und Programmieren schließt sich in den meisten Fällen aus.
Zu den Münzen: Selbst bei einem symbolischen Stundenlohn von 2,50€ wirst
du es kaum bezahlen wollen. Zumindest nicht, wenn es sauber,
nachvollziehbar und performant umgesetzt sein soll.
Falls Du es dennoch selbst angehen willst:
- Teile das Projekt in sinnvolle Module
- Gliedere die Module nach Wichtigkeit und Abhängigkeiten (Tipp:
GUI/Design ist eher unwichtig)
- Leg los
Ohne große Programmierpraxis kann es sein, dass Du schnell verzweifelst,
oder die ersten Module öfters implementieren wirst.
Das soll keine Abschreckung sein, aber für ein erstes Projekt ist das
schon sehr anspruchsvoll...
Michele96 schrieb:> möchte nicht unfreundlich wirken, aber "viel erfolg" und kontra meiner> ideen, ohne verbesserungsvorschläge zu liefern, helfen leider kein stück> weiter :(
Das war nicht abwertend gemeint, sondern als Ansporn.
Stichworte wurden genug genannt. Für deine Wunschoberfläche brauchst du
eine Programmiersprache und eine Grafikbibliothek.
Als Programmiersprache hast du dich für Python entschieden, das ist
keine schlechte Wahl für einen normalen PC oder einen Raspberry Pi mit
Linux (für einen Arduino wäre es eine sehr schlechte Wahl). Dann ist
dein nächster Schritt, diese Sprache zu lernen.
Als Grafikbibliotheken wurden mindestens SDL, Qt und Tkinter genannt, es
gibt aber noch weitere. Alle diese kann man mit Python benutzen, und
keine von denen wäre eine schlechte Entscheidung für deinen
Anwendungsfall. Also musst du als nächstes diese Bibliotheken lernen.
Das ist der einfache Teil der ganzen Sache. Wenn du den nicht selbst
machen kannst, wirst du die schwierigen Sachen (Bluetooth, Ladedruck
auslesen usw.) auch nicht schaffen. Du unterschätzt den Aufwand.
Und was die Münzen angeht... rechne mal kurz nach: 1€ pro Stunde, 8
Stunden pro Arbeitstag, 20 Arbeitstage pro Monat, 6 Monate insgesamt
bist du schon bei fast 1000€. Für einen kompetenten Entwickler legst du
da noch nen Faktor 50 bis 100 drauf, und selbst dann hast du keine
Garantie, dass es in der Zeit fertig ist.
Ein paar Bitmaps malen kann ich dir übers Wochenende machen, aber damit
kannst du nichts anfangen und mir nützt es auch nichts. Vor allem würde
es in die "Radio-Software" nicht reinpassen, denn ich weiß ja nicht, wie
der Rest des Systems funktioniert. Das müsstest du schon vorher
entwerfen (wie erfährt die Oberfläche, welches Lied gerade an welcher
Position spielt, ...)
Du bist dran, es ist dein Projekt.
S. R. schrieb:> Als Programmiersprache hast du dich für Python entschieden, das ist> keine schlechte Wahl für einen normalen PC oder einen Raspberry Pi mit> Linux
Python ist unzweifelhaft eine gute Sprache, aber für sehr komplexe
Projekte bevorzugen viele eine statisch typisierte Sprache wie Java, C#
oder C++, weil man hier Fehler in verschachtelten Konstrukten schneller
findet. Irgendwann wird es auch weniger Arbeit, die Typannotationen
dranzuschreiben, als jede Funktion mit Laufzeit-Typ-Prüfungen
vollzustopfen und mit Unit-Tests extra dafür zu versehen.
Das angestrebte Projekt ist von der Komplexität her definitiv in diesem
Bereich...
Ich schrieb nicht, dass Python die erste Wahl dafür ist. Es ist aber
zumindest kein Fehler (wo ich z.B. diverse Basic- und Pascal-Dialekte
einsortieren würde).
Am Ende ist das Projekt sowieso ein Sammelsurium kleinerer Projekte,
deren Interfaces sauber definiert sein müssen. Anders kann man das
allein ohnehin nicht stemmen.
Dr. Sommer schrieb:> [Python]> Irgendwann wird es auch weniger Arbeit, die Typannotationen> dranzuschreiben, als jede Funktion mit Laufzeit-Typ-Prüfungen> vollzustopfen und mit Unit-Tests extra dafür zu versehen.
Welche Laufzeit-Typ-Prüfungen? Mit falschen Typen fliegt Dir das Ding
zur Laufzeit um die Ohren und gut ist. Die Philosophie ist eine andere
("We are all adul(nospam)ts here"). Du sollst nicht Python zu C++
umbauen. Natürlich solltest Du lieber gleich C++ nehmen.
SM schrieb:> Welche Laufzeit-Typ-Prüfungen? Mit falschen Typen fliegt Dir das Ding> zur Laufzeit um die Ohren und gut ist.
Ja, aber zu spät. Wenn ein Objekt durch verschiedene Funktions-Level und
Klassen übergeben wird, merkt man ggf. erst ziemlich spät dass es der
falsche Typ ist. Und dann gibt's fröhliches Suchen, wo jetzt genau das
falsche Objekt übergeben wurde - deswegen machen manche Leute an den
Anfang einer jeden Funktion eine Prüfung auf korrekte Typen, damit der
Fehler halt sofort auftritt und leichter zu finden ist. Da kann man aber
auch direkt eine statisch typisierte Sprache nehmen.
1. Welche Größe und Auflösung soll das Touchpad haben?
2. Welche NaviApp möchtest Du nutzen?
Ich finde den Raspberry Pi nicht schlecht, aber das Betriebssystem im
Auto von einer SD Karte zu laden halte ich für keine gute Idee.
Ich würde Dir eher zum UP oder UP² raten, weil das System hat einiges
mehr an Power, eMMC, SATA M.2 und Du bist relative frei bzgl.
Betriebssystem Windows oder Linux.
http://www.up-board.org/upsquared/
Das Board unterstützt viele verschiedene Betriebssystem und du sparst
Dir dank x86 das Cross compilieren.
Bzgl. HMI und Programmiersprache solltest Du eine nehmen welche Du schon
kennst.
Dein HMI Beispiel lässt sich sehr schnell in C# WPF o. UWP, QT C++ oder
Java realisieren.
>Verwendest Du das?
Nein, da ich keine I/O Interfaces benötigte für mein Projekt hab ich
mich zu einem Intel NUC MiniPC entschieden, aber das Feedback der
Community ist recht positiv.
Forum:
https://www.up-community.org/
Downloads:
https://downloads.up-community.org/
Torben schrieb:> Ich finde den Raspberry Pi nicht schlecht, aber das Betriebssystem im> Auto von einer SD Karte zu laden halte ich für keine gute Idee.
Stimme ich ebenfalls zu. Für die Erstimplementierung reicht das aber
vollkommen aus, und später kann man das Board ohnehin wechseln. Meine
Wahrnehmung spricht von einer stinknormalen Linux-Entwicklung und ein
bisschen Embedded, das ist relativ portabel.
Torben schrieb:> Das Board unterstützt viele verschiedene Betriebssystem und du sparst> Dir dank x86 das Cross compilieren.
Auf ein Betriebssystem muss man sich zwingend festlegen, aber ob man da
nun Windows, Linux oder was drittes nimmt, ist nebensächlich. Tools
gibt's für alles.
Cross-Compiling spielt keine Rolle. Python-Code wird nicht über Kreuz
gebaut und der TO kann auf dem Raspberry selbst komfortabel genug
entwickeln. Wir reden hier nicht von Profi-Niveau.
Torben schrieb:> Bzgl. HMI und Programmiersprache solltest Du eine nehmen> welche Du schon kennst.
Ich sehe beim TO keine nennenswerten Vorkenntnisse. Eine Sprache wird er
so oder so lernen müssen, und Python ist zumindest kein Fehler.
Thomas G. schrieb:> Die ganzen Chinaböller verwenden soweit ich weiss, Windows CE. Dafür> müsste man eigentlich genug bekommen.
Windows CE ist doch schon länger tot, nur noch nicht ganz verrottet. Mag
sein, dass man da bekannte Navi-Software draufkriegt, aber das ist weder
zukunftssicher, noch kriegt man das in seine eigene Software integriert.