ViKo 1 11 ноября, 2019 Опубликовано 11 ноября, 2019 · Жалоба Ну, дела... Как же вы будете "синхронизироваться", обнаруживать свой 16-битовый код, то есть, если лента будет сплошь забита дырами? И где остановится, непонятно. Каков, всё-таки, предполагаете зазор между группами дыр? И про малые отверстия не вижу слов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Plain 224 11 ноября, 2019 Опубликовано 11 ноября, 2019 (изменено) · Жалоба 7 часов назад, _pv сказал: 8 часов назад, Plain сказал: Я бы предпочёл прямое кодирование — для визуального контроля кем угодно без спецсредств тогда ещё столько же "разрядов" придётся потратить на "синхронизацию" ... а так только 4 из 16 Ровно наоборот — на прямое кодирование надо на 5 шт. меньше оптопар. Изменено 11 ноября, 2019 пользователем Plain Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
a123-flex 0 11 ноября, 2019 Опубликовано 11 ноября, 2019 · Жалоба Интересно, а чем эта задача отличается от битовой передачи через линию ? Код задвигается побитно, точно также нужны запрещенные комбинации и механизм разделения слов... Не считая контроля disparity, и требования к коротким комбинациям 1 или 0, код 8b10b вполне претендент. Мы когда выбрасывали требование disparity (оно нам было не нужно, тк через транформатор не шли) получили код 8b9b. 17 часов назад, _pv сказал: тупо перебором для 8ми бит получается последовательность из 32 кодов 8b10b именно так и получали: сформировали требования к коду и машиной подобрали. Имхо. 8:32 это и есть 8b10b. Насчет других кодеков (LFSR, etc) нужно смотреть какие дополнительные избыточные условия наложены на комбинации при формировании кода Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
a123-flex 0 11 ноября, 2019 Опубликовано 11 ноября, 2019 · Жалоба 2 часа назад, ViKo сказал: Ну, дела... Как же вы будете "синхронизироваться", обнаруживать свой 16-битовый код, то есть, если лента будет сплошь забита дырами? И где остановится, непонятно. Это решаемая проблема) Когда поток непрерывный, синхронизация дается запрещенной комбинацией в коде. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 11 ноября, 2019 Опубликовано 11 ноября, 2019 · Жалоба 19 минут назад, a123-flex сказал: Это решаемая проблема) Решение очевидно - не допускать в коде чисел с большим количеством нулей (считая дыру единицей). Там, где много нулей - граница между числами. Предположу, пропуск 4 нулей будет оптимальным. То есть, из 16 - 4 = 12 битовых чисел нужно повыбрасывать все с четырьмя нулями подряд. Саму же последовательность можно оставить монотонной. Лучше показать ленту подлиннее, и в начале и в середине и в конце. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
a123-flex 0 11 ноября, 2019 Опубликовано 11 ноября, 2019 · Жалоба Только что, ViKo сказал: Решение очевидно - не допускать в коде чисел с большим количеством нулей (считая дыру единицей). Так точно) Это только один из вариантов, запрещенная комбинация может быть 1, можно проксорить с 0101010 - тогда у вас запрещенной комбинацией станет длинная последовательность 0101010, etc И вообще. На самом деле вариативность решения велика. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 11 ноября, 2019 Опубликовано 11 ноября, 2019 · Жалоба 3 минуты назад, a123-flex сказал: Это только один из вариантов, запрещенная комбинация может быть 1, можно проксорить с 0101010 - тогда у вас запрещенной комбинацией станет длинная последовательность 0101010, etc Тогда в начале ленты мы видели бы нечто иное, чем нам показали. Запрещена та комбинация, которая является синхронизирующим маркером. Пусть 00001, если считать справа налево. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
a123-flex 0 11 ноября, 2019 Опубликовано 11 ноября, 2019 · Жалоба Я говорю о том, что раз вариативность велика, то нахрена бит в бит подбирать оригинальный код ? Можно взять любой другой не хуже. Тем более что он будет существенно зависеть от геометрических характеристик считывателя и возможностей лазера резки полосы - граничные условия возьмутся оттуда. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 79 11 ноября, 2019 Опубликовано 11 ноября, 2019 · Жалоба 3 hours ago, Plain said: Ровно наоборот — на прямое кодирование надо на 5 шт. меньше оптопар. при сдвиге ровно на пол бита, когда все обычные отверстия будут перекрывать по две оптопары сколько оптопар перекроет S? тоже две? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Plain 224 11 ноября, 2019 Опубликовано 11 ноября, 2019 · Жалоба 1 минуту назад, _pv сказал: сколько оптопар перекроет S? тоже две? Три. 15 минут назад, a123-flex сказал: возможностей лазера резки полосы Теперь понятно, за что такие деньги — я-то думал, они сугубо за патент, а дырки по старинке пресс пробивает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 11 ноября, 2019 Опубликовано 11 ноября, 2019 · Жалоба 12 hours ago, gte said: И, если возможно, фото середины. Сколько стоит считыватель и сколько лента и как "ардуина" заменит ленту. Думаю фото уже не нужны. Вот мой проект - https://github.com/Indemsys/Shift-sequence-codes-generator Кто хочет может играться. Но с кодами на ленте не совпадает. Похоже представление неповторяющихся сдвиговых кодов действительно не единственное, потому что утилита генерирует их подозрительно быстро. Такие коды годны не только для такого типа сенсоров, их можно применить и со сканерами баркодов. С них то и начинался мой проект, ленту там просто печатают. И точность заявляют до 0.1 мм. А точность с оптосенсорами ограничена точностью припайки самих оптопар. LFSR регистры тоже самое что и M-последовательности и никакого преимущества не дают. Только длина окна становится необоснованно большой. Пока лучше чем массив табулированных значений для микроконтроллера я не нашел. Применение STM32F103RCT6 c 256 КБ на борту косвенного говорит, что производитель тоже применил табличный метод. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 11 ноября, 2019 Опубликовано 11 ноября, 2019 · Жалоба 31 минуту назад, a123-flex сказал: Можно взять любой другой не хуже. Здесь постоянную составляющую убирать не надо. Наоборот, чем меньше дыр, тем прочнее и точнее лента. 7 минут назад, AlexandrY сказал: Пока лучше чем массив табулированных значений для микроконтроллера я не нашел. Табулированных - это что? Табличных или табуированных (от "табу")? Если сделать код монотонным (о котором пишу), то сравнивая последовательно с запрещенными числами и декрементируя в случае превышения, можно обойтись только таблицей запрещенных чисел. Думаю, что фото дало бы нам истину. Ну, нет, так нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 11 ноября, 2019 Опубликовано 11 ноября, 2019 · Жалоба 4 minutes ago, ViKo said: Думаю, что фото дало бы нам истину. Ну, нет, так нет. Я считаю это задачей для программистов. Т.е. ответом может быть только рабочий код. Он очень простой. Цель понятна, а фотографии ленты вызывают только непродуктивные гадания. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
a123-flex 0 11 ноября, 2019 Опубликовано 11 ноября, 2019 · Жалоба Только что, Plain сказал: Теперь понятно, за что такие деньги — я-то думал, они сугубо за патент, а дырки по старинке пресс пробивает. Таки я думаю дырки достаточно точные, чтобы их прессом бить. Сарказм дело отличное, но не к месту здесь. Да и ровная пластина должна быть, а не жеваная, и она ровная. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 11 ноября, 2019 Опубликовано 11 ноября, 2019 · Жалоба Выложу все таки фотки другого конца 10 метровой ленты 28 minutes ago, ViKo said: Табулированных - это что? https://ru.wikipedia.org/wiki/Табулирование_функции Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться