İçindekiler:
- Gereçler
- Adım 1: ESP32 Kamerayı Programlayın
- 2. Adım: Robotu Oluşturun
- Adım 3: HAYIR! Bir saniye bekle! Neden Arduino Nano'ya İhtiyacım Var?
- Adım 4: USB Joystick'i Bağlayın (Opsiyonel)
- Adım 5: SÜRECEĞİZ
- Adım 6: Web Sunucusu için HTML/Javascript Kodunun Nasıl Değiştirileceğine İlişkin Ayrıntılar
Video: ESP32 Kamera Robotu - FPV: 6 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:17
ESP32 Kamera modülü, ucuz ve güçlü bir PLC'dir. Hatta yüz tanıma içerir!
Yerleşik bir web arayüzü üzerinden sürdüğünüz bir First Person Viewpoint robotu yapalım!
Bu proje, OV2640 Kameralı Geekcreit ESP32 modülünü kullanır. AIThinker modülünü temel alır.
Orada birçok farklı ESP32 Kamera klonu var. Bazıları çalışıyor, bazıları çalışmıyor. Başarılı olmak için iyi bir fırsatınız olması için benim yaptığım modülü kullanmanızı öneririm.
Robot aşağıdaki gibi çalışır.
ESP32, kameranın bazı işlevlerini çalıştırmak için bazı onay kutuları ile canlı video akışını sunan ağınıza bir web URL'si yayınlar. Ayrıca, robot için yön komutları olan klavyeden web sayfasına gönderilen tuş basışlarını da alır. USB joystick kalkanını oluşturmak isteyebilirsiniz, böylece robotu klavye komutlarını yazmak yerine joystick ile sürebilirsiniz.
ESP32 tuş basımlarını aldığında, bu baytları Arduino Nano'ya iletir ve daha sonra robotu hareket ettirmek için motorları çalıştırır.
Bu proje orta-yüksek zorluktadır. Lütfen acele etmeyin.
Başlayalım!
Gereçler
- OV2640 Kameralı ESP-32 Kamera modülü - Geekcreit ürününü tavsiye ederim
- Sinyal gücünü en üst düzeye çıkarmak için ESP-32 için harici geçmeli anten
- Arduino Nano
- Joystick modülü için Arduino Leonardo (Leonardo tarafından sağlanan USB klavye emülasyonuna ihtiyacımız var)
- Genel Joystick modülü
- L293D Dörtlü H-köprü çipi
- ESP32'ye güç sağlamak için 5V çıkışlı DC-DC Buck Coverter
- ESP32'yi programlamak için FTDI Seri Adaptör
- İki dişli motora sahip genel bir robot şasisi - herhangi bir şasi işe yarayacaktır. 3 ila 6V motorlar tavsiye edilir
- ESP32'ye ve motorlara güç sağlamak için 2 x 7.4V 1300mAh LiPo pil (veya benzeri)
- Arduino Nano'ya güç sağlamak için 1 x 9V pil
Adım 1: ESP32 Kamerayı Programlayın
Bir devre tahtası kullanarak ESP32 Kameranızı FTDI adaptörüne aşağıdaki şekilde bağlayın:
FTDI ESP32
3.3V----------- 3.3V
GND-----------GND
TX ----------- U0R
Rx ----------- U0T
Ek olarak, IO0 ("eye-oh-sıfır") pinini GND'ye bağlayın. ESP32'yi programlama moduna geçirmek için bunu yapmanız gerekir.
esp32CameraWebRobotforInstructable.zip dosyasını açın.
Bu projede 4 dosya var:
esp32CameraWebRobotforInstructable.ino, Arduino taslağıdır.
ap_httpd.cpp, web sunucusunu yöneten ve web sayfasından kamera özelliklerinin ayarlanması ve web sayfasından tuşlara basılması ile ilgilenen koddur.
camera_index.h, web uygulaması için bayt dizileri olarak HTML/JavaScript kodunu içerir. Web uygulamasını değiştirmek bu projenin kapsamı dışındadır. Daha sonra HTML/JavaScript'in nasıl değiştirileceğine ilişkin bir bağlantı ekleyeceğim.
camera_pins.h, ESP32 kameranın pin yapılandırmasıyla ilgili başlık dosyasıdır.
ESP32'yi Programlama Moduna sokmak için, IO0'ı ("eye-oh-zero") Toprağa bağlamanız gerekir.
Arduino IDE'nizi başlatın ve Tools/Boards/Boards Manager'a gidin. esp32'yi arayın ve esp32 kitaplığını kurun.
Projeyi Arduino IDE'nizde açın.
Yönlendiricinizin ağ kimliğini ve SİZİN şifrenizi yukarıdaki resimde vurgulanan satırlara girin. Projeyi kaydedin.
Araçlar menüsüne gidin ve yukarıdaki resimde gösterildiği gibi seçimleri yapın.
Anakart: ESP32 Wrover
Yükleme Hızı: 115200
Bölme Şeması: "Büyük APP (3MB OTA yok)"
ve FTDI bağdaştırıcınızın bağlı olduğu bağlantı noktasını seçin.
"Yükle" düğmesini tıklayın.
Şimdi, bazen ESP32 yüklemeye başlamaz. Yükleme sırasında konsolda …---… karakterlerinin belirdiğini görmeye başladığınızda, ESP32'nin arkasındaki RESET düğmesine basmaya hazır olun. Daha sonra yüklemeye başlayacaktır.
Konsolda 'basın RST' gördüğünüzde yükleme tamamlanmıştır.
IO0'ın Toprakla BAĞLANTISINI KESİN. FTDI adaptörü ile ESP32 arasındaki 3.3V hattını ayırın.
ESP32 Kameranın iyi çalışması için çok fazla akım gerekir. ESP32'deki 5V ve GND pinlerine bir 5V 2A güç adaptörü bağlayın.
Seri Monitörü açın, baud hızını 115200'e ayarlayın ve ardından ESP32'nin yeniden başlatılmasını izleyin. Sonunda, sunucunun URL'sini göreceksiniz.
Tarayıcınıza gidin ve URL'yi girin. Web sitesi yüklendiğinde, 'Yayını Başlat' düğmesini tıklayın ve canlı video akışı başlamalıdır. 'Floodlight' onay kutusuna tıklarsanız, yerleşik flaş LED'i yanmalıdır. Dikkat et! PARLAK!
2. Adım: Robotu Oluşturun
İki tekerlekli bir robot şasisine ihtiyacınız var. Herhangi biri yapacak. Kasayı üreticinin talimatlarına göre monte edin.
Ardından robotu şemaya göre bağlayın. Batarya bağlantılarını şimdilik bırakın.
L293D, motorları kontrol etmek için kullanılır. Çip üzerindeki yarım çentiğin ESP32'YE DOĞRU olduğuna dikkat edin.
Tipik olarak, iki motoru kontrol etmek için Arduino'da 6 pin gereklidir.
Bu robot sadece 4 pin gerektiriyor ve hala tam olarak çalışıyor.
Pin 1 ve 9, Arduino'nun 5V kaynağına bağlanır, böylece kalıcı olarak YÜKSEK olurlar. Robotu bu şekilde kablolamak, motorları kontrol etmek için Arduino'da iki tane daha az pime ihtiyacımız olduğu anlamına gelir.
İleri yönlerde, INPUT pinleri LOW olarak ayarlanır ve motor Pulse Wave Modulation pinleri 0 ile 255 arasında, 0 KAPALI anlamına gelir ve 255 maksimum hız anlamına gelir.
Ters yönlerde INPUT pinleri HIGH olarak ayarlanır ve PWM değerleri tersine çevrilir. 0 maksimum hız ve 255 kapalı anlamına gelir.
ArduinoMotorControl çizimini açın ve Arduino Nano'ya yükleyin.
Adım 3: HAYIR! Bir saniye bekle! Neden Arduino Nano'ya İhtiyacım Var?
Muhtemelen "Hey! ESP32 kamerada en az 4 IO pini var. Motorları kontrol etmek için neden onları kullanamıyorum?" diye düşünüyorsunuz.
Doğru, ESP32'de aşağıdaki gibi pinler var:
IO0 - ESP32'yi programlama moduna geçirmek için gerekli
IO2 - mevcut
IO4 - Flaş LED'i
IO12, IO13, IO14, IO15, IO16 - ek GPIO pinleri.
Pinleri PWM komutlarıyla kontrol etmek için ESP32'ye basit bir çizim yüklerseniz, çalışırlar.
ANCAK, eskizlerinizde KAMERA kitaplıklarını etkinleştirdiğinizde, bu pinler artık kullanılamaz.
Bu yüzden yapılacak en kolay şey, motorları PWM üzerinden kontrol etmek için bir Nano kullanmak ve ESP32'den komutları tek bir kablo (ESP32 U0T - Arduino Rx0) ve GND üzerinden seri iletişim yoluyla göndermektir. Çok basit.
Adım 4: USB Joystick'i Bağlayın (Opsiyonel)
Web sayfasına aşağıdaki gibi tuşlara basarak robotu sürebilirsiniz:
8 - İleri
9 - Sağa İleri
7 - İleri Sol
4 - Sola Döndür
5 - Dur
1 - Sol Ters
2 - Ters
3 - Sağa Ters.
USB joystick taslağı, joystick girişlerini tuş basışlarına çevirir ve bunları robotu sürmek için Arduino'ya ileten web arayüzüne gönderir.
Joystick'i Arduino LEONARDO'ya aşağıdaki gibi bağlayın:
leonardo oyun çubuğu
5V ---------- VCC
GND ---------- GND
A0 ---------- VRx
A1 ---------- VRy
usbJoyStick taslağını açın, tahta olarak Arduino Leonardo'yu seçin ve Leonardo'ya yükleyin.
Test etmek istiyorsanız, bilgisayarınızda bir metin düzenleyici açın, pencerede fareyi tıklayın ve joystick'i hareket ettirmeye başlayın. Pencerede 1'den 9'a kadar olan değerleri görmelisiniz.
Adım 5: SÜRECEĞİZ
Her şeyin doğru olduğundan emin olmak için biraz zaman ayırın ve kablolamanızı gözden geçirin.
Ardından, pillerinizi aşağıdaki gibi bağlayın.
1. ESP32 Kamerayı çalıştırın. Web sunucusunu başlatmak için birkaç saniye gerekir.
2. Arduino Nano'yu çalıştırın.
3. Motorları çalıştırın.
Tarayıcınızı başlatın ve ESP32'nin URL'sine gidin.
Akışı Başlat düğmesini tıklayın.
Ekranın artık odak noktası olması için farenizi tarayıcı ekranında bir yere tıklayın.
Robotunuzu joystick (veya klavye) ile sürmeye başlayın.
Varsayılan çerçeve boyutunun, canlı videoyu WiFi üzerinden oldukça duyarlı bir şekilde yayınlamak için uygun olduğunu buldum. Ancak çerçeve boyutunu artırdıkça, daha büyük görüntüler yayınlamaya çalıştığınız için akış daha dalgalı hale gelir.
Bu, size canlı video akışıyla çalışmaya ve WiFi üzerinden bir robotu sürmeye başlama fırsatı veren zorlu bir projedir. Umarım eğlenceli bulmuşsundur!
ŞİMDİ GİDİN VE MÜKEMMEL BİR ŞEY YAPIN!
Ocak 2020 Güncellemesi - Son fotoğraflar, robotun sert lehimli ve kasaya güvenli bir şekilde monte edilmiş son halini göstermektedir.
Öne monte edilen üç anahtar aşağıdaki gibidir:
Sol - Motor gücü pili
Merkez - Arduino pili
Sağ - ESP32 Kamera Pili
Bazı güçlendirici transformatörlerle büyük bir pil kullanabilirim (ESP32 için bir tane kullanıyorum - önden görünüm fotoğrafının sağ alt tarafında), ancak basitlik adına, sadece 3 pili tutuyorum.
Robot şimdi Erişim Noktasında
Bu robotu evimin dışında göstermeyi hantal buluyorum çünkü okul kurumsal ağım robot web sunucusunu ona bağlamama izin vermiyor. Çözüm olarak ESP32 web sunucusunun Erişim Noktası özelliğini kullanmayı araştırdım. Biraz çalışma gerektirir, ancak ESP32'nin kendi IP adresini yayınlamasını sağlamak için ana robot çiziminde oldukça az değişiklik gerektirir. Özel bir yüksek hızlı wifi hub kadar güçlü değil (bazen çok hızlı hareket ederseniz kilitleniyor), ancak oldukça iyi çalışıyor ve şimdi robotu bir ağa bağlamak zorunda kalmadan istediğim her yerde gösterebilirim! Robotu çalıştırdıktan sonra, kendiniz Access Point'e dönüştürmeyi deneyin!
Adım 6: Web Sunucusu için HTML/Javascript Kodunun Nasıl Değiştirileceğine İlişkin Ayrıntılar
Bu gerekli değil, ama bazı isteklerim oldu.
Bu Google Dokümanına, HTML/Javascript ile camera_index.h dosyasındaki bayt dizisi temsilleri arasında ileri geri dönüştürmek için CyberChef'in nasıl kullanılacağına ilişkin ayrıntıları sağladım.
Önerilen:
NodeMCU'lu CCTV Kamera + Eski Dizüstü Bilgisayarın Kamera Modülü (Blynk Kullanan ve Kullanmadan): 5 Adım
NodeMCU'lu CCTV Kamera + Eski Dizüstü Bilgisayarın Kamera Modülü (Blynk Kullanan ve Kullanmadan): Merhaba arkadaşlar! Bu talimatta size eski bir dizüstü bilgisayarın kamera modülünü ve nodeMCU'yu CCTV'ye benzer bir şey yapmak için nasıl kullandığımı göstereceğim
ESP32-CAM ile Basit Gözetleme Robotu: 4 Adım
ESP32-CAM ile Basit Gözetleme Robotu: ESP32-CAM modülü ucuz, düşük güç tüketen bir modüldür ancak görüntü, seri iletişim ve GPIO'lar için birçok kaynak sağlar. yapabilen basit bir gözetleme rc robotu
DuvelBot - ESP32-CAM Bira Servis Robotu: 4 Adım (Resimli)
DuvelBot - ESP32-CAM Bira Servis Robotu: Zor bir günün ardından koltukta en sevdiğiniz birayı yudumlamaktan başka hiçbir şey gelmez. Benim durumumda, bu Belçikalı sarışın bira "Duvel". Ancak, çökme dışında her şeye rağmen çok ciddi bir sorunla karşı karşıyayız: buzdolabının
Tereyağı Robotu: Varoluşsal Krizi Olan Arduino Robotu: 6 Adım (Resimlerle)
Tereyağı Robotu: Varoluşsal Krizli Arduino Robotu: Bu proje, "Rick and Morty" animasyon dizisine dayanmaktadır. Bölümlerden birinde Rick, tek amacı tereyağı getirmek olan bir robot yapar. Bruface'den (Brüksel Mühendislik Fakültesi) öğrenciler olarak, mecha için bir görevimiz var
[Arduino Robot] Hareket Yakalama Robotu Nasıl Yapılır - Başparmak Robotu - Servo Motor - Kaynak Kodu: 26 Adım (Resimlerle)
[Arduino Robot] Hareket Yakalama Robotu Nasıl Yapılır | Başparmak Robotu | Servo Motor | Kaynak Kodu: Thumbs Robot. MG90S servo motorun bir potansiyometresi kullanıldı. Çok eğlenceli ve kolay! Kod çok basit. Sadece 30 satır civarında. Hareket yakalamaya benziyor.Lütfen herhangi bir soru veya geri bildirim bırakın![Talimat] Kaynak Kodu https://github.c