ESP32 RC Cars
Demo videosu
- Bu proje, ESP32 tabanlı uzaktan kontrollü kamera sistemini gösterir
- WebSockets üzerinden gerçek zamanlı video akışı iletir ve motor ile servoyu kontrol edebilir
- Python sunucu uygulaması, WebSocket iletişimini yönetir ve ESP32 cihazını kontrol edebilen bir web arayüzü sağlar
Özellikler
- ESP32-CAM'den web sunucusuna gerçek zamanlı video akışı
- WebSocket komutlarıyla motor ve servonun uzaktan kontrolü
- Motoru ve servoyu varsayılan durumlarına sıfırlayan otomatik zaman aşımı özelliği
- Sunucuda dinamik çok istemcili video besleme kanvası sağlanması
Donanım gereksinimleri
- ESP32-CAM (AI Thinker modülü veya uyumlu kart)
- Uygun GPIO pinlerine bağlanmış motor ve servo
- ESP32-CAM için kararlı 5V güç kaynağı
- İsteğe bağlı: ek işlevler için SD kart
- İletişim için Wi-Fi ağı
Malzemeler
- Tüm kitler aliexpress üzerinden satın alınabilir
- Araba şasisi, elektronik hız kontrol cihazı, pil yuvası, 18650 hücre veya 7.4v pil paketi, ESP32-CAM, Bluetooth gamepad (PS4 kontrolcüsü kullanılır)
Yazılım gereksinimleri
ESP32 kodu
Kütüphaneler
WiFi.h: Wi-Fi bağlantısı
ArduinoWebsockets.h: WebSocket iletişimi
esp_camera.h: ESP32-CAM kamera kontrolü
ServoControl.h ve Esc.h: servo ve motor kontrolü
Arduino.h: standart Arduino işlevleri
Python sunucusu
Bağımlılıklar
- Şu Python kütüphanelerini kurun:
aiohttp, opencv-python, numpy
Kurulum
ESP32 firmware'i
secrets.h dosyasını düzenleyerek Wi-Fi kimlik bilgilerini ve WebSocket sunucu URL'sini ekleyin
- Kamera modülü, motor ve servo için GPIO pinlerinin donanım kurulumuyla eşleştiğinden emin olun
Python sunucusu
- Sunucu betiğini, web arayüzü için
index.html dosyasıyla birlikte bir dizine yerleştirin
- Sunucuyu başlatın:
python3 server.py
Kullanım
ESP32
- Verilen sketch'i Arduino IDE veya uyumlu bir platform kullanarak ESP32-CAM'e yükleyin
- Wi-Fi'ye ve WebSocket sunucusuna başarıyla bağlanıldığını doğrulamak için seri çıktıyı izleyin
Sunucu
- Python sunucu betiğini çalıştırın
- Gerçek zamanlı video akışını görmek için tarayıcıda web arayüzünü açın
- WebSocket bağlantısı üzerinden kontrol komutları gönderin
WebSocket komutları
MOTOR:<speed>: motor hızını ayarlar (-255 ile 255)
SERVO:<angle>: servo açısını ayarlar (0 ile 180)
CONTROL:<speed>:<angle>: motor hızını ve servo açısını aynı anda kontrol eder
Teknik ayrıntılar
ESP32 başlatma
- Wi-Fi: belirtilen Wi-Fi ağına bağlanır
- Kamera: video akışı için uygun ayarlarla ESP32-CAM yapılandırılır
- WebSocket: sunucuyla WebSocket bağlantısı kurulur
Zaman aşımı yönetimi
- Önceden tanımlanmış zaman aşımı süresi içinde kontrol komutu alınmazsa motor hızı
0, servo açısı ise 90 olarak sıfırlanır
Python sunucusu
- Birden fazla ESP32 istemcisiyle WebSocket iletişimini işler
- Gelen video karelerini işler ve bunları dinamik olarak bir ızgarada düzenler
- Video kareleri ızgarasını web arayüzüne akış olarak iletir
Sorun giderme
Bağlantı sorunları
secrets.h içindeki Wi-Fi kimlik bilgilerini kontrol edin
- WebSocket sunucusunun çalıştığını ve erişilebilir olduğunu doğrulayın
Video akışı sorunları
- ESP32-CAM için uygun güç sağlandığını doğrulayın
- Kamera başlatma ayarlarını kontrol edin
Lisans
- Bu proje MIT lisansı altında açık kaynak olarak sunulmaktadır
Katkı
- Uygulamayı geliştirmek için issue gönderimleri veya pull request'ler memnuniyetle karşılanır
1 yorum
Hacker News yorumu
12 yıl önce, Arduino vardı ama ESP32 yoktu; o dönemde bir HTC Magic telefonu kamera ve WiFi vericisi olarak kullanıp Arduino'ya bağlayarak servo ve RGB LED kontrol ettiğim bir proje yapmıştım. Bağlantı çok kararlı değildi ama eğlenceliydi
RC araba otomasyonuyla ilgileniyorsanız, okunması eğlenceli bir şey. Birkaç yıllık olsa da bugün daha kolay yöntemler olabilir
ESP32 CAM satın almadan önce harici antenli bir modeli düşünmek iyi olabilir. Reddit'te kare hızı sorunlarıyla ilgili tavsiyelere bakmıştım
Yakın zamanda Rust ve Steam Deck kullanarak benzer bir proje yaptım
FPV'nin büyük sorunu gecikme süresi; bu projenin gecikmesinin ne kadar olduğunu merak ediyorum
ESP32 ile çalışan bir RC tankı PlayStation 4 kontrolcüsüyle Bluetooth üzerinden kontrol etmiştim
AliExpress'te iyi bir 2,5 inç RC araba 30 dolar, bağımsız 5.8 GHz analog kamera ise 25 dolar
Ben de benzer bir proje düşünüyorum ve gecikme süresiyle ilgili deneyimleri merak ediyorum. Video akışına bakarak uzaktan kontrol etmenin mümkün olup olmadığını bilmek istiyorum. Engel kaçınmada gecikme sorun yaratacak gibi görünüyor
Otomatik olarak engellerden kaçınan bir kedi oyuncağı yapmak istemiştim. Bu proje, daha önce seçtiğim temelden daha iyi bir başlangıç olabilir gibi görünüyor