Самописец для ракеты

А что мы делаем?
Аватара пользователя
Nikomo
Сообщения: 261

Сообщение Nikomo » 08 май 2016, 00:57

В связи с увлечением запусками ракет, решил запилить для ракеты небольшую систему управления полётом и записи данных о траектории. Контроль осуществляется в виде поджёга топлива на старте и выпуска парашюта, когда ракета пойдёт на снижение.Так же есть система световой и звуковой подачи сигнала в случае чего или просто во время полёта, чтобы было легче найти ракету. Данные о полёт берутся с двух датчиков: BMP180 и MPU6050. После считывания МК записывает их на микроСД карту по SPI интерфейсу каждые там 10-100 милисекунд.
Начал я это всё дело воплощать, запилил схему, запаял плату, написал тестовую прошу (просто берётся значение с одного датчика и пишется на карту), но в лучших традициях ничего не заработало. Упростил прошивку - просто записать на карту в текстовый файл константу, указанную в коде. Опять нифига. Думаю - эх, не работает мой код, плохой программист я. Взял готовый проект, тупо залил хекс файл из него, врубил - нифига (предварительно создал нужный файл, в нужной директории на карте и немного "заполнил" файл пробелами). Проверял 1000 раз пайку, все контакты, отмывал литрами спирта, форматировал микросд карту в фат со стандартым размером клатера, в фат32, пробовал 3 разные карты, пересоздавал файлы - нифига. Вся схема питается от 3.3В стабилизатора (KB33), имеет 3.25В на выходе, никаких просадок напряжения не замечено.Кодил это всё на основе библиотеки Petit FAT, микроконтроллер - Atmega328P, карты - микросд, пробовал 3 штуки (втавляются в разьём), все по 2Гб, ни одна так и не записала данные.
Подключал карту к МК по схеме(только выводы подсоединял соответсвующие микроСД карте):
01.png
01.png (4.61 КБ) 17409 просмотров

Потом повесил резисторы на шину по 50кОм к + питания, думал поможет
1.png
1.png (5.73 КБ) 17409 просмотров

В итоге ничего не вышло.У меня пару версий - эти карты не поддерживают СПИ интерфейс, либо я не правильно подключаю карту к МК, может, 50К резисторы большие, но в статьях сказано 10-100кОм. Ну, ещё может быть контакты разъёма для карточки в остатках флюса либо окислены, но я их промывал под струёй мед. спирта и засовавал в слот для карты бумажку и елозил там внутри, разве что ещё наждачку попробовать :? Внутрь заглядвал - все контакты целые....
Кто что может подсказать?

Аватара пользователя
Nikomo
Сообщения: 261

Сообщение Nikomo » 08 май 2016, 12:47

Мда, после небольшого допиливания библиотеки SPI интерфейса всё заработало, но тему пока закрывать не буду, вдруг ещё вопросы возникнут....

Аватара пользователя
Nikomo
Сообщения: 261

Сообщение Nikomo » 09 май 2016, 02:01

Удалось получить данные с одного датчика, но проблема в том, что запись должна вестись циклично во время полёта ракеты, а библиотека работы с картой позволяет производить запись только в начале сектора, и не важно сколько байт ты записал, все 512 считаются занятыми, что и сказивается на файле с данными: после записи значения датчика нужно сместить указатель записи на те же 512 байт, иначе новое значение просто перезапишется поверх старого, в результате мы видим в .тхт файле одно значение, 500 с чем-то пробелов и следующее значение, кароче говороя - безобразие. Я пробовал записывать значения одно под одним, начиная с новой строчки, но у меня ничего не вышло. Я читал что надо отправить в конце передачи данных значения 0xD 0xA, что в таблицах ASCII значит перенос на начало новой строки, тогда последующая запись данных будет, собственно, с новой строчки. Но моя попытка не увенчалась успехом. Насколько я понял надо передать значения типа int, тогда тхт файл поймёт что ему делать, но тип передаваемых данных библиотекой - BYTE, другие типы, насколько я понял, она передавать не хочет и моя попытка отправить int переменые первращает значения в какую-то тарабарщину.
Можете подсказать как, собственно, реализовать запись в столбец?

Аватара пользователя
BSVi
Адепт
Сообщения: 3576
Откуда: Киев

Сообщение BSVi » 09 май 2016, 03:10

Дак нужно писать сразу по 512 байт. Если нужно поменять в них что-то, то нужно прочесть 512 байт, отредактировать в памяти и записать обратно.

Аватара пользователя
iEugene0x7CA
Адепт
Сообщения: 1571
Откуда: Киев

Сообщение iEugene0x7CA » 16 май 2016, 18:38

Nikomo писал(а):решил запилить для ракеты небольшую систему управления полётом и записи данных о траектории.

Какие люди, и какие звездолёты собирают. С минувших дней лишь помню, как пытались с тобой триггер 74HC109 купить. :)

Касательно проектика — низкоуровнево с SD картой беспонтово работать, только в связке с FAT и через готовые либы.
Если в подобном нет необходимости и/или желания разбираться — можно заюзать в сотни раз более простой, быстрый и надёжный вид памяти: SPI Flash.
Вот типичный представитель, 16 МБ, брал здесь в Имраде: https://www.winbond.com/resource-files/ ... 242015.pdf
Недавно с такой штуки ниггерские песни играл. :)
https://www.youtube.com/watch?v=pwo9-BxnC_Y

Но, если SD флеха уже читается — BSVI правильно говорит.
Инфа на SD-картах хранится в виде 512-байтных секторов, читается и пишется тоже 512-ю байтами, такая особенность.

mutabor
Сообщения: 91

Сообщение mutabor » 17 май 2016, 21:56

Неужели библиотеку сам писал? :o И не знаешь что есть страничная запись? :shock: тогда вдвойне круто!
Но всё же надо почитать про флешь память и почему в ней принято писать страницами. Здесь та же ситуация, по сути СД карта это массив флешь памяти с контроллером SDIO.
Когда то делал работу с флешкой на STM32, использовал FatFs от Чана, очень понравился его код, и файловая система работала как часы, но там без буферов не обойтись, т.е на AVR может и получится, но надо будет ужиматься изо всех сил.

ЗЫ. А перенос строк ничего не даст, нужно организовывать у себя (в AVR) буфер на 512 байт и заполнять его, по заполнению -писать его на карту -т.е страницами, как и положено.

Аватара пользователя
iEugene0x7CA
Адепт
Сообщения: 1571
Откуда: Киев

Сообщение iEugene0x7CA » 19 май 2016, 13:22

mutabor писал(а):Когда то делал работу с флешкой на STM32, использовал FatFs от Чана, очень понравился его код, и файловая система работала как часы, но там без буферов не обойтись, т.е на AVR может и получится, но надо будет ужиматься изо всех сил.

Для AVR есть кастрированная версия — Petit FatFs. ;)
Рабочий пример можно тут взять: http://avr-start.ru/?p=1874

Аватара пользователя
Nikomo
Сообщения: 261

Сообщение Nikomo » 19 май 2016, 13:25

Библиотеку конечно же не сам - PetitFat юзаю. Для датчиков тоже библиотеки есть, хотя для 6050-го датчика надо нехило так с ней поработать, но не суть.
Спасибо, народ, делаю как вы говорите - заполняю 512 байт буфер, пишу на карту, потом перезаписываю буфер и опять пишу. Всё работает, и всё бы нечего, но запись 4 блоков (2кб) занимает долгие 10 секунд, при рабочей частоте мк в 8МГц, при том, я засекал по току, что очень долго идёт заполнение буфера (я запитывал устройство через милиамперметр и когда происходит обращение к карте, присходит скачёк тока, что сигнализирует о записи одного блока данных, собственно за один цикл работы - 4 таких броска), т.е. пару секунд ток себе стабилен (буфер заполняется), потом пишет за долю сенкунды и снова ждёт.
Я думаю - может это данные с датчика долго обрабатываются библиотекой или может быть такое, что оператива МК забивается значениями буфера (хотя у него по даташиту 2кб оперативы и буфер - всего 1/4 её обьёма) и МК начинает тупить.

