İçindekiler:

Roket Telemetri/Pozisyon İzleyici: 7 Adım
Roket Telemetri/Pozisyon İzleyici: 7 Adım

Video: Roket Telemetri/Pozisyon İzleyici: 7 Adım

Video: Roket Telemetri/Pozisyon İzleyici: 7 Adım
Video: ZOMBIE AVCILARI | 7 DAYS TO DIE | BÖLÜM 1 2024, Temmuz
Anonim
Roket Telemetri/Pozisyon İzleyici
Roket Telemetri/Pozisyon İzleyici

Bu proje, 9 DOF sensör modülünden bir SD karta uçuş verilerini kaydetmeyi ve aynı anda GPS konumunu hücresel ağlar aracılığıyla bir sunucuya iletmeyi amaçlamaktadır. Bu sistem, sistemin iniş alanı LOS'un ötesinde ise roketin bulunmasını sağlar.

Adım 1: Parça Listesi

Parça listesi
Parça listesi
Parça listesi
Parça listesi

Telemetri Sistemi:

1x ATmega328 Mikrodenetleyici (Arduino UNO, Nano)

1x Mikro SD Koparma -

1x Micro SD Kart - (boyut önemli değil FAT 16/32 formatlı) - Amazon Link

1x Gy-86 IMU - Amazon Bağlantısı

Pozisyon İzleme:

1x ATmega328 Mikrodenetleyici (Arduino UNO, Nano)(her sistemin kendi mikrosuna ihtiyacı vardır)

1x Sim800L GSM GPRS Modülü - Amazon Link

1x SIM Kart (veri planı olmalıdır) - https://ting.com/ (yalnızca kullandığınız kadar ücretlendirilir)

1x NEO 6M GPS Modülü - Amazon LINK

Genel Parçalar:

1x 3.7v lipo pil

1x 3.7-5v yükseltici dönüştürücü (eğer pcb'yi oluşturmazsanız)

1x Raspberry pi veya bir php sunucusunu barındırabilen herhangi bir bilgisayar

-3D yazıcıya erişim

-PCb için BOM, elektronik tabloda listelenmiştir

-Gerberler github deposunda -

Adım 2: Alt Sistem 1: Konum İzleme

Test yapmak:

Sistemin parçalarını (NEO-6M GPS, Sim800L) elinize aldıktan sonra, sistemleri entegre ettiğinizde neyin çalışmadığını anlamaya çalışırken başınızın ağrımaması için sistemlerin işlevselliğini bağımsız olarak test etmeniz gerekir.

GPS Testi:

GPS alıcısını test etmek için Ublox (U-Center Yazılımı) tarafından sağlanan yazılımı kullanabilirsiniz.

veya github deposunda bağlantılı test çizimi (GPS Testi)

1. U-center yazılımı ile test etmek için, GPS alıcısını USB üzerinden takın ve U-center'daki com portunu seçin, sistem bundan sonra otomatik olarak konumunuzu izlemeye başlamalıdır.

2. Bir mikro denetleyici ile test etmek için, GPS testi çizimini IDE aracılığıyla bir arduinoya yükleyin. Daha sonra alıcı üzerindeki etiketli pinlere 5V ve GND'yi arduino'ya ve GPS RX pinini arduino'da dijital 3'e ve TX pinini dijital 4'e bağlayın. Son olarak arduino IDE'deki seri monitörü açın ve baud hızını 9600'e ayarlayın ve alınan koordinatların doğru olduğunu doğrulayın.

Not: NEO-6M modülündeki uydu kilidinin görsel tanımlayıcısı, kırmızı led göstergesinin bir bağlantıyı belirtmek için birkaç saniyede bir yanıp sönmesidir.

SIM800L Testi:

Hücresel modülü test etmek için aktif bir veri planına kayıtlı bir sim kartınız olması gerekir, Ting'i öneririm çünkü aylık veri planı yerine yalnızca kullandığınız kadar ücret alırlar.

Sim modülünün amacı, GPS alıcısı tarafından alınan konum ile sunucuya bir HTTP GET isteği göndermektir.

1. Hücre modülünü test etmek için sim kartı, yivli ucu dışarı bakacak şekilde modüle yerleştirin.

2. Sim modülünü GND'ye ve bir 3.7-4.2v kaynağa bağlayın, 5v kullanmayın!!!! modül 5v'de çalışamaz. Arduino'da Sim modül RX'i Analog 2'ye ve TX'i Analog 3'e bağlayın

3. Hücre modülüne komut gönderebilmek için github'dan seri geçiş taslağını yükleyin.

4. HTTP GET işlevini test etmek için bu öğreticiyi izleyin veya AT Command Tester'ın deneme sürümünü indirin

Uygulama:

Her iki sistemin de bağımsız çalıştığını doğruladıktan sonra, tam taslağı mikrodenetleyici github'a yüklemeye geçebilirsiniz. sistemin web sunucusuna veri gönderdiğini doğrulamak için seri monitörü 9600 baud'da açabilirsiniz.

*sunucu ipini ve portunu kendinize göre değiştirmeyi unutmayın ve kullandığınız hücre sağlayıcısının APN'sini bulduğunuzdan emin olun.

Sunucuyu kurduğumuz bir sonraki adıma geçin

Adım 3: Sunucu Kurulumu

Sunucu Kurulumu
Sunucu Kurulumu

Roketin konumunu gösterecek bir sunucu kurmak için ana bilgisayar olarak bir ahududu pi kullandım, ancak herhangi bir bilgisayarı kullanabilirsiniz.

Lightphp'yi bir RPI'da ayarlamakla ilgili bu öğreticiyi izleyin ve ardından php dosyalarını github'dan RPI'nizin /var/www/html klasörüne kopyalayın. Sadece komutu kullandıktan sonra

sudo hizmeti lighttpd zorla yeniden yükleme

sunucuyu yeniden yüklemek için

Verilere uzaktan erişebilmek için yönlendiricinizdeki sunucuyla ilişkili bağlantı noktalarını ilettiğinizden emin olun. Rpi'de 80 numaralı bağlantı noktası olmalıdır ve harici bağlantı noktası isteğe bağlı bir sayı olabilir.

RPI için statik bir ip ayarlamak iyi bir fikirdir, böylece ilettiğiniz bağlantı noktaları her zaman RPI'nin adresini gösterir.

Adım 4: Alt Sistem 2: Telemetri Günlüğü

Telemetri programı, konum takip sisteminden ayrı bir mikrodenetleyici üzerinde çalışır. Bu karar, ATmega328'deki bellek sınırlamaları nedeniyle, her iki programın da tek bir sistemde çalışmasını engellediği için verildi. Gelişmiş özelliklere sahip başka bir mikro denetleyici seçeneği bu sorunu çözebilir ve tek bir merkezi işlemcinin kullanılmasına izin verebilir, ancak kullanım kolaylığı için elimdeki parçaları kullanmak istedim.

Özellikler: Bu program, burada çevrimiçi bulduğum başka bir örneğe dayanmaktadır.

  • Program yerel olarak bağıl rakımı (başlangıçta irtifa okuması sıfırlanır), sıcaklığı, basıncı, X yönündeki ivmeyi (sensörün fiziksel yönüne göre okunan hızlanma yönünü değiştirmeniz gerekecektir) ve bir zaman damgasını (milis cinsinden) okur.).
  • Fırlatma rampasında otururken ve depolama alanını boşa harcarken verilerin kaydedilmesini önlemek için, sistem yalnızca bir irtifa değişikliği algıladığında (programda yapılandırılabilir) veri yazmaya başlayacak ve roketin orijinaline döndüğünü algıladığında veri yazmayı durduracaktır. veya 5 dakikalık bir uçuş süresi geçtikten sonra.
  • Sistem, açık olduğunu ve tek bir gösterge LED'i aracılığıyla veri yazdığını gösterecektir.

Test yapmak:

Sistemi test etmek için önce SD kart koparmasını bağlayın

Arduino SD Kart

Pin 4 ---------------- CS

Pim 11 -------------- DI

Pin 13 -------------- SCK

Pin 12 -------------- YAP

Şimdi GY-86'yı I^2C üzerinden sisteme bağlayın

Arduino GY-86

Pin A4 -------------- SDA

Pin A5 -------------- SCL

Pin 2 ---------------- INTA

SD kartta datalog.txt isimli ana dizinde bir dosya oluşturun, sistemin veri yazacağı yer burasıdır.

Data_Logger.ino taslağını mikrodenetleyiciye yüklemeden önce ALT_THRESHOLD değerini 0 olarak değiştirin, böylece sistem test için rakımı yok sayar. Yüklemeden sonra, sistemin çıkışını görüntülemek için seri monitörü 9600 baud'da açın. Sistemin sensöre bağlanabildiğinden ve verilerin SD karta yazıldığından emin olun. Sistemin fişini çekin ve verilerin kartta yazıldığını doğrulamak için SD kartı bilgisayarınıza takın.

