Michael H. schrieb:
hat hier jemand schon mal GitHub Copilot oder ähnliche Tools für
Mikrocontroller-Projekte ausprobiert? Mich würde vor allem
interessieren, ob das auch mit exotischeren Teilen wie dem CH32V003 von
WCH klappt. Wie sinnvoll ist Copilot bei so Embedded-Kram überhaubt? Was
an Aufgaben kann Copilot übernehmen? Ich mein es gibt ja für vieles
mittlerweile ein HAL... Darauf könnte der ja zugreifen... Eure
Erfahrungen?
CoPilot hat u.a. GitHub gelesen. Dort gibt es 367 Projekte zum CH32V003. Könnte also schon sein, dass es da sinnvolle Antworten liefern kann. Bei einem STM32 benutzt es die HAL, aber die gibt es ja auch schon lange und es gibt Zigtausend Projekte mit STM32 auf GitHub.
Prinzipiell gilt: Manchmal ist man überrascht, was für komplexe Sachen es lösen kann und dann versaut es irgendwas total einfaches. Was es für Dich tun kann hängt auch stark von Deinen Kenntnissen ab. Wie lange programmierst Du schon? Ist das Dein 2. oder Dein 25. Projekt mit Irgendwas (z.B. I²C)? Denn wenn Du mit etwas sehr erfahren bist, dann kann es durchaus sein, dass es viel schneller ist das direkt selber zu machen als es Copilot auch nur zu erklären.
Dann hängt es natürlich davon ab, wie komplex das Projekt ist. Wenn es sehr einfach ist (Temperatursensor+Anzeige), dann kann es schon sein, dass es das vollständig alleine machen kann, aber wenn es komplex ist, dann kann es auch sein, dass es einen Teil der Anforderungen vergisst und man muss es nochmal darauf hinweisen und dann passt das alles irgendwie nicht zusammen.
Was man auch beachten muss: Es gibt gerade bei Mikrocontrollern wie z.B. den STM32 sehr viele Varianten, die sehr ähnlich, aber doch verschieden sind. Die kann es nicht immer auseinanderhalten. Gleiches gilt für Bibliotheken, die es in verschiedenen Versionen gibt.
Insgesamt gilt: Probier es aus. Die Stärken und Schwächen von dem System sind ganz anders als bei einem Menschen. Man muss ein Gefühl dafür bekommen, was es kann und was nicht.
Ich habe es gerade mit ChatGPT 4o probiert. Mir ist nicht ganz klar, worin die Unterschiede zu Copilot bestehen. Ist das nur ein anderer Name oder ist Copilot kleiner?
Anfrage war "Bitte schreibe einen Code für einen CH32V003, um per I²C einen TMP101 Temperatursensor anzuschließen und auf einer gemultiplexten Temperaturanzeige darzustellen."
Ergebnis siehe Anhang. Ich habe nur kurz drauf geschaut. Er benutzt die HAL, aber ich kenn die nicht und kann nicht sagen, ob das so passt. Die Temperatur in der Hauptschleife zu lesen, wenn man eine multiplexte Anzeige hat, ist keine gute Idee, denn dann wird ja die letzte Stelle länger dargestellt. Das Delay zwischen den Stellen ist akzeptabel, wenn der Gesamtcode so einfach bleibt. Sonst hätte man da eher ein Interrupt benutzt, aber dafür gabs ja auch keine Anforderungen. Das es eine vierstellige Anzeige benutzt, obwohl es eigentlich nur 2 Stellen benutzen will ist so eine Eigenheit vom dem System. Es lebt ja von dem gelesenen Code und macht deswegen oft irgendwelche Annahmen, die eben aus diesem Code kommen. Das kann hilfreich sein, weil man nicht alles bis ins letzte Detail spezifizieren muss, aber manchmal passen die Annahmen eben nicht zum Problem. Dass es die nicht benutzten Stellen mit 0en rechts auffüllt ist auch nicht so geschickt. Es fehlt natürlich noch das Errorhandling vom I²C, aber da war ja auch nichts spezifiziert.