PDA

Просмотр полной версии : Arduino в M2-ITX


Lexx09
25.09.2015, 00:30
Давно хотел поковыряться в БП M2-ITX и сделать его более гибким в настройке, более функциональным.

Что мне не нравится:

невозможно изменить задержку Remote. Громкие пуки сабвуфера мне надоели, поэтому для включения усилителя использую дополнительное USB-реле. Реле включается и выключается Autoit-скриптом по событиям "Включение", "Выключение", "Вход в сон", "Выход из сна".
невозможно изменить порог напряжения, до которого АКБ может разрядиться.
невозможно сделать нормальный гибридный спящий режим. В режиме B0+B1+B3 большая задержка выключения - 30 сек. Режимами B0+B1+B2+B3 и B1+B2+B3 пользоваться не хочу, т.к. не хочу оказаться с разряженным АКБ.

В наличии имеется БП M2-ITX rev. 2F (он же LB160D-7600). Для исследования M2-ITX вооружился фотоаппаратом, лупой и цифровым многоканальным осциллографом. Фотографии платы M2-ITX и наименования некоторых элементов можно посмотреть тут: https://goo.gl/photos/vY1ZBgePqnxCi7np8

Прочитать прошивку микроконтроллера P87LPC761B не получилось, т.к. она защищена от чтения. Поэтому решил подключить Arduino Nano (https://duino.ru/arduino-nano-v30-ch340-usb.html) вместо этого микроконтроллера.

В принципе, можно расширить функционал и самого P87LPC761B. Для этого надо написать свою прошивку. А к выводам Tx и Rx подключить преобразователь COM-USB, чтобы оперативно изменять различные настройки.

Мои конструкции:
http://i68.fastpic.ru/thumb/2015/0925/51/6d76d393b7217bd16d1f6817a14c7851.jpeg (http://fastpic.ru/view/68/2015/0925/6d76d393b7217bd16d1f6817a14c7851.jpg.html) http://i72.fastpic.ru/thumb/2015/0925/43/9d58d331b5035ec67aae8842ea187b43.jpeg (http://fastpic.ru/view/72/2015/0925/9d58d331b5035ec67aae8842ea187b43.jpg.html) http://i65.fastpic.ru/thumb/2015/0925/ea/dcea6f8f48294a36ee71f096b94a51ea.jpeg (http://fastpic.ru/view/65/2015/0925/dcea6f8f48294a36ee71f096b94a51ea.jpg.html) http://i70.fastpic.ru/thumb/2015/0925/6b/7d824d8402804ba459d1b27cc1db9c6b.jpeg (http://fastpic.ru/view/70/2015/0925/7d824d8402804ba459d1b27cc1db9c6b.jpg.html) http://i71.fastpic.ru/thumb/2015/0925/87/0a4635589463b4a0f605af78a6a92c87.jpeg (http://fastpic.ru/view/71/2015/0925/0a4635589463b4a0f605af78a6a92c87.png.html)

Возможности на данный момент:

Задание произвольных задержек:
задержка включения компьютера после включения зажигания - 0...10 сек. Это задержка до подачи сигнала +5VSB после включения зажигания. Непосредственно запуск компьютера происходит еще через 1.4 сек, после эмуляции нажатия кнопки питания.
задержка сигнала Remote после включения компьютера - 0...10 сек (если 0, то Remote не включается). Это задержка отсчитывается не с момента включения зажигания, а с момента поступления сигнала PS_ON с материнской платы.
задержка выключения компьютера после выключения зажигания - 0...5 сек. Это задержка до эмуляции нажатия кнопки питания после выключения зажигания. После выключения компьютера +5VSB остается поданным на материнскую плату.
задержка полного отключения питания компьютера после выключения компьютера при выключении зажигания - 0...3600 сек (0-1 час, для нормальной реализации гибридного спящего режима). После этой задержки отключается +5VSB. Задержка отсчитывается не с момента выключения зажигания, а с момента пропадания сигнала PS_ON с материнской платы.
Управление сигналом Remote (включение/выключение) подачей команд на Arduino. Т.е. сигнал Remote можно включать уже после загрузки компа, что гарантированно позволяет избежать громкие пуки сабвуфера, независимо от продолжительности загрузки компа. В базовой реализации задержка 5 сек, если комп загружается более 5 сек - то пук обеспечен. Перед перезагрузкой, выключением компьютера и входом в сон можно отключить Remote другой командой.
Чтение текущих настроек, изменение, запись новых настроек без перепрошивки Arduino с помощью управляющей программы (через интерфейсный разъем USB).
Хранение всех настроек в энергонезависимой памяти Arduino.

Дополнительные реализованные возможности:

Прием команд с ИК-пульта и передача их в iCarDS.
Активация круиз-контроля с помощью кнопки на ИК-пульте.
Передача в iCarDS данных с акселерометра (для определения продольного и поперечного наклона автомобиля).

Дальнейшие планы:

Задание порога напряжения АКБ, при снижении до которого компьютер будет автоматически выключен или обесточен. Благодаря внешнему ИОН и калибровке делителя - напряжение АКБ будет измеряться достаточно точно. Я надеюсь.)
Считывание напряжения АКБ управляющей программой.
Полное отключение блока питания от бортовой сети.