Adım 5: Sistem Entegrasyonu

Sistem entegrasyonu
Sistem entegrasyonu
Sistem entegrasyonu
Sistem entegrasyonu

Sistemin her bir parçasının ana PCB'de kullanılan aynı konfigürasyonda çalıştığını doğruladıktan sonra, hepsini bir araya getirme ve başlatmaya hazırlanma zamanı! Github'a PCB ve şematik için Gerbers ve EAGLE dosyalarını ekledim. gerberleri ürettirmek için OSH park veya JLC gibi bir üreticiye yüklemeniz gerekecek. Bu panolar iki katmanlıdır ve çoğu üreticinin ucuz panolar için 10cmx10cm kategorisine sığacak kadar küçüktür.

Panoları imalattan geri aldığınızda, elektronik tabloda ve parça listesinde bulunan tüm bileşenleri panoya lehimleme zamanı geldi.

Programlama:

Her şey lehimlendikten sonra programları iki mikrodenetleyiciye yüklemeniz gerekecek. Kart alanından tasarruf etmek için herhangi bir USB işlevi eklemedim, ancak programı karşıya yükleyip izleyebilmeniz için ICSP ve seri bağlantı noktalarını bozuk bıraktım.

  • Programı yüklemek için, bir Arduino kartını programcı olarak kullanmakla ilgili bu öğreticiyi izleyin. SimGpsTransmitter.ino'yu ICSP_GPS bağlantı noktasına ve Data_Logger.ino'yu ICSP_DL bağlantı noktasına yükleyin (PCB üzerindeki ICSP bağlantı noktası, standart Arduino UNO kartlarında bulunanla aynı düzendir).
  • Tüm programlar yüklendikten sonra cihazı pil girişinden 3.7-4.2V ile çalıştırabilir ve sistemin çalıştığını doğrulamak için 4 gösterge ışığını kullanabilirsiniz.

    • İlk iki ışık 5V_Ok ve VBATT_OK, bataryaya ve 5v raylarına güç verildiğini gösterir.
    • Üçüncü ışık DL_OK, telemetri günlüğünün etkin olduğunu belirtmek için her 1 saniyede bir yanıp sönecektir.
    • Son ışık SIM_Transmit, hücresel ve GPS modülleri bağlandığında ve sunucuya veri gönderildiğinde yanacaktır.

6. Adım: Muhafaza

muhafaza
muhafaza

Bu projeyi tasarladığım roketin iç çapı 29 mm'dir, elektronik aksamı korumak ve montajın roketin silindirik gövdesinin içine sığmasını sağlamak için birbirine cıvatalı ve vidalı basit bir iki parçalı 3d baskılı kasa yaptım. gösterge ışıkları için bağlantı noktaları görüntüleme. Yazdırma için STL dosyaları ve orijinal.ipt dosyaları github deposundadır. O sırada kullanacağım pilden emin olmadığım için bunu modellemedim, ancak 120 mAh pil için kasanın alt kısmıyla aynı hizada oturması için manuel olarak bir girinti oluşturdum. Bu pilin, ~200mA güç tüketiminde sistem için ~45dk maksimum çalışma süresi sağladığı tahmin edilmektedir (Bu, işlemci kullanımına ve veri iletimi için güç tüketimine bağlıdır, SIM800L'nin iletişim sırasında patlamalarda 2A'dan fazla çekmesi belirtilir).

7. Adım: Sonuç

Bu proje, Amazon'da bulunan ayrı modülleri kullandığım göz önüne alındığında, iki ayrı sistemin oldukça basit bir uygulamasıydı, projenin genel boyutu yaptığı işe göre oldukça büyük olduğundan, genel sistem entegrasyonu biraz cansız. Bazı üreticilerin tekliflerine bakıldığında, hem hücresel hem de GPS içeren bir SIP kullanmak, genel paket boyutunu büyük ölçüde azaltacaktır.

Daha fazla uçuş testinden sonra programda bazı değişiklikler yapmak zorunda kalacağımdan ve Github deposunu herhangi bir değişiklikle güncelleyeceğimden eminim.

Umarım bu projeyi beğenmişsinizdir, sorularınız için benimle iletişime geçmekten çekinmeyin.

Önerilen: