Обсуждаем контроллеры компании Atmel.
Ответить

Помогите понять проект написанный в AlgorithmBuilder

Вт май 10, 2022 13:58:42

Попал мне в руки проект с ИК датчиком приближения на attiny13.
Суть в том, что я хочу внести изменения в программу и понять принцип работы. НО, она написана не в AVR или Atmel студии, а в графическом виде при помощи Algorithm builder. Мне не понятно как это представить в классическом виде, кодом, а не рисунками в программе которая к тому же не может собрать проект воедино.
Меня в частности интересуют три части программы:
Настройка 0-го таймера, пакеты которые формируются, как принимаются пакеты.
Программу для работы можно найти тут:

Снимки экрана из программы:

В общем я хочу сделать ИК датчик приближения с применением приемника TSOP1738 или его аналоге. Это приемник демодулятор.
Нужно передать модулированный сигнал и принять его же, как это сделать мне не до конца понятно.
В интернете я смотрел многое, вариант на ассемблере мне точно не подходит, этого ЯП не знаю, все остальные проекты просто готовый HEX файл. А тк же прошерстил всего радиокота но не нашел по ключевым словам, если ткнете мордой в миску буду благодарен.
Источники моего вдохновения:


PS
если будете открывать проект в редакторе то файл .alp является главным файлом проекта.
Вложения
Proximity_Sensor_Source.zip
проект
(12.82 KiB) Скачиваний: 161

Re: Помогите понять проект написанный в AlgorithmBuilder

Вт май 10, 2022 18:08:50

Там памяти-то всего 1 кбайт (≈500 инструкций).
Если никак с дизассемблированием, может с нуля написать?

Re: Помогите понять проект написанный в AlgorithmBuilder

Вт май 10, 2022 18:30:56

Надо не проект понимать, а как работать с TSOP. В интернете полно примеров. Достаточно забить в поисковик. Например: так

Re: Помогите понять проект написанный в AlgorithmBuilder

Вт май 10, 2022 20:35:46

Суть в том, что я хочу внести изменения в программу

Какие, если не секрет?
Меня в частности интересуют три части программы:
Настройка 0-го таймера

Таймер0 тактируется без предделителя, на тактовой частоте МК (9,6 МГц). Режим работы Normal (WGM0 = 0). В регистр OCR0B записывается десятичное значение 150.
Прерывания по таймеру в регистре (TIMSK) настроено :
одно - по переполнению регистра TCNT0.
1.png
(13.98 KiB) Скачиваний: 52

другое – по совпадению регистра сравнения OCR0B.
2.png
(15.25 KiB) Скачиваний: 46

пакеты которые формируются

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

Принимаются пакеты по внешнему прерыванию (INT0) с контролем перехода с 1 в 0 от TSOP. Принятый пакет сравнивается с кодом записанным в EEPROM. Если он совпадает дважды подряд (если я не ошибся), то производится управление выводами МК (РВ0 и РВ2).
В общем я хочу сделать ИК датчик приближения с применением приемника TSOP1738 или его аналоге. Это приемник демодулятор.

А что мешает его применить в данном датчике? Думаю он вполне подойдёт для приведённой конструкции датчика.
Нужно передать модулированный сигнал и принять его же, как это сделать мне не до конца понятно.

Данный алгоритм как раз этим и занимается… по умолчанию в EEPROM загружается константа (некая последовательность импульсов). Но в алгоритме предусмотрено при желании записать свою индивидуальную посылку, на которую в дальнейшем будет отрабатывать датчик. Всё это (как это делается) описано в статье блога автора.
http://www.getchip.net/posts/094-datchi ... -attiny13/

Re: Помогите понять проект написанный в AlgorithmBuilder

Ср май 11, 2022 09:10:45

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

Я это и хочу сделать, мне нужно понять как отправлять пачки импульсов на таймере и потом обрабатывать входящий сигнал (прерыванием). я подозреваю, что просто запустив генерацию на 38кГц +-5% я не получу какой либо сигнал. В любом случае жду заказанные детали, что бы приступить к мучениям в живую.

