Съдържание:

Ракетна телеметрия/Проследяване на позицията: 7 стъпки
Ракетна телеметрия/Проследяване на позицията: 7 стъпки

Видео: Ракетна телеметрия/Проследяване на позицията: 7 стъпки

Видео: Ракетна телеметрия/Проследяване на позицията: 7 стъпки
Видео: Нещо Необяснимо се Случва в Космоса Точно Сега 2024, Ноември
Anonim
Ракетна телеметрия/Проследяване на позицията
Ракетна телеметрия/Проследяване на позицията

Този проект е предназначен за регистриране на полетни данни от 9 DOF сензорен модул към SD карта и едновременно предаване на GPS местоположението му чрез клетъчни мрежи към сървър. Тази система позволява ракетата да бъде намерена, ако зоната за кацане на системата е извън LOS.

Стъпка 1: Списък на частите

Списък с части
Списък с части
Списък с части
Списък с части

Телеметрична система:

1x микроконтролер ATmega328 (Arduino UNO, Nano)

1x Micro SD Breakout -

1x Micro SD карта - (размерът няма значение FAT 16/32 форматиран) - Amazon Link

1x Gy -86 IMU - Amazon Link

Проследяване на позицията:

1x микроконтролер ATmega328 (Arduino UNO, Nano) (всяка система се нуждае от свой собствен микро)

1x SIM800L GSM GPRS модул - Amazon Link

1x SIM карта (трябва да има план за данни) - https://ting.com/ (ting таксува само това, което използвате)

1x GPS модул NEO 6M - Amazon LInk

Общи части:

1x 3.7v липо батерия

1x 3.7-5v стъпков конвертор (ако не изграждате печатната платка)

1x Raspberry pi или всеки компютър, който може да хоства php сървър

-Достъп до 3D принтер

-BOM за печатни платки е посочен в електронна таблица

-Герберите са в github repo -https://github.com/karagenit/maps-gps

Стъпка 2: Подсистема 1: Проследяване на позицията

Тестване:

След като имате частите за системата (NEO-6M GPS, Sim800L) в ръка, трябва да тествате функционалността на системите независимо, за да не ви боли глава, опитвайки се да разберете какво не работи, когато интегрирате системите.

GPS тестване:

За да тествате GPS приемника, можете да използвате софтуера, предоставен от Ublox (софтуер U-Center)

или тестовата скица, свързана в github repo (GPS тест)

1. За да тествате със U-center софтуер, просто включете GPS приемника през USB и изберете com порта в U-center, системата трябва автоматично да започне да проследява вашето местоположение след това.

2. За да тествате с микроконтролер, качете скицата за GPS-тестване в arduino чрез IDE. След това свържете 5V и GND към обозначените щифтове на приемника към arduino и GPS RX щифт към цифров 3 и TX щифт към цифров 4 на arduino. Накрая отворете серийния монитор на arduino IDE и задайте скоростта на предаване на 9600 и проверете дали получените координати са правилни.

Забележка: Визуален идентификатор на сателитно заключване на модула NEO-6M е, че червеният светодиоден индикатор ще мига на всеки няколко секунди, за да покаже връзка.

SIM800L Тестване:

За да тествате клетъчния модул, ще трябва да имате регистрирана сим карта с активен план за данни, препоръчвам Ting, защото те таксуват само това, което използвате, вместо месечен план за данни.

Целта на модула Sim е да изпрати HTTP GET заявка до сървъра с местоположението, което е получено от GPS приемника.

1. За да тествате клетъчния модул, поставете SIM картата в модула с скосения край навън

2. Свържете SIM модула към GND и източник на 3.7-4.2v, не използвайте 5v !!!! модулът не може да работи при 5v. Свържете Sim модула RX към Analog 2 и TX към Analog 3 на Arduino

3. Качете серийната скица за преминаване от github, за да можете да изпращате команди към клетъчния модул.

4. следвайте този урок или изтеглете пробната версия на AT Command Tester, за да тествате HTTP GET функционалността

Изпълнение:

След като се уверите, че и двете системи работят независимо, можете да преминете към качване на пълната скица в github на микроконтролера. можете да отворите серийния монитор на 9600 бода, за да проверите дали системата изпраща данни към уеб сървъра.

*не забравяйте да промените ip и порта на сървъра на свой собствен и не забравяйте да намерите APN за мобилния оператор, който използвате.

Преминете към следващата стъпка, където настройваме сървъра

Стъпка 3: Настройка на сървъра

Настройка на сървъра
Настройка на сървъра

За да настроя сървър за показване на местоположението на ракетата, използвах малиново пи като хост, но можете да използвате всеки компютър.

Следвайте този урок за настройка на lightphp на RPI и след това копирайте php файловете от github в папката/var/www/html на вашия RPI. След това просто използвайте командата

sudo услуга lighttpd принудително презареждане

за презареждане на сървъра.

Не забравяйте да препратите портовете, свързани със сървъра на вашия рутер, за да имате достъп до данните от разстояние. На rpi това трябва да е порт 80, а външният порт може да бъде произволен номер.

Добра идея е да зададете статичен ip за RPI, така че портовете, които препращате, винаги да сочат към адреса на RPI.

Стъпка 4: Подсистема 2: Телеметрично регистриране

Програмата за телеметрия работи на отделен микроконтролер от системата за проследяване на позицията. Това решение е взето поради ограниченията на паметта на ATmega328, които не позволяват и двете програми да работят на една система. Друг избор на микроконтролер с подобрени спецификации би могъл да реши този проблем и да позволи използването на един централен процесор, но аз исках да използвам частите, които имах под ръка за по -лесна употреба.

Характеристики: Тази програма се основава на друг пример, който намерих онлайн тук.

  • Програмата първоначално чете относителната надморска височина (отчитане на височината, нулирана при стартиране), температура, налягане, ускорение в посока X (ще трябва да промените посоката на отчитане на ускорението въз основа на физическата ориентация на сензора) и времева отметка (в мили).
  • За да се предотврати регистрирането на данни, докато седите на стартовата площадка и губите място за съхранение, системата ще започне да записва данни само след като открие промяна на височината (конфигурируема в програмата) и ще спре да записва данни, след като открие, че ракетата се е върнала в оригинала си надморска височина или след изтичане на полетно време от 5 минути.
  • Системата ще покаже, че е включена и записва данни чрез един индикатор.

Тестване:

За да тествате системата, първо свържете пробива на SD картата

SD карта Arduino

ПИН 4 ---------------- CS

ПИН 11 -------------- DI

ПИН 13 -------------- SCK

ПИН 12 -------------- DO

Сега свържете GY-86 към системата чрез I^2C

Arduino GY-86

ПИН A4 -------------- SDA

ПИН A5 -------------- SCL

ПИН 2 ---------------- INTA

На SD картата създайте файл в главната директория с име datalog.txt, където системата ще записва данни.

Преди да качите скицата Data_Logger.ino в микроконтролера, променете стойността на ALT_THRESHOLD на 0, така че системата да игнорира надморската височина за тестване. След качване отворете серийния монитор на 9600 бода, за да видите изхода на системата. Уверете се, че системата може да се свърже със сензора и че данните се записват на SD картата. Изключете системата и поставете SD картата в компютъра си, за да проверите дали данните са записани на картата.

Стъпка 5: Системна интеграция

Системна интеграция
Системна интеграция
Системна интеграция
Системна интеграция

След като се уверите, че всяка част от системата работи в една и съща конфигурация, използвана на основната платка, е време да събере всичко и да се подготви за стартиране! Включих файловете Gerbers и EAGLE за печатни платки и схеми в github. ще трябва да качите герберите на производител като OSH park или JLC, за да ги произведете. Тези плоскости са на два слоя и са достатъчно малки, за да се поберат в повечето производители с категория 10 см х 10 см за евтини плоскости.

След като върнете дъските от производството, е време да запоите всички компоненти, намиращи се в електронната таблица и списъка с части, върху дъската.

Програмиране:

След като всичко е запоено, ще трябва да качите програмите на двата микроконтролера. За да спестя място на платката, не включих никаква USB функция, но оставих ICSP и серийните портове разбити, така че все още можете да качвате и наблюдавате програмата.

  • За да качите програмата, следвайте този урок за използване на дъска Arduino като програмист. Качете SimGpsTransmitter.ino на порта ICSP_GPS и Data_Logger.ino на порта ICSP_DL (Портът ICSP на печатната платка е със същото оформление като това, което се намира на стандартните платки Arduino UNO).
  • След като всички програми бъдат качени, можете да захранвате устройството от входа на батерията с 3.7-4.2V и да използвате 4-те индикаторни лампи, за да проверите дали системата работи.

    • Първите две светлини 5V_Ok и VBATT_OK показват, че батерията и 5v релсите са захранени.
    • Третата светлина DL_OK ще мига на всеки 1 секунда, за да покаже, че телеметричното регистриране е активно.
    • Последната светлина SIM_Transmit ще се включи, след като клетъчните и GPS модулите са свързани и данните се изпращат към сървъра.

Стъпка 6: Приложение

Корпус
Корпус

Ракетата, около която проектирам този проект, има вътрешен диаметър 29 мм, за да защити електрониката и да позволи на монтажа да се побере в цилиндричното тяло на ракетата, направих прост корпус от две части с 3D печат, който е закрепен заедно и има преглед на портовете за индикаторните светлини. STL файлове за печат и оригинални.ipt файлове са в github репо. Аз не моделирах това, тъй като не бях сигурен за батерията, която ще използвам по това време, но ръчно създадох вдлъбнатина за 120 mAh батерия, която да седи на едно ниво с долната част на кутията. Изчислено е, че тази батерия осигурява ~ 45 минути максимално време за работа на системата при консумация на енергия ~ 200 mA (Това зависи от използването на процесора и потреблението на енергия за предаване на данни, SIM800L се цитира за извличане на 2A при изблици по време на комуникация).

Стъпка 7: Заключение

Този проект беше доста ясна реализация на две отделни системи, като се има предвид, че просто използвах отделни модули, открити в Amazon, цялостната системна интеграция е малко неясна, тъй като общият размер на проекта е доста голям за това, което прави. Разглеждайки предложения от някои производители, използването на SIP, който включва както клетъчни, така и GPS, би намалило значително общия размер на пакета.

Сигурен съм, че след повече полетни тестове ще трябва да направя някои промени в програмата и със сигурност ще актуализирам репо Github с всички промени.

Надявам се, че този проект ви е харесал, не се колебайте да се свържете с мен за всякакви въпроси, които може да имате.

Препоръчано: