Съдържание:

CanSat - Ръководство за начинаещи: 6 стъпки
CanSat - Ръководство за начинаещи: 6 стъпки

Видео: CanSat - Ръководство за начинаещи: 6 стъпки

Видео: CanSat - Ръководство за начинаещи: 6 стъпки
Видео: ВКУСНАЯ ЕДА ИЗ ПРОСТЫХ ПРОДУКТОВ В КАЗАНЕ 2 РЕЦЕПТА Узбекский суп 2024, Юли
Anonim
CanSat - Ръководство за начинаещи
CanSat - Ръководство за начинаещи
CanSat - Ръководство за начинаещи
CanSat - Ръководство за начинаещи
CanSat - Ръководство за начинаещи
CanSat - Ръководство за начинаещи

Основната цел на тези инструкции е споделяне на процеса на разработка на CanSat, стъпка по стъпка. Но преди да започнем, нека изясним наистина какво е CanSat и какви са основните му функции, като също използваме възможността, ще представим нашия екип. Този проект започна като разширителен проект в нашия университет, Universidade Tecnológica Federal do Paraná (UTFPR), кампус Cornélio Procópio. Водени от нашия съветник, ние разработихме план за действие с намерението да влезем в CanSats, което означаваше изучаване на всички негови аспекти и характеристики, за да можем да разберем как работи, което в крайна сметка ще доведе до изграждането на a CanSat и разработването на това ръководство. CanSat е класифициран като пикосателит, което означава, че теглото му е ограничено до 1 kg, но обикновено CanSat тежи около 350 g, а структурата му се основава на кутия сода, цилиндър с диаметър 6, 1 cm, висок 11, 65 cm. Този модел беше представен с намерението да се опрости процесът на разработване на сателит, за да се даде възможност на университетите да получат достъп до тези технологии, постигайки популярност благодарение на конкурсите, приели този модел. Като цяло CanSats се основават на 4 структури, тоест захранващата система, сензорната система, телеметричната система и основната система. Така че нека разгледаме по -отблизо всяка система: - Електрическа система: тази система е отговорна за доставянето на електрическа енергия на останалите според нуждите си. С други думи, той трябва да доставя на системите необходимото напрежение и ток, спазвайки неговите граници. Също така, той може да включва защитни компоненти, за да гарантира безопасността и правилното поведение на другите системи. Обикновено се основава на батерия и верига на регулатор на напрежението, но могат да се добавят много други функции, като например техники за управление на захранването и няколко вида защита. - Сензорна система: тази система се състои от всички сензори и устройства, които отговарят за събирането на необходимите данни. тя може да бъде свързана с основната система по няколко начина, серийни протоколи, паралелни протоколи и други, затова е наистина важно да овладеете всички тези техники, за да можете да определите най -удобната. Като цяло серийните протоколи са тези, които често се избират, поради по -малкия им брой връзки и гъвкавост, най -популярните са протоколите SPI, I2C и UART. - Телеметрична система: тази система е отговорна за установяване на безжичната комуникация между CanSat и наземната контролна станция, която включва протокола за безжична комуникация и хардуера. - Основна система: тази система е отговорна за взаимосвързването на всички останали системи, по начин, който също така контролира и синхронизира последователността им на работа като организъм.

Стъпка 1: Основната система

Основната система
Основната система

По много причини избрахме микроконтролер на базата на ARM® Cortex®-M4F, това е MCU с ниска мощност, който предлага много по-висока процесорна мощност, плюс няколко функции, които не се срещат често в RISK микроконтролери, като например DSP функции. Тези характеристики са интересни, защото позволяват увеличаване на сложността на функциите на приложенията CanSat, без да е необходимо да се променя микроконтролера (разбира се, като се спазват и неговите граници).

Докато проектът имаше няколко финансови ограничения, избраният микроконтролер също трябваше да бъде достъпен, така че следвайки спецификациите, в крайна сметка избрахме ARM® Cortex®-M4F базиран MCU TM4C123G LaunchPad, това е стартова площадка, която току-що отговаря на нашия проект. Също така документацията (технически листове и документация за характеристиките, предоставена от производителя) и IDE на MCU бяха плюсове, които наистина трябва да се имат предвид, стига да помогнат много на процеса на разработка.

В този Cansat решихме да го опростим и просто да го разработим с помощта на стартовата площадка, но разбира се в бъдещите проекти това няма да е опция, като се има предвид, че няколко функции, включени в стартовата площадка, всъщност не са необходими за нашия проект, плюс неговият формат ограничава много проекта на структурата на нашия CanSat, стига размерите на CanSat да са минимални.

Така че, след като избрахме подходящия „мозък“за тази система, следващата стъпка беше разработването на нейния софтуер, също така, за да я опростим, решихме просто да използваме последователна програма, която изпълнява следната последователност с честота 1Hz:

Показания на сензорите> съхранение на данни> предаване на данни

Частта от сензорите ще бъде обяснена по -късно в сензорната система, както и предаването на данни ще бъде обяснено в телеметричната система. И накрая, трябваше да научим как да програмираме микроконтролера, в нашия случай трябваше да научим следните функции на MCU, GPIO, I2C модул, UART модул и SPI модул.

GPIO, или просто вход и изход с общо предназначение, са портове, които могат да се използват за изпълнение на няколко функции, стига да са настроени правилно. Като се има предвид, че не използваме никакви C библиотеки за GPIO, дори и за другите модули, трябваше да конфигурираме всички необходими регистри. По тази причина ние написахме основно ръководство, съдържащо примери и описания, свързани с регистрите на модулите, които използваме, които са налични по -долу.

Също така, за да се опрости и организира кода, бяха създадени няколко библиотеки. И така, библиотеките бяха създадени за следните цели:

- SPI протокол

- I2C протокол

- UART протокол

- NRF24L01+ - приемник

Тези библиотеки също са налични по -долу, но не забравяйте, че сме използвали IDE на Keil uvision 5, така че тези библиотеки няма да работят за композитор на код. И накрая, след като създадохме всички библиотеки и научихме всички необходими неща, крайният код беше сглобен и както можете да си представите, той е достъпен и по -долу.

Стъпка 2: Сензорната система

Сензорната система
Сензорната система
Сензорната система
Сензорната система
Сензорната система
Сензорната система
Сензорната система
Сензорната система

Тази система се състои от всички сензори и устройства, които са отговорни за събирането на информация за условията на работа на CanSat. В нашия случай сме избрали следните сензори:

- 3 -осен цифров акселерометър - MPU6050

- 3 -осен цифров жироскоп - MPU6050

- 3 -осен цифров магнитометър - HMC5883L

- цифров барометър - BMP280

- и GPS - Tyco A1035D

Изборът се основава главно на достъпността, което означава, че докато механичните и електрическите (комуникационен протокол, захранване и т.н.) характеристики са съвместими с нашия проект, не се налагат допълнителни параметри за избора, също и защото за някои сензори наличността възможностите бяха ограничени. След като придобиха сензорите, беше време да ги пуснат на работа.

Така че първият, който ще бъде изследван, беше 3 -осният цифров акселерометър и жироскоп, наречен MPU6050 (може лесно да се намери навсякъде, стига да се използва широко в проекти ARDUINO), комуникацията му се основава на протокола I2C, протокол, в който всеки подчинен притежава адрес, позволяващ няколко устройства да бъдат свързани паралелно, като се има предвид, че адресът е дълъг 7 бита, около 127 устройства могат да бъдат свързани към една и съща серийна шина. Този комуникационен протокол работи на две шини, шина за данни и часовникова шина, така че за да обменя информацията, капитанът трябва да изпрати 8 цикъла на часовника (между другото информацията трябва да отговаря на байт, стига тази комуникация да се основава на размера на байта) или при приемане, или при предаване. Адресът на MPU6050 е 0b110100X и X се използва за извикване (показва) операция за четене или запис (0 означава операция за запис и 1 означава операция за четене), така че когато искате да прочетете сензора, просто използвайте неговия адрес като 0xD1 и когато искате да пишете, просто използвайте адреса му като 0xD0.

След проучване на протокола I2C, MPU6050 всъщност беше проучен, с други думи, беше прочетен неговият лист с данни, за да се получи необходимата информация, за да го задейства, за този сензор бяха необходими само три регистра, конфигурирането на захранването 1 регистър - адрес 0x6B (за да се гарантира, че сензорът не е в режим на заспиване), регистърът за конфигурация на жироскопа - адрес 0x1B (за конфигуриране на пълния диапазон на скалата за жироскопа) и накрая регистър за конфигурация на акселерометъра - адрес 0x1C (в за да конфигурирате пълния диапазон на скалата за акселерометъра). Има няколко други регистри, които могат да бъдат конфигурирани, което позволява оптимизиране на работата на сензора, но за този проект тези конфигурации са достатъчни.

Така че, след правилно конфигуриране на сензора, вече можете да го прочетете. Желаната информация се осъществява между регистъра 0x3B и регистъра 0x48, всяка стойност на оста се състои от два байта, които са кодирани по начин на допълване на 2, което означава, че прочетените данни трябва да бъдат преобразувани, за да имат смисъл (тези неща ще бъдат обсъдени по -късно).

След като приключихме с MPU6050, беше време да проучим 3 -осния цифров магнитометър, наречен HMC5883L (той също може лесно да се намери навсякъде, стига да се използва широко в проекти ARDUINO), и отново неговият комуникационен протокол е серийният протокол I2C. Адресът му е 0b0011110X и X се използва за извикване (показва) операция за четене или запис (0 означава операция за запис и 1 означава операция за четене), така че когато искате да прочетете сензора, просто използвайте неговия адрес като 0x3D и винаги искате да напишете просто използвайте адреса му като 0x3C.

В този случай, за да се инициализира HMC5883L, трябваше да бъдат конфигурирани три регистъра, конфигурационният регистър А - адрес 0x00 (за да се конфигурира скоростта на извеждане на данни и режим на измерване), регистърът на конфигурацията В - адрес 0x01 (за да конфигурирате усилването на сензора) и не на последно място регистъра на режимите - адрес 0x02 (за да конфигурирате режима на работа на устройството).

Така че, след правилно конфигуриране на HMC5883L, вече е възможно да го прочетете. Желаната информация се осъществява между регистъра 0x03 и регистъра 0x08, всяка стойност на оста се състои от два байта, които са кодирани по начин на допълване на 2, което означава, че прочетените данни трябва да бъдат преобразувани, за да имат смисъл (тези неща ще бъдат обсъдени по -късно). По -специално, за този сензор трябва да прочетете цялата информация наведнъж, в противен случай може да не работи както е предложено, стига изходните данни да се записват в тези регистри само когато са били записани всички регистри. така че не забравяйте да ги прочетете всички.

И накрая, беше изследван цифровият барометър, друг сензор за протокол I2C, наречен още BMP280 (той също може лесно да се намери навсякъде, стига да се използва широко в проекти ARDUINO). Адресът му е b01110110X, а X се използва за извикване (показва) операция за четене или запис (0 означава операция за запис и 1 означава операция за четене), така че когато искате да прочетете сензора, просто използвайте неговия адрес като 0XEA и винаги искате да напишете просто използвайте адреса му като 0XEB. Но в случая на този сензор, I2C адресът може да бъде променен чрез промяна на нивото на напрежение на щифта SDO, така че ако приложите GND към този щифт, адресът ще бъде b01110110X и ако приложите VCC към този щифт, адресът ще отиде да бъде b01110111X, също за да активирате I2C модула в този сензор, трябва да приложите VCC ниво на CSB щифта на сензора, в противен случай няма да работи правилно.

За BMP280 трябваше да бъдат конфигурирани само два регистъра, за да го накара да работи, регистърът ctrl_meas - адрес 0XF4 (за да зададете опциите за събиране на данни) и регистър за конфигуриране - адрес 0XF5 (за да зададете скоростта, филтърът и опциите за интерфейс за сензора).

След като приключите с конфигурационните неща, е време за това, което наистина има значение, самите данни, в този случай желаната информация се намира между регистрите 0XF7 и 0XFC. Както температурата, така и стойността на налягането са съставени от три байта, които са кодирани по начин на допълване на 2, което означава, че прочетените данни трябва да бъдат преобразувани, за да имат смисъл (тези неща ще бъдат обсъдени по -късно). Също така за този сензор, за да се получи по -висока точност, има няколко корекционни коефициента, които могат да се използват при конвертиране на данните, те са разположени между регистрите 0X88 и 0XA1, да, има 26 байта корекционни коефициенти, така че ако прецизността е не са толкова важни, просто ги забравете, иначе няма друг начин.

И накрая, но не на последно място GPS - Tyco A1035D, този разчита на UART сериен протокол, по -специално със скорост 4800 kbps, без битове за паритет, 8 бита данни и 1 стоп бит. е сериен протокол, при който синхронизирането на информацията се извършва чрез софтуер, поради което това е асинхронен протокол, също поради тази характеристика, скоростта, в която информацията се предава и приема, е много по -малка. Конкретно за този протокол пакетите трябва да започват с начален бит, но стоп битът е по избор и размерът на пакетите е с дължина 8 бита.

В случая на GPS - Tyco A1035D бяха необходими две конфигурации, а именно setDGPSport (команда 102) и Query/RateControl (команда 103), цялата тази информация, както и повече опции са налични в справочното ръководство на NMEA, протокола използвани в повечето модули на GPS. Командата 102 се използва за задаване на скоростта на предаване, количеството битове данни и наличието или не на паритетни битове и стоп битове. Командата 103 се използва за контрол на изхода на стандартни NMEA съобщения GGA, GLL, GSA, GSV, RMC и VTG, те са описани с подробности в справочното ръководство, но в нашия случай избраният е GGA, който означава Global Фиксирани данни за системата за позициониране.

След като GPS - TycoA1035D е правилно конфигуриран, сега е необходимо само да прочетете серийния порт и да филтрирате низа, получен според избраните параметри, за да разрешите обработката на информацията.

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

Стъпка 3: Телеметричната система

Системата за телеметрия
Системата за телеметрия

Тази система е отговорна за установяването на комуникация между наземния контрол и CanSat, освен параметрите на проекта, тя също беше ограничена по някои други начини, стига RF предаването да е разрешено само в някои честотни ленти, които не са заети поради други радиочестотни услуги, като мобилни услуги. Тези ограничения са различни и могат да се променят в различните държави, така че е важно винаги да проверявате разрешените честотни ленти за общо ползване.

На пазара има много опции за радиоприемници на достъпни цени, всички тези системи предлагат различни начини на модулация на различни честоти, за тази система нашият избор се състои в 2.4GHz RF приемо -предавател, NRF24L01+, поради факта, че той вече е имал добре установен комуникационен протокол, стига системи за проверка, като системи за автоматично потвърждение и системи за повторно предаване. Освен това скоростта на предаване може да достигне скорости до 2Mbps при разумна консумация на енергия.

Така че преди да започнем работа по този трансивър, нека да се запознаем малко повече с NRF24L01+. Както бе споменато по -рано, това е радио на 2.4GHz, което може да бъде конфигурирано като приемник или предавател. За да се установи комуникацията, всеки трансивър има адрес, който може да бъде конфигуриран от потребителя, адресът може да бъде дълъг от 24 до 40 бита според вашите нужди. Транзакциите с данни могат да се извършват единично или непрекъснато, размерът на данните е ограничен до 1 байт и всяка транзакция може или не може да генерира условие за потвърждение според конфигурациите на трансивъра.

Възможни са и други няколко конфигурации, като например печалбата към изхода на радиочестотния сигнал, наличието или не на процедура за автоматично повторно предаване (ако е така, може да се избере закъснението, количеството опити измежду други характеристики) и няколко други функции, които не са непременно полезни за този проект, но така или иначе са налични в листа с данни на компонента, в случай на интерес за тях.

NRF24L01+ „говори“SPI езика, когато става въпрос за серийна комуникация, така че когато искате да прочетете или напишете този трансивър, просто продължете напред и използвайте SPI протокола за него. SPI е сериен протокол, както бе споменато по -горе, при който изборът на подчинените устройства се извършва чрез щифт CHIPSELECT (CS), който заедно с пълния дуплекс (и главният, и подчиненият могат да предават и получават по паралелен начин) характеристика на този протокол позволява много по -високи скорости на транзакция на данни.

Информационният лист на NRF24L01+ предоставя набор от команди за четене или запис на този компонент, има различни команди за достъп до вътрешните регистри, полезния товар RX и TX сред другите операции, така че в зависимост от желаната операция може да се наложи конкретна команда за изпълнете го. Ето защо би било интересно да разгледате листа с данни, в който има списък, съдържащ и обясняващ всички възможни действия над трансивъра (няма да ги изброяваме точно тук, защото това не е основният смисъл на тези инструкции).

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

За да се опростят нещата, използваният протокол (за предавателя) се състои от заглавка, съставена от 3 байта, последвана от данните на сензора, стига всички данни от сензорите да се състоят от два байта, на всеки сензор се дава идентификационен номер, започващ от 0x01 и следващи в полумесец, така че всеки два байта има идентификационен байт, по този начин заглавната последователност не може да се повтори случайно според показанията на сензора. В крайна сметка приемникът беше толкова прост, колкото предавателя, протоколът просто трябваше да разпознае заглавката, изпратена от предавателя и след това просто да съхрани получените байтове, в този случай решихме да използваме вектор за съхранението им.

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

Стъпка 4: Електрическата система

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

Като се има предвид, че CanSat трябва да може да издържи няколко часа включен, най -подходящото нещо, което трябва да се направи, е да се обмислят най -екстремните ситуации на консумация на енергия, при които всеки модул и система, свързани към CanSat, ще консумират възможно най -високия ток. Важно е обаче в този момент да бъдете разумни да не прекалявате с размера на батерията, което също не е интересно поради ограниченията в теглото на CanSat.

След консултация с всички технически листове на компонентите на всички системи, общият консумиран ток от системата беше около 160mAh приблизително, като се има предвид автономността от 10 часа, 1600mAh батерия беше достатъчна, за да гарантира на системата подходящите условия на работа.

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

Стъпка 5: Структурата

Структурата е наистина важна за безопасността на CanSat, въпреки че беше малко пренебрегната в този проект (всъщност нямаше голям интерес към развитието на механичната част на CanSat, поради факта, че всички членове курсове е свързано с електрониката). Докато проектът се основаваше на съществуващ модел, беше необходим моделът CanSat, без много да се мисли за това как ще изглежда, така че трябва да бъде оформен във формат на цилиндър, с около 6, 1 cm диаметър и около 11, Висок 65 см (същите мерки като кутия сода).

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

Външната конструкция е изградена с помощта на PVC тръби, с желания диаметър, за да се затвори конструкцията, са използвани някои PVC тръбни капаци

Стъпка 6: Заключения и бъдещи мисли

CanSat все още трябва да бъде тестван в действие, ние всъщност кандидатстваме за ракетно състезание (което ще се случи през декември), също след като преминем през цялата сграда (някак си, всъщност все още трябва да завършим някои неща) и развитие процес, някои гледни точки и бележки, които сметнахме, че би било интересно да споделим с всички вас, бяха наблюдавани, главно за борби, съвети и дори добри преживявания, така че ето:

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

- Изискваха се много усилия, за да може трансивърът да работи, тъй като всички библиотеки са разработени от нулата, също и защото са необходими две различни програми и настройки за тестване на такива неща

- В нашия случай не беше най -добрата от идеите да се работи върху микроконтролери въз основа на конфигурации на регистрите, не всички членове успяха да се справят с останалата част от групата, което доведе до някои проблеми като разделяне на задачи. Има много прилични C библиотеки за микроконтролера, който използвахме, така че би било много по -добра идея да използваме тези ресурси, има и IDE, наречена Code Composer, която също предлага много ресурси за тези микроконтролери

- CanSat все още се нуждае от много подобрения, този опит се основаваше на основни техники и умения, а също и няколко въпроса не бяха взети под внимание, така че в бъдеще се надяваме, че първокласна версия на този CanSat може да стане реалност с повече усилия и упорита работа.

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