← Radar

Konu: Kodlama3 dk okuma

Çak bir beşlik: Parçalarını Claude'un tasarladığı robot kol ve öğrettikleri

Bu neden önemli?

Yapay zekâ artık sadece kod değil, fiziksel parça da tasarlayabiliyor. Ama gerçek dünyada bir hata filament, zaman ve bazen bir kart demek. Bu proje, ajanla donanım yaparken nerede ona güvenebileceğini ve nerede ölçüp kontrol etmen gerektiğini somut örneklerle gösteriyor.

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:

  1. 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.
  2. 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.
  3. 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

Tıklayınca video YouTube'dan yüklenir; o ana kadar bu sayfa YouTube'a hiçbir istek göndermez.
Kaynaklar (8, İngilizce)

Kendi cümlelerimizle yazılmış bir özettir, çeviri değildir. Tüm kaynaklar yukarıda.

Konu: Kodlama3 dkVideo: Computerphile

Mutex nedir? İki thread aynı kapıya aynı anda geldiğinde

Mutex, bir kod parçasını aynı anda sadece bir thread'in çalıştırmasını sağlayan kilit. Computerphile'da Matt Godbolt, bunun neden basit bir bayrakla yapılamadığını, donanımın verdiği tek bir atomik komutla nasıl kurulduğunu ve deadlock tuzağını anlatıyor.