↯ Robotik KodlamaTüm projeler

Robot koluna hız sınırı koy

Bir robot kolunun konum hedefleri aniden değişse de komut her çevrimde en fazla beş derece ilerlesin. Hedef dışına taşmadan yaklaşma algoritması kur.

13+ yaş · 45 dakika · Python 3 · deney modeli

İnteraktif atölyede aç →

Neler öğreneceğiz?

Bir robot kolunun konum hedefleri aniden değişse de komut her çevrimde en fazla beş derece ilerlesin. Hedef dışına taşmadan yaklaşma algoritması kur.
Bu atölyede yalnız sonuca değil, tahmininin neden doğru veya yanlış çıktığına da bak. Bir deney günlüğünde giriş, beklenen sonuç, gözlenen sonuç ve düzeltme olmak üzere dört sütun aç.
Python kodu ölçüm/algoritma modelidir; GPIO pinlerine veya motora komut göndermez. Animasyon ise konuyu gösteren ayrı ve ideal bir modeldir.

Öğrenme hedefleri

  1. 20° ve 160° sınırlarını açıölçerde göster.
  2. Son 15 derecede adımı bir dereceye düşürerek yavaş yaklaşma ekle.
Robot koluna hız sınırı koy — proje görseli
Özgün kavram ve algoritma çizimi. Yazılım örneğinin akışı resimli rehberde açıklanır; fiziksel devre kurulumu değildir.

Malzeme listesi

  1. Python 3 çalıştırabilen bilgisayar
  2. Kareli kâğıt, kalem ve deney günlüğü

Adım adım yapalım

  1. 20° ve 160° sınırlarını açıölçerde göster.
  2. Başlangıç 90°, ilk hedef 150° için gereken adım sayısını tahmin et.
  3. Programı çalıştırıp bir sonraki hedefe geçerken başlangıcın önceki konum olduğunu izle.
  4. Her iki komşu konum farkının en fazla 5° olduğunu kontrol et.
  5. Hedefi 163° yap; sıkıştırma sonrası 160° olduğunu göster.
  6. Açısal hız ile çevrim süresi arasındaki ilişkiyi hesapla: 5°/20 ms = 250°/s komut hızı.

Kod · Python 3 · deney modeli

position=90
for target in [150,30,110]:
 target=max(20,min(160,target))
 trace=[]
 while position!=target:
  difference=target-position
  position+=max(-5,min(5,difference));trace.append(position)
 print(target,trace)

Kod nasıl çalışır?

clamp işlemi hem hedefi hem tek adım farkını sınırlar. Yazılım hızı fiziksel servonun ulaşabildiği hızı garanti etmez.

Beklenen sonuç

Python modelinin çalıştırılan çıktısı (fiziksel ölçüm değildir):
150 [95, 100, 105, 110, 115, 120, 125, 130, 135, 140, 145, 150]
30 [145, 140, 135, 130, 125, 120, 115, 110, 105, 100, 95, 90, 85, 80, 75, 70, 65, 60, 55, 50, 45, 40, 35, 30]
110 [35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100, 105, 110]

Sıra sende

Son 15 derecede adımı bir dereceye düşürerek yavaş yaklaşma ekle.

Güvenli atölye

Bu çalışma düşük gerilimli eğitim içindir. Donanımı enerji kapalıyken, bir yetişkinle kur. Şebeke elektriği kullanma. Kodun derlenmesi fiziksel devrenin test edildiği anlamına gelmez.

Çalışmıyorsa kontrol et

  1. Sonucu alamıyorsan programın ilk satırından başlayıp girdileri tek tek kontrol et.
  2. Donanım varsa enerjiyi ayır; GND, sinyal uçları ve parça yönlerini bağlantı tablosundan doğrula.
  3. Aynı anda yalnız bir şeyi değiştir; değişiklik öncesi ve sonrası sonucu günlüğe yaz.

Kontrol noktaları

  1. Başlamadan önce: gerekli malzemeleri say ve giriş değerlerini deney günlüğüne yaz.
  2. Kurulumdan sonra: her bağlantıyı aşağıdaki tabloyla karşılaştır; yazılım projesinde giriş listesini kontrol et.
  3. Testten sonra: beklenen sonucu kendi çıktınla karşılaştır. Fark varsa ilk farklı adımı bul.

Kaynakların kullanımı

Kaynak, ilgili kavramı öğrenmek ve karşılaştırmak içindir. Türkçe görev, örnek kod ve görseller bu atölye için özgün hazırlanmıştır; kaynak makalenin çevirisi veya kopyası değildir.

Algoritmanın yol haritası
Algoritmanın yol haritası
Deney günlüğü: altı adım
Deney günlüğü: altı adım

https://learn.adafruit.com/adafruit-arduino-lesson-14-servo-motors/arduino-code-for-sweep