Можно еще реализовать такие функции:

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

Нюансы:

Сброс Arduino во время загрузки компьютера из-за инициализации COM-порта, что вызывает бесконечный циклический перезапуск компьютера.
Сброс Arduino во время работы компьютера при подключении к COM-порту управляющей программой, что вызывает жесткую перезагрузку компьютера. Причем, программное отключение сигнала DTR влияет через раз, видимо, криво реализован компонент для работы с COM-портом.

Решение этих двух проблем - вытаскивание джампера. Для прошивки Arduino джампер нужно вставлять обратно, а после прошивки - вытаскивать.


Занять COM-порт можно только одной программой. Поэтому для изменения настроек придется закрывать iCarDS и потом подключаться управлющей программой.

Столкнулся с искажением данных, поступающих от Arduino, если Arduino подключена к этому-же компу. При подключении Arduino к другому компу - данные приходят без искажений. Причем, настройки COM-порта одинаковые на обеих компах. Проанализировал искаженные данные и определил, что большинство байт сдвигаются на 2 бита влево. Первый байт передаваемой строки сдвигается влево на 3 бита. Алгоритм искажения оставшихся нескольких байт понять не смог. Вроде победил это недоразумение...
Проблема с watchdog у Arduino. Решается перепрошивкой загрузчика.
Arduino и другие элементы не помещаются в корпус CarPC.(

admin
25.09.2015, 01:23
Я гдето встречал контроллер для m2-ITX на ардуино
Завтра поищу ссылку

sirota
25.09.2015, 07:57
Lexx09

Круто :yes4:

Lexx09
25.09.2015, 13:06
Для полного обесточивания буду использовать эту схему:
http://i65.fastpic.ru/big/2015/0925/74/3c8a1e8e40e95df16f2eacf770fb3574.png

При включении зажигания срабатывает нижнее реле и на БП поступает +12В от АКБ. Далее БП формирует сигнал +5VSB, что вызывает срабатывание верхнего реле. После выключения зажигания нижнее реле размыкается, но питание на БП все равно подается (через верхнее реле). При переходе компьютера в гибридный спящий режим верхнее реле не размыкается, т.к. +5VSB присутствует. После окончания определенного интервала +5VSB снимается, верхнее реле размыкается и БП полностью обесточивается.

Вместо верхнего автомобильного реле можно использовать какое-нибудь другое с напряжением переключения 5В. Тогда можно обойтись без резистора и транзистора.

Эту схему можно использовать и в базовом варианте (без Arduino).

Я гдето встречал контроллер для m2-ITX на ардуино
Завтра поищу ссылку
Было бы неплохо найти.)

admin
25.09.2015, 18:29
Самодельный контроллер для m2-ATX (http://compcar.ru/forum/showthread.php?t=7134&p=75308#post75308)
Это немного не то что планирует ТС, но все же основные функции работы с БП уже реализованы

http://compcar.ru/forum/attachment.php?attachmentid=10727&stc=1&d=1294695065

Lexx09
25.09.2015, 19:50
Это я видел.

Trantor
16.12.2015, 20:26
Я б транзистор в схеме заменил на опторазвязку, мое эстетическое чувство протестует против замешивания нестабилизированного 12В до БП и стабилизированных 5В после. Реле на 5В, используемое как развязка, может подгаживать индуктивными помехами в те же 5В. Понятно, что комп во время отключения реле выключен, но все же.

Lexx09
05.12.2017, 01:06
Потихоньку продолжаю проект...

Для понятия алгоритма работы и распиновки МК оригинального M2-ITX снял 30 осциллограмм 8-канальным цифровым осциллографом всех возможных режимов работы, включения, выключения. Почти со всем разобрался, кроме назначения пина 5 МК. Вероятно, он связан с защитами от КЗ, перенапряжения и т.п., но в проекте не используется.

Первоначальный вариант переделал практически полностью.

Описание и возможности

Контроллер блока питания предназначен для расширения функционала блока питания M2-ITX путем замены микроконтроллера на аппаратно-программное средство типа Arduino на базе микроконтроллера компании Atmel. В дальнейшем под Arduino подразумевается не только оригинальный вариант, но и многочисленные клоны.

Контроллер обеспечивает богатые возможности по настройке параметров работы БП и различных периферийных устройств, и обладает следующими возможностями:

Контроль напряжения бортовой сети
В базовом варианте пониженное напряжение бортовой сети отслеживается аппаратным компаратором, настроенным на один уровень напряжения. Изменение этого уровня возможно только перепайкой резисторного делителя.
Контроллер позволяет установить любое значение минимально допустимого напряжения бортовой сети.
Напряжение бортовой сети контролируется при запуске компьютера, во время его работы и в ждущем/спящем/гибридном режимах.
Если при запуске компьютера бортовое напряжение будет низкое – то контроллер будет ждать, пока напряжение не станет нормальным. Это может случиться после запуска двигателя. В этом случае, даже если включена настройка «Ждать запуска двигателя», ожидания не будет.
Если напряжение понизится во время работы компьютера – он будет автоматически выключен и обесточен.
Если напряжение понизится во время спящего/ждущего/гибридного режима – компьютер будет обесточен.

Ожидание запуска двигателя
При включении данной настройки компьютер не будет запущен до тех пор, пока не заведется двигатель. Заведенный двигатель определяется по повышению напряжения бортовой сети на 1В.
Если двигатель завелся раньше истечения задержки включения +5VSB, то контроллер ожидает окончание задержки, и потом включает компьютер. Иначе – компьютер включается сразу после запуска двигателя.

Несколько попыток запуска компьютера
Если компьютер не запустился с первого раза – контроллер будет пытаться запустить его еще несколько раз через заданные интервалы времени.

Контроль выключения компьютера
Если компьютер в течение заданного времени не выключился (то есть «завис») – жесткое отключение питания, в том числе и +5VSB.

Управление сигналом Remote
Сигнал Remote предназначен для включения и выключения звукового усилителя. Задержка включения сигнала Remote относительно запуска компьютера задается с помощью соответствующей настройки. Так же возможно управление командами, посылаемыми в COM-порт. Силы тока выхода Remote контроллера может не хватить для срабатывания усилителя, поэтому рекомендуется использовать промежуточное реле.
Сигнал Remote управляется только при включенном CarPC, т.е. управлять им из режима «на столе» нельзя.

Управление дополнительным реле
К контроллеру может быть подключено дополнительное реле, которое управляется только с помощью команд, посылаемых в COM-порт.

Управление питанием HDD
Поддержка реле, разрывающего цепи питания HDD. Разрывать цепи питания HDD необходимо, чтобы он не пытался запуститься при низкой температуре до тех пор, пока не прогреется до минимально допустимой температуры.

Управление подогревателем HDD
Подогрев HDD необходим при низких температурах, чтобы не ждать долгого прогрева HDD по мере прогрева салона. Например, HDD Hitachi Travelstar 7K500 рассчитан на температуру от +5°C до +55°C, и без подогрева при низких температурах он может сломаться за два сезона (что, собственно, у меня и случилось). Подогреватель включается только при первой попытке запуска компьютера в соответствие с заданным условием, далее он автоматически выключается при наступлении одного из заданных условий выключения. Подогреватель, сделанный, например, из автомобильного обогревателя зеркал бокового вида, можно разместить сверху HDD.

Условия включения подогревателя:

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

Условия выключения подогревателя:

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


Если включен параметр «Ждать выключения подогревателя» – то компьютер не будет запущен, пока подогреватель не выключится. После выключения подогревателя автоматически включится реле питания HDD.
Теоретически, можно обойтись и без подогревателя, при этом контроллер будет ожидать прогрева HDD по мере прогрева салона.

Поддержка цифрового датчика температуры
Датчик температуры необходим для корректного включения/выключения подогревателя HDD. Поддерживаются следующие типы датчиков – DS18B20, DS1822, DS18S20, DS1820. Определение модели датчика – автоматическое, точность измерения температуры – 0,5°C. Датчик температуры можно закрепить снизу на HDD, или просто разместить внутри корпуса компьютера.
Если включен параметр «Ждать нормализацию температуры» – то компьютер не будет запущен, пока температура не станет выше минимальной. Настройку можно использовать, если подогреватель HDD не используется. В этом случае контроллер будет ждать прогрева HDD по мере прогрева салона.

Задержка напряжения питания +3.3В
Задержка подачи напряжения питания +3.3В на материнскую плату относительно других напряжений питания (+5В и +12В) требуется для корректного запуска некоторых плат производства компании Intel (например, Intel D525MW). Для запуска платы необходима небольшая задержка (около 0,5 с), которая подбирается экспериментально.

Поддержка спящего/ждущего/гибридного режимов компьютера
Поддержка указанных режимов осуществляется с помощью настройки задержки отключения дежурного напряжения +5VSB. Максимальное время задержки – 65535 сек (18,2 часа). По истечении этого времени будет отключено дежурное напряжение +5VSB.
Во время задержки контроллер отслеживает напряжение бортовой сети, и при его снижении ниже заданного – отключение дежурного напряжения +5VSB.
Во время задержки контроллер также следит и за температурой. Если включена настройка «Ждать выключения подогревателя» или «Ждать нормализацию температуры» – то при понижении температуры ниже заданной произойдет отключение дежурного напряжения +5VSB. Это нужно для того, чтобы компьютер не запустился с холодным HDD при выходе из режима.

Поддержка двух способов загрузки ОС – с SSD и HDD
При загрузке ОС с SSD – ждать окончание подогрева HDD и/или нормализацию температуры не нужно. Компьютер стартует сразу, а подогрев HDD идет параллельно. По заданному условию выключается подогреватель HDD и включается реле питания HDD. Таким образом, в течение некоторого времени после загрузки ОС – HDD будет недоступен (пока не прогреется).
При загрузке ОС с HDD – нужно ждать окончание подогрева HDD и/или нормализацию температуры. Компьютер при этом не запустится до тех пор, пока по заданному условию не выключится подогреватель и включится реле питания HDD.

Режим работы «на столе»
Режим включается установкой соответствующего джампера. В этом режиме, после перезапуска, контроллер реагирует только на поступающие команды. Это может быть полезно, если были случайно записаны некорректные настройки и после этого CarPC не стартует.


Программа управления

Для взаимодействия пользователя с контроллером разработана программа управления. Взаимодействие программы управления с Arduino происходит через COM-порт. Возможности программы:

Выбор COM-порта.
Установка настроек по умолчанию.
Чтение настроек из Arduino.
Запись настроек в Arduino. При этом настройки применяются сразу же после записи, перезапуск Arduino не требуется.
Сохранение настроек в файл и загрузка их из файла.
Чтение текущего напряжения и температуры.
Включение/выключение реле Remote.
Включение/выключение дополнительного реле.
Мультиязычность (русский, английский, украинский).


http://i97.fastpic.ru/thumb/2017/1204/12/54bc7e26f4c4b9a200defdf67f041b12.jpeg (http://fastpic.ru/view/97/2017/1204/54bc7e26f4c4b9a200defdf67f041b12.png.html) http://i97.fastpic.ru/thumb/2017/1204/9e/de142d2fde65782e668a1de52d059d9e.jpeg (http://fastpic.ru/view/97/2017/1204/de142d2fde65782e668a1de52d059d9e.png.html) http://i98.fastpic.ru/thumb/2017/1204/fe/a005e45556f300074e379bb63b9177fe.jpeg (http://fastpic.ru/view/98/2017/1204/a005e45556f300074e379bb63b9177fe.png.html) http://i98.fastpic.ru/thumb/2017/1204/55/0b8d66e1b6542a2d558a2db8b230d255.jpeg (http://fastpic.ru/view/98/2017/1204/0b8d66e1b6542a2d558a2db8b230d255.png.html)

На маленьких разрешениях экрана в программе появляются ползунки, которыми можно прокручивать окно программы.

Поначалу тестировал в Proteus:
http://i98.fastpic.ru/thumb/2017/1204/86/67b1a7e7674e5e7d9d9fa41c1724e586.jpeg (http://fastpic.ru/view/98/2017/1204/67b1a7e7674e5e7d9d9fa41c1724e586.png.html)
Там еще второй микроконтроллер был, который эмулировал ответную часть БП и компьютер.


Контроль напряжения бортовой сети

В оригинальном варианте контроль пониженного напряжения производится компаратором, настроенным на один уровень напряжения. Определение напряжения средствами Arduino производится без использования компаратора, что позволяет задать уровень пониженного напряжения.

В качестве опорного напряжения используется напряжение питания Arduino, которое может быть не равно точно +5В. На разных экземплярах M2-ITX это напряжение также может немного различаться. Например, при подключении к USB-порту домашнего компьютера – напряжение питания Arduino равно +4,65В. Если подключить вывод 3V3 (на котором фактически 3,28В) к аналоговому входу и в течение некоторого времени скетчем измерять напряжение, приняв за опорное напряжение точно +5В, то получим следующие результаты:
http://i97.fastpic.ru/big/2017/1204/88/10cc33aae64c6ae8525da04561aadb88.png

Если измерить вольтметром напряжение питания Arduino, и прописать это значение в скетч вместо 5В, то получим следующие результаты:
http://i97.fastpic.ru/big/2017/1204/80/8bcab5281d7d2a9f5c9f53d8c4e40a80.png

Как видим, результат стал существенно точнее.

Т.о., для корректного определения напряжения бортовой сети необходимо знать два параметра:

Напряжение питания Arduino.
Коэффициент резисторного делителя.

Оба параметра различаются от экземпляра к экземпляру M2-ITX. В проекте оба параметра объединяются в один коэффициент, который предварительно необходимо определить и потом указать в настройках.

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

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


Выбор и подготовка Arduino

В проекте может быть использована Arduino любого типа с микроконтроллером, удовлетворяющим следующим требованиям: https://duino.ru/arduino.html

Память программ (Flash) – 16 Кбайт (с учетом загрузчика размером 2 Кбайт),
Оперативная память (RAM) – 1 Кбайт,
Энергонезависимая память (EEPROM) – 64 байт,
Количество аналоговых входов – 1,
Количество цифровых входов/выходов – 12.

Данным требованиям удовлетворяет микроконтроллер ATmega168P, но лучше использовать микроконтроллер с запасом по требованиям, например, ATmega328P (у которого в два раза больше Flash и RAM), используемый в недорогой и малогабаритной Arduino Nano. (https://duino.ru/arduino-nano-v30-ch340-usb.html)

Желательно использовать Arduino, на которой есть джампер для отключения автоматического программного сброса. Этот джампер необходимо удалить, иначе при открытии порта программой управления возможен жесткий сброс CarPC (даже если программой не используется сигнал DTR).

http://i98.fastpic.ru/big/2017/1204/6c/b5c2d8fa0be301717598131a68f7526c.jpg (https://duino.ru/)

Для прошивки Arduino нужно либо временно устанавливать джампер, либо нажимать кнопку сброса в начале загрузки прошивки. Загружать прошивку необходимо с другого компьютера/ноутбука, при этом CarPC должен быть выключен. Arduino отсоединять от БП не обязательно.

Если в наличии есть Arduino без джампера, то надо каким-либо способом отключить ее программный сброс. Например, соединив контакты 5V и RST резистором.

http://i97.fastpic.ru/thumb/2017/1205/df/5ca84caa5a444dcbab4fd5d982b22fdf.jpeg (http://fastpic.ru/view/97/2017/1205/5ca84caa5a444dcbab4fd5d982b22fdf.jpg.html) http://i97.fastpic.ru/thumb/2017/1205/05/dd982800e057ec6921020844fbf9ab05.jpeg (http://fastpic.ru/view/97/2017/1205/dd982800e057ec6921020844fbf9ab05.jpg.html)

Рекомендуется сразу заменить стандартный загрузчик на загрузчик Optiboot (https://github.com/Optiboot/optiboot/releases) по следующим причинам:

Выше скорость загрузки – 115200 вместо 57600.
Корректно работающий Watchdog, поддержка которого, возможно, будет добавлена при дальнейшем развитии проекта. Проблемы с Watchdog на стандартном загрузчике описаны тут (https://geektimes.ru/post/255800/).


Схема подключения

На данный момент схема подключения Arduino к M2-ITX такая:
http://i97.fastpic.ru/thumb/2017/1204/d5/94c3f60fb066d1261408cc8a09f06dd5.jpeg (http://fastpic.ru/view/97/2017/1204/94c3f60fb066d1261408cc8a09f06dd5.png.html)

Резисторный делитель на входе D3 Arduino нужен для:

понижения напряжения бортовой сети до допустимых значений, иначе Arduino не просыпается при появлении ACC (вероятно, срабатывает защита от превышения),
подтяжки входа к нулю при отсутствии ACC.


Arduino при отключенном питании и 5VSB переходит в глубокий сон, из которого выходит только при появлении ACC. Замеры потребления тока уснувшей Arduino и во время спящего/ждущего/гибридного режимов CarPC еще не делал.


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


Если у кого-нибудь есть замечания/предложения/пожелания - с удовольствием выслушаю.


PS: COM-порты - такая убогая технология для обмена данными, ужас просто. Намучался с ней. В дальнейшем развитии проекта можно попробовать использовать Arduino с полноценным USB-портом (на ATmega32U4), либо STM32 (STM32F103C8T6, тоже с полноценным USB-портом), либо ESP8266 (с обновлением прошивки и управлением по WiFi).

НСО154
05.12.2017, 08:51
Можно добавит вход от сигнализации, что бы система не нагружала на прогревах борт сеть авто.
Распознование режима ACC и START от повышения напряжения-плохая идея.
Я бы посоветовал отслеживать состояние от любого включённого прибора авто на время положения ключа Start, убьёшь ещё одного зайца, просадка АКБ (если это есть)

Lexx09
05.12.2017, 10:59
По поводу сигнализации с автозапуском уже думал... Полагаю, для корректной работы достаточно будет развязать ACC замка зажигания от остальной бортовой проводки, в т.ч. и от сигнализации. Иначе при срабатывании автозапуска на линии ACC появится напряжение и, соответственно, включатся БП, CarPC и усилитель. А при прогреве автомобиля это не нужно.

http://i97.fastpic.ru/thumb/2017/1205/2e/59e12387bc1eded23a91ea3cda608c2e.jpeg (http://fastpic.ru/view/97/2017/1205/59e12387bc1eded23a91ea3cda608c2e.png.html)

Отслеживать заводку двигателя можно многими способами - по тахометру, по датчику давления масла, по индикатору зарядки АКБ... Но не хочется прокладывать дополнительные провода. В полевых испытаниях проверю отслеживание по напряжению.

НСО154
05.12.2017, 11:12
А как ни крути, а провода нужно будет прокладывать.
Считывать 1в в борт сети не по воздуху же будет:)

Про сигналка, не понял если честно.
Но у меня так сделано, если D9-0(это сигнал с сигнализации), то система работает в штатном режиме, если D9-1, то система не реагирует на АСС.
Все просто.
Про алгоритм не буду расписывать, можешь скачать мой скетч и потестить, мож что полезное найдёшь.

А так все огонь:)

Lexx09
05.12.2017, 11:28
Не, доп. провода не нужны. На пин 15 МК приходит напряжение бортовой сети через резисторный делитель.

Не на всех сигналках есть выход, указывающий что включен режим охраны. Зато вроде все сигналки подают плюс на ACC для автозапуска.

НСО154
05.12.2017, 12:11
Светодиод, датчики удара)
Я с датчика удара брал плюс.

Lexx09
05.12.2017, 13:20
Вроде как некоторые сигналки отключают датчик удара в момент автозапуска...

К светодиоду, в принципе, можно подключиться. Алгоритм получается примерно такой:

При появлении ACC - Arduino просыпается и в течение заданных интервалов времени ждет мигание светодиода:

Если мигнул - то мы в режим охраны, продолжаем следить за светодиодом.
Если мигания не было - стартуем.

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

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

ABCh
05.12.2017, 13:34
На момент автозапуска активизируется модуль обхода иммобилайзера. Можно попробовать отслеживать этот сигнал и не включать блок питания при его наличии.

НСО154
05.12.2017, 13:51
Смотри, прикидывай что к чему.
Пысы у меня старлайн в9, датчик удара вкл при автозапуске.

sirota
05.12.2017, 13:54
Смотри, прикидывай что к чему.
Пысы у меня старлайн в9, датчик удара вкл при автозапуске.

У меня в пандоре датчик удара отключается при автозапуске.

НСО154
05.12.2017, 14:09
У меня в пандоре датчик удара отключается при автозапуске.

Странно конечно, так и тачку угнать могут:)

