[image]

Простой цифровой ракетомодельныйный высотомер на Ардуино.

Высотомер своими руками.
 
1 6 7 8 9 10 11 12
+
-
edit
 

Брат-2

опытный

Nec> Платы спаяны между собой "штырьками", которые идут в комплекте. Подключение "в лоб", ....
Интересно, а ты на самом деле наш Nec? :) По переделки цепей питания понятно, а вот так периферию лепить к любым pin, первый раз вижу. :eek: Допустим, выходы держат до 40мА, а I2C, можно организовать на любые pin? Честно, в шоке! :eek: Предполагаю, некую подставу. :(
   2525
+
-
edit
 

Nec

втянувшийся

Брат-2> Допустим, выходы держат до 40мА
Так точно.

Брат-2> а I2C, можно организовать на любые pin?
Любую шину на любой пин. Тут организован софт-I2C и софт-SPI.

Брат-2> Предполагаю, некую подставу. :(
Пробуйте. Расскажите потом. Софт "сырой" и, наверное, буду "допиливать" время от времени.
   127.0.0.0127.0.0.0
RU apakhom #14.02.2025 22:01  @Брат-2#14.02.2025 20:29
+
+1
-
edit
 

apakhom

опытный

Nec>> Платы спаяны между собой "штырьками", которые идут в комплекте. Подключение "в лоб", ....
Брат-2> Интересно, а ты на самом деле наш Nec? :) По переделки цепей питания понятно, а вот так периферию лепить к любым pin, первый раз вижу.

Nec нормально все сделал. Ножками "дергать" можно как угодно :)
Программно можно все делать - и I2C, и SPI, и UART и пр. Быстродействие меги позволяет.
Для SPI (25Qxx) pinko пример кода еще когда давал...
Я и то (на заре увлечения) "баловался" программной реализацией интерфейса. И сейчас еще несколько Pro mini с распаянным BMP280 использую (в РП-40 такой вариант летает).
 

   134.0134.0
+
-
edit
 

Брат-2

опытный

....
Брат-2>> а I2C, можно организовать на любые pin?
Nec> Любую шину на любой пин. Тут организован софт-I2C и софт-SPI.
....
Ну, да, мы же условные программисты! :) У нас все привязано к конкретным выводам! Если взять распиновку любого Arduino, да и любого МК, то шины SPI и I2C привязаны к конкретным pin. Нет, бывает и 2 и 3 шины, но не на любые pin!
   2525

Nec

втянувшийся

Nec> Настройка и чтение памяти происходит через терминал COM-порта

В выходные сваял небольшую программку (если ее так можно назвать) в Excel, для связи с описываемым мной высотомером. Чтобы упростить задачу чтения памяти и настройки высотомера. Прога и файлы прошивки (*.hex) микроконтроллеров (с исходниками на бейсике) размещу на Я.Диск. Там же пара логов (для примера, "из-под шприца Жане"), которые автоматически создаются в той же папке, где и прога, после чтения памяти высотомера.
Форматирование листов и код VBA доступен для редактирования каждому, под свои нужды и хотелки. Никаких паролей и прочих ограничений - доработка "под себя" приветствуется! :) Считаю Excel более доступной и "народной" платформой. Однако, проверить совместимость х32/х64 нет возможности и предугадать все наперед не могу. Нужно пробовать.
Прикреплённые файлы:
No_Connect.jpg (скачать) [1280x540, 99 кБ]
 
Tun.jpg (скачать) [1279x539, 124 кБ]
 
Полет_1.jpg (скачать) [1278x537, 178 кБ]
 
Полет_2.jpg (скачать) [1280x543, 191 кБ]
 
 
   133.0.0.0133.0.0.0
Это сообщение редактировалось 04.03.2025 в 16:37
+
+1
-
edit
 

Nec

втянувшийся

Для тех, кто привык писать на флешку, в папке BMP280+SDHC исходники и файлы прошивки на высотомер по схеме Брат-2. Как под Atmega168, так и под Atmega328. Все характеристики и возможные настройки унаследованы от высотомера на W25Q128.
Поддерживает карты памяти поколения SDHC и большую часть SDXC. MicroSD используется только в качестве внешней памяти, соответственно, никаких файловых систем и прочего. Как отформатирована и отформатирована ли вообще - не важно. Важно чтобы на карте не было никакой ценной информации, потому что она может быть перезаписана и потеряна безвозвратно. Настроить и прочитать высотомер можно, как и высотомер на W25Q128, через терминал или Excel-программку. Все это по ссылке на файлообменник.
   133.0.0.0133.0.0.0

apakhom

опытный

