Ви не увійшли.
Сторінки 1
Здраствуйте дорогие участники форума!!!
Не могли бы ВЫ помочь ну или обыяснить как реализовать устройство информацинного табло,я в программирование совсем новичек но хотелось бы сделать данное устройство, но не как не могу понять как сделать что ты при получения нужного байта данных выводилась та или инная цыфра.
Заранее СПАСИБО
вот данный протокол
Управление табло осуществляется пакетами различной длины. Контроль целостности пакетов и достоверность доставки не предусмотрены. Ответный пакет не предусмотрен. Байты значением до 0x20 используются только в служебных целях (начало и окончание пакета) и в теле пакета встречаться не могут. Формат пакета следующий:
____________________________________________________________________
Длина (байт) Значение (hex) Назначение
1 0x01 Признак начала пакета установки данных
1 0x20…0x7F Адрес табло
1 0x20…0x7F Режим мигания: 0x20 – не мигает;
0x21 – мигает постоянно;
0x22…0x7F – мигает (N-0x21) раз.
N 0x20…0x7F Данные пакета для отображения на табло
1 0x07 Признак окончания пакета
____________________________________________________________________
Данные пакета передаются в виде ASCII-кодов тех символов, которые следует отобразить на табло. Например, для отображения символа «7» будет передано значение 0x37.
Неактивний
Заранее СПАСИБО
Я вам давно уже показал ваше решение в 3 строчки, на другом форуме: http://arduino.ru/forum/programmirovanie/pomogite-s-protokolom-0#comment-352616
Заранее ПОЖАЛУЙСТА
Остання редакція Olej (2018-03-15 16:49:18)
Неактивний
привет
вы делаете табло или dev для вывода на табло ?
похож на протокол этих товарищей
http://vkmodule.com.ua/
да делаем табло, и оно получает данные от сервера для вывода номерной информации по донному протоколу, вот холи попробовать сделать его сами ну и решили попросить помощи у людей так как в программирование только новички
Неактивний
купить готовое будет дешевле - если вопрос в цене,
если форма специфическая
или есть желание развлечься - делайте. это святое )
задача по сути примитивная - если у вас не получается найти в потоке первый байт пакета и дождатся окончания пакета -
закажите ет спецы быстро сделают
разве что рекомендую изменить ТЗ
скажи те что то типа такого
нужен софт для ардуино с UART протоколом -
по тексту
....
1 ) UART реализовать в прерываниях
2) данные из протокола вывести на LCD
и никакого упоминая табло. а то сразу и цена в 4 раза выше, и непонимае что нужно сделать.
успехов.
Неактивний
спасибо за предложение но проблемма и менно в бюджете, поэтому и обратился к умным людям, хотелось бы самому сделать но не как не могу понять только одного как принетый пакет перевести в цыфру для отображения,
Неактивний
Я вам давно уже показал ваше решение в 3 строчки, на другом форуме: http://arduino.ru/forum/programmirovanie/pomogite-s-protokolom-0#comment-352616
Заранее ПОЖАЛУЙСТА
О-ба-на...
Там пацаны по убогости своей так берегут свою возможность срубить 3 копейки "с лоха" - что удалили написанное решение.
Неактивний
там вообще не кто не хотел помогать, ребята я извиняюсь я не правильно объяснил проблему.
Я у вас хотел узнать как сделать так что бы на сегменте отображалось то что приходит, там видь приходит код в а как его преобразовать в число я не могу понять
Неактивний
Не могли бы ВЫ помочь ну или обыяснить как реализовать устройство информацинного табло,
...
вот данный протоколУправление табло осуществляется пакетами различной длины. Контроль целостности пакетов и достоверность доставки не предусмотрены. Ответный пакет не предусмотрен. Байты значением до 0x20 используются только в служебных целях (начало и окончание пакета) и в теле пакета встречаться не могут. Формат пакета следующий:
Вы плохо, невнятно описываете свои хотелки - вот вам плохо и невпопад отвечают.
Вы что хотите:
А). эти ваши протокольные пакеты приходят откуда-то на Arduino, который и управляет вашим табло (т.е. Arduino декодирует эти пакеты и затем уже как-то напрямую управляет сегментами вашего табло);
Б). эти ваши протокольные пакеты должен формировать Arduino для того, чтобы отправлять их на табло (т.е. Arduino предстоит закодировать пакет для управления табло);
Т.е. где вы ставите Arduino? ... где-то извне откуда управляется табло, или внутри табло?
Неактивний
robber пише:Не могли бы ВЫ помочь ну или обыяснить как реализовать устройство информацинного табло,
...
вот данный протоколУправление табло осуществляется пакетами различной длины. Контроль целостности пакетов и достоверность доставки не предусмотрены. Ответный пакет не предусмотрен. Байты значением до 0x20 используются только в служебных целях (начало и окончание пакета) и в теле пакета встречаться не могут. Формат пакета следующий:
Вы плохо, невнятно описываете свои хотелки - вот вам плохо и невпопад отвечают.
Вы что хотите:А). эти ваши протокольные пакеты приходят откуда-то на Arduino, который и управляет вашим табло (т.е. Arduino декодирует эти пакеты и затем уже как-то напрямую управляет сегментами вашего табло);
Б). эти ваши протокольные пакеты должен формировать Arduino для того, чтобы отправлять их на табло (т.е. Arduino предстоит закодировать пакет для управления табло);
Т.е. где вы ставите Arduino? ... где-то извне откуда управляется табло, или внутри табло?
Я звиняюсь за не правильное разъеснение, я получаю протокольные пакеты из вне на ардуино к которому подключины 3 сегмента, и мне надо выводить принятый пакет на них
Неактивний
Я звиняюсь за не правильное разъеснение, я получаю протокольные пакеты из вне на ардуино к которому подключины 3 сегмента, и мне надо выводить принятый пакет на них
Ну вот, уже что-то понятно, вы уже двигаетесь в нужном направлении ... только пока ещё о-о-о-очень медленно
"Извне" это по какому интерфейсу вы их получаете? Serial?
Что за такие "3 сегмента"? Бывают разные индикаторы, но среди них не бывает 3-сегментных
Но уже у вас выделились 2 полностью автономные, независимые друг от друга задачи:
1. Принять и декодировать приходящий пакет (и здесь учесть очень неприятную вещь: что вы будете делать и как, если вы потеряете как-то 1 байт, и рассинхронизируетесь с форматом пакета? как станете восстанавливать синхронизацию?).
2. Полученные в предыдущей задаче байты данных отображать на индикатор ... с которым пока совершенно непонятно что там за индикатор.
Неактивний
robber пише:Я звиняюсь за не правильное разъеснение, я получаю протокольные пакеты из вне на ардуино к которому подключины 3 сегмента, и мне надо выводить принятый пакет на них
Ну вот, уже что-то понятно, вы уже двигаетесь в нужном направлении ... только пока ещё о-о-о-очень медленно
"Извне" это по какому интерфейсу вы их получаете? Serial?
Что за такие "3 сегмента"? Бывают разные индикаторы, но среди них не бывает 3-сегментных
Но уже у вас выделились 2 полностью автономные, независимые друг от друга задачи:
1. Принять и декодировать приходящий пакет (и здесь учесть очень неприятную вещь: что вы будете делать и как, если вы потеряете как-то 1 байт, и рассинхронизируетесь с форматом пакета? как станете восстанавливать синхронизацию?).
2. Полученные в предыдущей задаче байты данных отображать на индикатор ... с которым пока совершенно непонятно что там за индикатор.
У меня в схема стоит 3 семи пигментных индикаторов подключенных на прямую к контроллеру, получаю данные я из сериал порта от ПК, используется динамическая индикация, написать библиотеку динамической индикации я смог а вот выводить нужные мне данные я не как не могу, и не могу понять как мне это сделать,я извиняюсь что сразу все правильно не объяснил
Остання редакція robber (2018-03-18 21:36:57)
Неактивний
Olej пише:robber пише:Я звиняюсь за не правильное разъеснение, я получаю протокольные пакеты из вне на ардуино к которому подключины 3 сегмента, и мне надо выводить принятый пакет на них
Ну вот, уже что-то понятно, вы уже двигаетесь в нужном направлении ... только пока ещё о-о-о-очень медленно
У меня в схема стоит 3 семи пигментных индикаторов подключенных на прямую к контроллеру,
Продолжаем... выпытывать по крохам, как в гестапо у партизана
Согласитесь, что 3 7-ми сегментных индикатора - это не совсем то, что 3 сегмента.
Только совсем уж "напрямую" они не могут быть подключены, напрямую там получается 3х7=21 выходов ... у Arduino стольки нет
И не стоит ли рассмотреть возможность использовать дополнительный промежуточный шилд? ... это я так, на вскидку спрашиваю, разбиравшись недавно с индикатором 1602 подключаемым через I2C шину.
получаю данные я из сериал порта от ПК, используется динамическая индикация, написать библиотеку динамической индикации я смог а вот выводить нужные мне данные я не как не могу, и не могу понять как мне это сделать
Что вы называете "динамическая индикация"? ... может в вашей проф. среде это и строго определённый термин, но я могу под этим подразумевать очень разные вещи.
Остання редакція Olej (2018-03-18 22:29:51)
Неактивний
Я имел в виду вот такую схему подключения, а динамическая индикация я имел в виду вывод каждой цыфры индикатора на частоте что бы не видеть мирцания
Остання редакція robber (2018-03-18 22:43:02)
Неактивний
Я имел в виду вот такую схему подключения, а динамическая индикация я имел в виду вывод каждой цыфры индикатора на частоте что бы не видеть мирцания
По такой схеме (я её так и предполагал) вам требуется 12 управляемых выходов Arduino, из всех 14 доступных (как я понимаю).
Чего то особенно сложного в такой индикации нет ... кроме того, что для начала, "чтобы не видеть мерцания" - вы должны оценить инерционность своего индикатора, и то, на какой минимальной частоте повторения вы ещё не будете видеть мерцания при скважности 3.
Я бы сильно советовал (я бы так делал) просто написать отдельный программный пример (который потом выбросить ) который бы просто поджигал 1 из индикаторов, пусть все его сегменты ... и смотрел (меняя частоту loop в коде) когда индикатор начнёт мерцать.
Начинающие писать программные коды (не важно для какой аппаратуры и каких целей!) обычно норовят сразу писать конечную программу, рассчитывая что "там приложится" - там всё отладят и проверят, но как оказывается, отладить всё в комплексе оказывается бесконечным занятием ... В знаменитой книжке "Мифический человеко-месяц" Дж.Брукс мл. называет это "асфальтовая топь".
Неактивний
Я имел в виду вот такую схему подключения,
Вывод на 7-сегментный индикатор числа, выраженного как символ ('0', '1', '2', ... '9') труда не представляет - я бы делал именно так, именно из символьного представления, это сильно упростит вам отладку, а о какой-то гипотетически-фиктивной "производительности" при простоте вашей задачи беспокоиться нечего.
Но! ... наверняка для такого часто требуемого действия существует готовая библиотека, поэтому первейшее, что следовало бы сделать - это провести тщательный поиск в этом направлении.
Неактивний
Но! ... наверняка для такого часто требуемого действия существует готовая библиотека, поэтому первейшее, что следовало бы сделать - это провести тщательный поиск в этом направлении.
Это настолько частая и даже тривиальная задача, что описаний её решений - море...
Вот, например:
- это пЫанЭрский вариант ... но вполне может быть: Семисегментный 3-х разрядный индикатор;
- а это вот - экономный вариант с минимальным задействованием выходов Arduino: Вывод информации на 4 разрядный 7сегментный индикатор при помощи двух 74hc595.
Вот любопытная основа, для начала (как код это - ахинея, а как исходная отправная точка - нормально):
4 разрядный 7 сегментный индикатор
4х разрядный 7-сегментный индикатор нужен драйвер
А вот здесь вам главная идея как управлять 7-сегментным индикатором - Семисегментный индикатор. Теория управления
Остання редакція Olej (2018-03-19 12:39:18)
Неактивний
как сделать так что бы на сегменте отображалось то что приходит, там видь приходит код в а как его преобразовать в число я не могу понять
У меня вскорости будет стоять такая же задача ... только мои 7-сегментный индикаторы пока ещё только едут с алиэкспресс ... а дорога там не короткая - проверяться не на чем.
Но по такому случаю я могу вам помочь, в общей части, естественно, а не в деталях как вам там оно надо будет - себе адаптируете уже как вам надо будет.
Неактивний
Но! ... наверняка для такого часто требуемого действия существует готовая библиотека, поэтому первейшее, что следовало бы сделать - это провести тщательный поиск в этом направлении.
С другой стороны, уровень профессионализма, квалификации, программистской культуры в сообществе Arduino ... ну, чуть-чуть, может, и повыше плинтуса будет. Это и нормально, в общем, в сообществе самоделкиных и радиолюбителей ... и то хорошо!
P.S. Хотя по форумам и сообществам Arduino есть единичные участники, отличающиеся очень хорошим уровнем и пониманием предмета. Мне (по опыту знакомства и участия в программистских разных сообществах, в разное время за много лет) очень удивительно, необъяснимо для себя, то размежевание ... общий уровень "около плинтуса" + отдельные профессионалы очень хорошего уровня - и всё это при полном отсутствии промежуточного уровня ... "среднего класса".
Поэтому здесь даже среди представленных для общего использования библиотек многое сделано далеко не лучшим образом. И к ним нужно относиться тоже изрядно критически. Как вариант: изучать код, который представляется в библиотеках, и использовать его "по мотивам", но не использовать готовые библиотеки as is ... по крайней мере, когда глядя на них возникают сомнения.
Неактивний
Но! ... наверняка для такого часто требуемого действия существует готовая библиотека, поэтому первейшее, что следовало бы сделать - это провести тщательный поиск в этом направлении.
Есть вот такая библиотека Arduino-SevenSegmentDisplay:
It is 7-segment display library for Arduino.
- Drive one or more digits.
- Both common anode and common cathode are supported.
- Display one digit in static mode.
- Display 2 or more digits in dynamical mode.
- Only support to display positive integer and float number.
Посмотрите.
Может это и всё что вам надо...
P.S.
- библиотеке этой 6 лет от роду ... но вряд ли в этой области что-то меняется;
- библиотека написана сложно, настоящий C++ с использованием template<...> - что-то там подправить у вас вряд ли получится (разве что испортить ), но там придано много примеров использования, в частности TriDigit.ino
Остання редакція Olej (2018-03-19 13:00:16)
Неактивний
Сторінки 1