Lexx09
05.12.2017, 14:13
Нет, он отключается на несколько секунд.

Lexx09
05.12.2017, 14:26
Кстати, интересно, а как датчик удара отключается во время автозапуска? Отключается его питание или сигнализация перестает реагировать на его срабатывание?...

НСО154
05.12.2017, 15:52
Кстати, интересно, а как датчик удара отключается во время автозапуска? Отключается его питание или сигнализация перестает реагировать на его срабатывание?...

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

Lexx09
05.12.2017, 16:07
Проверь на своей.
Так у меня нет сигналки с автозапуском.:sad2: Была на предыдущем авто... С двумя таймерами. Прогревалась утром в гараже перед работой и вечером перед уходом с работы.

НСО154
05.12.2017, 16:13
Так у меня нет сигналки с автозапуском.:sad2: Была на предыдущем авто... С двумя таймерами. Прогревалась утром в гараже перед работой и вечером перед уходом с работы.

Так тогда оно тебе и не надо:no:))
Редкий случай, когда прогрева нет в авто.

Lexx09
05.12.2017, 17:03
Мне не надо - другим надо. Я надеюсь...
Если бы я делал только для себя, то большую часть проекта не делал бы. А скорее всего, вообще бы ничего не делал. Гибернацией не пользуюсь, HDD нет (но хотелось бы, пока пользуюсь флешкой), задержка +3.3В не нужна, Remote включается через USB-реле. А с остальными функциями вполне справляется оригинальный M2-ITX.