Оглавление:

CanSat - Руководство для начинающих: 6 шагов
CanSat - Руководство для начинающих: 6 шагов

Видео: CanSat - Руководство для начинающих: 6 шагов

Видео: CanSat - Руководство для начинающих: 6 шагов
Видео: Мастер-класс - Как собрать свой первый спутник формата CanSat 2024, Июль
Anonim
CanSat - Руководство для начинающих
CanSat - Руководство для начинающих
CanSat - Руководство для начинающих
CanSat - Руководство для начинающих
CanSat - Руководство для начинающих
CanSat - Руководство для начинающих

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

Шаг 1: Основная система

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

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

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

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

Итак, после выбора подходящего «мозга» для этой системы, следующим шагом была разработка ее программного обеспечения, а также для простоты мы решили просто использовать последовательную программу, которая выполняет следующую последовательность с частотой 1 Гц:

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

Часть датчиков будет объяснена позже в системе зондирования, а передача данных будет объяснена в системе телеметрии. Наконец, нужно было научиться программировать микроконтроллер, в нашем случае нам нужно было изучить следующие функции 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 требовалось настроить три регистра: регистр конфигурации A - адрес 0x00 (для настройки скорости вывода данных и режима измерения), регистр конфигурации B - адрес 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. И температура, и значение давления состоят из трех байтов, которые кодируются способом дополнения до двух, что означает, что считанные данные должны быть преобразованы, чтобы иметь смысл (эти вещи будут обсуждаться позже). Также для этого датчика, чтобы получить более высокую точность, есть несколько коэффициентов коррекции, которые можно использовать при преобразовании данных, они расположены между регистрами 0X88 и 0XA1, да, есть 26 байтов коэффициентов коррекции, поэтому, если точность не так уж и важно, просто забудьте их, иначе нет другого выхода.

И наконец, что не менее важно, GPS - Tyco A1035D, он использует последовательный протокол UART, в частности, со скоростью 4800 кбит / с, без битов четности, 8 битов данных и 1 стоповый бит. UART или универсальный асинхронный приемник / передатчик, - это последовательный протокол, в котором синхронизация информации выполняется с помощью программного обеспечения, поэтому это асинхронный протокол, а также из-за этой характеристики скорость передачи и приема информации намного меньше. В частности, для этого протокола пакеты должны начинаться со стартового бита, но стоповый бит является необязательным, а размер пакетов составляет 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, помимо параметров проекта, она также была ограничена некоторыми другими способами, поскольку радиочастотная передача разрешена только в некоторых полосах частот, которые не заняты из-за другие услуги РФ, например услуги мобильной связи. Эти ограничения различны и могут меняться от страны к стране, поэтому важно всегда проверять разрешенные полосы частот для общего использования.

На рынке доступно множество вариантов радиоприемников по доступным ценам, все эти системы предлагают различные способы модуляции на разных частотах, для этой системы мы выбрали радиочастотный трансивер 2,4 ГГц NRF24L01 +, поскольку он уже имел хорошо зарекомендовавший себя протокол связи, включая системы проверки, такие как системы автоматического подтверждения и автоматической повторной передачи. Кроме того, его скорость передачи может достигать 2 Мбит / с при разумном энергопотреблении.

Итак, прежде чем приступить к работе над этим трансивером, давайте узнаем немного больше о NRF24L01 +. Как упоминалось ранее, это радиомодуль на частоте 2,4 ГГц, который можно настроить как приемник или передатчик. Для установления связи каждый трансивер получает адрес, который может быть настроен пользователем, длина адреса может составлять от 24 до 40 бит в соответствии с вашими потребностями. Транзакции с данными могут происходить однократно или непрерывно, размер данных ограничен 1 байтом, и каждая транзакция может генерировать или не генерировать условие подтверждения в соответствии с конфигурациями приемопередатчика.

Также возможны несколько других конфигураций, таких как усиление по отношению к выходному сигналу RF, наличие или отсутствие процедуры автоматической повторной передачи (если это так, можно выбрать задержку, количество попыток среди других характеристик) и несколько других функции, которые не обязательно полезны для этого проекта, но в любом случае они доступны в техническом описании компонента, если они интересны.

NRF24L01 + «говорит» на языке SPI, когда дело доходит до последовательной связи, поэтому всякий раз, когда вы хотите прочитать или записать этот трансивер, просто используйте для него протокол SPI. SPI - это последовательный протокол, как упоминалось ранее, в котором выбор ведомых выполняется через вывод CHIPSELECT (CS), который наряду с полнодуплексным (как ведущий, так и ведомый могут передавать и принимать параллельно) характеристикой этого протокола позволяет намного более высокие скорости передачи данных.

