Auto-Programmiersprache?
Ich frage mich schon länger wie das alles immer geht. Zum beispiel wenn man mit einem Auto rückwärts fährt geht in dem Auto der Bildschirm hoch, die Kamera hinten an und das Bild wird übertragen oder auch man drückt den Knopf und es öffnet sich das Navi oder sonst was.
Mit welcher Programmiersprache geht sowas wie heißt die??
3 Antworten
Im Auto arbeiten vor allem Mikrocontroller, dementsprechend ist die Programmiersprache C das Maß aller Dinge (auch aus Performancegründen). Zur Kommunikation der Mikrocontroller mit den Sensoren kommt dort der CANBus zum Einsatz. http://de.wikipedia.org/wiki/Controller_Area_Network
In deinem Beispiel sagt also ein Bewegungssensor etwa an der Achse des Autos, dass es sich rückwärts bewegt, das wird an den Mikrocontroller weitergegeben und der gibt dann die weiteren Anweisungen an den Bildschirm und die Kamera. Und dann kann die Bildübertragung in deinem Luxusauto losgehen.
Die heutigen Autos sind alle mit einem CAN-Bus verbunden. Dabei werden zyklisch Daten von den Peripherien auf dem Bus gesandt, welche dann andere Geräte abfragen können. Welche Daten übermittelt werden steht in den sogenannten CAN-Datenbanken (*.dbc). Da steht für jede "Größe" eine Adresse, ein Faktor, ein Offset, min und max Werte, Startbit, Bitlänge und Byteorder.
Wenn man die Datenbanken kennt, kann man fast alles aus einem Auto auslesen. Das reicht heutzutage bis hin zur Geschwindigkeit jedes einzelnen Rades (für ABS und ESP), Niveau (auch für ESP), bis hin zur Lenkraddrehmoment.
Und genauso ist es wenn du dein Rückwärtsgang einlegst. Dein Bildschirm erkennt die Gangwahl und reagiert demnach entsprechend mit der Anzeige der Einblendung der Rückkamera.
Theoretisch ginge das mit den meisten Sprachen , Google setzt aus irgend welchen Gründen auf Python ; das ist aber eher die Ausnahme . Gänig sind in dem Bereich wohl C und (ich kann das nicht beurteilen , in manchen Fällen aber sicher) Assemblersprache
Die haben zusammen mit Stanford ein KI Auto gebaut , bzw. ein bestehendes modifiziert (eben selbstständig gemacht) . MH, du arbeitete in der Automobilindustrie , du wirst das wissen , ich wäre davon ausgegangen , das prinzipiell auch embededded Systems möglich wæren .
darf man nur Chips verbauen, die speziell für Autos "zugelassen" sind.
Das Auto von Google ist auch offiziell nicht zugelassen . Und doch, die greifen auf diese Hardware Teile des Autos zu, sonst könnte es ja nicht per Python gesteuert werden . Vll werden die Werte auch mittels C eingeholt und dann mit Python verarbeitet , Fakt ist aber, das dieses Auto existiert
... nur, dass man unter "embedded" dort was anderes versteht:
Der MPC5748G hat 786 Kilobytes RAM, das sind also "nur" 3/4 Megabyte. Dieser Chip ist der größte Chip, von dem ich je gelesen habe. Der größte Chip, mit dem ich jemals selbst gearbeitet habe, hatte nur 64 Kilobytes.
Üblich sind teilweise Chips mit 2 bis 8 Kilobytes RAM.
Der Grund ist einfach: Wenn ein Auto 10 Millionen mal gebaut wird, bringt jeder Cent, den man bei einem Bauteil (z.B. Prozessor) spart, 100000 Euro mehr Gewinn!
Bei Versuchsfahrzeugen werden typischerweise Prototyping-Systeme verbaut, wo richtig leistungsstarke Rechner mit 4 GHz Taktfrequenz und mehreren Gigabytes RAM drin sind. Da kann man dann auch Python (wird in der Automobilindustrie übrigens tatsächlich gerne verwendet) oder Java drauf laufen lassen.
Wenn die Autos dann in Serie gebaut werden, muss man sich mit den 4 Kilobytes RAM zufrieden geben und hat dann auch kein Python mehr zur Verfügung...
Das Auto geht nicht in Produktion ...der Code ist aber Quelloffen
Google baut Steuergeräte fürs Auto? Niemals.
Bei Auto-Multimediaanwendungen (Navi, Radio, ...) werden Chips verbaut, wie es sie auch in Smartphones gibt. Aus verschiedenen Gründen werden dort auch Skriptsprachen und Java eingesetzt.
Für die normalen Rechner, wie sie im Auto an ganz verschiedenen Stellen verbaut werden (so haben viele Autos in jeder Türe einen Rechner), darf man nur Chips verbauen, die speziell für Autos "zugelassen" sind.
Dort kann man solche Programmiersprachen schon deswegen nicht einsetzen, weil solche Chips gar nicht genügend Speicher haben, um eine Java Virtual Machine oder einen Skriptinterpreter laufen zu lassen.