Forum: Mikrocontroller und Digitale Elektronik Copilot für MCUs


von Michael H. (overthere)


Lesenswert?

Hey Leute,

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?

Michael

von J. S. (jojos)


Lesenswert?

Ich habe es in VSCode installiert und bin überrascht wie gut es Gedanken 
lesen kann. Mit den CH32 habe ich Copilot noch nicht benutzt, aber mit 
Mbed und das ist ja auch recht exotisch geworden. Ich weiß nicht woher 
die Infos für die Vorschläge kommen, aber das API kennt es, wobei das 
könnte auch aus dem Intellisense kommen.

von Philipp K. (philipp_k59)


Lesenswert?

J. S. schrieb:
> Ich weiß nicht woher
> die Infos für die Vorschläge kommen, aber das API kennt es, wobei das
> könnte auch aus dem Intellisense kommen.

der nimmt einem einfach die Fleißarbeit ab..

Erinnert mich an die Java Api.. wenn man weiß wie man die liest, ist das 
nur noch logisch folgern.

von Rahul D. (rahul)


Lesenswert?

J. S. schrieb:
> bin überrascht wie gut es Gedanken lesen kann.

Unter VisualStudio (C#) finde ich es teilweise schon nervig:
Wenn die vorgeschlagene "Antwort" erscheint, muss man die erst mal 
lesen, um festzustellen, dass man was ganz anderes machen will und u.U. 
dadurch den roten Faden verloren hat
Wenn sie passt, ist ja alles gut (passiert sogar relativ häufig, sogar 
bei Kommentaren).

von Markus K. (markus-)


Angehängte Dateien:

Lesenswert?

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.

: Bearbeitet durch User
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.