1. про "схему шины" - согласен, попробую, должно заработать (тем более, что вчера я уже разок увидел нужное сообщение на дисплее) 2. про арбитраж - это реализуется на аппаратном уровне, насколько я понял - нельзя сказать конкретному устройству "заткнись". Здесь просто на шине устраняется "балаган", когда все одновременно орут и толком никто ничего не слышит - просто наводится порядок в сообщениях и сообщения начинают доходить до адресатов - не более того 3. про "слушать коды" и отправлять в дисплй - с этого я и начал.. но вот представь себе стиуацию (штатная балалайка есть): - балалайка флудит вывод на дисплей примерно раз в 150мс - платка что-то там приняла (пусть для определенности это будет средний расход) - платка отправила дисплею команду - "нарисуй расход" - дисплей это принял и исполнил - балалайка в очередной раз отправила команду - напиши название станциии
и... наше сообщение перетерто..
именно с этой проблемой "перетирания" я и борюсь.
4. документик хороший - он рассказывает об основах (аппаратный уровень, разрешение коллизий, коррекция ошибок и т.п.).. но в нашем случае это не так интересно, поскольку мы саму шину не реализуем - она у нас уже есть как данность (в машине), а за "низкоуровневую" реализацию отвечает MCP2515 и MCP2551 (а вот разработчики этих микросхем собаку съели на подобных документах). В своем устройстве я могу оперировать только адресами устройств, длинной пакета и его содержимым.. могу читать (фильтровать, преобразовывать и т.п.), могу передавать.... но при этом совершенно не заморачаваясь на тему "как оно там коллизии обходит".
_Michail_
29.10.2014, 12:53
Ну, эт понятно... Вы же эту стадию прошли раньше, а я сейчас по вашим стопам... просто мысли в слух Чтоб по граблям не бегать А еще попутный вопрос, нет ли параметра жизни/отображения сообщения? Типа показать в течении 15 секунд, не смотря на флуд других.. И еще вопрос, программно можно нажать на кнопку?
ustas
29.10.2014, 13:17
К сожалению, "времени жизни" сообщения - нет (или я не знаю, куда смотреть). Но судя по тому, что магнитола флудит без умолку каждый 150мс - этого "времени жизни" просто нет.
Про программное нажатие кнопок - тут надо пробовать... вроде как нажатие кнопок на руле - должно транслироваться в CAN-шину (что подтверждается тут: http://www.madox.net/blog/projects/mazda-c...omment-page-1/) - соответственно, можно своим устройством отправить аналогичную команду - и будет "нажатие".
Аналогично, думаю, можно "слушать" сообщения о нажатии кнопок и эту информацию использовать для управлению разрабатываемым устройством (к примеру - переключиться в режим AUX - это можно отловить по сообщению для отображения на дисплее) и дальше слушать нажатие кнопки "mode" на руле (в этом режиме она не используется, но, надеюсь, информация о ее нажатии будет в шине). Аналогично с другими кнопками на руле - тогда можно будет и дату-время подстраивать и переключаться между режимами отображения информации и проч.).
Кстати, для тех, у кого нет штатной балалайки я уже готов сделать девайс по отображению информации маршутного компа (ну и даты-времени, если надо). Есть желающие? перед запуском мелкого производства нужен хотя бы один "подопытный" - чтобы я подключил свой прототип к диагностическому разъему и проверил, что все работает (заодно и "подопытный" сможет подтвердить, что это не просто разговоры ))
_Michail_
29.10.2014, 13:27
Наткнулся на схему шины, я думаю что пригодится:
al4630z
29.10.2014, 16:26
Цитата(ustas @ 29.10.2014, 13:17)
Кстати, для тех, у кого нет штатной балалайки я уже готов сделать девайс по отображению информации маршутного компа (ну и даты-времени, если надо). Есть желающие?
Я готов. Но маршрутник есть. Ранее писал хотелки. И с доставкой
_Michail_
29.10.2014, 20:06
Я тут по изучал чуток, и пришел к выводу что:
1 Если врезаться между КАН шиной и дисплеем, нужно писать много коду, и следить за всеми сообщениями, но, есть преимущество, минимум переделок при подключении. 2 Если, смириться с некоторой доделкой, то по мне, проще врезаться между штатной балалайкой, и контролировать только ее сообщения, и уже будет по барабану, штатная голова стоит или нет. Глушить по необходимости ненужные на текущий момент сообщения, и выводить свои.
ustas
30.10.2014, 0:08
al4630z, хорошо, что-нибудь придумаем... но пока желающих маловато самому плату делать - лень (хотел заказать в Китае, как уже делал неоднократно, но там от 10 плат )... посмотрим, может, наберем хотя-бы 5-6 желающих - тогда можно будет сделать. Доставка - не проблема.
_Michail_, тут как посмотреть.. про "много кода" - ну да, на пару-тройку строк больше.. зато гибкость и можно реализовать максимально похоже на "штатное" (к примеру - отображается какое-то "нештатное" сообщение, а ты нажимаешь кнопку увеличения громкости - это отражается на дисплее (как и при штатном варианте), а потом все возвращается в исходное состояние)... Кстати, можно схему с двумя интерфейсами (тот вариант, что я прорабатываю) подключить и между магнитолой и шиной - и тоже можно реализовать максимально похожее на штатное поведение.
В принципе, есть вариант поступить "по тупому" - поставить релюху между шиной и магнитолой, которая будет банально отрубать магнитолу от шины (соответственно, "глушить" ее сообщения в шину). Примерно так:
Но я все-таки хочу сделать "полную версию". Тем более, что сегодня все-таки победил "лабораторную" шину и у меня дома на столе система уже заработала.
Проблем в моем "стенде" оказалось две: 1. Нужен был "терминатор" (хватило одного резистора на 120Ом) - поставил у дисплея 2. По каким-то непонятным мне причинам подохла одна микросхема MCP2551 (сравнивал сигналы осциллографом на двух интерфейсах своего устройства). Заменил ее и все заработало.
Сейчас "лабораторный" стенд работает в полном объеме. Тестовая прошивка на один интерфейс выводит "Hello car", на другой "Hello disp". Теперь уже можно писать полный код для вывода полезной информации.
P.S. кстати, если оставить у дисплея подключение только к MS_CAN - не работает блок отображения климата.
P.P.S. вообще круто сделать три CAN-интерфейса: первый смотрит на высокоскоростную шину (там много чего о моторе можно узнать), второй - на среднескоростную (магнитола, управление климатом?, маршрутник и т.п.).. а третий - на дисплей, чтобы можно было все отображать как хочется
al4630z
30.10.2014, 9:01
Есть машинка с нештаткой и отсутствием маршрутника, о чём хозяин сетовал. Позвоню сегодня ему, думаю согласится. По поводу сбыта можно и матрёшкинцев заинтересовать, разницы как я понимаю нет.
annik
30.10.2014, 9:29
Тоже готов быть испытателем. Мне тоже кажется, что 10 платок разойдутся как горячие пирожки. А какой порядок цен если заказывать 10-20-30-40-50 плат? Не обязательно же собирать все платы сразу- пусть лежат и по мере востребованности собирать. Возможно смогу поддержать проэкт материально. С удовольствием слежу за темой, в разговор не вмешиваюсь из-за нехватки знаний в данной области.
CODerSPB
30.10.2014, 11:40
Цитата(annik @ 30.10.2014, 11:29)
Возможно смогу поддержать проэкт материально. С удовольствием слежу за темой, в разговор не вмешиваюсь из-за нехватки знаний в данной области.
+1 С не меньшим удовольствием. По той же причине не вмешиваюсь Единственное, что могу добавить - ГУ Phantom, вроде как нештатное ГУ, но на дисплей "флудит" как штатное (радио - диапазон, частота радиостанции; DVD (MP3) - номер трека, время).
Цитата(ustas @ 23.10.2014, 23:53)
Собственно, началось с того, что когда-то давно кто-то уже делал вывод информаци с нештатного парктроника на штатный дисплей. Был бы проект жив - просто купил бы и не парился.. но тот проект умер - пришлось все изучать самостоятельно.
Проект, возможно, умер. Но действующий экземпляр катается недалеко от меня Да, Михаил?
_Michail_
30.10.2014, 13:30
Цитата(ustas @ 30.10.2014, 0:08)
_Michail_, тут как посмотреть.. про "много кода" - ....
Ну, тут я образно Про доп телодвижения
Цитата
...."по тупому" - поставить релюху.....
Не не не, это не наш метод, нужно еще и кнопку вкл реле делать
Цитата
вообще круто сделать три CAN-интерфейса....
А вот в этом что-то есть, тут уже будет полная информация, еще привязать всю эту песню к кнопкам на руле или еще куда... может своих пару тройку кнопок, которыми можно листать параметры. Типа назад в перед стоп, показывай с балалайки
al4630z
31.10.2014, 15:41
Цитата(al4630z @ 30.10.2014, 9:01)
Есть машинка с нештаткой и отсутствием маршрутника, о чём хозяин сетовал. Позвоню сегодня ему, думаю согласится.
Продал машину, гад
По финансам тоже поддержу.
ustas
31.10.2014, 20:47
Спасибо за поддержку - она пригодится
Сейчас пока пытаюсь прикинуть, сколько будут стоить комплектующие для первой партии.
Пока помогите определиться с составом "модулей" на плате.
Видится следующий список: 1. МК - atmega328 (с минимальным обвесом, но с тактированием от кварцевого резонатора на 16МГц - чтобы не снижать быстродействие) 2. контроллер CAN-шины на базе MCP2551+MCP2515 (минимальный необходимый обвес) 3. "пищалка" (для организации функции парктроника) 4. разъемы на плату и для кабелей + miniUSB-разъем (чтобы запитывать девайс от автомобильной зарядки или чего-то подобного)
этот вариант - "минимум". На базе этого можно сделать "маршрутный комп" для машин с нештатной головой и подключить парктроник.
5. модуль часов реального времени - "часы и календарь" (только нужно придумать, какую резервную батарейку на 3В использовать, которая бы была долгоиграющей и не боялась морозов) 6. второй контролер CAN - "для машин со штатной балалайкой" 7. DC-DC преобразователь ("блок питания" - проще говоря - т.е. все подключения можно будет сделать за торпедо)
Все компоненты (в т.ч. "полный набор") можно сделать на двусторонней плате размером где-то 10х6 см (примерно размеры моего прототипа). Платы такого размера (10 штук) китайцы изготовят за 25 долларов, доставка еще долларов 7-10.
Поскольку я в таком вопросе - "максималист" - я бы все включил в проект. В принципе, можно сделать "полную" версию платы, но дальше по желанию распаивать те или иные "модули" в зависимости от конкретной машины и желания. Правда, это усложнит процесс разработки прошивки (придется разработать несколько версий ПО под различные наборы железа).
И еще помогите придумать способ поблагодарить тех, кто сможет материально поддержать проект?
P.S. Парктроник - то, с чего все начиналось. На текущий момент понятен протокол Parkmaster 4-DJ-06 (только задний бампер, 4 датчика), вероятно, заработает большая часть и остальных парктроников этого производителя (надеюсь, они не нагородили различных протоколов для каждой модели). Чтобы добавить поддержку других пакрктроников - нужно будет получить "добавляемую" модель (на пару-тройку дней).
Что скажете? Включайтесь в проект
Atomschik
4.11.2014, 10:40
Вот все, что удалось нафоткать. Все заклеено какой-то тканью и залито клеем. П.С. Если лишнее, то можно удалить.
ustas
4.1.2015, 13:27
Всех с Наступившим! Появилось свободное время - вернулся к проекту. Сейчас пока "на столе" сделал: http://youtu.be/3FIvs9X5aWg
Завтра-послезавтра в машину перенесу разработку.
дантист
4.1.2015, 15:03
И Вас с Новым Годом ! отсчет идет по метражу на табло?
ustas
4.1.2015, 15:23
пока нет - написаны все функции, которые отвечают за вывод информации на дисплей.
В машине надо отладить получение информации с парктроника (он еще осенью был установлен, основные вещи уже были опробованы и расшифрован его протокол). Еще в планах отловить и расшифровать информацию о нажатии кнопок на руле и магнитоле (если эта информация присутствует в шине) - для расширения функционала.
измерение напряжения бортовой сети, думаю, тоже реализую...
al4630z
5.1.2015, 14:21
Поздравляю с достижением. Кнопки руля поключены на прямую к ГУ, а потом ГУ отправляет на дисплей подозреваю что тоже минуя CAN.
_Michail_
5.1.2015, 16:01
Врятли Круиз не может управляться через ГУ
al4630z
5.1.2015, 17:58
На счёт круиза ты прав.
Kaimynas33
5.1.2015, 18:14
Цитата(al4630z @ 5.1.2015, 13:21)
Поздравляю с достижением. Кнопки руля поключены на прямую к ГУ, а потом ГУ отправляет на дисплей подозреваю что тоже минуя CAN.
Нет, ГУ и дисплай свяаны только CAN.
ustas
5.1.2015, 19:00
Собственно, первые тесты в машине показали, что "на столе" я отработал не все варианты - в машине не то чтобы все не работало, но почти все работало не так как надо.
Поэтому пришлось прошивку поделить на несколько "атомарных" (исполняющих только определенный набор функций) и отлаживать их по отдельности.
На текущий момент отлажено и работает:
Захват сообщений от головного устройства на штатный дисплей;
Трансляция этих сообщений;
Отображение своих произвольных сообщений на дисплее;
Переключение "штатных" и "своих" сообщений по задуманной ранее логике.
Грабли, по которым прошел:
Система вообще не транслирует "оригинальные" сообщения.
Через некоторое произвольное время CAN-интерфейс, который считывает информацию с шины автомобиля - зависает (?) или переполняет буфер (?). Выражается в том, что мой модуль перестает транслировать "штатные" сообщения на дисплей.
100% решение нашлось пока только по 1 проблеме - пришлось переписать обработчик прерывания (выкинуть из него вообще всю обработку).
По второй проблеме пока написан "костыль" - банальная перезагрузка контроллера CAN-шины раз в 10 секунд. Работает, но если знать, когда и куда смотреть - можно заметить "лишнюю" задержку (где-то до 0.2 сек) при отображении данных.
Решение второй проблемы, думаю, надо искать в аппаратной возможности отрабатывать фильтры и маски на уровне mcp2515 - потребуется дополнительное изучение этого контроллера. Решение этой проблемы существенно "облегчит жизнь" основному микроконтроллеру (atmega328).
При старте выдается свое сообщение (для склеротиков: машина приветствует, сообщает о том, какая часть суток сейчас, день недели и текущая дата)
Если на дисплее в штатном режиме остается неизменным сообщение в течении 5 секунд, включается "альтернативный" режим (на текущий момент циклически выводятся различные представления даты, времени, дня недели)
Если же во время работы "альтернативного" режима происходят какие-то действия (например, на руле нажали кнопку изменения режима, громкости и т.п.) - система возвращается в "штатный режим".
При включении задней скорости включается "режим парктроника": игнорируются "штаные" сообщения, на дисплей выводится только информация с парктроника.
Ближе к концу видеоролика, я включаю заднюю скорость - просто для проверки фукнционирования "режима парктроника". Система этот режим отработала, но теперь надо разобраться принимаемыми данными - пока там что-то неадекватное сыпется...
Надеюсь, завтра продолжу. Нажатие кнопок буду "отлавливать" после того, как парктроник начнет нормальные расстояния показывать.
P.S. не вынесла душа поэта - снова ушел в холодную машину.. и на текущий момент ВСЕ заработало (программа "минимум": дата/время/день недели в различных вариациях когда на штатном дисплее какая-либо надпись "висит" более 5 секунд, при включении задней скорости - дисплей переходит в режим парктроника).
Завтра сниму полное видео (надо код немного еще "причесать").
После того, как снял видео, еще добавил обработку включения "драйва" из состояния "паркинг" (при этом кратковременно включается задняя передача и мой модуль на мгновение входил в режим "паркинг": надпись и писк) - теперь это кратковременное включение просто игнорируется. Работает хорошо (переснимать видео было уже лень).
Ну и дома уже добавил еще "вольметр". При старте на 3 секунды (перед приветствием) выводится сообщение о напряжении бортовой сети: http://youtu.be/RMHUXDR6ozg Достаточно такого времени отображения?
Еще можно добавить функцию вывода напряжения в режиме вождения, если напруга выходит за допустимые пределы (стало больше порогового напряжения или стало меньше другого порогового напряжения). Нужно такое? Какие пороги прописать в прошивке?
Думаю, что завтра надо бы это все проинсталлировать в машину... только надо оставить все "хвосты" для подключения программатора, чтобы можно было дорабатывать и дальше. Все остальные функции уже надо будет на машине делать (особенно интересует "отлов кнопок").
P.S. еще на видео видно, что вместо надписи "AUX" на моем дисплее выводится "MEDIA" - сделано just4fun - на кнопке-то именно MEDIA написано
Что скажете?
annik
7.1.2015, 21:26
По поводу aux/media- согласен, что будет более правильно выводить media. По кнопкам- насколько я помню, кнопки круиз-контроля были резистивными. могу предположить, что и кнопки медиа тоже резистивные. По времени отображения- в принципе читабельно. Вопрос по остальным хотелкам- получение и вывод информации бортового компьютера?
ustas
7.1.2015, 23:09
Цитата(annik @ 7.1.2015, 23:26)
По поводу aux/media- согласен, что будет более правильно выводить media.
Мне тоже так показалось
Цитата(annik @ 7.1.2015, 23:26)
По кнопкам- насколько я помню, кнопки круиз-контроля были резистивными. могу предположить, что и кнопки медиа тоже резистивные.
Так и есть, кнопки в обоих случаях - резистивные. Но надо покурить схему - куда они заводятся? Сдается мне, что они идут на "мозг", а уж "мозг" транслирует эти нажатия в шину, чтобы разные девайсы исполняли свои функции (музыка - свое, круиз - свое). Можно, конечно, тупо подцепиться к аналоговым "выходам" с блоков кнопок (где-нибудь в жгуте у руля) и уже на стороне моего микроконтроллера обрабатывать нажатия... и не заморачиваться с шиной (в данном вопросе). Надо подумать. В "аналоговом" варианте потребуется тянуть доп.провода. В "цифровом" варианте - изучать CAN-шину..
Цитата(annik @ 7.1.2015, 23:26)
По времени отображения- в принципе читабельно.
По времени - читабельно. Но приветствие не слишком долго идет? Может, укоротить его?
Цитата(annik @ 7.1.2015, 23:26)
Вопрос по остальным хотелкам- получение и вывод информации бортового компьютера?
Сегодня уже сделал первый подход к этой теме - нашел идентификатор сообщения, в котором как раз вся информация "маршрутника", записал несколько посылок - надо дешифровать. Там странность какая-то... с наскока не получилось.
Сейчас готовлю свой девайс к инсталляции в машину. Оказалось, что дисплейчик "к машине" подключен коротеньким кабельком (около 7 см). На одной стороне у него разъем покрупнее (к шине автомобиля), а сдругой - помельче (втыкается в дисплей). Думаю, что этот кабелек - идеальное место для "врезки". Там есть и питание (общий - черный, красный - 12В), и, естественно, CAN-шина (CAN-L - серый, CAN-H - зеленый). CAN-шину надо разрезать (и со стороны дисплея - припаять резистор на 120 Ом - без него не работает). Получается вот так: Нажмите для просмотра прикрепленного файла
Полный (на текущий момент) "набор на установку": Нажмите для просмотра прикрепленного файла В цветном шлейфе (7 проводов) - два CAN-интерфейса (один будет "слушать" машину, второй - "говорить" на дисплей), там же - общий и 12В (для контроля уровня заряда АКБ). Серый кабель - для подключения программатора. Другой цветной шлейф (4 проводника) - последовательный интерфейс для получения отладочной информации.
P.S. ОФФ: может кто-нибудь подарить/продать/и т.п. блок аудио-кнопок с руля от Мазда5 (с зеленой подсветкой)? Вдруг у кого-то остался после установки круиза?
annik
8.1.2015, 0:14
Мое мнение, не время приветствия долгое, а больше раздражает бегущая строка. Тут либо передвижение букв должно быть более плавным, либо должно быть как перелистывание кадров. И шрифт не очень хорошо читается- заглавные буквы лучше бы выглядели.
ustas
8.1.2015, 0:16
гм.. подготовил "кабелек" (взял его от дисплея, который купил на разборке).... и сейчас еще почитал, как салон разбирать и увидел на фотках, что на мазда5 - другой разъем ... в общем, завтра надо сначала разобрать свою машину, а там уже будет понятно, что и как переделывать... очень не хотелось бы в машине паять
ustas
8.1.2015, 0:24
Цитата(annik @ 8.1.2015, 2:14)
Мое мнение, не время приветствия долгое, а больше раздражает бегущая строка. Тут либо передвижение букв должно быть более плавным, либо должно быть как перелистывание кадров. И шрифт не очень хорошо читается- заглавные буквы лучше бы выглядели.
Более плавное движение букв не сделать: дисплей текстовый - можно только делать смещение на одно знако-место. Был бы графический - можно было бы попиксельно сдвигать... с перелистыванием кадров тоже не все так хорошо - на дисплее всего 12 символов.
Можно попробовать так:
Good evenyng
Wednesday
8 january
Вроде все надписи влезут.
Заглавные лично мне нравятся меньше (мои личные заморочки: НЕЧЕГО НА МЕНЯ КРИЧАТЬ!)
annik
8.1.2015, 0:48
Заглавные буквы более "плотно" пропечатаны, отсюда и лучшее восприятие. Надписи HELLO, MEDIA воспринимаются более читабельно на этом дисплее. А по поводу кричать/не кричать, то тут играет просто личное убеждение- а что если убедить себя, что заглавные буквы это строчные, а "маленьких" строчных на этом дислее нет? В любом случае, можно попробывать несколько вариантов и выбрать лучшее.
ustas
8.1.2015, 19:07
В общем, моя подготовка частично прошла впустую: в машине все-таки пришлось паять (но немного).
Зато сразу стало понятно, что самое место моему модулю (в "серийном варианте" - если до этого дойдет) - за дисплеем. И состоять он должен из одной платы, содержащей сразу и все (включая преобразователь питания с 12В до 5В).
Подключение на Mazda5 - простое: потребуется подключить всего 6 проводков (все действия на кабеле сразу перед разъемом дисплея): 1. подключить "землю" (черный провод) 2. подключить "12В" (оранжевый провод) 3. перерезать серый (can-l) и фиолетовый (can-h) провода 4. подключить can-l и can-h (со стороны машины) к "слушающему" контроллеру CAN моего модуля 5. подключить can-l и can-h (со стороны разъема дисплея) к "говорящему" контроллеру CAN моего модуля. Нажмите для просмотра прикрепленного файла 6. замотать все "синей изолентой" (у меня кончилась - использовал черную) Нажмите для просмотра прикрепленного файла
Все
Ну и подключить еще кабель от парктроника к модулю.
Еще один "косяк" моей установкой в центральной консоли - пищалку плохо слышно (естественно, решаемо). В случае размещения за дисплеем, возможно, нужно будет просверлить маленькую дырочку и пищалку приклеить изнутри аккурат за ней.. но это после.
Кстати.. по ходу пришлось решить еще проблемку.. оказалось (вообще я этого ожидал, но на "стенде" дома это проверить было нельзя), что информация для маршрутника и климата "гуляет" ровно по той же шине... а поскольку я в своем коде обрабатывал только значения для средней части дисплея, а остальные сообщения просто игнорировал - то и получил соответствующий эффект: Нажмите для просмотра прикрепленного файла
Поскольку ноут был с собой - на месте подкорректировал прошивку таким образом, что данные для центральной части дисплея отрабатывались согласно ранее разработанной логике, а все остальные данные - тупо транслировались дальше. И это сработало (что логично). Видео тут: https://www.youtube.com/watch?v=R5hyAQntqkQ (на мерцание не обращайте внимание, его нет - телефон дурил в сумерках). Кстати, на видео видно, то получился "двойной" вольметр: при повороте ключа - сначала видим напряжение на АКБ, а после того, как машина завелась - напряжение бортовой сети.
Теперь прошивку нужно оптимизировать (естественно, там есть куда - выкидывать лишние проверки, убирать данные для отладки, ускорить работу с портами ввода/вывода). Потом можно добавлять всяческие "рюшечки".
Бегущая строка себя показала на холодной машине просто отвратительно: на холодном ЖК-экране просто нечитаемая "каша". Кстати, на видео вариант прошивки, где я отключил ее совсем (чтобы сразу видеть на дисплее основную информацию).
Но в любом случае, на сегодня мой модуль вполне показал свою жизнеспособность (и остался уже на "постоянку" в машине). Эта установка еще даст результаты по "замораживанию". Посмотрим, вынесет ли новая резервная батарейка морозы и не будут ли сбиваться мои часы? Опять же, несколько дней покатаюсь - посмотрю, как будет работать в реальных условиях при нормальной эксплуатации (надеюсь, ничего особенного не "вылезет").
Остальные программные доработки можно производить в спокойном режиме (поскольку все основные гипотезы проверены и основные "грабли" уже пройдены).
Теперь нужно уже определяться: делать ли "серийную" партию?
Для этого мне нужно заново развести плату исходя из тех моментов, что я описал (от 2 дней до недели, думаю).
После этого заказать производство платы (уже делал - из поднебесной после заказа придет где-то через 3-4 недели).
Параллельно закупить комплектуху (ну и прошивку "допилить").
Смонтировать и прошить (день-два, ну... неделю (с запасом)).
т.е. полный цикл - 5-6 недель (если почта и китайский новый год не внесут дополнительных задержек).
Еще не понятно, что с парктроником (ради которого все затевалось первоначально) - я расковырял всего один конкретный парктроник. Добавлять поддержку других моделей, в принципе, возможно, но мне нужно будет получать "целевой" пакртроник на некоторое время и изучать его (не самая интересная работа, к сожалению: цеплять осциллограф, снимать эпюры напряжений, делать кучу замеров с различными расстояниями до датчиков (в разных комбинациях), включать "логический анализатор", попытаться угадать, как зашифрованы расстояния и т.п., написать кусок кода, который будет адекватно принимать и интерпретировать данные).
Можно, конечно, делать "кит": моя плата и Parkmaster 4-dj-06 (именно его я "расковырял" - на сегодня его цена около 3 тыс.руб.). Только это скорее для тех, у кого парктроника еще нет.
И с ценой еще нужно определиться... В текущих условиях пока не понимаю, во сколько реально встанет производство платы и комплектуха...
Понятно, что первая (если она будет) партия (возможно и единственная) - 10-20 плат... на форуме мазда3 "закинул удочку" - вроде как там тоже есть желающие...
Сплошные вопросы.
Если интересно - включайтесь в обсуждение вопросов. Тогда и решим, как быть дальше?
А парктроник за 3т.руб. это полный комплект? А скопировать парктроник не получится и "склеить" их в одну коробочку? Я готов заказать, только основная моя цель была получить бк, можно с парктроником. У меня дисплей без бк.
ustas
8.1.2015, 23:29
За 3 тыс - это полный комплект парктроника: 4 датчика, "основной блок", дисплейчик и вся проводка. Из этого комплекта дисплейчик - лишний.
Плюс - моя плата (о ее цене чуть ниже).
Скопировать парктроник... ну, потенциально можно, только стоить будет существенно дороже (да и датчики-то все равно покупать придется.. а датчики без комплекта - сразу заметно дороже становятся).
По поводу реализации БК - я это сделаю (точно получится сделать периодическое отображение информации БК - значения параметров 100% присутствуют в шине, вот с переключением режимов пока сложности - нужно понять, как работать с кнопками (для упрощения подключения лучше использовать "цифровой вариант")). Можно воообще свою отдельную кнопку замутить, по нажатию которой будет переключение режимов и т.п., но в свою машину я бы такую кнопку ставить не стал (ну или куда-нибудь в очень неприметное место).
Плата совершенно спокойно будет работать и без функций "парктроника" (т.е. в машине просто "появится БК").
Сейчас сделал прикидку по комплектующим и стоимости производства плат... расчет делался исходя из производства серии в 10 устройств. В лучшем случае получается 4 тыс.руб. (ох уж этот нынешний курс - на него завязана как стоимость производства плат, так и комплектующих). Цены могут стать несколько лучше при партии в 100 штук, но это уже совсем другая песня.. следующее улучшение цены - уже при партии от 500-1000 штук (а это уже вообще, имхо, нереально).
Понимаю, что дорого. Для себя, как хобби - нормально (хобби очень редко бывают малозатратными).
Боюсь, что при таких раскладах, даже тестовой партии в 10 штук не будет...
!Lnur
9.1.2015, 10:45
Цитата(ustas @ 8.1.2015, 21:07)
Кстати.. по ходу пришлось решить еще проблемку.. оказалось (вообще я этого ожидал, но на "стенде" дома это проверить было нельзя), что информация для маршрутника и климата "гуляет" ровно по той же шине... а поскольку я в своем коде обрабатывал только значения для средней части дисплея, а остальные сообщения просто игнорировал - то и получил соответствующий эффект
Так и подмывает написать: "А я же говорил!"
Цитата(!Lnur @ 27.10.2014, 14:48)
ustas, всё-таки ответь, почему ты не хочешь вставить свою приблуду между балалайкой и машиной? Зачем тебе отлавливать и транслировать все сигналы идущие на дисплей от машины (ЭБУ, климат)? Тебе ведь только текстовый сектор в серединке дисплея нужен, а туда только балалайка флудит, так борись только с ней!
ustas
9.1.2015, 14:05
Вообще тут "что в лоб, что по лбу". С точки зрения приблуды - пофик, слушать-то все равно нужно все (к примеру, чтобы маршрутник реализовать).. Все же хорошо разрешилось... надо просто дописывать код и оптимизировать его.
!Lnur
9.1.2015, 17:20
Да не совсем. Поначалу да, ты мотивировал необходимость в таком способе подключения к шине тем что тестируешь прототип на диагностическом разъёме, но сейчас то всё изменилось: тебе пришлось РАЗРЕЗАТЬ шлейф проводов (шину) дисплея для того чтобы подключить готовое устройство.
Теперь рассмотри вариант подключения в разрыв CAN-шины идущей на штатную магнитолу: 1. Можно подобрать разъём на твою плату и подключать штатный шлейф с CAN-шиной идущей на магнитолу к нему. При этом маздаводы заменившие штатную балалайку на нештатную получат возможность простым способом, подключив платку к свободному разъёму, дополнить пустующий дисплейчик доп. инфой, например БК. Таким способом ты приобретёшь существенно больше клиентов чем сейчас (не каждый согласится что-то разрезать и паять в своём авто). Это будет упрощённая версия платы с одним контроллером CAN-шины
2. Добавляя пару микросхем (MCP2551+MCP2515) и шлейф с разъёмом для штатной магнитолы на твою плату получаем возможность использовать её в полном составе (со штатной балалайкой).
ustas
9.1.2015, 19:01
А если я найду разъемы такие же, как на дисплее (маму и папу), то можно будет сделать вообще без разрезания: добраться до дисплея, отключить от него разъем и подключить его к моей плате, а разъем, который "выходит" из моей платы - воткнуть в разъем дисплея . Вообще просто (и ничего резать не надо).
И разъем будет нужен только одного вида... а если подключать там, где балалайка - там другой разъем вариаций больше получится.
хотя вариант с одним контроллером CAN-шины будет чуть дешевле... правда, при этом придется поддерживать (с программной точки зрения) две версии... а это, имхо, того не стоит.
В общем, я - за унификацию
Решил все-же сделать полную схему (уже готова) и развести плату (сделаю в ближайшие дни). Завтра по схеме попробую закинуть китайцам на просчет стоимость комплектухи...
P.S. сегодня выяснил, какие сообщения (точнее их идентификаторы) отвечают за вывод информации на дисплей (состоит из трех частей: маршрутник, центральная часть, климат). "Лишние" сообщения сейчас просто "фильтрую" (игнорирую). Уже четко понимаю, "где искать" данные для маршрутника... а вот с нажатием кнопок - пока не понимаю, искать очень сложно...
ustas
13.1.2015, 11:52
Вчера изучал интернет на предмет того, кто какие данные из шины вытащил (параллельно готовил свой код для маршрутника).
Итак.. что "доступно прямо сейчас" (права еще не проверял в машине, но уже подготовил):
Текущая скорость
Текущие обороты
Одометр
Состояние дверей (открыто/закрыто для каждой двери и багажника!)
Состояние круиза (включен/выключен, но тут еще немного надо разобраться.. вкл/выкл или активен/неактивен)
Средняя скорость
Мгновенный расход
Средний расход
Запас хода
Понятно, что п.6 и далее - это "маршрутник" в чистом виде.
Текущая скорость - будет полезна, если получится через кан-шину управлять замками дверей. Состояние дверей (в паре с текущей скоростью) - для писка и надписи, что "такая-то дверь открыта". Одометр.. ну... можно "карту ТО" в машину забить.... на дисплее есть "незадействованный" индикатор "телефона" (или значок DolbyDigital) - который можно зажигать, например, километров на 200-300
Еще можно всякой фигни придумать.. типа, "результат поездки": в конце поездки выдать следующую информацию:
Пройдено ... км
Максимальная скорость ... км/ч
Время в пути ...
Ну и вообще гиковское (если круиз можно включать через CAN-шину): если едем длительное время (минут 5, например) с более-менее постоянной скоростью (плюс-минус 5%) - включить круиз (естественно, фича должна быть отключаемой).
В общем.. полет фантазии. Надеюсь, что сегодня в машине проверю получение данных.
P.S. китайцы пока молчат - считают...
P.P.S. еще поправил вольтметр, как просили (перечитывал тему, чтобы освежить память и сформировать список "хотелок"): при включении и отображении вольтметра идет постоянное измерение (было один раз измерение и просто показывалось заданное время). Теперь цифры "живые" и после того, как машина завелась - видно, как напряжение "выходит на режим".
ustas
13.1.2015, 18:13
В общем... сходил в машину и чуть прокатился.
Данные маршрутника получаются превосходно (кусочек лога отладочной информации):
Таким образом, сделать "бортовой компьютер" - как два байта переслать... все данные есть, можно спокойно формировать сообщения для дисплея и показывать.
А вот остальное, что очень хотелось найти (круиз, состояние дверей, одометр и т.п.) - пока не нашел
Есть желающие поковырять логи в поисках?
annik
13.1.2015, 19:58
Я так понимаю, эта информация (маршрутника), будет выводиться на центральную часть дисплея? Отображать её на левой части не получится?
ustas
13.1.2015, 21:17
Да, все именно так - только на центральную часть выводить.
Если бы был дисплей "с поддержкой маршрутника" - эта информация УЖЕ была бы там (можно почитать темы про замену дисплея).
В общем, я тут нашел крутой инструмент для анализа логов (эксель в умелых руках творит чудеса).
Из хороших новостей: - я все-таки нашел, где содержится статусная информация о дверях... теперь можно при движении организовать "пищалку" и надпись что-нибудь типа "правая передняя дверь открыта"
Машина знает о состоянии следующих дверей: - левая передняя - правая передняя - какая-то задняя (открываем любую заднюю и тут же "взводятся" две "единички") - багажник Дополнительно машина знает о том, открыты или закрыты замки
Теперь о плохих новостях: - нет команды (или я на текущий момент ее проглядел) на открытие-закрытие замков - нет информации о нажимаемых на руле кнопках (теперь точно нужно смотреть схемы, чтобы понять, куда же идут сигнальные провода от руля?) - одометр я тоже не нашел
В общем.. часть функций [просто] не реализуема
Открыть-закрыть ЦЗ можно, но придется тянуть доп.провод от моего модуля до модуля ЦЗ (я к этому потенциально был готов, плата была разработана с учетом вот таких подобных "граблей"). Скорее всего, я этим все-таки заморочусь.
Остается еще вопрос по настройке модуля (к примеру, установка даты/времени). Сейчас это все - в момент прошивки.. но если резервная батарейка сядет (правда, в нормальных условиях ее хватит лет на 7-10), то часы собьются (ну или банально будут немного подвирать) - потребуется корректировка.
Разбирать для этого полмашины (и искать программатор, и разбираться, как же задать правильные параметры), имхо, неправильно.
Что можно придумать:
1. все-таки подключиться к блоку аудио-кнопок, но использовать "аналоговое подключение" (скорее всего, просто один проводок надо будет накинуть... возможно, потребуется пару резисторов, но не сложнее) - и тогда обрабатывать их. Могут быть, например, такие "шаманские" действия: (открыть водительскую и заднюю дверь, перевести магнитолу в режим MEDIA и тогда мой блок поймет, что надо "слушать" нажатия кнопок и мы в режиме "настройки").
2. добавить блок "своих кнопок" (можно вывести куда-нибудь в центральную консоль, чтобы доступ был не сильно сложным)
Или "похоронить" часть функций (календарь, часы). Оставить только маршрутник и парктроник. Причем, маршрутник можно включать-выключать просто устанавливая перемычку на плате в процессе установки (т.е. кому надо - перемычку ставят, те, у кого это уже есть - не ставят).
Да, парктроник является "автоматической опцией", т.е. если его не подключать - система будет спокойно работать и без него (т.е. полное сохранение штатного функционала). Но если в нем появится потребность - достаточно будет правильно подключить соответствующий кабель и оно "автоматом" заработает (без изменения прошивки модуля).
Что скажете?
ustas
13.1.2015, 21:59
Вот же блин...
информация о круизе, одометре все-таки есть в CAN-шине... но в другой!!!... нужные сообщения "бегают" в HS-CAN.. блин, ну не городить же плату с тремя CAN-интерфейсами из-за этого.... правда, польза от их знания пока еще достаточно призрачная...
annik
14.1.2015, 1:05
Ну у меня Дорестайл, поэтому у меня круиз-контроля нет, поэтому на эту информацию мне фиолетово (ну если только в вашей плате не будет предусмотренно установка КК на дорестайл со всеми указаниями и пожеланиями и подробными инструкциями как это пошагово сделать, то я только ЗА!) Про маршрутник- нет возможности управлять сегментами (индикаторами) в левой части? Про парктроник- конечно лучше, когда есть возможность модернизировать с минимальными затратами. Платы сильно будут отличаться в цене с парктроником и без него?
ustas
14.1.2015, 11:40
Круиз на моей плате не реализовать, так что, увы
В наших машинах дисплей - это не "набор сегментов", а самостоятельное устройство, которое "слушает шину" и когда приходят сообщения с соответствующими идентификаторами - отображает соответствующую информацию. Одно из таких сообщений - данные маршрутника (идентификатор 0x400). Если дисплей "с поддержкой маршрутника" - данные из такого сообщения отображаются в левой части (за это отвечает контроллер дисплея). Если же дисплей "без поддержки маршрутника" - сообщения с идентификатором 0x400 просто игнорируются. Моя же плата эту ситуацию исправляет, но направить вывод полученной информации возможно только на центральную часть
Платы с "поддержкой" парктроника и без нее вообще не будут отличаться по стоимости - вся поддержка реализована на программном уровне.
ustas
14.1.2015, 15:33
Тихо, сам с собою я веду беседу...
Сегодня реализовал чисто программную функцию - контроль незакрытых дверей: на скорости выше 10 км/ч система орет дурным голосом и на дисплее пишет, какая именно дверь не закрыта.
Теперь то, что касается опциональной функции закрытия дверей на скорости: сейчас доработаю плату таким образом, чтобы появились еще два контакта (достаточен один, но на всякий случай сделаю два независимых канала) - для подключения к ЦЗ (как это делают сигналки). Желающим иметь такой функционал достаточно будет просто подключить еще один проводок. Тем кому не надо - просто не подключают. Прошивка при этом у всех одна.
Еще появилась мысль, что для того, чтобы уверенно слышать писк парктроника - надо бы приглушать звук "балалайки". Решить это можно аппаратно. Практически у всех балалаек (как штатных, так и нештатных) есть специальный контакт в разъеме (обычно SYSTEM MUTE) - подавая на него сигнал можно приглушать звук. Это будет еще один отдельный контакт на моей плате. Желающие его подключают, остальные - игнорируют.
На плате так же появится отдельный контакт для подключения к выходу с блока аудио-кнопок на руле (для настроек). Это пока еще никак не реализовано программно, но это реально.
На этом, думаю, функционал блока я закончу.
P.S. цену от китайцев еще так и не получил
CODerSPB
14.1.2015, 16:34
Цитата(ustas @ 14.1.2015, 15:33)
Тихо, сам с собою я веду беседу...
Немного не так. Вот лично я себя студентом на лекции ощущаю. И лекция интересная, и препод "в теме". Продолжайте, мы вас очень внимательно слушаем. Буквально, с открытым ртом.
annik
14.1.2015, 16:59
Да-да, я тоже кивал головой, полностью соглашаясь с ходом мыслей оратора.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.