Greg ne yapıyor?
Robotun adı Greg ve tek bir işi var: Avucunu açıp elini kaldırdığında sana beşlik çakmak.
Düzen şöyle çalışıyor. Tabandaki küçük bir ESP32 kamera kartı görüntüyü Wi-Fi ile bilgisayara gönderiyor. Bilgisayardaki bir sunucu, Google’ın MediaPipe el algılama modeliyle açık ve kaldırılmış bir avuç arıyor. Bulunca avucun görüntüdeki yerini eklem açılarına çeviriyor ve kola gönderiyor. Kolda bir ESP32-S3 kartı ve beş servo motor var. Aynı ucuz çipe bir konuşma tanıma modelinin nasıl sığdırıldığını Whistle yazısında anlatmıştık. Kol, el temas noktasının yaklaşık 3 cm ötesine kadar tam hızla uzanıp geri dönüyor.
Depoya göre parçaların toplam maliyeti yaklaşık 140–230 dolar, üstüne bir 3D yazıcı. Bütün dosyalar MIT lisansıyla GitHub’da.
Tasarımı Claude yaptı, ama Blender’da
Gauracs’ın elinde fikir vardı ama CAD bilgisi yoktu. Parçaların 3D modelini, kablo şemasını, iki kartın yazılımını (firmware) ve görüntü işleme kodunu Claude Code’a yazdırdı. Hepsi Ekim ayında tek bir uzun oturumda oldu.
Seçtiği yöntem ilginç. Modeller doğrudan bir CAD programında çizilmedi. Claude, Blender’ı Python betikleriyle yönetti. Blender’ın bir Python API’si var ve bir betik sahnedeki her nesneyi oluşturup ölçülendirebiliyor. Depodaki model parametrik: Her parça, servo ve kamera gibi bileşenlerin ölçülmüş boyutlarından hesaplanıyor. Bir şey oturmadıysa sabitlerden birini değiştirip betiği yeniden çalıştırmak yetiyor. Bir yararı daha var: Model Blender’da durduğu için Gauracs gerektiğinde içine girip elle de düzeltebiliyor.
Çalışma döngüsü basitti. Claude dosyayı üretti, Gauracs bastı. Parça oturmayınca fotoğrafını Claude’a gönderdi, o da modeli düzeltti.
Yapay zekânın kaçırdıkları
Videonun en öğretici kısmı hatalar.
- Kablolar unutuldu. Omuz parçasına servo zorla giriyordu. Claude’dan montajı canlandırmasını isteyince sebep ortaya çıktı: Modeldeki servonun kablosu yoktu. Yuva, kablo da modellenerek yeniden tasarlandı.
- Kamera ölçüleri tahmindi. Kamera kartının kalınlığı ve lensin yeri yanlış varsayılmıştı. İlk yuva dar, ikincisi bol çıktı. Bir animasyonda anten duvarın içinden geçiyordu. Kartı cetvelle ölçüp fotoğraflarını gönderince üçüncü kutu ilk denemede oturdu.
Ders açık: Ajan, gerçek bir parçanın ölçüsünü bilmiyorsa tahmin ediyor. Sen ölç, ona ver. Gauracs’ın bir yöntemi de bu yüzden işe yarıyor: Her büyük baskıdan önce sadece servo yuvasını içeren küçük bir uyum testi (fit test) basmak. Taban tek başına 8–10 saat sürüyor, yanlış ölçü pahalıya patlıyor.
Donanımda üç kural
Kablo rehberindeki kurallar, elektronikle uğraşan herkes için genel geçer:
- Bütün toprak (GND) hatlarını birleştir. Ortak toprak yoksa kontrol sinyalinin ölçüleceği bir referans da yok. Servolar titriyor ya da birbirini taklit ediyor. Orijinal yapımda en çok tekrar eden hata buydu.
- Bir kart aynı anda tek kaynaktan beslensin. Kart USB’ye takılıyken güç kaynağından gelen hattı ayır. Yoksa ikisi aynı 5 voltluk hat için çekişiyor.
- Servoyu kartın 5V pininden besleme. Büyük bir servo harekete geçerken bir amperden fazla çekebiliyor. Ayrıca 1000 µF’lık bir kondansatör, bu ani çekişlerde voltajın düşüp kartları yeniden başlatmasını engelliyor.
Bir yazılım tuzağı da var. ESP32, servo sinyallerini dahili PWM kanallarıyla üretiyor. Videoya göre popüler servo kütüphanesi iki eklemi aynı kanala atadı ve iki servo aynı sinyali aldı. Çözüm, her servoya kanalını elle vermek. İki eklemin birlikte oynadığını görürsen ilk bakacağın yer burası.
Kalibrasyon da öğretici. Kol bir dizi konumda gezdi, kamera da avucuna yapıştırılmış bir bandı izledi. Bu eşleşmelerden, görüntüdeki bir noktayı eklem açılarına çeviren bir model çıktı. Bileğin açısı için Gauracs sesle “yukarı”, “sol” gibi komutlar verip yaklaşık 15 örnek topladı. Küçük bir regresyon modeli de bu örneklerden avucu senin eline göre çevirmeyi öğrendi.
Düşün
- Bir ajana fiziksel bir şey tasarlatırken, ona hangi ölçüleri mutlaka kendin vermelisin?
- “Önce küçük bir parçayla test et” kuralı, yazılımda hangi alışkanlığa karşılık geliyor?
Videoyu izle
Kaynaklar (8, İngilizce)
- Better Stack: Opus 5.5 Designed This Robot. I Just Built It. (And It WORKS!) (video) (yeni sekmede açılır)
- GitHub: andrisgauracs/high-five-robot (yeni sekmede açılır)
- high-five-robot: Wiring guide (yeni sekmede açılır)
- Blender Python API: Quickstart (yeni sekmede açılır)
- Google AI Edge: MediaPipe Hand Landmarker (yeni sekmede açılır)
- Seeed Studio Wiki: XIAO ESP32S3 (Sense) (yeni sekmede açılır)
- Espressif: LED Control (LEDC), ESP32-S3 (yeni sekmede açılır)
- GitHub: madhephaestus/ESP32Servo (yeni sekmede açılır)
Kendi cümlelerimizle yazılmış bir özettir, çeviri değildir. Tüm kaynaklar yukarıda.