[ad_1]
Das Schreiben von Bibliotheken zur Unterstützung unserer Lieblings-Mikrocontroller ist eine große Aufgabe, aber was wäre, wenn chatgpt helfen könnte? Adafruits eigener Limor „Ladyada“ Fried hat beauftragte ChatGPT mit dem Schreiben von Arduino-Treibern in ihrem eigenen Stil, indem sie einen „Mini-Limor“-Bot erstellt, der die Aufgabe erledigt.
Ladyada verbringt viel Zeit damit, Arduino-Bibliotheken zu schreiben, und hat Hunderte von Bibliotheken erstellt, um die beeindruckende Auswahl an Boards von Adafruit zu unterstützen (viele davon finden Sie auf unserer besten Grove- und Stemma-QT-Seite). GPT-4 wurde bereits mit vielen der auf GitHub gefundenen Adafruit-Treiber trainiert. Diese Treiber sind im „Ladyada-Stil“ (Adafruit_BusIO) geschrieben und das bedeutet, dass mit dieser Vorlage Treiber erstellt werden können.
Der Arbeitsablauf umfasst viele Datenblattverweise, Binärtabellen und Biteinsätze, die alle verstanden und in C- oder Python-Code konvertiert werden müssen. Diese Aufgabe ist nicht einfach (vertrauen Sie uns, wir haben es selbst versucht). Es gibt kein Standardformat zum Abrufen dieser Daten. Datenblätter können sehr unterschiedlich sein.
Für „Mini-Limor“ besteht Frieds Arbeitsablauf darin, ChatGPT zu bitten, „[write] eine Arduino-Bibliothek im gleichen Stil wie Ladyada / Limor Fried“. Im Beispiel beauftragt Fried ChatGPT mit der Erstellung eines Treibers für VCNL4020 Umgebungslicht- und Infrarotsensor, ein I2C-basierter Sensor. Der Workflow verwendet ein kostenloses PDF-Parsing-Plugin (AI PDF), das ein Datenblatt liest, Registernamen und Werte extrahiert, Aufzählungstabellen und Text für Kommentare erstellt. Fried bittet ChatGPT dann, eine Skelettdatei für den VCNL4020 zu erstellen, was teilweise erfolgreich war. Dann fordert Fried es auf, die Register zu erstellen und dabei Daten direkt aus dem Datenblatt zu verwenden. Danach macht sich Fried an die Erstellung der Bibliothek.
Ist das ein schnellerer Prozess? Nun ja, nein. Im Blogbeitrag von Adafruit heißt es: „Die Zeit, die ChatGPT braucht, um einen Treiber zu schreiben, ist ungefähr die gleiche wie Ladyada“, und der resultierende Treiber erfordert menschliche Interaktion, um zu überprüfen, ob er gültig ist, wie Fried im Video feststellt: ChatGPT kann manchmal „halluzinieren“ und Fehler einführen. Allerdings gibt es Fried die Möglichkeit, sich anderen Aufgaben zu widmen.
Die produzierte Arbeit basiert auf Adafruits eigenen früheren Arbeiten, aber Adafruit hat bestätigt, dass bei Verwendung eines Large Language Model (LLM) dieses offengelegt und verlinkt wird.
Gute Treiber bilden die Grundlage, auf der sich Lernende ausbilden können, ohne zu technisch zu werden, insbesondere mit I2C, SPI und vielen anderen Protokollen. Wenn der Prozess verfeinert und automatisiert werden kann, könnte er Entwicklern wie Adafruit dabei helfen, Treiber und Bibliotheken für viele der gängigen Programmiersprachen zu erstellen. Der Prozess könnte verwendet werden, um die Softwareunterstützung von Drittanbietern für die Arduino Uno R4-Board-Reihe zu adressieren. Fried erwähnt auch, dass dieses Verfahren auch mit CircuitPython, also der Raspberry Pi Pico-Reihe von Platinen, genutzt werden kann.
Adafruit hat eine Blogeintrag und Links zum gesamten Prozess, einschließlich ChatGPT-Protokollen als Referenz.
[ad_2]