Добавлено after 1 minute 49 seconds:
Надо не проект понимать, а как работать с TSOP. В интернете полно примеров. Достаточно забить в поисковик. Например: так

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

Добавлено after 8 minutes 42 seconds:
Суть в том, что я хочу внести изменения в программу

Какие, если не секрет?

я хочу избавиться от триггера автора, уменьшить время срабатывания, добавить свои индикаторы выхода. и в целом понять как написать эту программу. ваше объяснение очень подробно и поможет мне добиться результата. спасибо.
слегка торможу, поскольку до этого использовал таймеры атмеги8 максимум для 7seg индикаторов и генерации PWM различных конфигураций.
PS смог управлять адресной LED лентой с написанным собой для нее "драйвером". На атмега 8, без ардуиновских библиотек. Там скучно, 2 клика и все работает.

Re: Помогите понять проект написанный в AlgorithmBuilder

Ср май 11, 2022 10:36:33

PE4ENbKA_173 писал(а):я подозреваю, что просто запустив генерацию на 38кГц +-5% я не получу какой либо сигнал.
почему не получите? получите непрерывный сигнал :) вам нужно его промодулировать, а это делается включением и выключением таймера. длительность включенного и выключенного состояния можно отсчитывать как самим таймером (или другим), так и "тупыми" задержками - для сигналов ДУ и такой вариант приемлем.

подробности о об одном из вариантов формирования сигнала IR-управления можете посмотреть по моему исходнику (Си) из статьи https://simple-devices.ru/prj/9-electr/ ... te-control

поймете принцип - сделаете по-своему

Re: Помогите понять проект написанный в AlgorithmBuilder

Ср май 11, 2022 12:58:50

[quote="PE4ENbKA_173"]длительность включенного и выключенного состояния можно отсчитывать как самим таймером (или другим), так и "тупыми" задержками - для сигналов ДУ и такой вариант приемлем.

только я на аттини13 делаю, там всего 1 таймер как я понял. сильно не разгуляться.

Re: Помогите понять проект написанный в AlgorithmBuilder

Ср май 11, 2022 13:21:26

советую изучить (хоть немного) АлгоритмБилдер (это не сложно и если что - русская справка вызывается по F1) если не работали с ассемблером - скорее всего узнаете про АВР много нового (как и я в свое время... только мне проект позабористей попался, с диспетчером задач и с чтением флешек под тини2313, ничего - за неделю одолел (в основном сложности возникали как-раз с проектом, а не с АБ, который оказался интуитивно понятен) и внес необходимые мне правки, теперь часто сам к АБ прибегаю на проектах под тини)
только я на аттини13 делаю, там всего 1 таймер как я понял. сильно не разгуляться.
так и 1 таймер можно использовать сразу в нескольких целях - и для генерации импульсов и для отсчета времени...

Re: Помогите понять проект написанный в AlgorithmBuilder

Ср май 11, 2022 13:27:28

PE4ENbKA_173 писал(а):только я на аттини13 делаю, там всего 1 таймер как я понял
можно подумать, я вам ссылку дал не на проект с attiny13...

Re: Помогите понять проект написанный в AlgorithmBuilder

Ср май 11, 2022 15:07:40

я хочу избавиться от триггера автора,

Ну это просто, закомментировать управление данным выводом и всё.
уменьшить время срабатывания,

Тут не совсем понял.
1 Задержка на срабатывание?
2 Или сигнал удержания срабатывания?
Если первое, то там и так всё на минимуме (как я полагаю)… это некий фильтр от ложных срабатываний, некая защита для надёжной работы…
Если второе, то выход статус работает как индикатор – если датчик видит препятствие, то светодиод светится, как только перестал уверенно видеть, светодиод погас. Что тут ещё можно придумать?
добавить свои индикаторы выхода.

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

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

Re: Помогите понять проект написанный в AlgorithmBuilder

Ср май 11, 2022 15:45:06

[uquote="VNS",url="/forum/viewtopic.php?p=4230023#p4230023"]

уменьшить время срабатывания,

Тут не совсем понял.
1 Задержка на срабатывание?
2 Или сигнал удержания срабатывания?

добавить свои индикаторы выхода.

По подробнее...

Про задержки срабатывания/отпускания да все верно вы поняли, просто защита от помех.

Индикаторы - срабатывание детектора и отдельно статус реле. С реле понятно, "параллельно" нему светодиод сделать со своей землей.
А срабатывание детекторв другой вопрос, т.е. некоторая задержка до включения реле, что бы можно было понимать что препятствие есть но не включать сразу же реле в это время. как это сделать без второго счетчика который бы тики считал я не очень понимаю. Но это не столь важная фича. Важнее что бы более менее точно срабатывал на объект.
Буду собирать и тогда уже на реальном железе посмотрю осциллографом как и что работает. Инфы у меня сейчас очень много, сижу перевариваю.

Re: Помогите понять проект написанный в AlgorithmBuilder

Ср май 11, 2022 16:41:46

Буду собирать и тогда уже на реальном железе посмотрю осциллографом как и что работает.

То есть на макетке вы датчик не собирали и как он работает по факту вы не видели? А откуда тогда претензии к задержке? :) В начале необходимо проверить в железе, а уже затем принимать решения, что необходимо добавить, а что оставить как есть. Я его в своё время проверял в железе данный алгоритм, претензий не возникало. :)

Re: Помогите понять проект написанный в AlgorithmBuilder

Ср май 11, 2022 18:55:39


У меня Каспер режет попытку перейти на сайт.

Re: Помогите понять проект написанный в AlgorithmBuilder

Ср май 11, 2022 19:11:30

NOD32 так же реагирует… пришлось отказаться от входа на сайт.

Re: Помогите понять проект написанный в AlgorithmBuilder

Ср май 11, 2022 19:27:04

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

Re: Помогите понять проект написанный в AlgorithmBuilder

Ср май 11, 2022 21:48:19

Буду собирать и тогда уже на реальном железе посмотрю осциллографом как и что работает.

То есть на макетке вы датчик не собирали и как он работает по факту вы не видели? А откуда тогда претензии к задержке? :) В начале необходимо проверить в железе, а уже затем принимать решения, что необходимо добавить, а что оставить как есть. Я его в своё время проверял в железе данный алгоритм, претензий не возникало. :)

Смотрел в видео на канале автора. Макетка едет, скоро буду на ней реальные тесты делать.

Добавлено after 1 minute 12 seconds:
ну вы меня убиваете - хот бы прочтите, что ваши антивирус пишут: обращение https, но сертификат недействителен, т.к. из-за санкций все бесплатные сертификаты, которые раздавали всем желающим, перестали работать, а на платные, судя по всему, денег у хозяина сайта нет... вот оно и пишет, что соединение не шифрованное, хотя как бы должно быть...
не надо бояться, ничего страшного там нет

Товарищи, тут не проблемы антивируса решаются. У меня вообще стоит аваст и ему плевать на вирусы.

Re: Помогите понять проект написанный в AlgorithmBuilder

Чт май 12, 2022 09:34:21

У меня вообще стоит аваст и ему плевать на вирусы.

Как то... неоднозначно. Может снести его раз так ? :))

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

Re: Помогите понять проект написанный в AlgorithmBuilder

Чт май 12, 2022 16:46:01

У меня вообще стоит аваст и ему плевать на вирусы.

Как то... неоднозначно. Может снести его раз так ? :))

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

Это устройство будет выполнять сугубо одну задачу, нет смысла брать что то более крутое. это как в деревню на порше ездить.

Re: Помогите понять проект написанный в AlgorithmBuilder

Вт май 17, 2022 13:04:16

То есть на макетке вы датчик не собирали и как он работает по факту вы не видели?

Теперь у меня есть живой образец!
Изображение
Проверил что схема правда работает. Осталось добиться работы с сигналом своим.

Re: Помогите понять проект написанный в AlgorithmBuilder

Вт май 17, 2022 13:13:23

это датчик приближения, что ли?
Ответить