apakhom>>>> Вопрос: почему тогда так выходит?
pinko> Nec>> Ответ кроется в Даташите и "фруктовой" библиотеке.
apakhom>> ну, так 43мс в худшем случае, а я читаю 50 мс - не должно быть "дважды из горшка"
apakhom>> У pinko вообще - 20 мс. Dyanko! ты как с датчиком общаешься?
pinko> Привет apakhom,
pinko> Я только сейчас увидел твой вопрос, прошу прощения, жизнь как-то отвлекла меня от хобби.
pinko> Похоже, проблема в том, как библиотека взаимодействует с датчиком.
pinko> - Либо буфер библиотеки вызывает повторяющиеся показания
pinko> - Либо библиотека не использует режим непрерывных данных, а запрашивает одиночное преобразование через регулярные периоды и что-то не так с тем. Также может быть проблемой как и когда отправляются запросы и считываются данные.
pinko> Кстати после инициализации датчика можно считать регистр управления, чтобы увидеть какой режим установлен.

Сегодня дошли руки - занялся анализом...
1. После инициализации ВМР280 состояние регистров 0xF4 = B7, 0xF5 = 0
(т.е. нормальный режим с периодом 0,5мс - как и положено)
2. Померил на всякий случай время на замер (получение давления функцией библиотеки) - 2мс

Но при считывании данных с периодом 50мс каждый 4-5 отсчет дублируются. Такое впечатление, что период обновления данных в датчике в нормальном режиме не 0,5мс, а 62,5мс. Но регистр 0xF5 говорит что "все нормально" :)

Библиотека стандартная "фруктовая", датчики пробовал разные...
Еще мысли есть?
Похоже, надо oversampling поменять с х16 на что-то по-проще :)
   115.0115.0
+
+1
-
edit
 

Nec

втянувшийся

apakhom> Еще мысли есть?
Регистр F4 = 0x25 (0010_0101) — oversampling temp x1, oversampling press x1, forced mode.
Регистр F5 0x00 (0000_0000) — STANDBY = 0,5мс (хоть оно и не нужно, исходя из предыдущего регистра), Filter OFF, Disable SPI.

Получаем единоразовый замер с максимальной скоростью. Чтобы иметь возможность контролировать периодичность замеров.
Когда необходимо, (к примеру, после всех вычислений) снова пишем в регистр F4 значение 0x25 и делаем новый замер. С временем оцифровки данных не заморачивался, но много меньше 10мс. BMP280 мне не интересен.
Всё исходники (файлы.bas) по ссылке на Я.Диск можно открыть даже блокнотом, для анализа кода. Не си и, тем более, не ардуиновское подобие C++, но разобраться можно.
   127.0.0.0127.0.0.0

apakhom

опытный

apakhom>> Еще мысли есть?
Nec> Регистр F4 = 0x25 (0010_0101) — oversampling temp x1, oversampling press x1, forced mode.

Спасибо! Очень хороший полноценный ответ.
Ветер сильный, запуск отложил, остался "на диване", докопался сам :)
Как итог: пошел почти твоим путем. Но до х1 опускаться не стал.
При х4 (01101111) - в normal получил период 18 мс - мне вполне подходит. С forced не стал связываться.

Пишут, что для х1 разрешение (без фильтра) = 2,6Па (это примерно 0,3 м), а для х4 - 0,7Па.
Так что - есть куда ускоряться :)

PS для тех кто пользуется "адафруит" в лоб (без "поднастройки") надо иметь ввиду, что периодичность обновления данных о давлении в буфере датчика - около 66 мс. А если еще и высоту считать, то...
   115.0115.0

M&D
mihail66

аксакал

apakhom> PS для тех кто пользуется "адафруит" в лоб (без "поднастройки") надо иметь ввиду, что периодичность обновления данных о давлении в буфере датчика - около 66 мс.

"66 мс" это микросекунды (0,000066с)?
   134.0.0.0134.0.0.0
+
+1
-
edit
 

pinko

опытный

apakhom> Сегодня дошли руки - занялся анализом...
apakhom> 1. После инициализации ВМР280 состояние регистров 0xF4 = B7, 0xF5 = 0
apakhom> (т.е. нормальный режим с периодом 0,5мс - как и положено)
apakhom> 2. Померил на всякий случай время на замер (получение давления функцией библиотеки) - 2мс
apakhom> Но при считывании данных с периодом 50мс каждый 4-5 отсчет дублируются. Такое впечатление, что период обновления данных в датчике в нормальном режиме не 0,5мс, а 62,5мс. Но регистр 0xF5 говорит что "все нормально" :)

Привет apakhom,

Регистр 0xF4 = 0хB7 = b10110111, т.е. 16х передискретизация как по температуре так и по давлением.

Время ожидания 0.5 миллисекунды — это время между измерениями, однако при 16-кратной передискретизации каждое измерение занимает до 43,2 мс. Таким образом, максимальное время от измерения до измерения составляет примерно 44 мс.

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

Также следует отметить, что если регистры давления считываются в "пакетном режиме", то считывание данных происходит в режиме теневого копирования - тоесть регистр данных давления не обновляется новыми данными до тех пор, пока текущее преобразование не будет полностью завершено.
Прикреплённые файлы:
BMP280.jpg (скачать) [657x315, 67 кБ]
 
 
   136.0136.0

Nec

втянувшийся

apakhom> С forced не стал связываться.

Forced mode тем и хорош, что можем квантовать время как нам удобно, без привязки к барометру. В любой момент, когда нам нужно, "пнули" барометр и занимаемся своими делами, пока он измеряет и обновляет регистры АЦП. Сделали свои дела (прошло достаточно времени для конвертации) - считали АЦП, поместили в массив и дальше занимаемся своими делами. Время от замера до чтения = Const. Время между замерами = Const. Все константы задаём сами.

apakhom> Пишут, что для х1 разрешение (без фильтра) = 2,6Па (это примерно 0,3 м), а для х4 - 0,7Па.
Всё это фигня, т.к. реальное давление, в тепличных условиях, пляшет ±10-15Па = ±1м. А в условиях шума и ветра итого больше. Поэтому, шумы барометра всегда будут ниже фактического порога.

З.Ы. Как всегда, ничего никому не навязываю, просто делюсь информацией. Каждый вправе делать как считает нужным :)
   127.0.0.0127.0.0.0
+
-
edit
 

soms_f

новичок
В-общем, попытки изготовления платы лутом пока, мягко говоря, не впечатляют. Вроде бы сделал все как написано: перевёл на текстолит с помощью специальной бумаги с алиэкспресса, протравил, промыл, зачистил, протёр спиртом. Но при лужении дорожек припой откровенно не хочет ложиться на медь, получается совсем не так, как на многочисленных видео. Пробовал и с флюсом и без него, заострённым жалом и плоским. М.б. перетравил медь или припой не тот или флюс... М.б. что-нибудь посоветуете.
Прикреплённые файлы:
20250418_214855.jpg (скачать) [4608x3456, 4 МБ]
 
 
   135.0.0.0135.0.0.0

Nec

втянувшийся

s.f.> М.б. что-нибудь посоветуете.
Индикаторный флюс-гель ТТ. Как по мне, нормальный флюс за совсем небольшие деньги.
Припой лучше брать ПОС-61. Но у разных производителей разные свойства припоя.
Ну и медная оплетка для удаления излишек припоя с платы.

Еще, по фото не совсем понятно как протравилось. Как будто бы кусками. Или тонер не прилип, или травил безжалостно. Если после ЛУТ остаются мелкие дефекты, их можно подкрасить маркером, чтобы лишнее не вытравить.
Прикреплённые файлы:
 
   130.0.0.0130.0.0.0

Xan

координатор

s.f.> М.б. что-нибудь посоветуете.

1. Медь перед лужением полезно почистить мелкой шкуркой, чтоб она стала "равномерно медная". И после этого помыть с мылом, чтоб не осталось медной пыли.
2. Всю плату "покрасить" жидким флюсом. Например, 20% канифоли в этиловом (хуже) или изопропиловом (лучше) спирте. И подсушить до отлипа.
3. В качестве кисточки для лужения удобно использовать кусочек (1...2 см) медной оплётки, которая "промокашка для отпайки". Кусочек слегка пропитать припоем, греть паяльником и возюкать по плате. Получается равномерный тонкий слой.
   135.0.0.0135.0.0.0
+
-
edit
 

soms_f

новичок
Спасибо, буду пробовать
   135.0.0.0135.0.0.0

pinko

опытный

Лучше всего подойдет флюс из нашатырь и глицерина.

Но после этого плату обязательно нужно очень хорошо промыть водой.
   137.0137.0

Sandro
AXT

инженер вольнодумец
★★
pinko> Лучше всего подойдет флюс из нашатырь и глицерина.

Не надо применять глицерин для пайки. Уже при температуре плавления ПОС-61 он в заметных количествах перерождается в акролеин, а это крайне вредное вещество.
Есть множество других флюсов. Если хочется чего подешевле и чтобы легко смывалось — я в очередной раз рекомендую сухую лимонную кислоту.
С ней паяется даже нержавейка.

pinko> Но после этого плату обязательно нужно очень хорошо промыть водой.

Мыть в любом случае надо. Флюсы, не требующие отмывки — это сказки.
   131.0131.0

Sandro
AXT

инженер вольнодумец
★★
s.f.> В-общем, попытки изготовления платы лутом пока, мягко говоря, не впечатляют.

Да уж. Жуткая картина, такого быть в принципе не должно.

s.f.> М.б. перетравил медь или припой не тот или флюс... М.б. что-нибудь посоветуете.