Таблица данных NRF24L01 + предоставляет набор команд для чтения или записи этого компонента, существуют различные команды для доступа к внутренним регистрам, полезной нагрузке RX и TX среди других операций, поэтому в зависимости от желаемой операции может потребоваться определенная команда для выполнить это. Вот почему было бы интересно взглянуть на таблицу, в которой есть список, содержащий и объясняющий все возможные действия над трансивером (мы не собираемся перечислять их прямо здесь, потому что это не основной смысл этой инструкции.).

Помимо приемопередатчика, еще одним важным компонентом этой системы является протокол, через который все желаемые данные отправляются и принимаются, поскольку система должна работать с несколькими байтами информации одновременно, важно знать значение каждого байта, для этого и работает протокол, он позволяет системе организованно идентифицировать все полученные и переданные данные.

Чтобы упростить задачу, используемый протокол (для передатчика) состоял из заголовка, состоящего из 3 байтов, за которым следовали данные датчика, если все данные датчиков состояли из двух байтов, каждому данным датчика был присвоен идентификационный номер, начиная с начиная с 0x01 и следующих в серповидном порядке, так что каждые два байта есть байт идентификации, таким образом последовательность заголовка не может повторяться случайно в соответствии с показаниями датчика. Приемник оказался таким же простым, как и передатчик, протоколу просто нужно было распознать заголовок, отправленный передатчиком, и после того, как он просто сохранит полученные байты, в этом случае мы решили использовать вектор для их хранения.

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

Шаг 4: Энергетическая система

Эта система отвечает за снабжение других систем энергией, необходимой им для правильной работы, в этом случае мы решили просто использовать батарею и регулятор напряжения. Итак, для определения размера батареи были проанализированы некоторые рабочие параметры CanSat, которые помогут определить модель и мощность, необходимую для питания всей системы.

Учитывая, что CanSat должен работать несколько часов во включенном состоянии, наиболее подходящим вариантом было рассмотрение самых экстремальных ситуаций энергопотребления, в которых каждый модуль и система, подключенные к CanSat, потребляли бы максимально возможный ток. Тем не менее, на этом этапе также важно проявлять разумность и не увеличивать размер батареи, что также неинтересно из-за ограничений по весу CanSat.

После ознакомления со всеми техническими описаниями компонентов всех систем, общий ток, потребляемый системой, составил примерно 160 мАч, учитывая автономность в 10 часов, батареи на 1600 мАч было достаточно для обеспечения надлежащих условий работы системы.

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

Шаг 5: Структура

Конструкция действительно важна для безопасности CanSat, хотя в этом проекте ею немного пренебрегли (на самом деле не было особого интереса к разработке механической части CanSat, поскольку все участники прошли курс обучения имел отношение к электронике). Поскольку проект был основан на существующем шаблоне, шаблон CanSat, не нужно было много думать о том, как он будет выглядеть, поэтому он должен иметь форму цилиндра с диаметром около 6,1 см и диаметром около 11 см. Высотой 65 см (столько же, сколько банка газировки).

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

Наружная конструкция была построена с использованием труб из ПВХ желаемого диаметра, чтобы закрыть конструкцию, были использованы некоторые покрытия для труб из ПВХ.

Шаг 6: выводы и мысли на будущее

CanSat все еще нуждается в испытании в действии, мы фактически подаем заявку на ракетное соревнование (которое должно произойти в декабре), также после прохождения всего здания (вроде, нам действительно все еще нужно закончить некоторые вещи) и разработки. Были замечены некоторые точки зрения и заметки, которыми, как мы думали, было бы интересно поделиться со всеми вами, в основном о проблемах, советах и даже хорошем опыте, так что вот оно:

- Начало проекта стало наиболее плодотворным периодом развития всего проекта, к сожалению, группа стала немного незаинтересованной в проекте к его крайнему сроку, может быть, из-за отсутствия немедленных результатов или, может быть, просто из-за отсутствия общения, в любом случае. из проекта вышло несколько хороших вещей

- Потребовалось много усилий, чтобы заставить трансивер работать, поскольку все библиотеки были разработаны с нуля, а также потому, что для тестирования такого рода вещей требуются две разные программы и настройки.

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

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

Рекомендуемые: