Raspberry pi ile openai chatgpt kullanarak bir robot yapmak istiyorum. bu robot 4 tekerlekli olacak ve etrafındaki nesneleri algılayarak ne yöne gideceğine karar verecek. örnek proje olarak https://www.youtube.com/watch?v=U3sSp1PQtVQ linkindeki projeye benzer bir proje olacak. ancak türkçe olacak. robotun adı Ali olacak ve türkçe konuşup cevap verebilecek. bana hardware ve software konusunda yardımcı olabilir misin? Proje için yardımına ihtiyacım var.
Bu projeyi gerçekleştirmek için gereken donanım ve yazılım konularında sana yardımcı olabilirim. İşte proje için bir yol haritası:
Donanım Gereksinimleri
- Raspberry Pi:
- Raspberry Pi 4 veya Raspberry Pi Zero 2 W önerilir.
- Motorlar ve Motor Sürücü Kartı:
- 4 adet DC motor ve L298N motor sürücü kartı veya benzeri bir sürücü kartı.
- Tekerlekler:
- Robot için uygun boyutta 4 adet tekerlek.
- Batarya:
- 7.4V veya 12V lityum batarya (kapasite robotun çalışma süresine bağlı).
- Sensörler:
- Ultrasonik sensörler (HC-SR04) veya LIDAR modülü, çevre algılama için.
- İvmeölçer ve jiroskop modülü (MPU6050), stabilite için.
- Mikrofon ve Hoparlör:
- USB mikrofon ve küçük bir hoparlör (3.5mm jack veya USB bağlantılı).
- Kamera Modülü (isteğe bağlı):
- Görsel algılama eklemek için Raspberry Pi kamera modülü.
- Şasi:
- 4 tekerlekli robot için uygun bir şasi.
- Bağlantı Kablosu ve Devre Elemanları:
- Jumper kablolar, breadboard veya lehimleme için devre kartı.
Yazılım Gereksinimleri
- İşletim Sistemi:
- Raspberry Pi OS (Lite veya Desktop sürümü).
- Python:
- Programlama için Python dili.
- ChatGPT API:
- Türkçe konuşma ve cevap verme için OpenAI API’ı.
- Motor Kontrolü:
- Raspberry Pi GPIO kütüphanesi.
- Sensör Verisi İşleme:
RPi.GPIO
veAdafruit_Python_GPIO
gibi kütüphaneler.
- Ses İşleme:
pyttsx3
veya benzeri bir Text-to-Speech kütüphanesi.speech_recognition
kütüphanesi mikrofon girişini işlemek için.
- Yön Belirleme Algoritması:
- Sensörlerden gelen verileri işleyerek engelleri algılama ve rota belirleme.
- Ağ Bağlantısı:
- Wi-Fi üzerinden OpenAI API’ına erişim.
- Sesli Komutlar ve Tepkiler:
- Türkçe giriş ve çıkış desteği sağlamak için
gTTS
veplaysound
.
- Türkçe giriş ve çıkış desteği sağlamak için
Projenin Uygulanması
- Robot Şasisinin Montajı:
- Motorları ve tekerlekleri şasiye tak.
- Motor sürücü kartını Raspberry Pi’ye bağla.
- Sensörlerin Yerleştirilmesi:
- Ultrasonik sensörleri robotun ön ve yan kısımlarına monte et.
- Raspberry Pi’yi Yapılandırma:
- İşletim sistemini kur ve güncellemeleri yap.
- Gerekli Python kütüphanelerini yükle.
- ChatGPT API Entegrasyonu:
- OpenAI API anahtarını al ve Python scriptine entegre et.
- Motor ve Sensör Kontrolü:
- Sensörlerden gelen veriye göre motorları kontrol eden bir Python scripti yaz.
- Sesli İletişim:
- Mikrofon ve hoparlörle Türkçe konuşma ve cevaplama sistemini kur.
- Test ve Kalibrasyon:
- Robotun çevre algılama, konuşma, ve yön tayini işlevlerini test et.
Bu süreci detaylandırmak veya her bir adım için kod ve donanım önerileri sunmamı istersen, belirtebilirsin. Özellikle yazılım tarafında API bağlantısı, motor kontrol kodları veya sesli yanıt sistemini kurarken rehberlik edebilirim.
Herbir süreci 12-15 yaşında bir çocuğun anlayacağı şekilde ve kodları kopyala yapıştır yaparak bu projeyi tamamlamasını istiyorum. Bu arada kullanılan donanım ürünlerinin motorlar ve motor sürücüler gibi, mikrofon ve hoparlör gibi raspberry pi hangi gpio larına bağlanacaklarını da belirtmeni istiyorum. haydi başlayalım.
Tabii! Projeyi basit bir şekilde adım adım anlatacağım ve gerekli kodları da paylaşacağım. Her adımda hangi donanımı kullanacağımızı, nasıl bağlayacağımızı ve ne yapmamız gerektiğini açıklayacağım.
1. Raspberry Pi’nin Hazırlanması
Gerekli Malzemeler:
- Raspberry Pi (Raspberry Pi 4 önerilir)
- SD Kart (32 GB veya daha büyük)
- Klavye, fare, HDMI kablosu ve ekran (başlangıç için)
Ne Yapılacak?
Raspberry Pi’nin işletim sistemi kurulacak ve hazır hale getirilecek.
- Raspberry Pi OS yükleme:
- Bilgisayarına Raspberry Pi Imager indir ve çalıştır.
- Raspberry Pi OS (32-bit) seçerek SD kartına yaz.
- Başlatma:
- Raspberry Pi’yi aç ve internet bağlantısını ayarla.
- Python Kütüphanelerini Kur: Terminal aç ve şu komutları sırayla yaz:bash
sudo apt update sudo apt install python3-pip pip3 install RPi.GPIO speech_recognition pyttsx3 openai
2. Motorları ve Motor Sürücüyü Bağlama
Gerekli Malzemeler:
- 4 adet DC motor
- L298N motor sürücü kartı
- Tekerlekler
- Jumper kablolar
Bağlantı:
- Motor sürücü kartı:
- Motorların kablolarını motor sürücü üzerindeki M1 ve M2 pinlerine bağla.
IN1, IN2, IN3, IN4
pinlerini Raspberry Pi GPIO’larına bağla:- IN1 → GPIO17 (Pin 11)
- IN2 → GPIO18 (Pin 12)
- IN3 → GPIO27 (Pin 13)
- IN4 → GPIO22 (Pin 15)
VCC
pinini bataryanın artısına,GND
pinini Raspberry Pi’nin GND pinine bağla.
Kod:
Aşağıdaki kodu Raspberry Pi’ye kaydet (motor_control.py
):
import RPi.GPIO as GPIO
from time import sleep
# Pin ayarları
IN1, IN2, IN3, IN4 = 17, 18, 27, 22
# GPIO ayarları
GPIO.setmode(GPIO.BCM)
GPIO.setup(IN1, GPIO.OUT)
GPIO.setup(IN2, GPIO.OUT)
GPIO.setup(IN3, GPIO.OUT)
GPIO.setup(IN4, GPIO.OUT)
def ileri():
GPIO.output(IN1, GPIO.HIGH)
GPIO.output(IN2, GPIO.LOW)
GPIO.output(IN3, GPIO.HIGH)
GPIO.output(IN4, GPIO.LOW)
def geri():
GPIO.output(IN1, GPIO.LOW)
GPIO.output(IN2, GPIO.HIGH)
GPIO.output(IN3, GPIO.LOW)
GPIO.output(IN4, GPIO.HIGH)
def dur():
GPIO.output(IN1, GPIO.LOW)
GPIO.output(IN2, GPIO.LOW)
GPIO.output(IN3, GPIO.LOW)
GPIO.output(IN4, GPIO.LOW)
try:
while True:
ileri()
sleep(2)
dur()
sleep(1)
geri()
sleep(2)
dur()
sleep(1)
except KeyboardInterrupt:
GPIO.cleanup()
Terminalden çalıştır:
python3 motor_control.py
3. Sensörleri Bağlama
Gerekli Malzemeler:
- HC-SR04 Ultrasonik Sensör
Bağlantı:
- Trig → GPIO23 (Pin 16)
- Echo → GPIO24 (Pin 18)
- VCC → 5V
- GND → GND
Kod:
Aşağıdaki kodu kaydet (ultrasonik_sensor.py
):
import RPi.GPIO as GPIO
import time
TRIG, ECHO = 23, 24
GPIO.setmode(GPIO.BCM)
GPIO.setup(TRIG, GPIO.OUT)
GPIO.setup(ECHO, GPIO.IN)
def mesafe_olc():
GPIO.output(TRIG, True)
time.sleep(0.00001)
GPIO.output(TRIG, False)
while GPIO.input(ECHO) == 0:
baslangic = time.time()
while GPIO.input(ECHO) == 1:
bitis = time.time()
mesafe = (bitis - baslangic) * 34300 / 2
return mesafe
try:
while True:
mesafe = mesafe_olc()
print(f"Mesafe: {mesafe:.2f} cm")
time.sleep(1)
except KeyboardInterrupt:
GPIO.cleanup()
Terminalden çalıştır:
python3 ultrasonik_sensor.py
4. Türkçe Konuşma Eklemek
Gerekli Malzemeler:
- USB mikrofon
- Hoparlör (3.5mm veya USB)
Kod:
Aşağıdaki kodu kaydet (konusma.py
):
import pyttsx3
konusma = pyttsx3.init()
konusma.say("Merhaba! Ben Ali, size yardımcı olmak için buradayım.")
konusma.runAndWait()
Terminalden çalıştır:
python3 konusma.py
5. Her Şeyi Birleştirmek
Robot hem etrafındaki engelleri algılayacak hem de Türkçe konuşacak.
Kod:
Aşağıdaki kodu kaydet (ali_robot.py
):
import RPi.GPIO as GPIO
import time
import pyttsx3
# Pin ayarları
IN1, IN2, IN3, IN4 = 17, 18, 27, 22
TRIG, ECHO = 23, 24
GPIO.setmode(GPIO.BCM)
GPIO.setup(IN1, GPIO.OUT)
GPIO.setup(IN2, GPIO.OUT)
GPIO.setup(IN3, GPIO.OUT)
GPIO.setup(IN4, GPIO.OUT)
GPIO.setup(TRIG, GPIO.OUT)
GPIO.setup(ECHO, GPIO.IN)
konusma = pyttsx3.init()
def ileri():
GPIO.output(IN1, GPIO.HIGH)
GPIO.output(IN2, GPIO.LOW)
GPIO.output(IN3, GPIO.HIGH)
GPIO.output(IN4, GPIO.LOW)
def dur():
GPIO.output(IN1, GPIO.LOW)
GPIO.output(IN2, GPIO.LOW)
GPIO.output(IN3, GPIO.LOW)
GPIO.output(IN4, GPIO.LOW)
def mesafe_olc():
GPIO.output(TRIG, True)
time.sleep(0.00001)
GPIO.output(TRIG, False)
while GPIO.input(ECHO) == 0:
baslangic = time.time()
while GPIO.input(ECHO) == 1:
bitis = time.time()
mesafe = (bitis - baslangic) * 34300 / 2
return mesafe
try:
while True:
mesafe = mesafe_olc()
if mesafe < 20:
dur()
konusma.say("Önümde bir engel var, duruyorum.")
konusma.runAndWait()
else:
ileri()
time.sleep(1)
except KeyboardInterrupt:
GPIO.cleanup()
Terminalden çalıştır:
python3 ali_robot.py
Bu adımları takip ederek robotu kolayca tamamlayabilirsin. Bir sorun yaşarsan buradan yardım alabilirsin! 😊
ChatGPT:
Evet, OpenAI API’sini kullandığınızda bir ücret ödemeniz gerekir. OpenAI’nin ChatGPT API hizmeti, kullanım bazlı fiyatlandırma modeline sahiptir. Bu, API’yı ne kadar kullandığınıza bağlı olarak değişen bir maliyet anlamına gelir.
OpenAI API Fiyatlandırması
- OpenAI API’nin fiyatlandırması, kullanılan token sayısına göre hesaplanır. Bir mesaj yazdığınızda veya yanıt aldığınızda, bu mesajların uzunluğuna bağlı olarak belirli bir token sayısı harcanır.
- Ücretlendirme, genellikle kullandığınız dil modeli (örneğin, GPT-4 veya GPT-3.5) ve işlem miktarına bağlıdır.
Ücretsiz Alternatifler
- Ücretsiz Deneme Kredi: OpenAI hesabı oluşturduğunuzda genelde bir miktar ücretsiz kredi verir. Bu krediyi tüketene kadar API’yi ücretsiz kullanabilirsiniz.
- Yerel Model Alternatifleri: OpenAI’nin yerine Raspberry Pi üzerinde çalışabilen yerel dil modellerini kullanmayı düşünebilirsiniz. Örneğin:
- Hugging Face Transformers kütüphanesi.
- GPT-J veya benzeri açık kaynaklı modeller.
API’yi Minimum Kullanım için Ayarlamak
Eğer OpenAI API’yi kullanacaksanız, maliyeti azaltmak için şu stratejileri uygulayabilirsiniz:
- Sorguları kısa tutun: Gereksiz mesajları ve yanıtları sınırlandırarak token kullanımını azaltabilirsiniz.
- Yanıtları filtreleyin: Robotun yalnızca gerekli durumlarda konuşmasını sağlayabilirsiniz.
- Belirli bir bütçe belirleyin: API kullanımını izlemek ve bir bütçe belirlemek için OpenAI hesabınızın ayarlarını yapılandırabilirsiniz.
Eğer düşük bütçeli veya ücretsiz çözümlerle ilerlemek istersen, buna uygun öneriler geliştirebilirim. Daha fazla detay vermemi ister misin? 😊
Şunu dedin:
ChatGPT:
Evet, robotunuzu Google’ın Gemini API‘sini kullanarak da geliştirebilirsiniz. Gemini API, Google’ın en yeni yapay zeka modellerine erişim sağlar ve uygulamalarınıza entegre edilebilir.
Gemini API’yi Kullanarak Robot Geliştirme Adımları:
API Anahtarı Alma:
- Google AI Studio üzerinden bir Gemini API anahtarı edinin.
SDK Kurulumu:
- Tercih ettiğiniz programlama dili için uygun SDK’yı yükleyin. Örneğin, Python için:bash
pip install google-generativeai
- Diğer diller için SDK bilgileri:
- Tercih ettiğiniz programlama dili için uygun SDK’yı yükleyin. Örneğin, Python için:
API Entegrasyonu:
- Gemini API’yi kullanarak metin oluşturma ve işleme yeteneklerini robotunuza entegre edin. Örnek bir Python kodu:python
import google.generativeai as gemini gemini.configure(api_key="API_ANAHTARINIZ") yanit = gemini.generate_text("Merhaba, size nasıl yardımcı olabilirim?") print(yanit.result)
- Daha fazla kod örneği ve kullanım detayları için:
- Gemini API’yi kullanarak metin oluşturma ve işleme yeteneklerini robotunuza entegre edin. Örnek bir Python kodu:
Robot Kontrolü ve Sensör Entegrasyonu:
- Raspberry Pi’nin GPIO pinlerini kullanarak motorlar ve sensörleri kontrol edin. Python’da RPi.GPIO kütüphanesini kullanabilirsiniz.
Sesli İletişim:
- Robotunuzun Türkçe konuşma ve anlama yeteneğini sağlamak için metin okuma ve ses tanıma kütüphanelerini entegre edin. Örneğin,
pyttsx3
vespeech_recognition
kütüphanelerini kullanabilirsiniz.
- Robotunuzun Türkçe konuşma ve anlama yeteneğini sağlamak için metin okuma ve ses tanıma kütüphanelerini entegre edin. Örneğin,
Ücretlendirme: Gemini API kullanımı, belirli bir ücretsiz kota ile başlayabilir; ancak kullanım miktarınıza bağlı olarak ek ücretler uygulanabilir. Güncel fiyatlandırma ve kullanım kotası bilgileri için Google AI Studio’daki hesap ayarlarınızı kontrol etmeniz önerilir.
Örnek Projeler: Gemini API kullanılarak geliştirilmiş robot projeleri mevcuttur. Örneğin, doğal dil komutlarıyla kontrol edilen bir robot projesi:
Bu adımları izleyerek, robotunuzu Gemini API ile entegre edebilir ve projenizi başarılı bir şekilde tamamlayabilirsiniz.