Вместо предисловия: как всё начиналось
Знаете, бывают проекты, которые начинаются как «сделать быстренько за выходные», а превращаются в эпопею на несколько лет. Вот у меня именно так и вышло.
Всё началось с того, что решил я сделать себе каротажную станцию. Идея возникла не просто так. Когда‑то давно закончив РГГРУ и не работая по специальности но имея определенный багаж знаний и желание...... решение было принято. Сразу скажу, что более ленивого человека чем я, встречать мне не доводилось, поэтому задача была следующая: сделать универсальный зонд (все методы в одном и желательно в него запихнуть еще видеокаротаж). Спойлер‑ видеокаротаж так и не запихнул). Начнем с того, что станция нужна была для исследований скважин на воду в Московском регионе. Наиболее подходящие методы: ГК (гамма каротаж), кс (электро каротаж), резистивиметрия, термометрия, кавернометрия, решил зачем то еще запихнуть магнитометр (как оказалось отлично показывает фильтра и трубы в скважине). И всё это нужно фиксировать в реальном времени, даже не просто в реальном времени а относительно глубины спуска прибора, с записью на компьютер, с индикацией глубины, с фильтрацией шумов, чтобы потом не мучиться с обработкой. Вроде‑бы только начал писать статью и понимаю что одной статьи будет мало, надо делать несколько‑ слишком большой объем работы. Поэтому сделаем так: я напишу сейчас вкратце что было сделано, если будут комментарии и какое‑то оживление, то уже буду писать несколько статей поэтапных, так как создание данного аппарата включает в себя токарные работы, чертежные, программирование прибора, создание регистратора данных, несколько утопленных приборов, кучу ошибок и провалов. Поэтому начнем с прибора а дальше посмотрим.
Сердцем было выбрано STM32F401 BLACK_PILL. Хотя рассматривал многие другие но ..
Arduino отпала сразу. STM32F103? У него нет FPU, а мне предстояло много считать float'ы для фильтров. STM32F407? Мощный, но дорогой и греется, а главное слишком большой по размерам.
И тут я наткнулся на STM32F401. Идеальный компромисс:
84 MHz, Cortex-M4 с FPU — float'ы летают
64 КБ RAM, 256 КБ Flash — с запасом
3 таймера (как раз)
3 USART (один на отладку, два на внешние устройства)
Цена около 350 рублей в розницу
Плюс есть готовые библиотеки под Arduino IDE (через STM32 Core), что сильно упрощает разработку, а главное его габариты !!! Скважины на воду обычно бурят с обсадной трубой диаметром от 114 мм. Плюс проходное отверстие моего токарного станка 38,5 мм всего, поэтому корпус был выбран- нержавеющая труба внешним диаметром 38 мм, и внутренним 32 мм. Я тогда не знал, что это упрощение потом вылезет боком...причем несколько раз.
Разводка платы: моя боль
Когда я начал разводить плату, столкнулся с классической проблемой: пинов много, а удобных мало. STM32F401 в корпусе LQFP64 — это 64 пина, из них:
16 — питание и земля
8 — под тактовый кварц и USB
Остальные 40 — под периферию
Я потратил три вечера, раскладывая датчики по пинам. В итоге плюнул, и использовал готовую плату, черную пилюлю. С ней раскидать пины не составило особого труда.
PA4 — вход резистивиметра
PB3 — вход гамма-счётчика (прерывание по фронту)( отдельная боль)
PB10 — питание резистивиметра.
PB7, PB6, PB5, PB4 — управление мультиплексором (4 пина на выбор платы) для генератора переменного напряжения для кс.
PB8 (SCL), PB9 (SDA) — I2C шина (к ней: масса датчиков)
PA2 (TX2), PA3 (RX2) — UART2 для внешнего УЗК-канала
PA9 (TX1), PA10 (RX1) — UART1 для каверномера ( перспективно)
PA8 — OneWire для датчика температуры
PA11, PA12 — USB (отладка)
Идея была следующая:
Гамма пишется по прерываниям — тут все просто и понятно, кроме самого датчика‑ надо было его собрать ( есть крутая статья на радиокот с фэу), также на хабре есть много статей по сифэу. В итоге сделано все на сифэу. Обычное фэу требует высокого напряжения, очень хрупкое а главное занимает много места в приборе — мне не подходит.
кс‑ электрокаротаж. Ну будучи ленивым и не любящим читать я решил так, на фига я буду делать зонд с 4мя электродами, где два токовых а и б, а м и н измеряющие. Я буду измерять падение напряжения сразу на токовых электродах. Итог такой‑после нескольких попыток я измеряю и на токовых и на измерительных. Особой разницы для гидрогеологических скважин нет, ниже приведу диаграммы, но измерение на токовых дает еще большое преимущество что просматривается целостность обсадной колонны, плюс быстрая реакция на маленькие прослойки, к примеру двигается прибор среди известняка и небольшая прослойка глины (около 0.5 метра) и прибор ее видит, что очень нравится. Но тут появилось большое НО. Если я использую кс то как я могу в данном приборе использовать резистивиметр?? А получается могу.
резистивиметр. КС работает на частоте 70 гц. Но работает хитро. 700 мс он генерирует и измеряет а 300 мс он не работает и в это время работает рм (резистивиметр) получилось очень удобно, а главное привязка по глубине на одном приборе‑ шик.
термометр — тут все просто, опрашивается раз в секунду, точность до сотки градуса, помогает выделить зону активной фильтрации.
Теперь пора показать что получается на выходе (уже с регистратора данных и обработкой).
РМ сразу показал зону активной фильтрации с 80 метров (там открытый ствол) , а с 60ти метров по 80 фильтровая колонна 219 труба.
Я не мастер писать статьи, просто поделился результатом проделанной работы. Если интерес вызовет то попробую описать все более детально и подробно.
