Помогите с протоколом
- Войдите на сайт для отправки комментариев
Втр, 21/02/2012 - 21:20
Прошу помощи.
Нужно прочитать через Arduino примерно такую последовательность:
Как это можно сдела? Как называется этот протокол?
Прошу помощи.
Нужно прочитать через Arduino примерно такую последовательность:
Как это можно сдела? Как называется этот протокол?
Что за последовательность ?
Откуда читать ?
Картинку почти не видно.
Последовательность 0 и 1 ) Странный вопрос.
Длинный сигнал, это 1, короткий сигнал это 0.
Как это читать, я не представляю, хотябы знать как называется этот протокол, чтоб я мог в интернете найти.
Картинку надо открыть в новой странице, или как еще, картинка просто уменьшена форумом.
это есть импульсы 0 - 5 вольт.
А может проще сказать ,что это за сигналы и откуда они пришли. Если от НЛО, то не по адресу.
Разве это важно? Я скажу, это сигнал с мозга парктроника.
Это не имеет протокола потому что у парктроника нет мозга.
Пусть "нет", дело не в этом, дело в том, как прочитать эту последовательность 0 и 1. Чего мы тут раздуваем?!
>>Пусть "нет", дело не в этом, дело в том, как прочитать эту последовательность 0 и 1. Чего мы тут раздуваем?!<<
Если длинну импульсов читать то pulseIn но что это даст если вы не знаете эту кодировку?
>>Если длинну импульсов читать то pulseIn но что это даст если вы не знаете эту кодировку?
Я знаю как интерпретировать эту диаграмму, но не знаю как ее прочитать Aduino или микроконтроллером.
Функцией pulseIn. Пример можете найти в разделе "программирование".
Спасибо, это уже что-то!
народ вместо того, чтобы подсказать человеку, скалит зубы и ехидствует. вместо того, чтобы ответить на вопрос "как считать". какая разница откуда сигнал идет и что это за сигнал? форум на то и форум, чтобы ответить на вопрос и помочь, а не показывать свое остроумие. умники блин.
народ вместо того, чтобы подсказать человеку, скалит зубы и ехидствует. вместо того, чтобы ответить на вопрос "как считать". какая разница откуда сигнал идет и что это за сигнал? форум на то и форум, чтобы ответить на вопрос и помочь, а не показывать свое остроумие. умники блин.
если сам автор, не может правильно задать вопрос..а пишет о каких то протоколах.. так какой разумный ответ можно дать?
если я у тебя спросил бы - arduino летает или это зло?
Ты как бы ответил?..:)
лично у меня на вопрос автора (первое сообщение в теме) сразу же сгенерировался ответ "считать при помощи pulseIn". вопрос вполне корректный.
лично у меня на вопрос автора (первое сообщение в теме) сразу же сгенерировался ответ "считать при помощи pulseIn". вопрос вполне корректный.
Только ответ такой будет весьма сомнительный по полезности: то, что использование pulsein() позволяет лишь половину (в лучшем случае) информации о принимаемом сигнале получить, вас не смущает?
Ведь измерив с помощью этой функции, напрмер, длительность очередного импульса (HIGH), вы автоматически теряете возможность измерить длительность следующей за этим импульсом паузы (LOW) - ведь для запуска pulsein(x,LOW) сначала придется дождаться очередного ниспадающего фронта (перехода с HIGH на LOW), а это произойдет только в момент завершения очередного импульса.
вот что starttopic`у нужно как я понимаю : http://accrochages.drone.ws/en/node/90
Посмотрит на диаграмму и скажет: - Теперь всё ясно!:)
>>Посмотрит на диаграмму и скажет: - Теперь всё ясно!:)
Нет, не ясно.
>>Только ответ такой будет весьма сомнительный по полезности...
Для меня полезна любая идея.
Спасибо Вам Fluffy, nestandart. Похоже, что через функцию pulseIn я смогу сделать.
Так какой же ясности вы желаете? для какой цели вам нужна эта информация? От этого зависеть и способ "считывания" .
>Последовательность 0 и 1 ) Странный вопрос.
>Длинный сигнал, это 1, короткий сигнал это 0.
Вот я прям даже не знаю, посмотрел на картинку и лично мне видится это так:
высокое значение = 1, низкое значение = 0 (не, ну логично же?:))
в итоге и получаем 1111111110111 и т.д., что с этим со всем делать ? ну попробуйте разбить на байты, конвертировать в ASCII =)) может и получится "привет, мы пришли с миром" :)
Возможно Вы не поняли, мне нужно было прочитать бинарные данные, и мне это удалось, вот как я читаю:
Возможно Вы не поняли, мне нужно было прочитать бинарные данные, и мне это удалось, вот как я читаю:
Ну, прочитать хоть что-то несложно. Сложнее прочитать правильно.
А ничего, что в вашем коде и длительности пауз между импульсами разные?
Может быть "Это жжж неспроста" (с)?
Может быть, и в паузах какая-то информация зашифрована?
Может быть, только в паузах она и зашифрована?
А?
А ничего, что в вашем коде и длительности пауз между импульсами разные?
Может быть "Это жжж неспроста" (с)?
Может быть, и в паузах какая-то информация зашифрована?
Может быть, только в паузах она и зашифрована?
А?
К моему счастью, низкие уровни не несут информацию, только высокие, длинный сигнал - 1, короткий - 0.
Повезло.
Но с какой стати тогда паузы имеют различную длину?
Потому что передача ограничена по времени.
Если импульсы несут иформативную нагрузку то в ограниченом промежутке времени паузы будут равны
промежутку времени минус импульсы.Однакио длинна каждой паузы будет зависеть от импульсов перед ней и
после нее.
>>Но с какой стати тогда паузы имеют различную длину?
Я так понял импульс+пауза - постоянная длина.
Потому что передача ограничена по времени.
Если импульсы несут иформативную нагрузку то в ограниченом промежутке времени паузы будут равны
промежутку времени минус импульсы.Однакио длинна каждой паузы будет зависеть от импульсов перед ней и
после нее.
Эти утверждения имеют очень мало общего с действительностью.
Посмотрите хотя-бы информацию по UART-протоколу (а он является основой коммуникации между ПК и той же Ардуиной) - длина паузы никак не зависит "от длины импульса перед ней и после нее". Как длина паузы (LOW), так и длина импульса (HIGH). зависит лишь от чередования битов в пересылаемой информации.
Передается символ 'A' (0x41 или b01000001) и вы получаете паузу между импульсами в пять раз больше длительности этих импульсов, а передается символ 'U' (0x5A или b01010101) и длительности всех пауз в точности равны длительности импульсов.
Примерно такая же ситуация и в CAN, I2C, 1-wire. В протоколах ИК-управления длина пауз также зависит не от длины импульсов, а от передаваемой информации.
Было бы очень интересно ознакомиться с примерами протоколов, реализующих такое необычное соотношение между длительностями импульсов и пауз. Ссылочками не поделитесь?
Ivan до тех пор пока вы сами, в голове или с помощью бумажки и ручки , не сможете расшифровать эту картинку - ардуина вам абсолютно ничем не поможет. Ни pulseIn, ни attachIntterupt - ничего. Вначале нужно самому ПОНЯТЬ, а потом уже можно поручить эту работу ардино. "Сама" они ничего сделать не может. Только то что "вы ей приказали".
Вам сейчас нужно, скорее, не на ардуино форум, а искать даташиты на ваш парктроник. Полазить по форумам форумы автомобилистов. Посмотрите на форумы carduino. Там больше шансов что опознают "автомобильную железяку" и знают "ее протоколы". Только лучше сразу "признаватся" как можно в большем количестве деталей: названия, модели, маркировки микросхем которые удалось разглядеть и т.п.
А то, по крайней мере стартовый топик, у вас получился прямо классический анегдот:"Дорогие товарищи ученые, у меня в подполье третий год раздается стук! Объясните мне, почему и отчего он происходит?"
Ну или, на крайний случай. Уже методом научного тыка - махать руками перед датчиками, смотреть что получается на диаграмме, искать закономерности, делать догадки, проверять их.... ну а когда возникнет понимание "что же там передается", тогда и тут получится задать более конкретные вопросы "как это реализовать", так как будет уже известно ЧТО нужно реализовать.
Про то как снифить парктроник читай здесь
Выше я написал, что у меня получилось. Я читаю и интерпретирую.