OpenRobotKit iddialı bir yönle başlıyor: Python, Arduino ve ESP32 kullanan robotik projeler için yeniden kullanılabilir araçlar ve örnekler. Mevcut uygulama ise bu yol haritasından çok daha küçük. Çalıştırılabilir kaynak kodu; başlangıç hızına, set_speed metoduna ve stop metoduna sahip bir Python Motor sınıfından oluşuyor. Bu küçük başlangıç, bugün çizilmiş olan sınırı incelemeyi kolaylaştırıyor.

Şu anda hızı değiştirmek, bir Python niteliğini güncelliyor. stop çağrısı bu değeri sıfırlıyor. Sınıfta PWM çıkışı, seri mesaj, pin yapılandırması veya fiziksel bir kontrolcüye bağlantı bulunmuyor. Bunu doğru anlatmak önemli: motor durumunun yazılımdaki temsili yararlı bir temel olsa da henüz çalışan bir donanım sürücüsü değil. Depodaki daha geniş modül listesi, geliştirme yönü olarak okunmalı.

Sıradaki yararlı tasarım sorusu, bu arayüzün nerede bitmesi gerektiği. Gelecekteki bir sürücü, uygulamanın kullandığı API'yi küçük tutarak istenen hızı donanıma özgü komutlara dönüştürebilir. Bunun öncesinde arayüz sözleşmesinin birimleri, geçerli aralıkları, yönü, hata davranışını ve istenen değer ile gözlenen değer arasındaki farkı tanımlaması gerekir. Bunlar mevcut uygulamanın sağladığı yetenekler değil, tasarım soruları.

Aynı dikkat yol haritasının geri kalanı için de geçerli. PID kontrolü, sensör kalibrasyonu, Bluetooth, Wi-Fi, kamera desteği, OpenCV yardımcıları ve diğer modüller proje planında yer alıyor. Bunlar, ancak ilgili kod, örnek ve doğrulama mevcut olduğunda portföyde tamamlanmış özellikler olarak sunulmalı. Mevcut dokümantasyon ve testle ilişkili dizinler, gösterilmiş bir test kapsamı yerine yer tutucu dosyalar içeriyor.

Bu aşamada en yararlı hedef, küçük ama baştan sona tamamlanmış bir parça: belgelenmiş bir motor sözleşmesi, gerçek bir adaptör, çalıştırılabilir bir örnek ve yazılım davranışına yönelik testler. OpenRobotKit bu yolun erken bir araştırması. Açıklamayı kodun mevcut kapsamıyla orantılı tutmak, okuyucunun bugün gerçekten neyi çalıştırabileceğini belirsizleştirmeden projenin büyümesine alan açıyor.

Projenin herkese açık deposuna dayanan teknik bir not. Mevcut uygulama ve gelecek fikirleri ayrı ele alınır.

Kaynakları incele