Bu eğitim şunun parçasıdır: SunFounder Raspberry Pi Pico Pico 4WD Akıllı Araba Kiti
Bu gruba ait dosyalar birlikte görüntülenecektir. Diğer videolara ait bağlantılar bu makalenin altında yer almaktadır.
Ders 9/10: Raspberry Pi Pico 4WD Akıllı Araba ile Engel Kaçınma
Giriş
Bu kılavuz, Robojax'ın 10 derslik Kurs Dersi 9'una dayanarak, SunFounder Raspberry Pi Pico 4WD Akıllı Araç kitini kullanarak engellerden kaçınan bir robotun nasıl inşa edileceğini göstermektedir. Proje, servo tahrikli ultrasonik sensörü motor kontrolüyle birleştirerek çevresinde otonom olarak gezinebilen bir robot oluşturur. Sensörü radar gibi tarayarak araç engelleri algılar ve ilerlemek için akıllıca temiz bir yol seçer; bu da onu robotik, sensör entegrasyonu ve otonom navigasyona mükemmel bir giriş yapar.
Bu proje sadece bir oyuncak değil; birçok pratik uygulama için bir temeldir. İşte size ilham verecek birkaç fikir:
- Otonom Keşif Robotu: İnsan müdahalesi olmadan bir odayı veya dış alanı haritalayıp keşfedebilen bir robot inşa edin.
- Akıllı Süpürge: Temizlik yaparken mobilyalardan ve duvarlardan kaçınarak bir odada gezen bir robot oluşturmak için aynı prensipleri kullanın.
- Güvenlik Devriye Botu: Arabayı bir çevreyi devriye gezecek şekilde programlayın ve beklenmedik engelleri veya izinsiz girişleri algılamak ve raporlamak için ultrasonik sensörü kullanın.
- Yapay Zeka için Eğitim Platformu: Bu projeyi yol bulma ve eşzamanlı konumlandırma ve haritalama (SLAM) gibi daha karmaşık algoritmaları öğrenmek için bir basamak olarak kullanın.
Bu ders, arabanın kararlar almasını sağlayan temel mantık ve koda odaklanır. Araba, ultrasonik sensörü döndürmek için bir servo motor kullanır ve 0 ila 180 derece arasındaki mesafeleri ölçen bir radar görevi görür. Kod, bu verileri analiz ederek en geniş boş yolu bulur ve arabayı buna göre ileri, sola veya sağa yönlendirir. Video, tek tek bileşenleri test etmekten gerçek dünya labirentinde nihai engelden kaçınma algoritmasını çalıştırmaya kadar tüm süreci gösterir.
Donanım/Bileşenler
Bu proje, SunFounder Raspberry Pi Pico 4WD Akıllı Araç kitine dayanmaktadır. Bu derste kullanılan temel bileşenler şunlardır:
- Raspberry Pi Pico mikrodenetleyici kartı
- Dört motorlu SunFounder 4WD Akıllı Araç şasisi
- Motor sürücü kartı
- Ultrasonik mesafe sensörü (HC-SR04 tipi)
- Servo motor (ultrasonik sensörü döndürmek için)
- Güç kaynağı (araba için piller)
Bağlantı Kılavuzu
SunFounder kiti kolay montaj için tasarlanmıştır ve bağlantılar genellikle özel bir genişletme kartı üzerinden önceden bağlanır. Ultrasonik sensör servo motora monte edilir ve ardından ana kontrol kartına bağlanır. Bu kurulum, sensörün çevreyi taramak için döndürülmesine olanak tanır. Kitinize özel ayrıntılı bağlantı şeması için lütfen resmi SunFounder belgelerine bakın.
Temel bağlantılar, ultrasonik sensörün tetikleme ve yankı pinlerini ve servo motorun sinyal pinini içerir; bunların tümü Raspberry Pi Pico'daki belirli GPIO pinlerine bağlanır. Motor sürücüsü ayrıca dört tahrik motorunu kontrol etmek için Pico'ya bağlanır. Video, bağlantı şemaları dahil tam belgelerin kit ile birlikte indirilebileceğini belirtir.
Kod Açıklaması
Bu ders, `obstacle_avoid` örneğindeki mantığa odaklanır. Kod MicroPython'da yazılmıştır. Tam program indirilebilir olsa da, arabanın davranışını kontrol eden önemli, kullanıcı tarafından yapılandırılabilir parametrelere odaklanacağız. Bunlar genellikle betiğin en üstünde bulunur.
Robotunuzun performansını ince ayarlamak için ayarlayabileceğiniz ana değişkenler şunlardır:
# Radar ve hareket parametreleri
radar_reference = 20 # Güvenli kabul edilecek minimum mesafe cm cinsinden
step_angle = 10 # Her radar tarama adımı için açı artışı
forward_speed = 30 # İleri hareket için motor hızı (0-100)
turn_speed = 50 # Dönüş için motor hızı (0-100)
forward_scan_angle = 50 # Engel algılanmadığında servo tarafından taranan açı
- radar_reference: Bu, santimetre cinsinden kritik güvenlik mesafesidir. Bir engel bu değerden daha yakın algılanırsa, araba bunu bir "tehlike" olarak kabul eder ve bir kaçınma manevrası başlatır. Videoda bu 20 cm olarak ayarlanmıştır.
- step_angle: Bu, radar taramasının çözünürlüğünü tanımlar. Daha küçük bir değer (örneğin, 10 derece) daha ayrıntılı bir tarama anlamına gelir ancak daha uzun sürer. Daha büyük bir değer daha hızlı olur ancak dar engelleri kaçırabilir.
- forward_speed & turn_speed: Bunlar motorlara gönderilen gücü kontrol eder. Arabanın genel hızını ve çevikliğini değiştirmek için bunları ayarlayabilirsiniz. Dönüş hızı, arabanın etkili bir şekilde dönebilmesini sağlamak için genellikle daha yüksek ayarlanır.
- forward_scan_angle: Hemen önde acil bir tehlike olmadığında, araba taramasını bu açıya (ileri yöne odaklı) daraltarak doğrudan yolundaki engelleri daha sık kontrol eder ve daha pürüzsüz ileri hareket sağlar.
Video ayrıca ana karar verme mantığını da açıklıyor. Bir `get_direction()` işlevi, mesafe okumalarının listesini (güvenli/güvensiz için 1'lere ve 0'lara dönüştürülmüş) analiz ederek en geniş sürekli "1" yolunu bulur. Bu en geniş yolun nerede olduğuna bağlı olarak, işlev bir yön döndürür: "ileri", "sol" veya "sağ". Ana döngü daha sonra ilgili eylemi gerçekleştirir, arabayı döndürür ve öndeki yol açılana kadar yeniden tarar.
Canlı Proje/Gösterim
Video, projenin kapsamlı bir gösterimini sağlar. Önce ultrasonik sensörü tek başına test ederek mesafeyi nasıl ölçtüğünü ve değerleri kabuğa nasıl yazdırdığını gösterir. Eğitmen daha sonra bir akış şeması kullanarak engelden kaçınma algoritmasını açıklar ve sola ve sağa dönme karar verme sürecini detaylandırır. Son olarak, araba kutulardan oluşturulan küçük bir labirente yerleştirilir ve engelden kaçınma davranışının tamamını eylem halinde gösterir. Araba, ileriye doğru net bir yol bulmak için sola ve sağa dönerek labirentte başarıyla ilerler.
Video Bölümleri
- [00:00] Engelden Kaçınmaya Giriş
- [01:31] SunFounder Akıllı Araba Kiti ve Özelliklerine Genel Bakış
- [02:47] Engelden Kaçınma Özelliği Nasıl Çalışır
- [03:34] Ultrasonik Sensörü Test Etme
- [07:45] Engelden Kaçınma Algoritması ve Akış Şemasını Açıklama
- [12:49] Ana Engelden Kaçınma Kodunu Analiz Etme
- [15:43] Engelden Kaçınma Mantığının Canlı Gösterimi
- [22:53] Engellerden Oluşan Bir Labirent ile Final Gösterimi
- [24:35] Sonuç ve Sonraki Adımlar
Bu eğitim şunun parçasıdır: SunFounder Raspberry Pi Pico Pico 4WD Akıllı Araba Kiti
- Kurs Ders 1 / 10: SunFounder'dan Raspberry Pi Pico 4WD Akıllı Araba Kiti - Robojax tarafından
- Kurs Ders 2/10: Raspberry Pi Pico 4WD Akıllı Araba Kiti'ni sürmek için Temel Python
- Kurs Ders 3/10: SunFounder'dan Raspberry Pi Pico 4WD Akıllı Araç Kiti Montajı - Robojax tarafından
- Kurs Ders 4 / 10: Raspberry Pi Pico Genişletme Kartı, 4WD Akıllı Araç Kiti için
- Ders 5 / 10: WS2812B RGB LED Kontrolü Raspberry Pi Pico Kullanarak
- Ders 6/10: Raspberry Pi Pico 4WD Akıllı Araba Kiti ile DC Motorların Kontrolü
- Ders 7/10: Çizgi Takibi, Uçurum Algılama Gri Tonlamalı Sensörü Kalibre Et Raspberry Pi Pico Araba
- Ders 8/10: Raspberry Pi Pico Akıllı Araba – Ders 8: Servo Motor ve Nesne Takibi
- Ders 10/10: Raspberry Pi Pico 4WD Akıllı Araç Kiti'ni mobil Uygulama ile Kontrol Etme
# Lesson 9/10 Pi Car Pico 4WD: Obstacle avoid
# Download and resource page https://robojax.com/RJT631
import pico_4wd as car
import time
car.RADAR_REFERENCE = 20
car.RADAR_STEP_ANGLE = 10
MOTOR_FORWARD_POWER = 30
MOTOR_TURNING_POWER = 50
FORWARD_SCAN_ANGLE = 50
car.set_radar_scan_angle(FORWARD_SCAN_ANGLE)
status = "Danger"
def get_dir(radar_data):
# get scan status of 0, 1
# print(radar_data)
radar_data = [str(i) for i in radar_data]
radar_data = "".join(radar_data)
# Split 0, leaves the free path
paths = radar_data.split("0")
# print(paths)
# print("paths: %s" % paths)
length_list = []
# Calculate where is the widest
for path in paths:
length_list.append(len(path))
if max(length_list) < 4:
return "left"
# Calculate the direction of the widest
i = length_list.index(max(length_list))
pos = radar_data.index(paths[i])
pos += (len(paths[i]) - 1) / 2
delta = len(radar_data) / 3
if pos < delta:
return "left"
elif pos > 2 * delta:
return "right"
else:
return "forward"
def main():
global status
# General
while True:
radar_data = car.radar_scan()
# print("radar_data: %s" % radar_data)
# If radar data return a int, means scan not finished, and the int is current angle status
if isinstance(radar_data, int):
if radar_data == 0 and status != "Danger":
print("Danger!")
status = "Danger"
car.move("stop")
car.set_radar_scan_angle(180)
continue
else:
status = "Save"
direction = get_dir(radar_data)
if direction == "left":
print("turn left")
distance = car.get_radar_distance_at(-FORWARD_SCAN_ANGLE/2)
time.sleep(0.5)
car.move("left", MOTOR_TURNING_POWER)
while True:
distance = car.get_radar_distance_at(-FORWARD_SCAN_ANGLE/2)
status = car.get_radar_status(distance)
if status == 1:
break
car.move("stop")
car.set_radar_scan_angle(FORWARD_SCAN_ANGLE)
elif direction == "right":
print("turn right")
distance = car.get_radar_distance_at(FORWARD_SCAN_ANGLE/2)
time.sleep(0.5)
car.move("right", MOTOR_TURNING_POWER)
while True:
distance = car.get_radar_distance_at(FORWARD_SCAN_ANGLE/2)
status = car.get_radar_status(distance)
if status == 1:
break
car.move("stop")
car.set_radar_scan_angle(FORWARD_SCAN_ANGLE)
else:
print("forward")
car.set_radar_scan_angle(FORWARD_SCAN_ANGLE)
car.move("forward", MOTOR_FORWARD_POWER)
try:
main()
finally:
car.move("stop")
car.set_light_off()
Common Course Links
- Purchase SunFounder Pico 4WD Smart Car Kit from AliExpress
- Purchase SunFounder Pico 4WD Smart Car Kit from eBay
- Amazon Canada: Purchase Pico 4WD Smart Car Kit by SunFounder
- Amazon France: Purchase Pico 4WD Smart Car Kit by SunFounder
- Amazon Germany: Purchase Pico 4WD Smart Car Kit by SunFounder
- Amazon Italy: Purchase Pico 4WD Smart Car Kit by SunFounder
- Amazon Japan: Purchase Pico 4WD Smart Car Kit by SunFounder
- Amazon Spain: Purchase Pico 4WD Smart Car Kit by SunFounder
- Amazon UK: Purchase Pico 4WD Smart Car Kit by SunFounder
- Amazon USA: Purchase Pico 4WD Smart Car Kit buy SunFounder
- Purchase Pico 4WD Smart Car Kit from SunFounder.com
- SunFounder Pico-4wd Car Kit Documentation
- Video Play List of 10 lesson on SunFounder Pico 4WD Smart Car Kit
İhtiyacın olabileceğini düşünüyor
-
eBay
-
AliExpressPurchase SunFounder Pico 4WD Smart Car Kit from AliExpresss.click.aliexpress.com
Kaynaklar ve referanslar
Henüz kaynak yok.
Dosyalar📁
Ahududu Kodu
-
Sunfounder's Raspberry Pi Pico 4WD card codesall the codes for the Sunfounder's Raspberry Pi Pico 4WD
pico_4wd_car-main.zip0.02 MB