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

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

#define DDR_REG(portx)  (*(&portx-1)) - нужна для более удобного назначения пинов

uint32_t t=0; - нужна для таймера на миллис(для обновления информации на дисплее раз в 1 сек.)

Dark-Dante
Offline
Зарегистрирован: 09.01.2018

Спасибо еще раз! Прошу прощения за захламление темы. Просьба потереть наши с mambavamba14 посты.

vasunomad
Offline
Зарегистрирован: 05.09.2019

Dark-Dante пишет:

Спасибо еще раз! Прошу прощения за захламление темы. Просьба потереть наши с mambavamba14 посты.

Так может кому пригодиться и этот вариант! Тогда в общую копилку его нужно отправить! Человек трудился - уничтожить всегда успеем.

Dark-Dante
Offline
Зарегистрирован: 09.01.2018

DEL

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

Отписал.

Dark-Dante
Offline
Зарегистрирован: 09.01.2018

Wik пишет:

Тогда и я свой корпус покажу, совсем недавно до конца допилил.

До боли знакомый корпус у Вас))

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

Исправил мелкие косяки в прошивке http://arduino.ru/forum/proekty/delaem-dozimetr?page=84#comment-526157

Wik
Offline
Зарегистрирован: 10.11.2019

Dark-Dante, узрел - у Вас такой же))) Ну а че, очень даже подходящая коробка по габаритам.

Gunter
Offline
Зарегистрирован: 26.04.2020

Здравствуйте, если вас не затруднит, можно оба варианта печатной платы на мою почту
dmitryivan66@gmail.com
Спасибо

bwn
Offline
Зарегистрирован: 25.08.2014

Gunter пишет:

Ну йож в твойу купрум. Если грибок на пальцах и дрожь не сдержать, марганцовкой его, марганцовкой. Десять дублей, Карл, десять. Неужели нулевой пост до конца не дочитать?

denis.ddv
Offline
Зарегистрирован: 18.10.2018

mambavamba14 пишет:

Исправил мелкие косяки в прошивке http://arduino.ru/forum/proekty/delaem-dozimetr?page=84#comment-526157

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

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

denis.ddv - подсветку исправил, а с фонариком вроде и так все нормально...

Можно на счёт делителя и тревоги по подробнее? Не совсем понял что именно не так пошло...

denis.ddv
Offline
Зарегистрирован: 18.10.2018

mambavamba14 пишет:

denis.ddv - подсветку исправил, а с фонариком вроде и так все нормально...

Можно на счёт делителя и тревоги по подробнее? Не совсем понял что именно не так пошло...

Спасибо попробую,при включении пишет тревога converter overload, и очень быстро меняется не успеваешь нажать вход в меню и увидеть в чём проблема,пока не снял на видео и покадрово рассмотрел.Просто может паузу больше сделать для выведения тревоги,но я не силён где,может не один я так *повеселился*.

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

denis.ddv - Добавил тайм-аут сообщений ошибок.

Также добавил описание ошибок и возможные их решения в комментарии скетча.

OfficialGalkin
OfficialGalkin аватар
Offline
Зарегистрирован: 29.06.2019

Можете подсказать с циклом? Нужно узнать сколько цифр в числе и записать в переменную. d = число. d_simvol_schet1 = счет цифр. d_simvol1 = переменная в которую надо записать. Что-то у меня не получается. Сделал вот так.

   for (int d = 35821; d >= 10; d /= 10)
   {
    if (d/10 > 0){d_simvol_schet1++;} else {d_simvol1 = d_simvol_schet1 + 1;}
   }
mambavamba14
mambavamba14 аватар
Offline
Зарегистрирован: 25.12.2019

Если я правильно понял, вам нужно узнать количество символов в числе?

Если так то вот:

uint32_t d = 35821;
uint8_t d_simvol1 = String(d).length(); //возвращает количество символов в числе "d", в данном случае вернет 5

Или так для положительных чисел:

uint32_t d = 35821;
uint8_t d_simvol1 = leight(d);  //возвращает количество символов в числе "d", в данном случае вернет 5

//отдельный блок вне loop
uint8_t leight(uint32_t d) { //d - число у которого необходимо узнать количество символов
  uint32_t l=10; //начальный пределитель
  for(uint8_t i=1; i<11; i++, l*=10){ //с каждым циклом увеличиваем количество символов и пределитель
    if(d/l <1)return i; //если после деления осталось меньше 1, возвращаем количество символов
  }
}

Или для отрицательных и положительных чисел:

int32_t d = 35821; //вернет 5
//int32_t d = -35821; //вернет 5
uint8_t d_simvol1 = leight(d); //возвращает количество символов в числе "d"

//отдельный блок вне loop
uint8_t leight(int32_t d) { //d - число у которого необходимо узнать количество знаков
  uint32_t l=10; //начальный пределитель
  if(d<0) d*=-1; //если число отрицательное, убираем знак
  for(uint8_t i=1; i<11; i++, l*=10){ //с каждым циклом увеличиваем количество знаков и пределитель
    if(d/l <1)return i; //если после деления осталось меньше 1, возвращаем количество символов
  }
}

Или для чисел с плавающей точкой:

float d = 213.74; //вернет 5
uint8_t d_simvol1 = leight(d); //возвращает количество символов в числе "d"

//отдельный блок вне loop
uint8_t leight(float d) { //d - число у которого необходимо узнать количество знаков
  uint32_t l=10; //начальный пределитель
  d*=100; //убираем запятую
  for(uint8_t i=1; i<11; i++, l*=10){ //с каждым циклом увеличиваем количество знаков и пределитель
    if(d/l <1)return i; //если после деления осталось меньше 1, возвращаем количество символов
  }
}
Syph3r
Syph3r аватар
Offline
Зарегистрирован: 02.05.2020

Здорова комрады!
Я думаю многим известен дозиметр Atom Fast с его жирным ПО для андроид Atom Swift. Теперь это ПО можно заюзать в самопальных приборах, ищу желающих попробовать мой народный модуль (на Алике ценой в 120-150р) AT-09 (HM-10), а точнее мою самодельную прошивку для него - мост "UART-приложение AtomSwift". Благодаря этому модулю обычный дозиметр на СБМ-20 можно превратить в аналог Atom Tag по-сути, а если в роли счётчика сцинтилятор+фэу - Atom Fast. Может вашему сообществу будет интересно.
http://forum.rhbz.org/topic.php?forum=80&topic=98
Прикрутить к вашему проекту Arduino я думаю у вас получится за пару вечеров. А функционал поимеете следующий: построение gps трека на карте с возможностью сохранения в облаке Atom Swift, график мощности дозы, режим поиска, режим измерения и остальные плюшки приложения Atom Swift. Думал ажиотаж на форуме РХБЗ будет больше, но похоже свою кучу времени потратил зря, дозиметры там мало кто строит самодельные в данный момент. Для тех кто в танке о жирности приложения можно посмотреть на тытрубе https://youtu.be/r0jNToY68xM и https://youtu.be/WPRXkJVXPBo, только он стоит увы многовато для обычного любителя как мы.
Прошить модуль AT-09 (HM-10) можно и с использованием обычной Arduino без специализированного отладчика CC Debugger.
Приложение от разработчиков дозиметра Atom Swift https://play.google.com/store/apps/details?id=com.youratom.scid.
Проект сырой, находится в стадии разработки, поэтому приветствуются тестеровщики и энтузианисты. Я сторонник открытых и народных проектов, поэтому когда прошивка станет относительно стабильной - опубликую исходники. На форуме РХБЗ пропадает возможность редактирования сообщений через 24 часа, поэтому все обновления будут идти сообщениями ниже. Для связи со мной и обсуждения лучше использовать тему или ЛС на РХБЗ.

OfficialGalkin
OfficialGalkin аватар
Offline
Зарегистрирован: 29.06.2019

Syph3r, можешь здесь написать про свой проект

http://microblogg.ru/forum/7

OfficialGalkin
OfficialGalkin аватар
Offline
Зарегистрирован: 29.06.2019

mambavamba14 работает, но слишком много жрет памяти. Более 1кБ.

uint32_t d = 35821;
uint8_t d_simvol1 = String(d).length(); //возвращает количество символов в числе "d", в данном случае вернет 5

 

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

OfficialGalkin - да жрет больше зато работает на 50-70мкС быстрее, ниже примеры обычных циклов.

OfficialGalkin
OfficialGalkin аватар
Offline
Зарегистрирован: 29.06.2019

Попробовал. Жрет меньше. Для меня щас это критично. Пытаюсь по максимому функционально сделать, красиво и что бы это все ще влезло в память. Скетч делаю максимально универсальным к датчикам. Я тестирую на СБМ-20, Бета-1, И на сценциляторе + фэу. Фэу конечно топ, время замера всего 1 секунда.

------------------------------------------

Скетч использует 30146 байт (98%) памяти устройства. Всего доступно 30720 байт.
Глобальные переменные используют 1426 байт (69%) динамической памяти, оставляя 622 байт для локальных переменных. Максимум: 2048 байт.
------------------------------------------
mambavamba14
mambavamba14 аватар
Offline
Зарегистрирован: 25.12.2019

OfficialGalkin - пробуйте новый загрузчизагрузчик ардуино OptiBoot v8, он занимает на 4% меньше памяти, ну или вообще без загрузчика заливать скетч. Также старайтесь меньше использовать стандартные функции ардуино, а писать сразу регистрами.

denis.ddv
Offline
Зарегистрирован: 18.10.2018

mambavamba14 пишет:

denis.ddv - Добавил тайм-аут сообщений ошибок.

Также добавил описание ошибок и возможные их решения в комментарии скетча.

Добрый день.В быстром меню всё начало работать как надо,спасибо за Вашу работу.Позвольте ещё пару нюансов озвучить.Считаю что в тексте описания необходимо добавить что в ардуину должен быть загружен альтернативный загрузчик optiBoot v8 и дать на него ссылка ну хотябы https://github.com/Optiboot/optiboot.

В меню debog screen опорное напряжение не регулируется,а накачка *PULS* не сохраняет параметр и после выключения прибора всё возвращается к прошитым установкам.Это конечно не принципиально можно в прошивке заренее поставить уровень накачки,но...

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

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

denis.ddv - Настройки и сохранение в debug screen исправил, ошибка теперь не должна при старте выскакивать, но это не точно...) Наоборот, если есть какие-то пожелания или проблемы - пишите, любой фидбэк полезен, особенно когда кода почти на 2000 строк...

denis.ddv
Offline
Зарегистрирован: 18.10.2018

mambavamba14 пишет:

denis.ddv - Настройки и сохранение в debug screen исправил, ошибка теперь не должна при старте выскакивать, но это не точно...) Наоборот, если есть какие-то пожелания или проблемы - пишите, любой фидбэк полезен, особенно когда кода почти на 2000 строк...

Очень благодарен Вам ,что так реагируете ,тратите время и тд и тп,спасибо,проверю,отпишусь,очень надеюсь довести до совершенства прошивку,но,это только с Вашей помощью,и повторюсь,я Вам очень благодарен за такую реакцию,Спасибо. Простят меня поросят за изменения,но ссылку я вставлю,чтобы понимали хлобцы об чём мы тут базарим http://arduino.ru/forum/proekty/delaem-dozimetr?page=84#comment-526157

denis.ddv
Offline
Зарегистрирован: 18.10.2018

mambavamba14 пишет:

denis.ddv - Добавил тайм-аут сообщений ошибок.

Также добавил описание ошибок и возможные их решения в комментарии скетча.

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

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

Новая версия программы 1.6.2 : http://arduino.ru/forum/proekty/delaem-dozimetr?page=84#comment-526157

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

Внимание! Прошивка встанет только на OptiBoot v8 или без загрузчика!

denis.ddv - Да и это не просто анимация, а визуализированный процесс накачки преобразователя, чем больше полоса - тем выше напряжение. Если есть ещё вопросы/пожелания/проблемы пишите, решим.

launatir
Offline
Зарегистрирован: 06.01.2020

mambavamba14 пишет:

.

Внимание! Прошивка встанет только на OptiBoot v8 или без загрузчика!

 

А можете пояснить как корректно прошить?

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

launatir - при помощи isp программатора записываете загрузчик OptiBoot v8, ссылка на него есть в скетче и в посте с описанием прошивки.

alexadresat
alexadresat аватар
Offline
Зарегистрирован: 22.02.2017
Вот нашел на просторах интернета  - 
=========================================================================
Optiboot — это загрузчик (bootloader) для Arduino и, соответственно, микроконтроллеров AVR, который занимает всего 512 Кб флеш-памяти, позволяет загружать прошивки на большей скорости и использовать watchdog в своих проектах.
 
На все эти платы установлен Optiboot совершенно одинаковым способом.
 
Для того чтобы прошить загрузчик в свои платы, я использую USBasp программатор. Он стоит очень дёшево и для работы с ним не нужно дополнительных знаний — всё работает «из коробки».
 
Для начала подготовим программную часть. Запускаете Arduino IDE и переходите в настройки (Файл — Настройки). В текстовое поле «Дополнительные ссылки для Менеджера плат» вставляете ссылку https://github.com/Optiboot/optiboot/releases/download/v8.0/package_optiboot_optiboot-additional_index.json  и жмёте ОК. Теперь IDE знает, откуда взять Optiboot.
 
На момент написания статьи, последняя версия Optiboot 8.0
 
Далее переходите в меню Инструменты — Плата и выбираете там «Менеджер плат» (должен быть самый верхний пункт). Открывается менеджер плат, в поиске вбиваете optiboot и устанавливаете его. После этого в списке появятся дополнительные поддерживаемые платы.
 
В этом списке нужно выбрать Optiboot 32-pin cpus поскольку в Arduino стоит микроконтроллер Atmega328P и у него 32 пинов. Если в вашей Arduino используется другой микроконтроллер, то выберете соответствующий пункт. Далее нужно выбрать соответствующие параметры процессора, частоты и программатор USBasp. С этим разобрались и переходим к подключению Arduino к программатору.
 
Подключаем программатор с Arduino к компьютеру и в Arduino IDE в пункте меню Инструменты выбираем «Записать загрузчик». После этого в вашу плату будет установлен загрузчик Optiboot.
 
Отключаем программатор, подключаем Arduino как обычно по USB, в меню Инструменты — программатор меняем USBasp на тот, что был (AVRISP mkll) и пробуем записать простой Blink, чтобы убедиться, что всё работает. Вот и всё.
tekagi
tekagi аватар
Offline
Зарегистрирован: 07.10.2016

Сколько ни танцевал с шаманским бубном вокруг связки АрдуиноИДЕ + USBasp - оно у меня так и не завелось (прошивка usbasp оригинальная). Хотя обычные софтины - прошивальщики вроде хазамы и progisp работают без проблем. Заливал так оптибут в переделанную автосигналку (сторожевой собакен был нужен).

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

tekagi - дело в драйвере под USBasp, тоже сначала не мог понять что не так... Нужна последняя версия, и всё будет прекрасно работать) Если интересно могу поискать в загрузках и скинуть.

 

 

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

Драйвер тоже стоит c https://www.fischl.de/usbasp/ , остальные прошивальщики железку видят и корректно с ней работают. Сама ИДЕ ругается на программатор, что-то там с распознаванием намудрили. Лог уже не помню. Да и зачем этот многоэтажный изврат, когда можно взять требуемый хекс оптибута и в несколько кликов залить с помощью progisp?
Кстати, "последняя версия" датирована аж 2011 годом.)

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

Кто знает) Но и в ИДЕ загрузчик записывается буквально в два клика)

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

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

Конечно, каждый выбирает себе способ по душе, но новичкам я бы такое советовать не стал. Гайдов по заливке обычным софтом и бюджетным китайским программатором (а то и второй ардуиной с прошивкой arduinoisp) в сети полно.

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

Как то мрачновато не много описано)) А в общем то да, у каждого свой путь) 

