Kodlama ajanına ESP32 sensör sürücüsü yazdırdım: datasheet okumayan ajanla geçen iki gün
Sorunların çoğu aynı kökten çıktı: ajan sensörü gerçekten tanımıyordu, benzer sensörlerden bildiği şeyleri birleştirmişti. Register adreslerinin ikisi yanlıştı, ölçüm başlatma komutu başka bir model sensöre aitti, kalibrasyon katsayılarını okurken bayt sırası ters alınmıştı. Kod derleniyor, mantıklı görünüyor, ama donanımla konuşmuyor. Web uygulamasında yanlış bir şey yazınca hata mesajı alıyorsunuz, burada sadece sessizlik ya da saçma bir sayı var.
İkinci denemede yöntemi değiştirdim ve çok daha iyi gitti:
1. Datasheet'in ilgili bölümlerini (register haritası, ölçüm sırası, dönüşüm formülü) metin olarak çıkarıp ajana bağlam olarak verdim. Sadece sensörün adını söylemek yetmiyor.
2. Sürücüyü tek seferde değil parça parça yazdırdım. Önce sadece cihaz kimliği registerını okuyan fonksiyon. Doğru değeri görmeden sonraki adıma geçmedim.
3. Lojik analizör ile hattı izledim. Ajanın yazdığı kodun gönderdiği baytları gerçekte görmek, kodu okumaktan daha hızlı hata buldurdu.
4. Dönüşüm formülünü masaüstünde ayrı bir testle, datasheet'teki örnek değerlerle sınadım. Ajan formüldeki bir kaydırma işlemini yanlış yazmıştı, test bunu bir dakikada gösterdi.
Bu şekilde sürücü bir öğleden sonrada çalışır hale geldi. Yani ajan yine işimi hızlandırdı, ama ancak ona doğru kaynağı verdiğimde ve her adımı donanımda doğruladığımda.
Gömülü tarafta ajan kullanan başka var mı merak ediyorum. Özellikle zamanlama hassas işlerde, kesme fonksiyonları ve DMA ayarlarında ne kadar güvenilir buluyorsunuz? Benim izlenimim, donanıma yaklaştıkça ajana duyulan güvenin hızla azalması gerektiği yönünde.



@servomotor