En sevdiğimiz mikrodenetleyicileri desteklemek için kütüphaneler yazmak büyük bir görev, peki ya ChatGPT yardım edebilirse? Adafruit’in kendi Limor “Ladyada” Fried’i var ChatGPT’ye Arduino sürücülerini yazması görevi verildi kendi tarzında, görevi yerine getirmek için bir “mini-Limor” botu yaratıyor.
Ladyada, Arduino kütüphanelerini yazmak için çok zaman harcıyor ve Adafruit’in etkileyici anakart yelpazesini desteklemek için yüzlerce kütüphane üretti (bunların çoğu en iyi Grove ve Stemma QT sayfamızda yer alıyor). GPT-4, GitHub’da bulunan birçok Adafruit sürücüsü kullanılarak zaten eğitilmiştir. Bu sürücüler “Ladyada stilinde” (Adafruit_BusIO) yazılmıştır ve bu, bu şablonu kullanarak sürücüler oluşturabileceği anlamına gelir.
İş akışı, hepsinin anlaşılması ve C veya Python koduna dönüştürülmesi gereken çok sayıda veri sayfası referansı, ikili tablo ve bit ekleri içerir. Bu görev kolay değil (bize güvenin, biz bunu kendimiz denedik). Bu verileri elde etmek için standart bir format yoktur. Veri sayfaları çok farklı olabilir.
“Mini-Limor” için Fried’in iş akışı ChatGPT’den “[write] ladyada / limor kızarmış ile aynı stilde bir arduino kütüphanesi”. Örnekte Fried, ChatGPT’ye bir sürücü oluşturma görevini veriyor. VCNL4020 ortam ışığı ve kızılötesi sensörI2C tabanlı bir sensör. İş akışı, bir veri sayfasını okuyan, kayıt adlarını, değerleri çıkaran, numaralandırma tabloları ve yorumlar için metin oluşturan ücretsiz bir PDF ayrıştırma eklentisi (AI PDF) kullanır.
Fried daha sonra ChatGPT’den VCNL4020 için kısmen başarılı olduğu bir iskelet dosyası oluşturmasını ister. Daha sonra Fried, doğrudan veri sayfasındaki verileri kullanarak kayıtları oluşturmasını ister. Bundan sonra Fried kütüphaneyi yapmaya devam ediyor.
Bu daha hızlı bir süreç mi? Hayır. Adafruit’in blog yazısına göre, “ChatGPT’nin bir sürücü yazması için gereken süre Ladyada’nınkiyle hemen hemen aynı” ve Fried’in videoda belirttiği gibi, ortaya çıkan sürücünün geçerli olup olmadığını kontrol etmek için insan etkileşimi gerekiyor. ChatGPT bazen “halüsinasyon görebilir” ve hatalara neden olabilir. Söylenen o ki, Fried’e başka görevleri üstlenmesi için zaman kazandırıyor.
Üretilen çalışma, Adafruit’in önceki çalışmasına dayanmaktadır ancak Adafruit, herhangi bir Büyük Dil Modeli (LLM) kullanıldığında bunun açıklanacağını ve bağlantı kurulacağını doğrulamıştır.
İyi sürücüler, öğrencilerin özellikle I2C, SPI ve diğer birçok protokolle fazla teknik olmadan dişlerini kesebilmelerinin temelini oluşturur. Süreç geliştirilebilir ve otomatikleştirilebilirse Adafruit gibi geliştiricilerin popüler programlama dillerinin çoğu için sürücüler ve kitaplıklar oluşturmasına yardımcı olabilir. Süreç, Arduino Uno R4 serisi kartlarla üçüncü taraf yazılım desteğini sağlamak için kullanılabilir. Fried ayrıca bu işlemin CircuitPython yani Raspberry Pi Pico serisi anakartlarla da kullanılabileceğini belirtiyor.
Adafruit’in bir Blog yazısı ve referans amaçlı ChatGPT günlükleri de dahil olmak üzere tüm sürece bağlantılar.