Off-line
Сообщений всего: 96
Дата рег-ции: Авг. 2018 Откуда: Россия, Кавказ
Репутация: 26
Описание проекта
Приветствую всех участников нашего форума!
2 месяца назад в голову пришла идея купить за 1.5$ модуль BT4.0 AT-09 (с SOC CC2541 - на аналогичном камне сделан BT кусок AtomFast/Swift) и запилить из него мост UART - приложение AtomSwift, т.е. купив отладчик CC Debugger разработать собственную прошивку для него, описав BT профиль Atom.
В интернете гуляет инфа как при помощи обычной Arduino выполнить прошивку данного модуля без отладчика CC Debugger, поэтому данный проект может стать вполне народным, т.к. 1.5$ за такой модуль может себе позволить я думаю любой участник форума строящий самодельный дозиметр, или решивший модифицировать ДП-5 данным модулем + Arduino или другой МК, или прикрутив к самодельному спектрометру, сделав из него шустрый дозиметр с возможностью построения трека на карте в реальном времени при обследовании местности.
Для быстрой отладки был на скорою руку набросан софт под винду для генерирования рандомных, но приближенных к реальности данных и отправки их через преобразователь USB-UART в данный BT модуль.
На данный момент описана основная часть профиля Atom для вывода в приложение дозы, мощности дозы и прочих параметров описанных в основной измерительной характеристике, срисована схема модуля, что бы понимать что куда подключать, скриншоты реальной работы модуля см. ниже. ВПО модуля работает в прозрачном режиме - т.е. что пользователь отправил по UART , модуль эти данные передаст в нужном формате по BT в приложение.
Ну и если забыли приложение AtomSwift позволяет выводить трек на карты с привязкой по GPS/ГЛОНАСС.
Модуль на данный момент работает только в активном режиме (без сна) и жрет порядка 8мА.
А теперь о грустном, из-за долбанного вируса, изменились условия основной работы, соответственно отсутствует толком время и силы на продолжение данного проекта, т.к. уже в течении 2х недель до него не доходили руки и чувствую может уже толком не дойти, т.к. компанию из-за гребаных карантинов и прочего дерьма нужно вытаскивать из жопы. В связи с этим решил о проекте объявить сегодня, а не после его полноценного альфа тестирования.
Соответственно, если есть на форуме заинтересованные лица владеющие на нормальном уровне си, и готовые потратить 10-12$ на приобретение в Китае отладчика CC Debugger и BT модуля, могу предоставить исходники для дальнейшей совместной работы и рассказать что да как.
Условий несколько:
1. проект народный, поэтому все в дальнейшем разработанные исходники в открытый доступ - сюда (через галерею форума в архиве) и на гит;
2. запрет использования в целях наживы (коммерческие проекты, продажа прошитых модулей, продажа исходников/бинарников прошивок) - в случае появления таких хитрожопых - админом будут выпиливаться данные личности и их объявления с форума.
По-сути осталось допилить правильный уход в сон, с выключением uart и правильное пробуждение с включением uart.
В общем если есть заинтересованные с нормальным уровнем владения си - велком как говорится, если нет буду потихоньку пилить по мере возможности.
ЗЫ: для тех кто посчитает этот проект нелегальным - Madmax дал добро на сие использование его приложения.
Добавлено 21:00 29.04.20:
Вероятно на днях выгружу текущий бинарник для прошивки модуля и исходники/бинарник ПО под винду, что бы заинтересованные могли изучить протокол и способ обмена для прикручивания модуля к своему дозиметру на ардуине или другом МК. Ну и инфу куда что подпаивать для прошивки.
Убедительная просьба для всех. Загружайте пожалуйста фотографии в нашу фотогалерею по адресу http://rhbz.pw У кого нет учетной записи - отпишитесь в этой теме ЗДЕСЬ либо в ЛС к BON'у
Matrix
Отправлено: 29 Апреля, 2020 - 19:37:57
Super Member
Off-line
Сообщений всего: 538
Дата рег-ции: Апр. 2016 Откуда: Israel
Репутация: 25
"BT профиль Atom" это изначально открытая информация (открытый протокол)?
Syph3r
Отправлено: 29 Апреля, 2020 - 19:40:46
Частый гость
Off-line
Сообщений всего: 96
Дата рег-ции: Авг. 2018 Откуда: Россия, Кавказ
Репутация: 26
Matrix пишет:
"BT профиль Atom" это изначально открытая информация (открытый протокол)?
Да, открытый, спецификация существует, и для не коммерческого использования Максим мне его предоставил, какая то информация была получена/подтверждена снифером. Единственное в этой спецификации есть опечатки, и она предназначена для разработчиков приложений для телефонов/компьютеров, если хорошо по форуму поискать - можно её найти, Максим уже ранее делился с народом несколько лет назад, но видимо не осилили.
Off-line
Сообщений всего: 96
Дата рег-ции: Авг. 2018 Откуда: Россия, Кавказ
Репутация: 26
Порядок прошивки модуля AT-09 с использованием Arduino
(я использовал Arduino UNO взятую у товарища, что бы проверить способ прошивки без специализированного отладчика)
1. Скачать из любого источника и установить Arduino IDE (я использовал портативную 1.8.11, скачанную https://amperka.ru/page/arduino-ide) 2. Скачать архив с моей прошивкой и Arduino CCLoader см. ниже. 3. Залить в Arduino скетч CCLoader/CCLoader.ino 4. Соединить Arduino c модулем следующим образом:
- 4 порт Arduino к RESET_N модуля;
- 5 порт Arduino к P2.2 (DebugData) модуля;
- 6 порт Arduino к P2.1 (DebugClock) модуля;
- подключить землю GND и питание +3.3V в случае если модуль без переходной платы, или +5V если модуль с переходной печатной платой. 5. Открыть окно коммандной строки в окне с CCLoader.exe (правой кнопкой мыши с зажатым шифтом) и запустить прошивку следующей командой:
CCLoader.exe 9 ProtonBridge.bin 0
(9 это СОМ9, 0 это устройство по умолчанию - UNO)
Если висит на надписи Waiting for respond from Arduino - проверить правильность подключения, нажать ctrl+c и еще раз дать команду, софт бывает тупит даже при правильном подключении. 6. Модуль успешно прошит.
В случае если я когда то в запарке положу вместо ProtonBridge.bin файл с расширением hex - ProtonBridge.hex, то тогда качаем SRecord отсюда "http://srecord.sourceforge.net/download.html" и командой "srec_cat ProtonBridge.hex -Intel -o ProtonBridge.bin -Binary" выполняем его конвертирование из hex в bin. И добить "FF" конец файла до адреса "3FFFF" (примерно 138126 пустых байт, до итогового размера в 256кБ).
Напомню, что текущая версия без ухода в сон, соответственно жрет как свинья помои - порядка 8мА!
В приложении под винду можно легко понять что слать модулю, на какой скорости, и в каком формате (старался оставлять подробные комментарии), писал код по быстрому, без вылизывания и прочей красоты. Как будет время накидаю описание протокола.
Arduino CCLoader использован от RedBearLab, там можно найти сборку под Linux - https://github.com/RedBearLab/CCLoader.
USB-UART адаптер для проверки функционала модуля нужно использовать с уровнем единицы не более 3.6В! Либо делать схему согласования уровней, схем в сети куча. Я использовал свой универсальный сдвоенный преобразователь на FT2232.
Off-line
Сообщений всего: 389
Дата рег-ции: Нояб. 2013 Откуда: Крым
Репутация: 2
А чем оно лучше чем приложение atom simple? Оно кстати и по поводу хорошо работает
Syph3r
Отправлено: 30 Апреля, 2020 - 18:21:04
Частый гость
Off-line
Сообщений всего: 96
Дата рег-ции: Авг. 2018 Откуда: Россия, Кавказ
Репутация: 26
dozik пишет:
А чем оно лучше чем приложение atom simple? Оно кстати и по поводу хорошо работает
Да впринципе достоинств несколько:
1. не ограничены в типах счётчиков (в приложении AtomSimple максимально что можно выставить в скрытых настройках это 99 имп./мкР, а тут вплоть до размерности float, согласно описания профиля, можно свободно встроить в СРП или применить слюдяной датчик);
2. отсутствует провод;
3. есть возможность построения трека на карте в реальном времени;
4. ну и остальной функционал приложения AtomSwift (3 порога вместо одного как в Simple, наличие архива и прочие плюшки которых я уже не помню).
Просто несколько лет назад после покупки AtomFast'a знакомые строящие самодельные дозиметры с восхищением смотрели на софт для ведра, но тогда что то и мысли не пришло поискать дешёвый BT модуль что бы запилить такую вещь. Я думаю найдутся рукастые кому пригодится, и мои потраченные десятки часов не будут напрасны. Как будет возможность допилю потребление, а может найдется энтузиаст который подхватит, ибо тут деятельности куча - можно ведь и полностью на модуль повесить и счёт импульсов и генерирование высокого напряжения для питания трубки, ибо на борту полноценный МК с прерываниями и АЦП.
Off-line
Сообщений всего: 96
Дата рег-ции: Авг. 2018 Откуда: Россия, Кавказ
Репутация: 26
Обновление от 01.05.20
Чуть выкроил времени, для разъяснения принципа обмена с модулем.
Добавил возможность полной записи\чтения всех характеристик описанных в AtomService BLE (до этого была возможность только записи по UART в "Основную измерительную характеристику", "Дополнительную измерительную характеристику", и одного параметра в "Основную калибровочную характеристику" ).
Напоминаю что модуль работает в прозрачном режиме т.е. он только принимает и передает данные между вашим устройством и приложением AtomSwift, данные не обрабатываются (принял в двоичном виде, отправил в двоичном виде), хранятся в ОЗУ модуля без привязки к какому либо типу данных.
Кусок с уходом в сон ещё не реализован, поэтому жор тот же - около 8мА.
Для записи данных в переменные модуля требуется:
1. отправить команду записи "0xA0";
2. отправить адрес переменной "0x02" - к примеру обновим мощность дозы;
3. отправляем данные согласно описания AtomService BLE размером 4 байта: "66E6F642" - к примеру мощность дозы равную "123,45 мкЗв/ч" (123,45(float) это в hex 0x42f6e666, ну и отправляем в порт начиная с младших байт 66 потом E6 потом F6 потом 42).
Итого требуется швырнуть в порт "A00266E6F642", думаю понятно.
Для чтения данных из переменных модуля требуется:
1. отправить команду чтения "0xB0";
2. отправить адрес переменной "0x02" - к примеру получим мощность дозы;
3. принять данные согласно описания AtomService BLE размером 4 байта: "66E6F642", соответственно положить данные в свою переменную нужно в обратном порядке, что бы получилось число 0x42f6e666, которое во float имеет значение 123,45.
Для новичков в программировании - отправка/прием должен осуществляться не в ASCII, а в двоичном формате(команды отправляются не текстом как в терминалах).
Описание адресов:
//Основная измерительная характеристика
0x00: //Флаги
0x01: //Накопленная доза в mSv (миллизиверты)
0x02: //Мощность дозы в µSv/h (микрозивертыв час)
0x03: //Число импульсов за последние 2 секунды
0x04: //Процент заряда батареи (0..100), %
0x05: //Температура (128..127), ºC
//Дополнительная измерительная характеристика (можно в нее не писать данные, приложение AtomSwift их не обрабатывает как я понял)
0x10: //Общее число импульсов
0x11: //Число импульсов коррекции на мёртвое время датчика
0x12: //Общее число импульсов за N секунд
0x13: //Время измерения дозы в секундах
//Характеристика настроек индикации превышения 1 порога
0x20: //Порог включения сигнала о превышении накопленной дозы
0x21: //Порог срабатывания сигнала о превышении мощности дозы
0x22: //Время детектирования превышения мощности дозы
0x23: //Байт управления виброзвуковой сигнализацией
//Характеристика настроек индикации превышения 2 порога
0x30: //Порог включения сигнала о превышении накопленной дозы
0x31: //Порог срабатывания сигнала о превышении мощности дозы
0x32: //Время детектирования превышения мощности дозы
0x33: //Байт управления виброзвуковой сигнализацией
//Характеристика настроек индикации превышения 3 порога
0x40: //Порог включения сигнала о превышении накопленной дозы
0x41: //Порог срабатывания сигнала о превышении мощности дозы
0x42: //Время детектирования превышения мощности дозы
0x43: //Байт управления виброзвуковой сигнализацией
//Характеристика управления устройством
0x50: //Команда, на чтение всегда 0x00
0x51: //Параметр #1
0x52: //Параметр #2
0x53: //Параметр #3
//Основная калибровочная характеристика
0x60: //Чувствительность датчика
0x61: //Фоновый счёт датчика
0x62: //Мертвое время датчика
0x63: //Время измерения мощности дозы
0x64: //Пароль для записи калибровки в RAM
//Характеристика служебных данных
0x70: //Команда, на чтение
0x71: //Параметры #1-#8
//Характеристика текстового описания
0x80: //Произвольная строка
Размерность и тип данных подробно описан в AtomService BLE. Выложена с согласия Максима.
В самом приложении AtomSwift принято за 1 мкЗв/ч = 100 мкР/ч, а не так как оговорено в AtomService BLE, соответственно в своем устройстве выполняйте аналогичный перевод 1:100.
Режим измерения
Есть небольшая тонкость в работе режима изменения. Приложение Atom Swift выполняет расчет в этом режиме исходя из накопленной дозы, соответственно ее нужно точно считать и слать модулю аналогично всем данным раз в секунду (чаще смысла нет, текущая версия прошивки, раз в секунду эти данные через уведомление отсылает приложению), более подробно как это работает - можно посмотреть запустив режим симуляции в тестовом приложении для винды. Если переменную накопленной дозы не обновлять, у вас приложение в режиме измерения будет вечно крутить мнемонику загрузки.
Выключение
В данный момент выключить/включить его можно только отключением/включением питания. Сон и вход EN ещё не реализован.
Off-line
Сообщений всего: 96
Дата рег-ции: Авг. 2018 Откуда: Россия, Кавказ
Репутация: 26
Содержимого переменных\регистров доступных через BLE оригинального AtomFast
В кумыс обратились несколько человек по поводу содержимого переменных\регистров доступных через BLE оригинального AtomFast. Дабы повторно не отвечать, выкладываю данные снятые BLE монитором с моего купленного у Максима дозиметра AtomFast 4735 (о чем свидетельствует чувствительность 1700 имп/мкР в основной калибровочной характеристике).
0080D444(hex little-endian) -> 44D48000(hex big-endian) -> 1700(float). Для перевода можно заюзать любой конвертер - к примеру https://www.scadacore.com/tools/programming-calculators/online-hex-converter/.
Все читаемо и легко расшифровывается с использованием описания профиля BLE выложенного ранее, в общем курите кому нужно.
Off-line
Сообщений всего: 95
Дата рег-ции: Сент. 2020 Откуда: Україна Київ
Репутация: 2
Спасибо автору за замечательную статью. Без проблем прошил блютуз модуль через мегу2560. Модуль блютуз и Ардуино стоят около 8 $ но очень сильно розширяют возможности обычно дозиметра особенно если ето дозиметр серии дп.
Вот скэч для отправки данных через ком порт Ардуино (TX ардуино в RX блютуз модуля)
CODE:
unsigned long cps2; // количество імпульсів за 2 секунди з щотчика гейгера
unsigned long RAD; // уровень радиації
unsigned long DOZA; // получена доза в микроренгенах
unsigned long toch_milis2;
void setup() {
Serial.begin(115200);
}
void loop() {
if (millis() - toch_milis2 >= 1000) {
toch_milis2 = millis();
RAD = 14; // уровень радиації в микроренгенах
BluetoothRAD (); // отравка уровня радиації на телефон
DOZA = 10; // получена доза радіації в микроренгенах
BluetoothDoza (); // отравка уровня дози радіації на телефон
cps2 = 10; // количество імпульсів за 2 секунди з щотчика гейгера ( нужен для режима измерения )
BluetoothCPS (); // отравка количества імпульсів за 2 секунди з щотчика гейгера на телефон
}
}
void BluetoothRAD (){ // уровень радиації
double value;
float value1 = RAD * 0.01;
value = value1;
byte * b = (byte *) & value;
Serial.write(0xA0);
Serial.write(0x02);
Serial.write(b,4);
}
void BluetoothDoza (){ // получено доза радиації
double value3 ;
float value4 = DOZA * 0.00001;
value3 = value4;
byte * c = (byte *) & value3;
Serial.write(0xA0);
Serial.write(0x01);
Serial.write(c,4);
}
void BluetoothCPS (){ // количество імпульсов з щотчика гейгера за 2 сек
double value5;
float value6 = cps2 * 0.01 ;
value5 = value6;
byte * e = (byte *) & value5;
Serial.write(0xA0);
Serial.write(0x03);
Serial.write(e,4);
}
elexx
Отправлено: 07 Марта, 2021 - 19:04:53
Бывалый
Off-line
Сообщений всего: 16
Дата рег-ции: Июль 2018 Откуда: Europe/EastGermany/Saxony/Werdau
Репутация: 4
Hello Syph3r and Nikita71,
I've tried to flash the protonbridge.bin in a CC2541-module and i'm able to send a dose rate from the Arduino to the "Atom Fast" App.
Thank you for your great work!
But now I want to try this:
Syph3r пишет:
Для чтения данных из переменных модуля требуется:
1. отправить команду чтения "0xB0";
2. отправить адрес переменной "0x02" - к примеру получим мощность дозы;
In the setting of the App is a Switch for the Sound: "no sound", "Clicks" oder "beeps" and I think accordingly to the ATOMSERVICE BLE-Document, this is written to the Parameter #1. I've tried to READ variables from the protonbridge like described, but the CC2541 NEVER sends any data via UART to the Arduino (checked with an oscilloscope on the TxD-pin of the AT-09 module).
I'm sending 0xB0, 0x51 but I get no answer:
CODE:
unsigned long RAD;
unsigned int PARAM;
void setup() {
Serial.begin(115200);
}
void loop() {
RAD = 67;
BluetoothRAD (); // Sende den Strahlungspegel an das Telefon
BluetoothRxParam ();
delay(1000);
}
Off-line
Сообщений всего: 96
Дата рег-ции: Авг. 2018 Откуда: Россия, Кавказ
Репутация: 26
elexx hey! sorry, this piece of code was not tested due to lack of time for the project. I see you have an interest in this project. Right?
Syph3r
Отправлено: 08 Марта, 2021 - 11:19:17
Частый гость
Off-line
Сообщений всего: 96
Дата рег-ции: Авг. 2018 Откуда: Россия, Кавказ
Репутация: 26
В общем кому интересно выкладываю проект, ввиду отсутствия на него времени из-за других более приоритетных вещей, да и очередного дерьма в жизни. Поэтому пока не выпилил/ся - забирайте.
Может найдется человек кто добъет энергосбережение и выложит свой вариант здесь.
Ну и напоминаю, ввиду собственности протокола Atom BLE КБ Радар - использовать в коммерческих целях запрещается. Хотя как я понимаю многим на это похер.
Off-line
Сообщений всего: 16
Дата рег-ции: Июль 2018 Откуда: Europe/EastGermany/Saxony/Werdau
Репутация: 4
Syph3r пишет:
I see you have an interest in this project. Right?
Yeah, thats right - but I'm not an expert in programming (only a few PIC12Fxxx in the past). I've downloaded, installed and licenced^^ the 8051-Workbench and can now open the Workspace with the sourcefiles. I can compile the sources too and will try to find out why there is no communication.
Off-line
Сообщений всего: 16
Дата рег-ции: Июль 2018 Откуда: Europe/EastGermany/Saxony/Werdau
Репутация: 4
One week later I am 2 steps further:
The Protonbridge never sends any data on the TxD-Pin. Don't know why. But: When I flash the ProtonBridge.bin that i compiled myself with the IAR-Workbench out of the sources, its a difference: Suddenly the TxD-Pin transmits data.
But the data is not as expected. They don't change, if I change a Parameter in the app - they remain at the initialization values.
case PROTONPROFILE_CHAR4:
ProtonProfile_GetParameter( PROTONPROFILE_CHAR4, &charValue4 );
break;
case PROTONPROFILE_CHAR5:
ProtonProfile_GetParameter( PROTONPROFILE_CHAR5, &charValue5 );
break;
case PROTONPROFILE_CHAR6:
ProtonProfile_GetParameter( PROTONPROFILE_CHAR6, &charValue6 );
break;
case PROTONPROFILE_CHAR7:
ProtonProfile_GetParameter( PROTONPROFILE_CHAR7, &charValue7 );
break;
case PROTONPROFILE_CHAR8:
ProtonProfile_GetParameter( PROTONPROFILE_CHAR8, &charValue8 );
break;
case PROTONPROFILE_CHAR9:
ProtonProfile_GetParameter( PROTONPROFILE_CHAR9, &charValue9 );
break;
default:
// should not reach here!
break;
}
}
Afterwards the data transmitted via UART changes, if you change something in the app.
My goal was actually "only" to get the switch "No Sound / Clicks / Beeps" transmitted. So I send 0xB0 ("read" ) , 0x51 ("tick length" ) from the Arduino and get a 2-byte (integer) response back:
"No sound" ==> 0
"Clicks" ==> 1
"Beeps" == 20
Here is a Video which shows this:
https://www.youtube.com/watch?v=-Wd0A_qGAl8
Here is the arduino-code for this Demo:
CODE:
//
// credits to Nikita71 from Kiew, Ukraine
// http://forum.rhbz.org/topic.php?forum=80&topic=98
//
#define CalFactor 3.4 // Calibrierungsfaktor in cps / 1 mR/hr
int PIN_GMZ_count_INPUT = 3; // Interrupteingang für Impulse (fallende Flanke) has to be capable of "interrupt on change"
unsigned long Ticks3,Ticks2,Ticks1,Ticks0;
unsigned long new_millis;
unsigned long old_millis;
unsigned long counter; // Impulszähler für die Interruptroutine
void setup() {
Serial.begin(115200);
attachInterrupt(digitalPinToInterrupt (PIN_GMZ_count_INPUT), isr_count, FALLING);
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, LOW); // LED aus
BluetoothPutRAD (0.0); // Sende den Strahlungspegel an das Telefon DEMO
delay(3000);
BluetoothPutRAD (111.11); // Sende den Strahlungspegel an das Telefon DEMO
delay(3000);
BluetoothPutRAD (222.22); // Sende den Strahlungspegel an das Telefon DEMO
delay(3000);
BluetoothPutRAD (333.33); // Sende den Strahlungspegel an das Telefon DEMO
delay(3000);
BluetoothPutRAD (444.44); // Sende den Strahlungspegel an das Telefon DEMO
delay(3000);
BluetoothPutRAD (555.55); // Sende den Strahlungspegel an das Telefon DEMO
delay(3000);
BluetoothPutRAD (0.0); // Sende den Strahlungspegel an das Telefon DEMO
}
void loop() {
new_millis = millis();
if (new_millis - old_millis >= 1000) { // immer nach 1000 ms führen wir folgendes aus:
old_millis = new_millis;
Ticks3 = Ticks2; // FIFO 4 Werte
Ticks2 = Ticks1;
Ticks1 = Ticks0;
Ticks0 = counter; // Der Messwert der letzten Sekunde
counter = 0; // Der Impulszähler wieder auf 0, für die nächste Messung
unsigned int param_1 = BluetoothGetParam1();
if (param_1 >= 20) { // LED dauerhaft an (Einstellung "Beeps")
digitalWrite(LED_BUILTIN, HIGH);
}
else if (param_1 >= 1) { // LED blinkt (Einstellung "Clicks")
digitalWrite(LED_BUILTIN, HIGH);
delay(10);
digitalWrite(LED_BUILTIN, LOW);
delay(10);
}
else {
digitalWrite(LED_BUILTIN, LOW); // LED aus (Einstellung "No sound")
}
BluetoothPutRAD ((Ticks0+Ticks1+Ticks2+Ticks3)*2.5/CalFactor); // Sende den Strahlungspegel in µSv gemittelt über 4 Sekunden (4 Messungen) an das Telefon
BluetoothPutCPS (Ticks0+Ticks1); // Sende die Anzahl der Impulse in 2 Sekunden von der Geigersonde zum Telefon (für den Messmodus benötigt)
}
}
void BluetoothPutRAD (double value){ // Strahlungsniveau in µSv/h
byte * p = (byte *) & value;
Serial.write(0xA0); // SCHREIBEN!
Serial.write(0x02); // 0x02: Dosisleistung in µSv/h
Serial.write(p,4); // Serial.write(buf, len)
}
void BluetoothPutCPS (double value){ // Anzahl der Impulse von der Geigersonde für 2 Sekunden
byte * p = (byte *) & value; // e ist ein Pointer auf ein Array von Bytes
Serial.write(0xA0); // SCHREIBEN!
Serial.write(0x03); // 0x03: Anzahl der Impulse in den letzten 2 Sekunden
Serial.write(p,4); // Serial.write(buf, len)
}
unsigned int BluetoothGetParam1 () { // holt einen Parameter der Gerätesteuerungscharakteristik (0x51 , 2 Byte µint, ==> Länge des Ticks in msec
byte buf[4];
Serial.write(0xB0); // LESEN!
Serial.write(0x51); // 0x51, 2 Byte uint, ==> Länge des Ticks in msec // 0x53, 2 Byte uint, ==> Länge der Schwingungsdauer in msec
Serial.setTimeout(500); // Nach max. 500 msec. sollten die Daten gekommen sein
unsigned int rlen = Serial.readBytes(buf, 2);
unsigned int resultat = *((unsigned int *) buf); // https://forum.arduino.cc/index.php?topic=30322.0
if (rlen >= 2) {return resultat; }
}
void isr_count() // in der Interruptroutine ..
{
counter++; // .. wird nur ein Impuls-Zähler bewegt, weiter nichts.
}
This is just the result of my research in short - a more detailed explanation of my debugging i have written here: http://www.geigerzaehlerforum.de...topic,645.0.html (in german). There is also a user who built an "ATOM for the poor" (with an SBM-19) last week.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
Похожие темы: ProtonBridge или используем приложение AtomSwift в самодельном дозиметре
Темы
Форум
Информация о теме
Обновление
Электроприводы фото часто используемых электроприводов пост тока