FLProg
Вход на сайт
Логин:
Пароль:
Мы в VK
Поиск
Статистика


Яндекс.Метрика
Среда, 07.12.2016, 11:34
Приветствую Вас Гость | RSS
Главная | Регистрация | Вход

Поиск по сайту


Форум
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: support, Сергей 
Форум » Основной » Спросить у знатоков » Прием данных через последовательный порт (непрерывная предача)
Прием данных через последовательный порт
Ingwar
Дата: Пятница, 20.11.2015, 11:25 | Сообщение # 1
Рядовой
Группа: Проверенные
Сообщений: 5
Награды: 0
Репутация: 0
Статус: Offline
Доброе время суток, читающие.
Есть трудность приема непрерывных данных. Если вкратце - программка на телефоне передает значение ползунка через блютуз. При передвижении иногда теряются данные. Я так понимаю из за не оптимизированного кода (как впрочем и все объектно ориентированные). Пытаюсь принять N символов из порта (длина передаваемого значения) и сохранять их в переменной. В начале передаваемой строки использую значение как адрес.
Фрагменты программ ниже. Убирая дисплей - теряем меньше данных. Есть предложения по оптимизации учитывая, что исп. устройств будет больше?
Прикрепления: 3468086.png(28Kb) · 4755040.png(82Kb)


Сообщение отредактировал Ingwar - Пятница, 20.11.2015, 17:12
 
Naum Дата: Суббота, 21.11.2015, 08:24 | Сообщение # 2
Рядовой
Группа: Проверенные
Сообщений: 16
Награды: 0
Репутация: 0
Статус: Offline
довольно интересный проект тоже начал этим заниматься если скинешь Посмотрим может быть что-нибудь и помогу.
 
Ingwar Дата: Суббота, 21.11.2015, 21:20 | Сообщение # 3
Рядовой
Группа: Проверенные
Сообщений: 5
Награды: 0
Репутация: 0
Статус: Offline
Так скидывать нечего)). Программка для телефона подсмотрена на ютубе у Dmitry OSIPOV. Только упрощена чуть. Скрин всех моих блоков приложил ниже.
Что касается ардуинки, то из последовательного порта принимаю подряд символы, как только длина строки равна 4ем, записываю всю строку в переменную (Data) и обнуляю буфер приема в порту. Потом из записанной строки вытаскиваю первых 2 символа, перевожу их в число, сравниваю его с константами и команда с компаратора дает разрешение на соответствующий выход. Из этой же строки вытаскиваю символы начиная с 3го и до конца, перевожу в числа и после обработки подаю на соотв. выходы.
А проблема бывает в том, что принимаемые символы ардуинка не всегда успевает обработать и они теряются. Это может отразится на том, что записываемые в переменную строки не всегда начинаются с нужных символов и может произвольно сработать нерегулируемый выход. Т. е. если нормальная строка допустим 4060, то согласно блок схеме, число 60 после обработки попадает на серво-привод. Но бывает теряются первые 2 знака и в буфер попадает 60 с первой пачки и начальные 40 со следующей. Как следствие - число 40 попадает на выход ШИМ, хотя вы сами туда данные не отсылали... Забавно то, что каким то неведомым для меня способом, пропустив знаки, контроллер все равно позволяет управлять исполнительным устройством, команды на который вы передаете. Отследить что на самом деле происходит с числами и строками невозможно, поскольку добавление экрана усугубляет ситуацию.
Не пробовал контролить через компорт. Последовательный порт для приема данных использую софтовый (лень вынимать проводки при прошивке). Надеялся, что кто-нить уже сталкивался с похожим...))
Прикрепления: 0838396.png(216Kb)
 
Naum Дата: Суббота, 21.11.2015, 21:39 | Сообщение # 4
Рядовой
Группа: Проверенные
Сообщений: 16
Награды: 0
Репутация: 0
Статус: Offline
Я тоже сейчас учусь по этим уроком
мне тяжело говорить о том что я не могу пощупать и посмотреть но напрашивается идея Выполняеть всю обработку в Андроиде и посылать только команды на Arduino или сделать какую-то обратную связь для подтверждение команд
 
Skull Дата: Суббота, 21.11.2015, 22:29 | Сообщение # 5
Подполковник
Группа: Проверенные
Сообщений: 299
Награды: 5
Репутация: 2
Статус: Offline
Хорошая прога. Тоже мучаю потихоньку. пробовал прикрутить к умному дому, вроде получается. App Inventor называется. Теперь доступен и на русском языке.
Вот мой проект по вкл\выкл света и считыванию температуры и влажности
Прикрепления: ESP8266.aia(896Kb)


Сообщение отредактировал Skull - Суббота, 21.11.2015, 22:36
 
Форум » Основной » Спросить у знатоков » Прием данных через последовательный порт (непрерывная предача)
Страница 1 из 11
Поиск:

FLProg © 2016
Яндекс.Метрика