ультрозвуковые датчики мин4шт максимум 12шт - воткнуты в контроллер размером с пачку масла которая все это хозяйство питает слушает и - командует по нескольком проводам -контроллером с светодиодными индикаторами / ЖКИ экранами/ камерами заднего обзора
Функция "pulseIn" предназначина для считывания длинны импульса, это совсем другое.... Нужна она при прямом подключении датчиков либо сигналов где нужно не байты считывать а длинну сигнала. Тут же добавлю большими буквами ЗАБУДЬ ЭТУ ФУНКЦИЮ она работает настолько коряво, да нефига она не аботает:) выдает че хочет))))
Роман немного ошибается, там не сигнал а пакеты данных. Блок куда подключенны сенсоры делает всю работу по считыванию сигнала с датчиков и все сам расчитывает, и информацию о расстоянии передает на плату со светодиодами в виде пакетов данных длинной 12байт 0х0, 0х0, 0х0, 0х0, 0х0, 0х0, 0х0, 0х0, 0х0, 0х0, 0х0, 0х0, от каждого датчика по 3 байта. Кстати тот парнишка пишет что протокол используется сериал, так что должно коректно входить в комп.
Затем когда добьешься коректно приходящих данных в комп, сначала надо будет подключая по одному сенсору выяснить от какова сенсора в какой части пакета идут данные, потом как они озменяются с расстоянием и все.
Не ошибаюсь, я прекрасно понимаю что там идут данные пачками. И что экранчик, который расплавился всего навсего отображалка, а основную обработку делает коробочка, к которой датчики подключены (обычно в бампере или под задним фонарем прячут). art100 правильно все написал.
1) Использование "pulseIn", какая бы она глючная не была, необходимо что бы понять в каком виде идут эти пачки. Фактически с помощью этой функции можно сделать простенький логический анализатор.
2) как только поняли как выглядят ваши данные (с помошью логического анализатора или осцилогрофа), то дальше можно думать как писать ПО. В данном случае я бы использовал прерывания на 2 или 3 пине ардуино
3) код, который написал XsanderS скорее всего не взлетит, либо будет мусор. Так как там не UART идет с коробочки, к кторой датчики подключены. В UART длинна импульса постоянна. Т.е. 1 - есть сигнал, 0 - сигнала нет, но длительность 1 и 0 постоянна. Сдесь же скорее всего 1 или 0 передаются как на картинках (длительностью импульса или периода следования импульса. 2 варианта). Это больше похоже на то что в IR пультах используется.
В дополнение. там может быть разное кол-во бит, это от производителя зависит.
Самое интересное такое делали еще в 2006 году я нашел статьи людям за деньги как говориться адаптеры usb на PIC18 ппц. на дуне точно можно сделать вот только как прочитать данные хз вообще уже мозг плавиться(
Без паники, роман возможно прав, мне тоже надо кое что смутить со своим парктроником, так что протестирую и выложу результат. Просмотрю на предмет типа данных, и анализатором и осцелографом... как будет результат отпишу.
Ок. Пока хочу сказать следущие. Можно сделать по другому. Я разобрался с зависимостями на плате индикатора кому интересно щас скажу как все тут делается). Первая картинка за что отвечают контакты на большинстве лед индикаторах сделано именно так:
А следующая картинка тем кто не понял) вот как подключается одна из сторон светодиодов например:
РАскрою может таину) но в основном блоке стоит тот же МК что на индикаторе. там прошивка шифрует данные по пакетам а другой Мк просто расшифровывает. Прочитав много всего на зарубежных форумах пришел к выводу что не все протоколы поддаются чтению на привычных наших МК типа атмел или пик все дело в частоте самого мк на какой частоте он может работать. В следствии этого надо осцилографом смотреть и уже делать выводы. Но по мне так лучше сделать следующие. Сделать доп плату с оптопарами 12 штук и резисторами на них и все 12 контактов завести на дуню например нано там помоиму 14 цифровых будет 2 аналога можна как цифру сделать. Но перед все этим нужно на макетке подключить 7 светодиодов сначала например к левому транзистору общему и узнать какой контакт из 8ми какую дистанцию обозначает или лучше сделать через семисегмент подобрать методом тыка какая нога куда и все. В дуни пишиться скетч простой он будет но объемный правда) и все вуаля. Как сделаю седня выложу фотки тестов по моей теории. и ТОГО ПОДКЛЮЧИТЬ ПАРКТРОНИК ОБОИДЕТСЯ В РУБЛЕЙ 200 МАКС(100 РУБЛ НАНО +100 РУБЛ ОПТОПАРЫ И РЕЗИСТОРЫ)
я хочу такую траву :). Что бы меня также штырило... :)
Если серьезно.
1) Выбраный вами способ в принципе работоспособен. Кстати, можете даже не замарачиваться на резисторы и оптопары, так как там 5В с микрсхемы идет. Возможно, надо будет включить подтягиваюшие резисторы на входах ардуино, так как возможно, при отключенном сегменте индикатора, выход на микросхеме находится в высокоимпендансном состоянии. Дополнительно, вам надо будет разобраться в динамической индикации "наоборот". Из минусов данного подхода а) у вас нет плной информации с датчиков, так как вы сможете получать информацию только ту, которую вам представляет индикатор, а он выводит в цифрах только инфу с датчика, который ближе всего к препятствию. б) у вас избыточное кол-во микросхем, которые не нужны и могут сгореть в) у вас будут использованы почти все выводы ардуино (а вдруг вы еще экранчик захотите...) 4) Скеч нефига не проще будет чем расшфровка протокола парктроника через прерывания
3) Определитесь что вы хотите. Куда вы хотите передавать полученную инфу ? чем обрабатывать ? Может хотите более инфармативно отображать полученную информацию ? или просто разобраться как это работает ? Поймите какой Вы хотите результат...
Я знаю какой я хочу результат мне без разницы как дуня будет мне это слать на ПК главное понятные данные и уже программой на С++ я буду их читать у меня созданно собственное ПО типа Центрафуза=). вот там я и буду выводить данные мне минимум нужен стороны лево право и дистанция. Так можно поподробнее как разобраться с протоколом не имея логического анализатора и осцилогрофа. Тот скетч с вирутальным серииным портом никчему не привел. Как подключить к дуни линию данных и как прочить коректно? Я не бог вплане программирования дунь) только начинаю)
А как разобраться с протоколом, имея осцилограф или логический анализатор ? С их помощью смотрится длительность имульсов, частота их следования, паузы между следованиями импульсов и т.д. Фактически смотряться тайминги сигнала. А после этого мы понимаем, какой микропроцессор нам подойдет и как лучше этот сигнал обрабатывать.
Про виртуальный компорт я сразу сказал что не будет работать...
подключать просто, линию данных с парктроника на 2 или 3 пин ардуины, GND на землю.
А прогу надо думать как написать... Сведодиодиком моргали ? Кнопки освоили ? Если да, то сделайте кнопку по прерыванию. Если сделаете, то померьте длительность между нажатиями на кнопку с выводом информации в сериал. Если это сделаете, дальше сами сможете разобраться... Ну или направление подскажем куда смотреть
Если желания разбираться нет, то для этого есть другой раздел форума... Направление в какую сторону смотреть Вам сказали, дальше сами принимайте решение, что Вам важнее - разобраться или результат...
Доброго дня, Роман был прав, я не досмотрел насчет сигнала. С парктроником еще дел не имел, думал там TTL сигнал... Сейчас имею парктроник для тестов, потому как самому надо на базе него организовать датчик присутствия.
Не фантан конечно но чтобы увидить картину происходящего хватит, позже напишу прошивку с использованием pulsein (как заменить ее еще не придумал) с ней просто нужно быть осторожным чтоб не перегрузить, прошивка будет слать компу тайменги по которым можно будет распознать протокол, длительность импульсов. потом исходя из этого буду писать прошивку которая будет переводить эту лабуду в нормальный вид типа пакетов данных и писать в комп.
И еще: сигнал заводить на аналоговый порт "0" до +5в все что свыше, то через резистивный делитель, но в нашем случае можно на прямую. Ну и конечно землю ардуинки с землей поцеента сцепить.
Мой сигнал выглядит во так когда датчики в спокойном состоянии.
Это ты с помощью дуни считал? хм.. а в состоянии например все отключи датчики оставь лдин например и померь без препятствия и с препятствием. интересно)
Она запускается только когда ардуина подключенна к USB--- сейчас наверно пытаешся запустить с не подключенным ардуино или проверь назначил ли комп ардуине сом порт, прога сама закрывается в случае если не находит не одного FTDI устройства
прикольно ... Время измерения analogRead как учитываете ?
Есть у кого нить в Казани парктроник ненужный или за символическую сумму? Пациент нужен ... XsanderS. А действительно, какой у вас парктроник ? Похоже, что ваш протокол от описаных в статье отличается.
Ребят разобрался с сегментом.) смог восстановить и подключить сдвоеный сегмент восьмерку с общим анодом к плате. все работает. Теперь просто вычислить и записать комбинации и забить их в дуню и нехер больше мозг ломать. и все развязку в любом случае через оптопары делать так как общий + а мк подключает минус. короче управление как и в радар детекторах по минусу идет. Вообщем сделаю когда все выложу сюда всю инфу.
Давно не давно. Тут конкретно ничего по поводу подключения не сказали какая закономерность может быть и т.д. просто купить сдвоеный сегмент и 12 контактов наобум подключить не получилось бы. Надо было искать закономерность. о которой никто конкретно ничего не сказал в том числе и вы. Просто раз вы не вглублялись в данный вопрос я вам объясню. Не совсеми парктрониками все так просто, не во всех пакеты легко разбираются. Лично у меня парктроник Нонеим китаи много искажений сигнала. Был бы конкретно протокол или описание было бы проще а так без нормального осцила в моем случии сигнал сложно читать он посстоянно разный(. в отличии от парня который выложил свои сигнал выше.
jeka_tm Вы не правы, да и не вежливо так писать. Задача сттоит подключить парктроник к внешней системе (компьютеру) с помощью ардуино, а не востановить работоспособность.
Seltvik бог с вами, вы нарисовали соединения элементов на предидущей странице. Там же видно что это фактически 2 цифровых индикатора с общим анодом и 2 линейных индикатора с общим анодом. Все это работает с использованием динамической индикации (транзисторы поочереди подключают общие катоды индикаторов к 5 В, с частотой окола 100 Гц, МК выставляет значение сегментов индикатора). http://avrlab.com/node/130 все написано, читали ?. только вместо крайних цифровых сегментов, у вас линейки индикаторов.
Для подключения ардуина вместо индикатора оптопары не нужны, ардуино без проблем может считывать как 5В так и GND. Только, похоже надо будет подтягивающие ресистора поставить на сегменты индикаторов, что бы они к +5 подтягивали, когда сегмент индикатора потушен. а с транзисторов и так +5 будет.
Поверьте, разорбрать это будет не намного легче чем протокол передачи данных. Вам надо отслеживать стостояние каждого транзистора и когда он выдает + 5V считывать состояние сегментов. Потом из В01111011, В01111000 и т.д. собирать какие цифры он показывает.
Попробуйте. DAT на 2 вход. Скорость порта - 115200. Ниже нельзя. Я честно говоря, не уверен что и этой скорости хватит, что бы отчищать буфер UART, но 20 - 40 значений мы скорее всего поймаем. Дальше будем смотреть.
unsigned long time;
void setup() {
Serial.begin(115200);
pinMode(2, INPUT);
}
void loop() {
time = pulseIn(2, HIGH);
Serial.println(time);
}
Спасибо всем. Во-первых я попробую так сделать через пульин. посмотрим что покаже. Мне конечно хотелось бы сделать напрямую подключить к дуни. а не через оптопары или резисторы просто. Во-вторых на x1 ниче не получится увидеть так как все слеплено даже верхушек не видно. Сегодня вечером сброшу. Если у XsanderS все красиво прямоугольниками то у меня бред полный.
Не понимаю вообщем в одном и том же состоянии разные графики даже точки размышления нету пиков разное количество да и заострения разные постоянно.( Скажу честно я не особо умею расшифровывать сигналы такие точнее распознованием протоколов не занимался никогда(. Вот и попросил помощи. Просто не хочется выкидывать вещь то работает).
РЕбят все сделал вот результат: при 4 подключенных датчиках: 1 столбец данные без препятствии, 2 стоблец препятствие пол метра. Это кусок из того что шлет. пока не понял но закономерность с графиком есть.
И там и там по 17 всплесков. плюс думаю что иголки дапустим это 0 а прямые участки это 1 например. Как думаете? Получается 01001001111111110 во втором случае 01001000111111110 отличие в 1 значение странно...
Стало понятно что пакеты по 8 - 9 бит идут и их длительность известна. Значит можно теперь переходить на прерывания.
А виртуальный осцилограф не ловит, так как длительность измерения АЦП ардуина больше чем время одного бита. (короче частоты осцилографа не хватает :) ). AnalogRead() — скорость выполнения 110 мкс. а 1 бит (скорее всего это 0) 90 - 100 мкс.
Скажите а если допусти поиду сеичас по другому пути. не расшифровка протокола. Вот допустим есть у меня 10 контактов к сдвоеному семисегментнику, то есть я знаю уже что куда и т.д. Как лучше дуней организовать считывание семисегментника. То есть наоборот не вывод на сдвоенный семисегмент а наоборот считывание того что выводится на него. Как лучше организовать? что посоветуете.
Все это работает с использованием динамической индикации (транзисторы поочереди подключают общие катоды индикаторов к 5 В, с частотой окола 100 Гц, МК выставляет значение сегментов индикатора). http://avrlab.com/node/130 все написано, читали ?. только вместо крайних цифровых сегментов, у вас линейки индикаторов.
Все это работает с использованием динамической индикации (транзисторы поочереди подключают общие катоды индикаторов к 5 В, с частотой окола 100 Гц, МК выставляет значение сегментов индикатора). http://avrlab.com/node/130 все написано, читали ?. только вместо крайних цифровых сегментов, у вас линейки индикаторов.
Это я знаю и понял. Вопрос в том как лучше в ардуине допустим организовать чтение сдвоенного семисегментника? варианты какие может ссылку какую нить. Как динамическая индикация работает я знаю просто глазом не вижу как он поочередно подключается их. Как лучше скетч организовать? помогите пжл.
То есть допустим я могу с каждого контакта считать 0 или 1 с каждого из 10ти контактов включая общии аноды. И как я без оптопар заведу на дуню если общий у всех сегментов анод + а не минус а управление МК производит по минусу(. то есть допустим на сегменте выводит МК парктроника 0.2 как считать дуней чтобы в ком порт слал он 0.2 тоже. Хотя бы ссылку или что нить в каком направлении лучше поити как читать лучше все это 8 независимых минусов от МК и 2 общих анода по одному на каждый сегмент. Просто сравнением если делать то не уверен что будет успевать читать.
я один ничего не понимаю или еще кто-нибудь
ультрозвуковые датчики мин4шт максимум 12шт - воткнуты в контроллер размером с пачку масла которая все это хозяйство питает слушает и - командует по нескольком проводам -контроллером с светодиодными индикаторами / ЖКИ экранами/ камерами заднего обзора
от УЗ датчика до лампочки деталей мама не горюй
Вот прошивка с програмным серийным портом, сигнал заводи через пин 10 и землю ардуины зацепи на землю сигнала.
Это програмка для анализа данных приходящих в комп http://compcar.ru/forum/attachment.php?attachmentid=17690&d=1398157847
о результате отпиши.
Ок. спасибо приду домои попробую сделать. отпишу.
Функция "pulseIn" предназначина для считывания длинны импульса, это совсем другое.... Нужна она при прямом подключении датчиков либо сигналов где нужно не байты считывать а длинну сигнала. Тут же добавлю большими буквами ЗАБУДЬ ЭТУ ФУНКЦИЮ она работает настолько коряво, да нефига она не аботает:) выдает че хочет))))
Роман немного ошибается, там не сигнал а пакеты данных. Блок куда подключенны сенсоры делает всю работу по считыванию сигнала с датчиков и все сам расчитывает, и информацию о расстоянии передает на плату со светодиодами в виде пакетов данных длинной 12байт 0х0, 0х0, 0х0, 0х0, 0х0, 0х0, 0х0, 0х0, 0х0, 0х0, 0х0, 0х0, от каждого датчика по 3 байта. Кстати тот парнишка пишет что протокол используется сериал, так что должно коректно входить в комп.
Затем когда добьешься коректно приходящих данных в комп, сначала надо будет подключая по одному сенсору выяснить от какова сенсора в какой части пакета идут данные, потом как они озменяются с расстоянием и все.
Полностью согласен.Попробую и отпишу.
Не ошибаюсь, я прекрасно понимаю что там идут данные пачками. И что экранчик, который расплавился всего навсего отображалка, а основную обработку делает коробочка, к которой датчики подключены (обычно в бампере или под задним фонарем прячут). art100 правильно все написал.
1) Использование "pulseIn", какая бы она глючная не была, необходимо что бы понять в каком виде идут эти пачки. Фактически с помощью этой функции можно сделать простенький логический анализатор.
2) как только поняли как выглядят ваши данные (с помошью логического анализатора или осцилогрофа), то дальше можно думать как писать ПО. В данном случае я бы использовал прерывания на 2 или 3 пине ардуино
3) код, который написал XsanderS скорее всего не взлетит, либо будет мусор. Так как там не UART идет с коробочки, к кторой датчики подключены. В UART длинна импульса постоянна. Т.е. 1 - есть сигнал, 0 - сигнала нет, но длительность 1 и 0 постоянна. Сдесь же скорее всего 1 или 0 передаются как на картинках (длительностью импульса или периода следования импульса. 2 варианта). Это больше похоже на то что в IR пультах используется.
В дополнение. там может быть разное кол-во бит, это от производителя зависит.
Вот что приходит:
<0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0>1<0><0><0><0><0><0><0><0><0><0>11<0><0><0><0><0><0><0><0><0>111<0><0><0><0><0><0><0><0>1117<0><0><0><0><0><0><0>11171<0><0><0><0><0><0>111717<0><0><0><0><0>1117171<0><0><0><0>11171711<0><0><0>111717111<0><0>1117171111<0>11171711111111717111111117171111111171711111111717111111111171111111111711111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111117111111111171111111111711111111117111111111171111111111711111111117111111111171111111111711111111117111111111171111111111711111111111111111111111111111111111111111111117111111111171
Полный бред ппц(
)))
вы небось еще перед датчиком рукой махали?
Нет перед датчиками ничего! Абсолютно.
Самое интересное такое делали еще в 2006 году я нашел статьи людям за деньги как говориться адаптеры usb на PIC18 ппц. на дуне точно можно сделать вот только как прочитать данные хз вообще уже мозг плавиться(
без лог анализатора проблематично
Без паники, роман возможно прав, мне тоже надо кое что смутить со своим парктроником, так что протестирую и выложу результат. Просмотрю на предмет типа данных, и анализатором и осцелографом... как будет результат отпишу.
Ок. Пока хочу сказать следущие. Можно сделать по другому. Я разобрался с зависимостями на плате индикатора кому интересно щас скажу как все тут делается). Первая картинка за что отвечают контакты на большинстве лед индикаторах сделано именно так:
А следующая картинка тем кто не понял) вот как подключается одна из сторон светодиодов например:
РАскрою может таину) но в основном блоке стоит тот же МК что на индикаторе. там прошивка шифрует данные по пакетам а другой Мк просто расшифровывает. Прочитав много всего на зарубежных форумах пришел к выводу что не все протоколы поддаются чтению на привычных наших МК типа атмел или пик все дело в частоте самого мк на какой частоте он может работать. В следствии этого надо осцилографом смотреть и уже делать выводы. Но по мне так лучше сделать следующие. Сделать доп плату с оптопарами 12 штук и резисторами на них и все 12 контактов завести на дуню например нано там помоиму 14 цифровых будет 2 аналога можна как цифру сделать. Но перед все этим нужно на макетке подключить 7 светодиодов сначала например к левому транзистору общему и узнать какой контакт из 8ми какую дистанцию обозначает или лучше сделать через семисегмент подобрать методом тыка какая нога куда и все. В дуни пишиться скетч простой он будет но объемный правда) и все вуаля. Как сделаю седня выложу фотки тестов по моей теории. и ТОГО ПОДКЛЮЧИТЬ ПАРКТРОНИК ОБОИДЕТСЯ В РУБЛЕЙ 200 МАКС(100 РУБЛ НАНО +100 РУБЛ ОПТОПАРЫ И РЕЗИСТОРЫ)
я хочу такую траву :). Что бы меня также штырило... :)
Если серьезно.
1) Выбраный вами способ в принципе работоспособен. Кстати, можете даже не замарачиваться на резисторы и оптопары, так как там 5В с микрсхемы идет. Возможно, надо будет включить подтягиваюшие резисторы на входах ардуино, так как возможно, при отключенном сегменте индикатора, выход на микросхеме находится в высокоимпендансном состоянии. Дополнительно, вам надо будет разобраться в динамической индикации "наоборот". Из минусов данного подхода а) у вас нет плной информации с датчиков, так как вы сможете получать информацию только ту, которую вам представляет индикатор, а он выводит в цифрах только инфу с датчика, который ближе всего к препятствию. б) у вас избыточное кол-во микросхем, которые не нужны и могут сгореть в) у вас будут использованы почти все выводы ардуино (а вдруг вы еще экранчик захотите...) 4) Скеч нефига не проще будет чем расшфровка протокола парктроника через прерывания
2) ИМХО, я бы вам советовал оренироваться на материал с заубежного форума, который вы ранее прислали. Сделайте допущение (осцилографа все равно нет), что у вас сигнал как на картинке (http://www.mp3car.com/vbulletin/attachments/hardware-development/50458d1214404976-custom-usb-parking-sensor-interface-formally-pdc-usb-data-analysis.jpg) и попробуте написать через прерывание вывод в сериал монитор длительности между перепадами сигнала из LOW в HI. Если сможете, дальше будет проще... так как мы увидим в какую сторону двигаться
3) Определитесь что вы хотите. Куда вы хотите передавать полученную инфу ? чем обрабатывать ? Может хотите более инфармативно отображать полученную информацию ? или просто разобраться как это работает ? Поймите какой Вы хотите результат...
Я знаю какой я хочу результат мне без разницы как дуня будет мне это слать на ПК главное понятные данные и уже программой на С++ я буду их читать у меня созданно собственное ПО типа Центрафуза=). вот там я и буду выводить данные мне минимум нужен стороны лево право и дистанция. Так можно поподробнее как разобраться с протоколом не имея логического анализатора и осцилогрофа. Тот скетч с вирутальным серииным портом никчему не привел. Как подключить к дуни линию данных и как прочить коректно? Я не бог вплане программирования дунь) только начинаю)
А как разобраться с протоколом, имея осцилограф или логический анализатор ? С их помощью смотрится длительность имульсов, частота их следования, паузы между следованиями импульсов и т.д. Фактически смотряться тайминги сигнала. А после этого мы понимаем, какой микропроцессор нам подойдет и как лучше этот сигнал обрабатывать.
Про виртуальный компорт я сразу сказал что не будет работать...
Сделайте допущение (осцилографа все равно нет), что у вас сигнал как на картинке (http://www.mp3car.com/vbulletin/attachments/hardware-development/50458d1214404976-custom-usb-parking-sensor-interface-formally-pdc-usb-data-analysis.jpg)
подключать просто, линию данных с парктроника на 2 или 3 пин ардуины, GND на землю.
А прогу надо думать как написать... Сведодиодиком моргали ? Кнопки освоили ? Если да, то сделайте кнопку по прерыванию. Если сделаете, то померьте длительность между нажатиями на кнопку с выводом информации в сериал. Если это сделаете, дальше сами сможете разобраться... Ну или направление подскажем куда смотреть
Если желания разбираться нет, то для этого есть другой раздел форума... Направление в какую сторону смотреть Вам сказали, дальше сами принимайте решение, что Вам важнее - разобраться или результат...
) Спасибо. попробую сегодня с прерываниями попробывать.
Доброго дня, Роман был прав, я не досмотрел насчет сигнала. С парктроником еще дел не имел, думал там TTL сигнал... Сейчас имею парктроник для тестов, потому как самому надо на базе него организовать датчик присутствия.
1. Вот програмка осцелографа
http://www.compcar.ru/forum/attachment.php?attachmentid=14080&stc=1&d=1331408357 Разработанная админом форума compcar.ru с моим участием в графической части.
Не фантан конечно но чтобы увидить картину происходящего хватит, позже напишу прошивку с использованием pulsein (как заменить ее еще не придумал) с ней просто нужно быть осторожным чтоб не перегрузить, прошивка будет слать компу тайменги по которым можно будет распознать протокол, длительность импульсов. потом исходя из этого буду писать прошивку которая будет переводить эту лабуду в нормальный вид типа пакетов данных и писать в комп.
И еще: сигнал заводить на аналоговый порт "0" до +5в все что свыше, то через резистивный делитель, но в нашем случае можно на прямую. Ну и конечно землю ардуинки с землей поцеента сцепить.
Мой сигнал выглядит во так когда датчики в спокойном состоянии.
Ок. спасибо поробую. Отпиши как если что узнаешь. Какой парктроник у вас?
Мой сигнал выглядит во так когда датчики в спокойном состоянии.
Это ты с помощью дуни считал? хм.. а в состоянии например все отключи датчики оставь лдин например и померь без препятствия и с препятствием. интересно)
Кстати у меня прога не запускается) запускается и сразу закрывается(
Она запускается только когда ардуина подключенна к USB--- сейчас наверно пытаешся запустить с не подключенным ардуино или проверь назначил ли комп ардуине сом порт, прога сама закрывается в случае если не находит не одного FTDI устройства
прикольно ... Время измерения analogRead как учитываете ?
Есть у кого нить в Казани парктроник ненужный или за символическую сумму? Пациент нужен ... XsanderS. А действительно, какой у вас парктроник ? Похоже, что ваш протокол от описаных в статье отличается.
У меня не такой ровный сигнал(.
Вот выкладываю разные состояния:
первый рисонок это два датчика левый и правый нет препятствия. Второй рисунок ниже те же датчики но уже препятствие на дистанции в пол метра:
Незная какой вывод делать помогите ребят какие идеи(
Осцилограф правильный взять...
а если мерить в режиме x1 ?
если мерить в режиме x1 то слишком широкий сигнал пачки за раз неуспеваю весь в масштабе поимать
а сколько всего датчиков у вашего парктроника ?
4 датчика ноподключенно 2щас
Ребят разобрался с сегментом.) смог восстановить и подключить сдвоеный сегмент восьмерку с общим анодом к плате. все работает. Теперь просто вычислить и записать комбинации и забить их в дуню и нехер больше мозг ломать. и все развязку в любом случае через оптопары делать так как общий + а мк подключает минус. короче управление как и в радар детекторах по минусу идет. Вообщем сделаю когда все выложу сюда всю инфу.
чудик. давно мог это сделать с новым индикатором. но разобрать тип посылки для вас похоже интереснее
Давно не давно. Тут конкретно ничего по поводу подключения не сказали какая закономерность может быть и т.д. просто купить сдвоеный сегмент и 12 контактов наобум подключить не получилось бы. Надо было искать закономерность. о которой никто конкретно ничего не сказал в том числе и вы. Просто раз вы не вглублялись в данный вопрос я вам объясню. Не совсеми парктрониками все так просто, не во всех пакеты легко разбираются. Лично у меня парктроник Нонеим китаи много искажений сигнала. Был бы конкретно протокол или описание было бы проще а так без нормального осцила в моем случии сигнал сложно читать он посстоянно разный(. в отличии от парня который выложил свои сигнал выше.
jeka_tm Вы не правы, да и не вежливо так писать. Задача сттоит подключить парктроник к внешней системе (компьютеру) с помощью ардуино, а не востановить работоспособность.
Seltvik бог с вами, вы нарисовали соединения элементов на предидущей странице. Там же видно что это фактически 2 цифровых индикатора с общим анодом и 2 линейных индикатора с общим анодом. Все это работает с использованием динамической индикации (транзисторы поочереди подключают общие катоды индикаторов к 5 В, с частотой окола 100 Гц, МК выставляет значение сегментов индикатора). http://avrlab.com/node/130 все написано, читали ?. только вместо крайних цифровых сегментов, у вас линейки индикаторов.
Для подключения ардуина вместо индикатора оптопары не нужны, ардуино без проблем может считывать как 5В так и GND. Только, похоже надо будет подтягивающие ресистора поставить на сегменты индикаторов, что бы они к +5 подтягивали, когда сегмент индикатора потушен. а с транзисторов и так +5 будет.
Поверьте, разорбрать это будет не намного легче чем протокол передачи данных. Вам надо отслеживать стостояние каждого транзистора и когда он выдает + 5V считывать состояние сегментов. Потом из В01111011, В01111000 и т.д. собирать какие цифры он показывает.
Попробуйте. DAT на 2 вход. Скорость порта - 115200. Ниже нельзя. Я честно говоря, не уверен что и этой скорости хватит, что бы отчищать буфер UART, но 20 - 40 значений мы скорее всего поймаем. Дальше будем смотреть.
И выложите сигнал в режиме х1 не важно что не весь пакет будет виден, интересует как выглядит верхушка пилы.
ps: у меня тоже китайский безимянник, с безпроводным подключением между дисплеем и блоком.
Спасибо всем. Во-первых я попробую так сделать через пульин. посмотрим что покаже. Мне конечно хотелось бы сделать напрямую подключить к дуни. а не через оптопары или резисторы просто. Во-вторых на x1 ниче не получится увидеть так как все слеплено даже верхушек не видно. Сегодня вечером сброшу. Если у XsanderS все красиво прямоугольниками то у меня бред полный.
Не понимаю вообщем в одном и том же состоянии разные графики даже точки размышления нету пиков разное количество да и заострения разные постоянно.( Скажу честно я не особо умею расшифровывать сигналы такие точнее распознованием протоколов не занимался никогда(. Вот и попросил помощи. Просто не хочется выкидывать вещь то работает).
попробуйте еще в time = pulseIn(2, HIGH); указать LOW
РЕбят все сделал вот результат: при 4 подключенных датчиках: 1 столбец данные без препятствии, 2 стоблец препятствие пол метра. Это кусок из того что шлет. пока не понял но закономерность с графиком есть.
А вот скрины свежие с 4 датчиками. Первый скрин нет препятствия второй с препятствием в пол метра.
И там и там по 17 всплесков. плюс думаю что иголки дапустим это 0 а прямые участки это 1 например. Как думаете? Получается 01001001111111110 во втором случае 01001000111111110 отличие в 1 значение странно...
А щас вообще ппц. Препядствие в упор на индикатор аж 0 0 показывает а на осциле типа вот что:
А вот показатели если делать срабатывание по LOW первый столбец без препятствий а второй в упор и третий пол метра препятствие:
Вообщем запутался(
Уже интересней.
Стало понятно что пакеты по 8 - 9 бит идут и их длительность известна. Значит можно теперь переходить на прерывания.
А виртуальный осцилограф не ловит, так как длительность измерения АЦП ардуина больше чем время одного бита. (короче частоты осцилографа не хватает :) ). AnalogRead() — скорость выполнения 110 мкс. а 1 бит (скорее всего это 0) 90 - 100 мкс.
И что мне делать( раз если так как вы предпологаете?
Скажите а если допусти поиду сеичас по другому пути. не расшифровка протокола. Вот допустим есть у меня 10 контактов к сдвоеному семисегментнику, то есть я знаю уже что куда и т.д. Как лучше дуней организовать считывание семисегментника. То есть наоборот не вывод на сдвоенный семисегмент а наоборот считывание того что выводится на него. Как лучше организовать? что посоветуете.
Все это работает с использованием динамической индикации (транзисторы поочереди подключают общие катоды индикаторов к 5 В, с частотой окола 100 Гц, МК выставляет значение сегментов индикатора). http://avrlab.com/node/130 все написано, читали ?. только вместо крайних цифровых сегментов, у вас линейки индикаторов.
Все это работает с использованием динамической индикации (транзисторы поочереди подключают общие катоды индикаторов к 5 В, с частотой окола 100 Гц, МК выставляет значение сегментов индикатора). http://avrlab.com/node/130 все написано, читали ?. только вместо крайних цифровых сегментов, у вас линейки индикаторов.
Это я знаю и понял. Вопрос в том как лучше в ардуине допустим организовать чтение сдвоенного семисегментника? варианты какие может ссылку какую нить. Как динамическая индикация работает я знаю просто глазом не вижу как он поочередно подключается их. Как лучше скетч организовать? помогите пжл.
То есть допустим я могу с каждого контакта считать 0 или 1 с каждого из 10ти контактов включая общии аноды. И как я без оптопар заведу на дуню если общий у всех сегментов анод + а не минус а управление МК производит по минусу(. то есть допустим на сегменте выводит МК парктроника 0.2 как считать дуней чтобы в ком порт слал он 0.2 тоже. Хотя бы ссылку или что нить в каком направлении лучше поити как читать лучше все это 8 независимых минусов от МК и 2 общих анода по одному на каждый сегмент. Просто сравнением если делать то не уверен что будет успевать читать.