denis.ddv
Offline
Зарегистрирован: 18.10.2018

mambavamba14 пишет:

Новая версия программы 1.6.2 : http://arduino.ru/forum/proekty/delaem-dozimetr?page=84#comment-526157

Добрый день.Есть ещё такой момент-в пункте *опорное напряжение* параметр сам меняется,т.к. изменяется напряжение HV и показания *напряжение аккума*,но отображается всегда *1*,т.е. в строке *опорное* -  1, и не изменяется.

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

denis.ddv - Исправил!

Вопрос к пользователям: Стоит ли делать меню(из иконок фон/доза/поиск/настройки/статистика/отладка) с анимированным перемещением иконок или оставить все как есть??

OfficialGalkin
OfficialGalkin аватар
Offline
Зарегистрирован: 29.06.2019

Делай как у меня. Отладку отдельно где нить спрячь. Отладка на то и отладка что раз залез и забыл. 

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

Так не интересно, хочется чего-то необычного сделать))

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

Вот что-то типо этого)

denis.ddv
Offline
Зарегистрирован: 18.10.2018

mambavamba14 пишет:

Так не интересно, хочется чего-то необычного сделать))

Добрый вечер.В последней версии всё работает ОК.Может перед переходом к украшательствам реализовать то что было задумано по схеме,включение/отключение LED2 и вибро сигнала,не настаиваю,личное мнение и пожелание.Спасибо.

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

denis.ddv - Как-то все время думал что оно особо и не нужно...в общем буду иметь в виду)

Samodelkin_YouTube
Offline
Зарегистрирован: 16.12.2018
 
Ребята помогите, дозиметр ловит наводки, плата заводская, отмыта от канифоли. Корпус из АБС пластика, беру корпус в руки и дозиметр начинает зашкаливать. Если касаюсь пинцетом 2 пина, ардуино то тоже начинает зашкаливать. Без корпуса работает нормально. Аналогичные платы с аналогичным корпусом работают хорошо. Незнаю в чем проблема,  уже вторую неделю голову ломаю.
Blackflash20
Offline
Зарегистрирован: 06.05.2020

Может кто скинуть ссылку на разведенную плату  под дип элементы ? Желательно в спринт лоют 6 или ы гербере 

Samodelkin_YouTube
Offline
Зарегистрирован: 16.12.2018

На первой странице есть все печатные платы, там кажется есть под DIP

Blackflash20
Offline
Зарегистрирован: 06.05.2020

Не сможете скинуть гербер файлы для заказа плат у китайцев и схему по сборке не совсем понял какие смд транзисторы установлены у вас и прошивку 

Ashe_zu
Ashe_zu аватар
Offline
Зарегистрирован: 12.02.2020

Здравствуйте, у меня появилась проблема с наводками, использовал разные  трансформаторы(перематывал много раз от мобильной зарядки и несколько тороидов, от старого фотоаппарата без перемотки) все выходили на режим 400 в, но проблема не исчезла - примерно через минуту после включения на прибор выдавал 20-25 мкР потом возвращалось к 10-14 мкР и через минуту опять на 20-25 мкР. Вскоре решил немного доработать схему и переделать плату, не могли бы вы просмотреть, есть ли явные проблемы и ошибки, правильно ли разведена земля и тд.?

вот печатка и схема

https://www.dropbox.com/s/8kdqtlfenwbuqgx/ArDoz%20ATmega%20TQPF_.lay6?dl=0

Старая версия:

https://www.dropbox.com/s/ox61swrch6kphxu/ARDOS%20str.lay6?dl=0

Dark-Dante
Offline
Зарегистрирован: 09.01.2018

Это не наводки а ЭРФ.
Наводки выше, где зашкал. В сторону h21e транзистора и ёмкость конденсатора смотрите.

alexadresat
alexadresat аватар
Offline
Зарегистрирован: 22.02.2017

mambavamba14 - Погонял Вашу прошивку ArDos_with_RADON_v1.6.2, все очень не плохо. При загрузке версию показывает 1.6.1.  Еще бы не помешало вибрик в работу включить.