ESP32 Kullanarak Düşük Maliyetli Drone Yapma Yöntemi
(digikey.com)- ESP32 tabanlı DIY drone, akıllı telefonla kontrol edilen küçük bir WiFi drone’u düşük maliyetli parçalarla hayata geçirerek drone kontrolü, PCB ve firmware konularını tek seferde uygulamalı öğrenmeyi sağlar
- Tasarımın merkezinde Type-C USB, batarya şarj devresi, ESP32, CP2102 USB-UART, MPU6050 ve SI2302 motor sürücüsünü entegre eden hepsi bir arada PCB bulunur
- Firmware, Espressif’in ESP-drone firmware’ini temel alır; ESP-IDF 4.4.5 ile doğrudan derlenebilir veya sağlanan
ESPDrone.binflashlanabilir - Güç verildikten sonra drone’un oluşturduğu WiFi hotspot’a
12345678parolasıyla bağlanılır ve iOS ya da Android uygulamasından kontrol edilir - Batarya deşarj performansı yetersizse uygulama bağlantısı kopabilir veya kalkış sırasında yeniden başlatma yaşanabilir; bu nedenle örnekteki gibi 1300mAh 30C düzeyinde yüksek deşarj oranına sahip bir batarya gerekir
Proje özeti ve özellikler
- Bu proje, akıllı telefonla kontrol edilen bir WiFi drone’u ESP32 ve çevre bileşenleriyle doğrudan yapma yöntemidir
- Küçük ve hafif gövdede ESP32 modülü, MPU6050 IMU, çekirdeksiz motorlar ve plastik pervaneler kullanılır
- Başlıca özellikler şunlardır
- Akıllı telefon tabanlı WiFi kontrolü
- Stabilite kontrolü için MPU6050 IMU
- 3D baskı parça olmadan oluşturulan hepsi bir arada PCB
- Harici modül üzerinden position hold veya height hold ekleyebilme
- Dahili batarya şarj cihazı
- Programlama ve hata ayıklama için dahili USB arayüzü
- Android ve iOS uygulama desteği
- Açık kaynak
Devre yapısı
- Type-C USB portu hem şarj hem de programlama işini üstlenir
- Güç yolu kontrolü, USB gücü ile batarya gücü arasında geçiş yapmak için P-Channel MOSFET U2 ve diyot D1 kullanır
- Voltaj regülasyonunu Microchip’in MIC5219 3.3V LDO’su sağlar
- TP4056 şarj kontrolcüsü batarya şarjını yönetir, voltaj algılama ise voltaj bölücü devreyle yapılır
- Ana kontrol bölümü ESP32 SoC, CP2102 USB-UART kontrolcüsü ve MPU6050 IMU çipinden oluşur
- CP2102 ve çift MOSFET, ESP32 reset işlevini basitleştirir
- MPU6050, ESP32 GPIO pinlerine bağlanır ve uçuş stabilizasyonu ile hareket kontrolünde kullanılır
- Motor sürücü devresi, motorları kontrol etmek için SI2302 N-Channel MOSFET kullanır; koruma diyodu ve dirençler de birlikte kullanılır
- Hata ayıklama LED’leri durum kontrolü için kullanılır
- Mavi LED: kalibrasyon
- Yeşil LED: bağlantı algılama
- Kırmızı LED: düşük batarya
- Güç ve şarj göstergeleri de dahildir
PCB ve montaj
- Nihai ürünü küçük ve kolay monte edilebilir yapmak için özel PCB kullanılır
- Drone ayakları da PCB’ye dahildir ve ana PCB’den kolayca ayrılabilir
- A ve B pervaneleri belirtilen yönlere uygun şekilde takılmalıdır
- Güç açılışındaki kendi kendine test sırasında pervanelerin normal şekilde döndüğü ve doğru yönde döndüğü kontrol edilmelidir
Firmware ve flashlama
- Firmware, Espressif’in ESP-drone firmware’ini temel alır; PCB tasarımına göre değiştirilmiş Circuit Digest GitHub kaynak kodu kullanılmalıdır
- Kod ESP-IDF ile yazılmıştır ve derlemede kullanılan sürüm ESP-IDF 4.4.5’tir
- Firmware uygulamanın üç yolu vardır
- Kaynağı ESP-IDF ile derleme
- ESP-IDF 4.4.x kurulup yapılandırılır
git clone https://github.com/Circuit-Digest/ESP-Drone.gitile depo klonlanırESP-Drone/Firmware/esp-droneklasörüne geçiliridf.py menuconfigile ayarlar değiştirilebilir, ancak varsayılan ayarlar da yeterlidiridf.py -p PORT flashkomutuyla derleme ve flashlama yapılır
- ESPTOOL kullanma
- ESP-IDF kurulumundan sonra firmware imaj klasöründe çalıştırılır
esptool.py write_flash --flash_size detect 0x0 ESPDrone.binkomutuyla flashlanır
- ESP32 Flash Download Tool kullanma
- Araç indirilip çalıştırılır ve çip tipi ESP32 olarak seçilir
ESPDrone.bindosyası seçilir ve adres0x00olarak ayarlanır- Doğru COM portu seçildikten sonra erase işlemi yapılıp START ile flashlanır
- Kaynağı ESP-IDF ile derleme
Uygulama bağlantısı ve kontrol
- Drone düz bir yüzeye konup güç verildiğinde uçuş kontrolcüsü bir WiFi hotspot oluşturur
- Akıllı telefondan
12345678parolasıyla bağlanıldıktan sonra uygulama açılarak kullanılır - iOS uygulaması App Store’da
ESP-Drone APParanarak indirilebilir - Android uygulaması sağlanan bağlantıdan indirilebilir; uygulama üçüncü tarafça oluşturulup barındırıldığı için kullanıcı kendi değerlendirmesiyle kurmalıdır
- Uygulamada connect düğmesine basıldığında drone ile iletişim başlar
- Bağlantı başarılı olursa drone’un LED’i yeşil renkte yanıp söner
- turn lock düğmesi, sol kontrolcüyü yalnızca yukarı-aşağı kullanmak veya yukarı-aşağı-sol dönüş-sağ dönüş kullanacak şekilde kilitlemek için kullanılır
- Sol joystick kalkış ve inişten, sağ joystick hareket kontrolünden sorumludur
- Uygulama bağlantısı koparsa veya kalkış sırasında drone yeniden başlarsa batarya yeterli gücü sağlayamıyor olabilir
- Örnek batarya 1300mAh 30C
- Daha yüksek deşarj oranına sahip bir batarya gerekir
Uçuş öncesi kontrol
- Drone’un burnu öne, kuyruk olan anten kısmı arkaya bakacak şekilde yerleştirilir
- Drone yatay bir yüzeye konur ve hareket etmeyecek durumdayken gücü açılır
- İletişim kurulduktan sonra drone kuyruğundaki LED’in yeşil renkte hızlıca yanıp söndüğü kontrol edilir
- Kırmızı LED yanıp sönüyorsa düşük batarya durumudur ve şarj edilmelidir
- Gaz kontrolcüsü hafifçe ileri itilerek drone’un komutlara tepki verip vermediği kontrol edilir
- Sağ kontrolcüyle yön kontrolünün düzgün çalışıp çalışmadığı denetlenir
Ana bileşenler
- ESP32-WROOM-32E-H4: Espressif Systems’in BT/WiFi RF TXRX modülü
- MPU-6050: TDK InvenSense’in 3 eksenli ivmeölçer-jiroskop IMU’su
- CP2102N-A02-GQFN28R: Silicon Labs’in USB-UART köprüsü
- 2N7002DW-G: onsemi’nin çift N-Channel MOSFET’i
- MIC5219-3.3YM5-TR: Microchip Technology’nin 3.3V 500mA lineer regülatörü
- AO3401: Alpha & Omega Semiconductor’ın P-Channel MOSFET’i
- SI2302DDS-T1-BE3: Vishay Siliconix’in N-Channel MOSFET’i
- JS102011SAQN: C&K’nin SPDT kaydırmalı anahtarı
- 1N4148W: Diotec Semiconductor’ın standart diyodu
- SS34: MDD’nin 40V 3A Schottky diyodu
1 yorum
Hacker News yorumları
Konuya aşina olmayanlar için ekleyeyim: kendi başına yapılabilen FPV drone ekosistemi zaten epey canlı
Yaygın kurulum; STM32 tabanlı uçuş kontrol MCU’su ve sensörleri olan küçük kare bir PCB, motor sürücü PCB’si, karbon fiber şase, LoRa kablosuz modül PCB’si, kamera ve video iletim sistemi (90’lardaki güvenlik kamerası tarzı analog ya da dijital), fırçasız DC motorlar ve pervanelerin birleştirilmesinden oluşuyor
Firmware olarak Betaflight, ArduPilot, iNav, PX4 kullanılabiliyor ya da doğrudan kendiniz yazabiliyorsunuz. Yazıdaki PCB şasesi temiz görünüyor ve kullanım kolaylığı da açık, ancak yüksek ivmelenme durumlarında istenen kontrol karakteristiğini verecek kadar rijit olup olmadığı şüpheli
ESC yazılımı için https://github.com/am32-firmware, https://github.com/mathiasvr/bluejay var; uçuş kontrolü tarafında ise https://github.com/betaflight, https://github.com/ArduPilot, https://github.com/iNavFlight bulunuyor
Kontrol bağlantısı için https://github.com/ExpressLRS var ve bu da ESP32/ESP82 çipleri kullanıyor. Radyo vericileri için https://github.com/EdgeTX mevcut
5 yıl önce bunların çoğu özel mülkiyet teknolojisiydi ve hobiye giriş birkaç bin doları buluyordu; bugün ise yaklaşık 500 dolardan başlamak mümkün. FPV’de büyük masraf gözlük tarafı ama ucuz analog gözlükler yaklaşık 100 dolara da bulunabiliyor
Uçuş kontrol yazılımı kademeli olarak gelişti, video alt sistemi de büyük ölçüde analogdan 2.4/5.8GHz dijitale geçti, ama genel mimari 5 yıl öncesinden çok farklı değil. Hobi tipi R/C verici ve alıcılar, uçuş kontrolcüsünden (genelde STM32) geçip PWM çıkışıyla hobi tipi ESC’leri sürüyor; ESC de motoru kontrol ediyor. ESC’ler mikrodenetleyici tabanlı olduğu için yeniden flash’lanabiliyor ama uğraştırıcı ve sinir bozucu. Telemetri genelde kontrolden ayrı, kontrol videodan da ayrı ve bunların hepsi kısa menzilli, IP tabanlı da değiller
Buna karşılık DJI gibi ticari hazır quadcopter sistemleri, araç ile kumanda arasında tek bir backhaul üzerinden kontrol, video ve telemetrinin tamamını taşıyor ve video gecikmesi de etkileyici derecede düşük. Muhtemelen WiFi sınıfı bir yonga setiyle ham üretici çerçeveleri yayıp alıcının alabildiği kadarını almasına dayanan best-effort bir yaklaşım kullanıyorlar. Benzer bir şey ESP32’nin ESP-NOW modu ile de yapılabilir gibi görünüyor. DJI protokolünü tersine mühendislikle çözmeye çalışan girişimler gördüm ama tam uyumlu bir uygulama ya da açık kaynak dünyasında denk bir alternatif bilmiyorum
Ticari ve tescilli alanın üst segmentinde, kutudan çıkar çıkmaz çalışan otonomi, IP tabanlı çoklu backhaul (görüş hattı/görüş hattı dışı telsiz, LTE, uydu iletişimi vb.), GPS bağımlılığını azaltan navigasyon beacon entegrasyonu, hibrit motor/jeneratör ve yedekli güç sistemleri gibi özellikler var
Bu farkın, geliştirici ilgisinin dışında başka bir nedenle var olması gerekmiyor gibi görünüyor. Parçaların neredeyse hepsi bulunabiliyor ve iyi bir gerçek zamanlı işletim sistemi çalıştıran bir Raspberry Pi, STM32’ye göre çok daha fazla işlem gücüyle ticari sistem tarzı çoklu sensör füzyonunu rahatça yapabilir. LTE modemler de ucuz, daha büyük hexacopter ya da sabit kanatlı araçlar küçük bir Starlink çanağını bile kaldırabilir. Güneş panellerine konup şarj olan “perching” gibi şeyler de gayet mümkün
Yine de açık kaynak dronelardaki son teknoloji, sanki Ukrayna ve İran’da kapalı kapılar ardında yaşanıyor gibi. Gözümden kaçan yeni bir teknoloji varsa memnuniyetle düzeltilirim ama “mümkün olan” ile bugün sahada gerçekten yapılan arasındaki fark büyük görünüyor. Aynı zamanda bu da çok fazla fırsat olduğu anlamına geliyor
DJI benzeri uçan açık drone bilgilerini bulmak bana hep zor geldi; belki de ne aramam gerektiğini bile tam bilmiyorum
“Model uçak/uzaktan kumandalı uçuş” hobisi de onlarca yıldır çok canlı ve sadece kategorilere bakmak bile bunu gösteriyor: https://www.rcgroups.com/forums/index.php
Çeşitli alt forumlara ciddi biçimde bakarsanız, bir hava aracının nasıl görünmesi gerektiğine dair sıradan bakışı bozan şaşırtıcı tasarımlar görebilirsiniz. Magnus, aerostat, Fettler gibi arama terimleri oldukça iyi
Bunun, birinin Espressif’in esp-drone’unu (https://github.com/espressif/esp-drone) yeniden yayımlayıp kendi işiymiş gibi sunması olabileceğini düşünüyorum. DigiKey de bunu kendi sitesine koymuş gibi görünüyor
Özel PCB yaptıklarını söylüyorlar ama neredeyse aynı görünüyor. Yazıda bağlantı verilen depo (https://github.com/Circuit-Digest/ESP-Drone) için kötü amaçlı yazılım içerdiğine dair bir issue da var ve commit geçmişi de biraz şüpheli görünüyor. Yanılıyor olabilirim
Deponun büyük kısmı normal metin dosyalarından oluşuyor ve zip ile bin dosyaları derleme için gerekli görünmüyor; içinize sinmiyorsa derlemeden önce silebilirsiniz
https://www.bitcraze.io/products/old-products/crazyflie-2-0/
https://github.com/Circuit-Digest/ESP-Drone/blob/main/Firmwa...
Bunun bir lisans ihlali olduğunu düşünüyorum. DigiKey’in böyle insanları işe almış olması hiç hoş görünmüyor
Bu yazının çıkması için manidar bir zamanlama. ABD’de toplu histeri gibi bir şey yaşanıyor, bir de üstüne DIY drone’ların tanesi 12-13 dolara üretilebiliyormuş; gerçekten ilginç zamanlardayız
Bu günlerde her şeyi UFO sanan insanlar varken, aslında ucuz drone bile fazla olabilir; 20’li Çin feneri paketinin ortalama bir Amerikan mahallesini sürekli panik halinde tutmaya ya da /r/UFOs’un ilk sayfasına düşmeye yetmesinin ne kadar süreceğini merak ediyorum
İlginç. Eskiden Crazyflie[1] yapmıştım; o zamanlar ESP32 bile yoktu, bu yüzden özel bir 2.4GHz protokolü kullanmıştık, bu da onun için harika bir yükseltme olmuş
Motor kontrolcüsü olarak tek bir low-side MOSFET kullanılması da BLDC motorların sunduğu bazı davranışlardan vazgeçme pahasına sistemi daha basit ve ucuz hale getiriyor. Genel olarak 10-15 dolar çok iyi bir fiyat ve bunun Hackerbox[2]’a girip girmeyeceğini merak ediyorum. Tam onların çıkaracağı türden bir şey
CF mikrodrone ile çok eğlenmiştim, bundan da kesinlikle bir tane yapmayı düşünüyorum
[1] https://github.com/bitcraze/crazyflie-firmware
[2] https://hackerboxes.com/
Eski bir iPhone’u drone’a dönüştürme fikrine bakıyorum. Üst seviye işleri halletmek için zaten iyi bir donanım var; sensör girdilerine göre motorları gerçekten süren daha gerçek zamanlı işleri ise ESP32’ye bırakabilirsiniz
Eski bir iPhone 6’da bile GPS, jiroskop, ivmeölçer, birden fazla kamera, oldukça güçlü bir işlemci, Bluetooth/WiFi/LTE, ses ve ışık, ortam ışığı ve yakınlık sensörleri var. Kılıfını çıkarınca çevreyi algılayıp iletişim kurabilen harika bir mini bilgisayara dönüşüyor
Daha yeni iPhone’larda ARKit gibi gelişmiş teknolojilerle drone’un ve ortamın mekânsal anlayışını elde edip otonom drone da yapabilirsiniz. iPhone 15 ile uzamsal video bile mümkün. Ne kadar havalı olurdu diye düşünüyorum
Apple’ın, eski telefonları DIY projelerde kullanmak için işletim sistemi düzeyindeki kısıtlamaları kaldırmaya yarayan basit bir yol sunması güzel olurdu
Eski telefonları kumanda olarak kullanmak daha mantıklı olabilir
Sıfırdan yapmak istemiyorsanız biraz daha fazla ödeyip programlanabilir hazır bir ürün alabilirsiniz: https://shop.m5stack.com/products/m5stamp-fly-with-m5stamps3...
İçindeki yazılım yığını oldukça temel ve açık kaynak avionics tarafı için Japon nerd Twitter’ını kurcalayabilirsiniz
Müthiş. İniş takımı (destekler?) bile PCB’nin bir parçası. Yazarın kit satışı yapması ya da bunu Seeed Studio gibi bir yere dış kaynak vermesi güzel olurdu. DigiKey siparişlerinin kargo ücretinin epey pahalı olduğu bir ülkede yaşıyorum
Yazar, parça listesi maliyetini 13 doların biraz altında tahmin ediyor. O fiyata DIY drone ışık gösterileri için sürüler oluşturmayı denemek eğlenceli olurdu
[1] https://circuitdigest.com/microcontroller-projects/DIY-wifi-...
Ama benim kullanabileceğim tedarikçilere göre 1 adet daha çok 50 dolara yakın görünüyor ve 10 adet yaklaşık 150 dolar tutuyor
Yine de maliyet biraz düşürülebilir gibi. USB-serial çipi neredeyse 6 dolar, ama başka bir paket tekli alımda 4,40 dolar ya da 10 adet için birim başına 3,99 dolar; yeterli görünen alternatif bir çip ise daha ucuz olabilir. Seçilen voltaj regülatörü 500mA için adet başına 1 dolar, oysa benim genelde seçtiklerim 1000mA için adet başına 0,22 dolar ve 10 adet alımda birim başına 0,13 dolara kadar iniyor
Kullanılabilir çekirdek sayısının sınırlı olması nedeniyle buna pek uygun gelmiyor
rp2350 gibi bir şey daha iyi olurdu. Çünkü ana çekirdek açık olsa da olmasa da çalışabilen bir ultra düşük güç I/O çekirdeği var. Gömülü sistemler çok çekirdeğin en iyi uyduğu alanlardan biri, ama iyi bir offloading yapısı ve zayıf olmayan bir Programmable IO sistemi olan örnekler fazla nadir
Silego/Dialog/Renesas’ın GreenPAK gibi ürünleri de anmaya değer. Çok küçükler ama oldukça ilginç mixed-signal programmable logic ve epey bağlı çevre birimine sahipler
Aslında bu tür bir kullanım için ESP32’nin ultra düşük güç yardımcı işlemcisi tam uygun olabilir, ama pratikte harcanan çabaya değmez. Hesaplama gücünün tüketimi, WiFi ve rotorların istediği güce kıyasla ihmal edilebilir düzeyde; ayrıca tek çekirdekte birden fazla gerçek zamanlı işi yürütmek de roket bilimi değil
Biz insanı bundan daha zayıf donanımla Ay’a gönderdik. Çekirdek sayısı artınca sadece karmaşıklık artıyor
EU kamera taşıyan dronelar için yıllık 30 euro ücret istemeden önce Lidl’in 25 euroluk katlanabilir WiFi dronesuyla oynuyordum
Kamerasız droneların pratikte ne işe yarayabileceğini pek düşünemiyorum. Bir ihtimal fly fishing olabilir ama balığın çektiğini hissettiği anda misinayı bırakıp geri dönmesi için programlamak gerekir
https://www.iaa.ie/general-aviation/drones/drone-register
Yeterince hızlı uçurursanız, misina gerildiği anda klipsten çıkıp düşüyor
Bunun bir DigiKey yazısı olup Buy now düğmesi olmaması garip
Tüm parçaları teslim alabileceğimden ve hiçbir şeyi atlamadığımdan emin olsam hemen denerdim
Ama parçalardan biri zaten üretimden kalkmış ve bulunamıyor, ikisinde de burada gereken miktardan daha yüksek minimum sipariş miktarı var; yani çok da iyi değil