Судя по незалуженным пятнам, медь осталась только сеточкой? Это неправильно, слой меди должен быть сплошным. Возможно, принтер работал в режиме экономии тонера. Кстати, мне попадались лазерники с неотключаемым режимом экономии тонера. Там что с ним не делай, а 100% чёрного он не даёт, всё равно сетка.
Возможно, как раз такой принтер попался?
   131.0131.0

soms_f

новичок
Sandro> Возможно, как раз такой принтер попался?

Может быть. Он на этой китайской бумаге в принципе печатает так себе. Осуществил новую попытку. Правда не поставил зеркальную печать. Плохопропечатанные места закрыл маркером, протравил.
Очистил от краски обезжиривателем, зачистил, помыл-посушил.
Флюс напоминает желе, поэтому в шприц его не очень наберёшь, нанёс спичкой. Ну а дальше припой+паяльник. Результат немного получше. С промокашкой пока не пробовал.
Прикреплённые файлы:
20250508_155108.jpg (скачать) [4608x3456, 3 МБ]
 
20250426_205010.jpg (скачать) [4608x3456, 3.8 МБ]
 
 
   135.0.0.0135.0.0.0

Nec

втянувшийся

s.f.> Результат немного получше.
Куда лучше, чем было. Уже не сеточка.
Излишки припоя можно убрать и обычным медным многожильным проводом. Но оплеткой намного удобнее.
   130.0.0.0130.0.0.0
Это сообщение редактировалось 08.05.2025 в 20:15

Sandro
AXT

инженер вольнодумец
★★
Sandro>> Возможно, как раз такой принтер попался?
s.f.> Может быть. Он на этой китайской бумаге в принципе печатает так себе.

Исследование печати с лупой по идее должно доказать или опровергнуть. А то очень уж подозрительная сеточка.

s.f.> Очистил от краски обезжиривателем, зачистил, помыл-посушил.
s.f.> Флюс напоминает желе, поэтому в шприц его не очень наберёшь, нанёс спичкой. Ну а дальше припой+паяльник. Результат немного получше.

Плата очень просит прогрева в печке или феном, чтобы припой выровнялся. Да и поменьше бы его, столько не нужно для лужения.

Если брать фен, то проще всего строительный с температурой не менее 400 градусов. А лучше регулируемый до 600, а то и 800. Струя очень быстро смешивается с холодным воздухом и остывает, поэтому 400 — не так уж и много. На плате как раз и будет 250..280. Феном для пайки ПВХ труб ты не добьёшься ничего, он не сможет расплавить припой.
За 2 тыр можно раздобыть вполне нормальный фен.

И да, в идеале, лудить нужно с паяльной пастой, если финансы позволяют.
   131.0131.0

Nec

втянувшийся

Sandro> За 2 тыр можно раздобыть вполне нормальный фен.
За 2 тыр, в Китае, можно заказать паяльную станцию с феном)
Была в жизни практика - паял и строителтельным феном, и с подогревом на утюге. Можно, как выход из ситуации. Но куда больше удовольствия когда инструмент заточен под нужды.
   130.0.0.0130.0.0.0

soms_f

новичок
Nec> За 2 тыр, в Китае, можно заказать паяльную станцию с феном)
В-общем, с промокашкой как-то совсем не получается. М.б. сказывается отсутсвие опыта (я не радиолюбитель, могу паять ч-н совсем простое), м.б. какое-то системное непонимание лута... Прогрева, видимо, не могу необходимого добиться. Не растекается у меня припой, просто медную плетёнку прихватывает к плате.
Если покупать станцию, ч-н подобное пойдёт?
И посоветуйте, пожалуйста, зарядник для высотомера, он там нужен от старого телефона, со светодиодом. Тоже такого у меня нет.
   136.0.0.0136.0.0.0

Nec

втянувшийся

s.f.> Прогрева, видимо, не могу необходимого добиться. Не растекается у меня припой, просто медную плетёнку прихватывает к плате.
Побольше флюса и паяльником оплетку прижать к плате, откуда нужно убрать припой. Прогрев, конечно, необходим.

s.f.> Если покупать станцию, ч-н подобное пойдёт?
К сожалению, тут не возьмусь советовать что-либо. Выглядит солидно.
Первую станцию покупал очень давно. Вторую пару лет назад, просто чтобы была. Недорогую. Очень похожую на эту.
Паяю не часто, поэтому дюжит.

s.f.> И посоветуйте, пожалуйста, зарядник для высотомера, он там нужен от старого телефона, со светодиодом. Тоже такого у меня нет.
Если литий-ионки, то там же, в Китае куча модулей подобных этим
   130.0.0.0130.0.0.0
1 6 7 8 9 10 11 12

в начало страницы | новое
 
Поиск
Настройки






Статистика
Рейтинг@Mail.ru
АвиаТОП
 
Яндекс.Метрика
website counter
 
free counters