mutabor
Сообщения: 91

Сообщение mutabor » 20 май 2016, 16:12

Nikomo. Скорей всего дело не в процессоре и не в том, что он начинает тупить (если в нем не стоит операционка конечно :lol: ). Просто данные с датчика идут с небольшой частотой, вот и долго буфер копится. Как сделан опрос датчика?
Запись в файл легко проверить -просто сделай переменную-счетчик (16битную к примеру) и инкрементируй ее в цикле, значения пиши в буфер. В файле должен увидеть эти значения от 0 до 2047 (смотреть можно Winhex'ом к примеру). Скорость записи в этом случае будет примерно = максимальной :)

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


yaachii
На форуме

Сообщения: 26973

Сообщение yaachii » 02 май 2025, 00:15

http://audiobookkeeper.ruhttp://cottagenet.ruhttp://eyesvision.ruhttp://eyesvisions.comhttp://factoringfee.ruhttp://filmzones.ruhttp://gadwall.ruhttp://gaffertape.ruhttp://gageboard.ruhttp://gagrule.ruhttp://gallduct.ruhttp://galvanometric.ruhttp://gangforeman.ruhttp://gangwayplatform.ruhttp://garbagechute.ruhttp://gardeningleave.ruhttp://gascautery.ruhttp://gashbucket.ruhttp://gasreturn.ruhttp://gatedsweep.ruhttp://gaugemodel.ruhttp://gaussianfilter.ruhttp://gearpitchdiameter.ru
http://geartreating.ruhttp://generalizedanalysis.ruhttp://generalprovisions.ruhttp://geophysicalprobe.ruhttp://geriatricnurse.ruhttp://getintoaflap.ruhttp://getthebounce.ruhttp://habeascorpus.ruhttp://habituate.ruhttp://hackedbolt.ruhttp://hackworker.ruhttp://hadronicannihilation.ruhttp://haemagglutinin.ruhttp://hailsquall.ruhttp://hairysphere.ruhttp://halforderfringe.ruhttp://halfsiblings.ruhttp://hallofresidence.ruhttp://haltstate.ruhttp://handcoding.ruhttp://handportedhead.ruhttp://handradar.ruhttp://handsfreetelephone.ru
http://hangonpart.ruhttp://haphazardwinding.ruhttp://hardalloyteeth.ruhttp://hardasiron.ruhttp://hardenedconcrete.ruhttp://harmonicinteraction.ruhttp://hartlaubgoose.ruhttp://hatchholddown.ruhttp://haveafinetime.ruhttp://hazardousatmosphere.ruhttp://headregulator.ruhttp://heartofgold.ruhttp://heatageingresistance.ruhttp://heatinggas.ruhttp://heavydutymetalcutting.ruhttp://jacketedwall.ruhttp://japanesecedar.ruhttp://jibtypecrane.ruhttp://jobabandonment.ruhttp://jobstress.ruhttp://jogformation.ruhttp://jointcapsule.ruhttp://jointsealingmaterial.ru
http://journallubricator.ruhttp://juicecatcher.ruhttp://junctionofchannels.ruhttp://justiciablehomicide.ruhttp://juxtapositiontwin.ruhttp://kaposidisease.ruhttp://keepagoodoffing.ruhttp://keepsmthinhand.ruhttp://kentishglory.ruhttp://kerbweight.ruhttp://kerrrotation.ruhttp://keymanassurance.ruhttp://keyserum.ruhttp://kickplate.ruhttp://killthefattedcalf.ruhttp://kilowattsecond.ruhttp://kingweakfish.ruhttp://kinozones.ruhttp://kleinbottle.ruhttp://kneejoint.ruhttp://knifesethouse.ruhttp://knockonatom.ruhttp://knowledgestate.ru
http://kondoferromagnet.ruhttp://labeledgraph.ruhttp://laborracket.ruhttp://labourearnings.ruhttp://labourleasing.ruhttp://laburnumtree.ruhttp://lacingcourse.ruhttp://lacrimalpoint.ruhttp://lactogenicfactor.ruhttp://lacunarycoefficient.ruhttp://ladletreatediron.ruhttp://laggingload.ruhttp://laissezaller.ruhttp://lambdatransition.ruhttp://laminatedmaterial.ruhttp://lammasshoot.ruhttp://lamphouse.ruhttp://lancecorporal.ruhttp://lancingdie.ruhttp://landingdoor.ruhttp://landmarksensor.ruhttp://landreform.ruhttp://landuseratio.ru
http://languagelaboratory.ruhttp://largeheart.ruhttp://lasercalibration.ruhttp://laserlens.ruhttp://laserpulse.ruhttp://laterevent.ruhttp://latrinesergeant.ruhttp://layabout.ruhttp://leadcoating.ruhttp://leadingfirm.ruhttp://learningcurve.ruhttp://leaveword.ruhttp://machinesensible.ruhttp://magneticequator.ruhttp://magnetotelluricfield.ruhttp://mailinghouse.ruhttp://majorconcern.ruhttp://mammasdarling.ruhttp://managerialstaff.ruhttp://manipulatinghand.ruhttp://manualchoke.ruhttp://medinfobooks.ruhttp://mp3lists.ru
http://nameresolution.ruhttp://naphtheneseries.ruhttp://narrowmouthed.ruhttp://nationalcensus.ruhttp://naturalfunctor.ruhttp://navelseed.ruhttp://neatplaster.ruhttp://necroticcaries.ruhttp://negativefibration.ruhttp://neighbouringrights.ruhttp://objectmodule.ruhttp://observationballoon.ruhttp://obstructivepatent.ruhttp://oceanmining.ruhttp://octupolephonon.ruhttp://offlinesystem.ruhttp://offsetholder.ruhttp://olibanumresinoid.ruhttp://onesticket.ruhttp://packedspheres.ruhttp://pagingterminal.ruhttp://palatinebones.ruhttp://palmberry.ru
http://papercoating.ruhttp://paraconvexgroup.ruhttp://parasolmonoplane.ruhttp://parkingbrake.ruhttp://partfamily.ruhttp://partialmajorant.ruhttp://quadrupleworm.ruhttp://qualitybooster.ruhttp://quasimoney.ruhttp://quenchedspark.ruhttp://quodrecuperet.ruhttp://rabbetledge.ruhttp://radialchaser.ruhttp://radiationestimator.ruhttp://railwaybridge.ruhttp://randomcoloration.ruhttp://rapidgrowth.ruhttp://rattlesnakemaster.ruhttp://reachthroughregion.ruhttp://readingmagnifier.ruhttp://rearchain.ruhttp://recessioncone.ruhttp://recordedassignment.ru
http://rectifiersubstation.ruhttp://redemptionvalue.ruhttp://reducingflange.ruhttp://referenceantigen.ruhttp://regeneratedprotein.ruhttp://reinvestmentplan.ruhttp://safedrilling.ruhttp://sagprofile.ruhttp://salestypelease.ruhttp://samplinginterval.ruhttp://satellitehydrology.ruhttp://scarcecommodity.ruhttp://scrapermat.ruhttp://screwingunit.ruhttp://seawaterpump.ruhttp://secondaryblock.ruhttp://secularclergy.ruhttp://seismicefficiency.ruhttp://selectivediffuser.ruhttp://semiasphalticflux.ruhttp://semifinishmachining.ruhttp://spicetrade.ruhttp://spysale.ru
http://stungun.ruhttp://tacticaldiameter.ruhttp://tailstockcenter.ruhttp://tamecurve.ruhttp://tapecorrection.ruhttp://tappingchuck.ruhttp://taskreasoning.ruhttp://technicalgrade.ruhttp://telangiectaticlipoma.ruhttp://telescopicdamper.ruhttp://temperateclimate.ruhttp://temperedmeasure.ruhttp://tenementbuilding.rutuchkashttp://ultramaficrock.ruhttp://ultraviolettesting.ru

Вернуться в «Наши проекты»



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 68 гостей