Форум РадиоКот https://radiokot.ru/forum/ |
|
Конструктор ФУОЗ для одноцилиндрового двигателя https://radiokot.ru/forum/viewtopic.php?f=43&t=173631 |
Страница 1 из 20 |
Автор: | С.Н. [ Вс ноя 01, 2020 19:35:40 ] |
Заголовок сообщения: | Конструктор ФУОЗ для одноцилиндрового двигателя |
После первых испытаний решил опубликовать отдельной темой свой проект. «ФУОЗ одноцилиндрового двигателя» - https://yadi.sk/d/kNWy1ZMb03c2tg Все началось с того, в процессе работы над созданием ФУОЗ на микроконтроллере для лодочного двигателя Ветерок был спроектирован некая совокупность программ, таблиц и прошивки, которые образовали ФУОЗ с параметрами: 1. Помехозащищенный алгоритм обработки сигналов датчиков зажигания. «Глотает» импульсные помехи длинной менее заданной!!! Может быть излишне строгий, но работающий алгоритм раскодировки сигналов входных датчиков по 4 ключевым моментам времени и по всем каналам сразу – «скользящее» окно сравнения. 2. Реализация двухкоординатной зависимости УОЗ – обороты и, например – ДПДЗ. 3. 32 узловые точки по координате «Обороты» с линейной интерполяцией между узлами. 4. До 32 кривых в семействе УОЗ(обороты, X), переключаемых по внешнему параметру X, например – от ДПДЗ . 5. Все параметры храняться в FLASH памяти контроллера. 6. Возможна адаптация как к TCI, так и к CDI. 7. Входные датчики – или ДХ или щелевые – способные сгенерировать метку известной длины М градусов. Метка должна завершаться за N (N <M) градусов до ВМТ. В таком случае система сможет обеспечить УОЗ в диапазоне N…(M-3) градусов. В режиме старта и до нижнего табличного значения искрообразование на N градусах. 8. Верхний диапазон частоты вращения ~ 10- 12 тыс. 1/мин (зависит от параметров п.1). 9. Программная часть состоит из прошивки (ассемблер) для Atmega 328P (готовые платформы Arduino из AliExpress - что бы не паять SMD, а просто впаять в плату как микруху ядро МК) и управляющей программы для ПК (Windows). Управляющая программа (с исходниками на Lazarus) одна на всех (зафиксированы общие флаги и система команд для обмена между прошивками и программой по UART). Испытано в лаборатории на макете лодочного мотора Ветерок с реальным процессом искрообразования и одновременной работой программы на PC. Проект пока не закрытый и не универсальный. На каждый двигатель приходится корректировать базовые константы прошивки. Сейчас есть адаптированные прошивки систем УОЗ (обороты, ДПДЗ) для Ветерка (лодочный 2 цилиндра с раздельным CDI зажиганием), двигателя МС-40 (лодочный, 2 цилиндра с одновременным TCI зажиганием), Просто одноцилиндровый двигатель (публикуется тут). Законченных принципиальных схем нет, поскольку это просто конструктор. Однако нашелся смелый доброволец, который подогнал проект, не без помощи конечно, к своему 4Т мотику и испытал его. Огромную благодарность в этой связи с этим хочу выразить товарищу fcftdbx В общем - 1000 слов не заменят одного видео. Все видео тут – https://www.youtube.com/channel/UCGCiF0 ... 2dZJV_dDXA Сразу оговорюсь – все эксперименты на Ваш страх и риск!!! |
Автор: | asel [ Вс ноя 01, 2020 20:17:56 ] |
Заголовок сообщения: | Re: Конструктор ФУОЗ для одногоцилиндрового двигателя |
Много слов и не о чем. Сделайте например реальный проект для 2т. Схема, что паять. Как программировать и т.д. и т.п. ... для папуасов. И!!! По шагового потом объясните, что это и что то, и для чего. Потом можно его обсуждать и ... чем он лучше Фуоз от Флэша? |
Автор: | С.Н. [ Вс ноя 01, 2020 21:58:10 ] |
Заголовок сообщения: | Re: Конструктор ФУОЗ для одногоцилиндрового двигателя |
Много слов и не о чем. Сделайте например реальный проект для 2т. Схема, что паять. Как программировать и т.д. и т.п. ... для папуасов. И!!! По шагового потом объясните, что это и что то, и для чего. Потом можно его обсуждать и ... чем он лучше Фуоз от Флэша? А если нет у меня другого 2Т двигателя? На Ветер уже сделал и схему и прошивку. Жду, когда сломается стоковый механизм ОЗ, да и руки не сильно "чешутся" ломать работающую вещь, ведь Ямахи из него не получиться, да и вопрос с питанием не решен - не хочу аккумулятор ставить на мелкомотор. И это реально один двигатель 2Т, который видел живьем в своей жизни. Далее, не претендую на лучше или хуже, чем у других. Вот Флэш на 4МГц "вытягивают" контроль на высоких оборотах - это достойно уважения. У меня просто другой подход. Видео на 4Т мопеде (даже не знаю что за мопед) сегодня снял человек. ФУОЗ работает. Вроде стабильно и не глохнет и газует легко и не чуть не хуже или лучше, чем на прошивке Флэша (по словам испытателя). Специально просил подержать ручку газа на ~2300 1/мин - обороты не бегают. Что еще надо? А между прочим, как я понял, он просто три провода от Ардуинки в один из вариантов схемы Флэша воткнул вместо Mega8. Входные датчики оказались такими же, к и в базовом проекте. До того с человеком прошел за 20 минут процесс адаптации (обучения) и все.. он сам дальше "топает". В сервере размещено все от начального файла разметка на Excell (первый и тяжелый шаг) -> исходник main.asm -> компилятор С.bat -> прошивальщик для Arduino совместимой платформы W.bat (надо COM порт указать) -> самонастраивающаяся оболочка UOZ.exe, с помощью которой происходит работа с таблицами. Код сложный, но открытый и читабельный. Насмешкой выглядит форматирование. Писал в AtmelStudio 7 - там все "пучком". В блокнотах и прочих табуляции как хотят, так и ставятся. Комментариев много. Активно используются макросы и переопределения, что как мне кажется лучше чем "mov r29,r20" - вот и помни, где что лежит и как называется. Да осознаю что инструкция нужна.... но сам не готов еще, потому, что не силен в нюансах 2Т и 4Т двигателях - не складывается универсальный алгоритм. Да и универсальных входных каскадов и выходных тяжко придумать. Пример входных цепей и выходных привел. Размещая тему, готов пробовать обсуждать нюансы адаптации проекта под конкретный ДВС, а вот хватит ли времени на все на это - вот вопрос вопросов. Тут еще эта пандемия.... |
Автор: | asel [ Пн ноя 02, 2020 17:30:33 ] |
Заголовок сообщения: | Re: Конструктор ФУОЗ для одногоцилиндрового двигателя |
ВЫ хотя бы по пунктам коротко. 1. Загрузить это, сделать это 2. Загрузить это, сделать то. и т.д. ... 5. Запускаем мотор. Для непосвященных и не глубоко одаренных много непнятного. Ну потом и подтянутся и тестировщики. Зима долгая для Ветерка ![]() |
Автор: | С.Н. [ Вт ноя 03, 2020 18:06:42 ] |
Заголовок сообщения: | Re: Конструктор ФУОЗ для одногоцилиндрового двигателя |
Вот Вам подробная инструкция по ядру системы. https://yadi.sk/i/4568fKjoXIW0-g Схемотехника входного каскада и выходного зависит от конструкции датчика и системы зажигания. Основной исходный файл прошивки причесал в части формата отображения. Внес кучу информации в Главную разметочную таблицу. Ссылка на скачивания все проекта не поменялась. Ну что мне Вам еще сделать? Не нравиться, ну тогда ослепляйте прерывания, которые к слову могут произойти и от помехи и тем самым ослепив сами себя, пропустите полезный сигнал. Добавлено after 2 hours 42 minutes 44 seconds: Для madi044 по вопросу датчика. В принципе как основа был датчик Холла. Для использования щелевого магнитного датчика или оптического есть два варианта. Вариант 1. Схемотехнически преобразовать сигнал Вашего датчика к требуемой форме по моему описанию (приведено выше). Вариант 2. Все как есть с простым преобразованием цифру до двух входных каналов и программу откорректировать. Точнее не откорректировать, а снова даунгрейтить с другого двухканального, двухцилиндрового проекта, например с Ветерка. Собственно так и появился проект для одноцилиндрового двигателя. Главная разметочная таблица и управляющая программа все равно одни на все проекты. ДВС отличаются для них только оборотами и таблицами УОЗ. Весь трэш приходится на прошивку (селектор Событий и т.д.). Универсальность сделать не могу иным путем, кроме как стандартизации входных и выходных линий. Мне кажется Вариант 1 проще.... |
Автор: | madi044 [ Вт ноя 03, 2020 19:08:38 ] |
Заголовок сообщения: | Re: Конструктор ФУОЗ для одногоцилиндрового двигателя |
С.Н., Здравствуйте, возможна ли адаптация к индуктивным датчикам... Догадываюсь, что если используется только перепад импульса на входе, то можно - изменив полярность перепада при программировании входа. Если же опрос идёт постоянно - то сразу так нельзя. Между импульсами метки надо делать триггер... ============= Пардон, уже ответили.. Спасибо.. Значит, схемотехника.. |
Автор: | Arwood [ Вт ноя 03, 2020 19:16:23 ] |
Заголовок сообщения: | Re: Конструктор ФУОЗ для одногоцилиндрового двигателя |
Компаратор 393 давно и прочно определился как промежуточное звено между индуктивным датчиком и контроллером. Отличия лишь во входных фильтрах, как правило. |
Автор: | madi044 [ Вт ноя 03, 2020 19:29:18 ] |
Заголовок сообщения: | Re: Конструктор ФУОЗ для одногоцилиндрового двигателя |
С.Н., Хорошо, а более предметно.. Чтоб не влазить в основное тело программы: 1. В программе переназначаю вход МК на какую-нибудь переменную. 2. Дописываю подпрограмму получения этой переменной. 3. Для этой подпрограммы назначаю 2 дополнительных входа под датчики. 4 Подпрограмму оформляю в виде обработки прерывания. Такое возможно? Или надо лопатить весь код? Добавлено after 5 minutes 39 seconds: Arwood, Ваши схемы видел, они на положительный сигнал с датчика... Как будем обрабатывать отрицательный сигнал... Конвертор питания очень не хочется делать.. Если есть какие-то схемы с этим требованием, если не трудно, выложите. Вроде догадался - оптроны на входе компарера... Отбой... ============ ПС И компаратор перевести в режим триггера, пришёл один сигнал - триггер взвёлся, другой - сбросился..Либо после компаратора NE555, с предустановкой в "1", правда, если заводка будет, когда между метками, первый оборот будет пропущен, но это вероятность у меня 4%-длина метки 15 град.. Ясно... |
Автор: | asel [ Вт ноя 03, 2020 19:32:13 ] |
Заголовок сообщения: | Re: Конструктор ФУОЗ для одногоцилиндрового двигателя |
Ну что мне Вам еще сделать? Не нравиться, ну тогда ослепляйте прерывания, которые к слову могут произойти и от помехи и тем самым ослепив сами себя, пропустите полезный сигнал. Вы сами поняли, что вы написали? ![]() Проект от Флэша тестил на Ардуино. И так и сяк. Ардуино мощнее Атмеги8. И как вы писали, не надо паять "основу". И можно проще программировать, без программатора. Тестил два Ардуино. Один стер, второй как Ардуино. И можно легче было конструировать - Мозг - навоторы-силовая часть. Но так все это и осталось лежать к коробочке. Пока .... А ваше, даже "умные" не могут понять, от чего начать плясать... И что в нем (в проекте) такого интересного... Пппц |
Автор: | fcftdbx [ Вт ноя 03, 2020 19:41:45 ] |
Заголовок сообщения: | Re: Конструктор ФУОЗ для одногоцилиндрового двигателя |
asel .Проект нормальный и он работает и связь с пк стабильная. |
Автор: | madi044 [ Вт ноя 03, 2020 20:13:25 ] |
Заголовок сообщения: | Re: Конструктор ФУОЗ для одногоцилиндрового двигателя |
С.Н., Не совсем понятна полярность сигнала в щелевых датчиках... На месте метки - вырез пластины или наоборот - пластина? Другими словами - метка формирует "0" или "1"? |
Автор: | fcftdbx [ Вт ноя 03, 2020 20:27:40 ] |
Заголовок сообщения: | Re: Конструктор ФУОЗ для одногоцилиндрового двигателя |
madi044,30 градусов лог 0,а 330 градусов лог 1. |
Автор: | asel [ Вт ноя 03, 2020 20:49:50 ] |
Заголовок сообщения: | Re: Конструктор ФУОЗ для одногоцилиндрового двигателя |
asel .Проект нормальный и он работает и связь с пк стабильная. Возможно. Пока занимаюсь механикой и ... теорией-подготовкой. От вас и от него. Хотелось бы простых тупых пошапговых инструкций и действий. Не хочется сушить мозг.(Зимой может и посушим). Даже "кырым" не может понять простых вещей ![]() 1. может вы сможете объяснить , что там у Била Гейтса, раз вы уже его запустили. 2. Что там такого интересного? Нового. 3. Что там за датчик ДЗ. А если его нет и быть не может? 4. Что значит связь с ПК? Связь с ПК, как таковая , меня не интересует. Интересует вывод Графика на телефон в динамике. Сто раз объяснял зачем. Чтобы увидеть график и потом увидеть изменения в УОЗ при подключении МАР-сенсора. Потому как они разные, врезка разная и т.п. и т.д. Т.е. УОЗ от МАР сенсор нельзя высчитать математически. А только реальности. А потом уже коретировать график при работе с МАР сенсором. РС.А сейчас футбол Шахтер-Боруссия ![]() |
Автор: | madi044 [ Вт ноя 03, 2020 21:17:04 ] |
Заголовок сообщения: | Re: Конструктор ФУОЗ для одногоцилиндрового двигателя |
madi044,30 градусов лог 0,а 330 градусов лог 1. Оппаньки ![]() |
Автор: | С.Н. [ Вт ноя 03, 2020 22:33:43 ] |
Заголовок сообщения: | Re: Конструктор ФУОЗ для одногоцилиндрового двигателя |
1. В программе переназначаю вход МК на какую-нибудь переменную. 2. Дописываю подпрограмму получения этой переменной. 3. Для этой подпрограммы назначаю 2 дополнительных входа под датчики. 4 Подпрограмму оформляю в виде обработки прерывания. Такое возможно? Или надо лопатить весь код? В программе нет такой переменной. Есть сдвиговая цепочка, биты которой заполняются алгоритмом защиты при случайном или преднамеренном изменении входной линии. Если в конце процедуры защиты определили, что это новое значение, в другой переменной Events происходит сдвиг другой цепочки 4 бита- динамика линии во времени. По динамике решаем что сейчас произошло. Если нужен контроль двух датчиков в таком же ключе, надо добавлять и сдвиговую цепочку и расширять селектр Событий Events. Обычно у меня он 8 разрядный - по 4 бита на линию. АЦП у меня усредняется. Если речь идет о вспомогательных датчиках, вполне можно в основном цикле устроить их опрос и организовать реакцию системы на них. У меня два процесса - основной цикл: АЦП, UART -бесправные процессы, их может прервать в любое время основная часть программы, которая вся сделана на прерываниях. В основной цикл лепите что хотите, но не использовать определенные регистры и не запрещать прерывания. Добавлено after 5 minutes 32 seconds: С.Н., Не совсем понятна полярность сигнала в щелевых датчиках... На месте метки - вырез пластины или наоборот - пластина? Другими словами - метка формирует "0" или "1"? А вот тут я видать не смогу коорректно комментировать. Я имел ввиду щелевой индукционный датчик. Опять таки видел один, которые дает два импульса - положительный и отрицательный. Крутые фронты и медленный спад. Их и ловил оптопарами. Флэш также по моему делал. Добавлено after 13 minutes 14 seconds: Ну что мне Вам еще сделать? Не нравиться, ну тогда ослепляйте прерывания, которые к слову могут произойти и от помехи и тем самым ослепив сами себя, пропустите полезный сигнал. Вы сами поняли, что вы написали? ![]() Проект от Флэша тестил на Ардуино. И так и сяк. Ардуино мощнее Атмеги8. И как вы писали, не надо паять "основу". И можно проще программировать, без программатора. Тестил два Ардуино. Один стер, второй как Ардуино. И можно легче было конструировать - Мозг - навоторы-силовая часть. Но так все это и осталось лежать к коробочке. Пока .... А ваше, даже "умные" не могут понять, от чего начать плясать... И что в нем (в проекте) такого интересного... Пппц Во первых, эти грабли я уже проходил. Во вторых процессоры Atmega8 в целом не слабее Atmega328p. У него памяти меньше и все. Говорят, что даже цоколевка одинаковая (не проверял). То, что вы все 4Мгц кварц на него ставите - это Ваше проблема. В третьих, правда до конца еще сам себя не убедил, но в моем проекте главная особенность - возможность повторения человеком, который в программировании не шарит. Читайте описание и выполняйте шаг за шагом. Не надо специальных программных средств. Добавлено after 12 minutes 20 seconds: [/uquote 3. Что там за датчик ДЗ. А если его нет и быть не может? 4. Что значит связь с ПК? Связь с ПК, как таковая , меня не интересует. Интересует вывод Графика на телефон в динамике. Сто раз объяснял зачем. Чтобы увидеть график и потом увидеть изменения в УОЗ при подключении МАР-сенсора. Потому как они разные, врезка разная и т.п. и т.д. Т.е. УОЗ от МАР сенсор нельзя высчитать математически. А только реальности. ![]() 3. Это на 4Т этого нету. НА 2Т - есть. На 4Т предложите другой параметр и им будет изменение давления. Дайте ТТХ на сигнал датчика и получите замену ДПДЗ. 4. А что Вы там на телефоне увидите на улице вне лаборатории и управляя мотоциклом? Так,что я считаю, что связь с ПК нужна только на стенде. Ну или такую систему телеметрии надо создавать, не каждый НИИ справится. |
Автор: | madi044 [ Вт ноя 03, 2020 22:58:19 ] |
Заголовок сообщения: | Re: Конструктор ФУОЗ для одногоцилиндрового двигателя |
.. процессоры Atmega8 в целом не слабее Atmega328p. У него памяти меньше и все. .... Весьма ценное замечание. Жаль, что ваш проект абсолютно несовместим с индуктивными датчиками. Будем с Флешем допиливать его программу. Я там показал ему некоторые упрощения - согласился..Не судьба... ![]() |
Автор: | С.Н. [ Ср ноя 04, 2020 08:11:13 ] |
Заголовок сообщения: | Re: Конструктор ФУОЗ для одногоцилиндрового двигателя |
.. процессоры Atmega8 в целом не слабее Atmega328p. У него памяти меньше и все. .... Весьма ценное замечание. Жаль, что ваш проект абсолютно несовместим с индуктивными датчиками. Будем с Флешем допиливать его программу. Я там показал ему некоторые упрощения - согласился..Не судьба... ![]() Вам схему нарисовать перехода? Две отпопары, RS тригер - все. Положительные входной импульс устанавливает тригер, отрицательный сбрасывает. Можно по крайней мере попробовать. Одна проблема - лишняя схема не очень хорошо в условиях помех. Я могу сегодня сделать двухвходовый вариант. Один вход для первого положительного импульса датчика, второй для второго отрицательного. У меня же есть проект для 2Т двигателя с таким датчиком и одним выходным импульсом - одновременно в два "горшка" искра идет. Это ни чем не отличается от Вашего варианта. Надо? |
Автор: | madi044 [ Ср ноя 04, 2020 09:30:25 ] |
Заголовок сообщения: | Re: Конструктор ФУОЗ для одногоцилиндрового двигателя |
...Насмешкой выглядит форматирование. Писал в AtmelStudio 7 - там все "пучком". В блокнотах и прочих табуляции как хотят, так и ставятся. .. В блокноте шрифт не моноширинный, пропорциональный, косые черты сжимает, например. А также количество пробелов в табуляции настраивается.В Нотепаде++ по умолчанию 4 пробела на табуляцию..
|
Автор: | С.Н. [ Ср ноя 04, 2020 09:59:48 ] |
Заголовок сообщения: | Re: Конструктор ФУОЗ для одногоцилиндрового двигателя |
...Насмешкой выглядит форматирование. Писал в AtmelStudio 7 - там все "пучком". В блокнотах и прочих табуляции как хотят, так и ставятся. .. В блокноте шрифт не моноширинный, пропорциональный, косые черты сжимает, например. А также количество пробелов в табуляции настраивается.В Нотепаде++ по умолчанию 4 пробела на табуляцию..Мне кстати редактор, встроенный в Far нравиться. Он правда настроен на ассемблер Intel.... Ну в целом хорошо |
Автор: | madi044 [ Ср ноя 04, 2020 10:01:13 ] |
Заголовок сообщения: | Re: Конструктор ФУОЗ для одногоцилиндрового двигателя |
...Две отпопары, RS тригер - все. Нет, видимо, я плохо обрисовал суть проблемы...У меня метка (выступ на колоколе)начинается за 30 градусов до ВМТ и заканчивается на 15 градусах до ВМТ. Ваш ФУОЗ формирует искру в пределах метки. Когда-то, лет 8 назад, на своём мопеде 72 см3 я поменял коммутатор на аналоговый ФУОЗ с питанием от 12В, т.е. с преобразователем (как у Флеша в посту 1). Стало гораздо лучше, но хотелось получше.. Вот и набрёл на ветку Флеша.Для того, чтобы поставить ваш ФУОЗ, нужно или пилить выступ, или ставить диск, или колхозить колокол. В запасниках у меня лежит более мощный генератор, осталось докупить колокол. Я сторонник минимальных переделок, хотя на заводе могут на станках сделать все детали. Поэтому, без переделок ваш ФУОЗ на мой мопед не встанет - смотрел код - там много надо переделывать - не имеет смысла. А по поводу схемы, спасибо, я сам могу и нарисовать, и рассчитать и спаять.. Я только начинающий в программировании (стаж 2 месяца) - для меня затруднительно было читать ваш код (не критика, просто моё субъективное мнение). Смотришь на слово и догадываешься, либо это ключевое слово (а там может, или название регистра или дефайн из инклуда), а может и название регистра или ячейка памяти... Особенно, когда по 12 символов.. Поиском ищешь совпадения..Если бы были какие-то символы принадлежности в именах - читалось бы легче.. Макросы в 1 строку? Ну, ладно, просто отлаживать легче было. Работает, да и ладно.. Наверно, у меня требования завышенные... |
Страница 1 из 20 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |