ArDos / дозиметр, часть №1

tekagi
tekagi аватар
Offline
Зарегистрирован: 07.10.2016

Привет. Обновление - эт всегда хорошо)

Таки да, сейчас выдаёт -пусто-. Но после запуска с полным сбросом в ошибках выдавал "Ошибка # 255", в тревоге "ФОН        "  в каждой строчке. Мож проверку на все пустые ячейки еепром диапазона журнала и лога стоит добавить? Или при полном сбросе инициализировать их нулями?

mambavamba14
mambavamba14 аватар
Offline
Зарегистрирован: 25.12.2019

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

Так а как понять что они пустые? Они же мусором забиты... Как вариант тоже контрольную сумму добавить.

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

tekagi
tekagi аватар
Offline
Зарегистрирован: 07.10.2016

ИМХО при полном сбросе (по "Ок" и "^" при старте) лучше сносить и форматировать под используемые данные всё, что может вылезти багами в будущем.

C нуля вряд ли стоит, поди не единственный проект, в нынешнем виде уже вполне достойный девайс

mambavamba14
mambavamba14 аватар
Offline
Зарегистрирован: 25.12.2019

Хмм... Ну как вариант да, можно и так) 

Или может вообще отказаться от частичного сброса и сделать один общий сброс на кнопку "ОК"?

tekagi
tekagi аватар
Offline
Зарегистрирован: 07.10.2016

Можно и один общий, в частичном особого смысла не вижу. Сносим всё, забиваем нулевыми данными в используемом формате (ну и дефолтными коэффициентами).

Частичный может автоматический, если при загрузке камень видит, что обновилась прошивка. Так можно не трогать данные преобразователя и АЦП. Но тогда желательно прописать это где-нибудь в мануале, чтобы сюрпризом не было.

Мануал просится, как по настройке, так и по эксплуатации. Но там работы ненамного меньше, чем по самой прошивке...

mambavamba14
mambavamba14 аватар
Offline
Зарегистрирован: 25.12.2019

Ок, сделаю, но это уже завтра))

А как вот определить что прошивка перезаливалась? Косвенных признаков то нету после заливки...

Мануал да, много кто просит... Я уже начинал делать, но так до сих пор никак руки не доходят доделать, работы с ним и в правду много...

tekagi
tekagi аватар
Offline
Зарегистрирован: 07.10.2016

Не к спеху. Хотя изменения действительно легче вносятся пока помнишь, что и как писал)

Версию прошивки в еепром писать. Запустился, сверился с еепром, если старая прописана - потёр и заполнил дефолтными данными всё, до чего дотянулись лапки, оставив только ацп, делитель, калибровку опорного. Записал текущую версию. Может где-нибудь в дефайне сделать этот функционал отключаемым, но по дефолту включённым. Кому надо оставить данные - закомментирует, а у большинства уменьшит количество вопросов о непредсказуемом поведении.

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

mambavamba14
mambavamba14 аватар
Offline
Зарегистрирован: 25.12.2019

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

Я думаю что при повреждении восстанавливать нужно любые настройки. Оставить просто автоматом или добавить диалог по типу "Настройки повреждены, восстановить?"?

Ок, тогда поищу архив)) Тут то на вордоский документ время нет, боюсь что с вики это ещё сильнее затянется...

tekagi
tekagi аватар
Offline
Зарегистрирован: 07.10.2016

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

Износ памяти не увеличится? Или и контрольку писать в несколько разных по очереди?

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

А если что-то в новой прошивке в обработке данных поменялось, как определить, что нужен сброс? Контролька-то целая.

mambavamba14
mambavamba14 аватар
Offline
Зарегистрирован: 25.12.2019

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

Та нет, не должен, ячейки crc перезаписываются только один раз, при сверке когда она не совпадает.

Хорошо, диалог тоже добавлю.

В том и дело что никак(по крайней мере я не находил такого варианта), благо изменение алгоритмов не сильно влияют на настройки.

mambavamba14
mambavamba14 аватар
Offline
Зарегистрирован: 25.12.2019

#ArDos_with_RADON_3.6.3 - Добавлены диалоги выбора сброса настроек, добавлен диалог выбора загрузки с поврежденными данными, добавлена проверка структур на изменение, исправление положения ячеек контрольных сумм.

 

Внимание! При первом запуске после прошивки обязательно подтвердить сброс всех настроек!

sasa1958
Offline
Зарегистрирован: 21.07.2020

Приветствую Всех испытал предыдущую прошивку ,вроде через терминал на андроиде выдаёт рентгены,но приходится язык менять на аглицкий,а то крякозябры чего-то получаю,использую  HC-05,есть HC-06 ,но китаец прислал с кривой прошивкой  от 05 и загрузчик от новой версии и перешить нет возможности,нечем понизить загрузчик,использую СБМ-21 ,330 СЕКУНД.Ардос принимает профессиональный вид и если к нему прицепить дисплей получше от 1202,то вообще класс или расширение сделать под led типа max7219 ,HX16XXX или TM1637 то это будет супер приборчик,а вообще ПРИЯТНО ЧТО mambavamba14  сделал очень хороший приборчик

mambavamba14
mambavamba14 аватар
Offline
Зарегистрирован: 25.12.2019

sasa1958 - Добрый вечер! Все верно, данные в порт передаются в кодировке UTF-8, соответственно в терминале нужна выбрать её.

По поводу дисплеев, другие графические дисплеи можно прикрутить, но их разрешение должно быть не менее 84x48 точек. Так-же переделывать весь интерфейс под другое разрешение не имеет смысла, поэтому есть два варианта:
1-й использовать из всего разрешения нового дисплея только область 84x48.
2-й если дисплей будет кратен исходному разрешению в два и более раз, то можно нативно увеличить интерфейс в n раз.
Использовать сегментные дисплеи не имеет смысла, уложить весь интерфейс со всеми настройками и режимами будет крайне сложно и что самое главное - крайне не удобно пользователю.

sasa1958
Offline
Зарегистрирован: 21.07.2020

Добрый вечер ,уважаемый mambavamba14 ,понял ВАС на семисегментных индикаторах можно делать только показометры,а чтобы удобную менюшку сделать на на них это очень трудно и много памяти занимает,я помню первые аппараты АОН на LED и очень неудобные для пользователя  ,добавлять лишние кнопки надо

mambavamba14
mambavamba14 аватар
Offline
Зарегистрирован: 25.12.2019

#ArDos_with_RADON_3.7.0 - Оптимизация работы с оперативной памятью, добавлен буфер дисплея, исправлено мерцание дисплея.

Внимание! Версия не протестирована и возможно появление новых багов!

as9
Offline
Зарегистрирован: 14.12.2021

Всем привет, собрался собрать себе, многое пропустил с тех пор как наткнулся на этот форум. У меня возник такой вопрос, может поможет кто. Хочу сделать аналогичный прибор, но скорость счета повысить путем установки 2х или даже 4х трубок.

Как стоит менять схему, и надо буден менять ли в прошивки что-то?

Спасибо

Osty_Mate
Offline
Зарегистрирован: 17.04.2018

Пишу отчёт по тесту дозиметра с прошивкой  ArDOs v1.05. Использовал источник Sr 90, бета и гамма активен. Источник можно считать точечным. Результаты получились следующими режим замера 20% точность:  1) r = 25 см до источника 92 мкР/ч  2) r=16 cм до источника 187 мкР/ч 3) r = 5 cм до источника 920 мкР/ч 4) r= 2см до источника 1,6 мР/ч 6) r = 60 см показания стремятся к фону 20 мкР/ч. Можно оценить, с помощью формул экспозиционной дозы показания счётчика X = 1/p dq/dV, где dq - заряд получившийся в результате ионизации, p - плотность воздуха const, dV - объём элемента пространства  dV= r^2dr dW, зная сферический угол dW можем найти зависимость от расстояния до источника и найти приближённые значения для сравнения показаний. 

sasa1958
Offline
Зарегистрирован: 21.07.2020

Всех приветствую as9 скорость и достоверность показаний можно увеличить только трубой СБМ-19 у неё сработка 9 секунд и площадь огромная,либо делайте на ФЭУ у той точно чувствительность самой дохлой в 250 раз выше чем СБМ-20.В рекомендациях чувствительность СБМ20 приравнивается  к 1 единице

tekagi
tekagi аватар
Offline
Зарегистрирован: 07.10.2016

as9, двух точно можно, с четырьмя нужно экспериментировать (да и вряд ли имеет смысл, тогда уж действительно лучше СИ22Г поставить). Для каждого счётчика нужно поставить свой анодный резистор, катоды вместе. В прошивке можно ничего не трогать, в меню отладки для двух сбм-20 изменить время счёта с 36 на 18 секунд.

Osty_mate, не обновляйте страницу после отправки комментария.

sunjob
sunjob аватар
Offline
Зарегистрирован: 18.07.2013

to mambavamba14

в трех словах поясните необходимость OptiBoot? что такое мандарино-загрузчик я представляю, хотелось бы уточнить "нюансы" необходимости именно оптибута (интересует на предмет переноса на avr-gcc)

спасибо

 

 

tekagi
tekagi аватар
Offline
Зарегистрирован: 07.10.2016

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

mambavamba14
mambavamba14 аватар
Offline
Зарегистрирован: 25.12.2019

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

Не совсем понял значение фразы "интересует на предмет переноса на avr-gcc". Как связан загрузчик и компилятор??

sunjob
sunjob аватар
Offline
Зарегистрирован: 18.07.2013

вот я и интересовался, как "вся каша" завязана на загрузчик, может он несет еще что-то "сакральное", кроме основных функций :о)

mambavamba14
mambavamba14 аватар
Offline
Зарегистрирован: 25.12.2019

sunjob - ничего такого сакрального, банальная экономия флеш памяти)) Старый загрузчик занимает область 2048КБ, а оптибут 512КБ.

tekagi
tekagi аватар
Offline
Зарегистрирован: 07.10.2016

Может нести. Собаку, например, которую штатный загрузчик ардуины на дух не переносит. А функционал нужный.

sunjob
sunjob аватар
Offline
Зарегистрирован: 18.07.2013

т.е. это прерывание не будет работать с обычным загрузчиком?

1ISR(WDT_vect) //прерывание по переполнению wdt - 17.5мс

давненько уже читал по этому поводу... не помню тонкостей.

мы же "сами" в коде настраиваем работу прерывания, как загрузчик может помешать работе WDT?

 

sunjob
sunjob аватар
Offline
Зарегистрирован: 18.07.2013

может уже пора завести 2ю часть?! а то уже невозможно писать в тему...

mambavamba14
mambavamba14 аватар
Offline
Зарегистрирован: 25.12.2019

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

sunjob
sunjob аватар
Offline
Зарегистрирован: 18.07.2013

предлагаю перейти во вторую часть темы :о)

http://arduino.ru/forum/proekty/ardos-dozimetr-prodolzhenie-temy-chast-%E2%84%962

 

до мадераторов достучатсья не смог, поэтому берем самоуправление в свои руки :о)

надеюсь, что "новая часть" избавит нас от глюков с форумом?! если это не так, то можно ни куда не ходить :о)

Araris
Offline
Зарегистрирован: 09.11.2012

ОК, первую часть закрываю.