Новичок. Вопросы и помощь.
- Войдите на сайт для отправки комментариев
Всем привет, я новичок и полный ноль в программировании.
В голове есть проект, а вот программную реализацию не осилю без помощи.
Есть устройство на ардуинке, которое читает шину данных автомобиля. Задача устройства отслеживать нужные сообщения. В данном случае температуру ОЖ.
По шине бегает куча сообщений от разных блоков управления. Нужно отфильтровать нужные, и из них выделить искомые значения.
Пример сообщения
xx yy zz ** ## ck, где
xx отправитель,
yy получатель,
zz длина пакета,
** ## само сообщение,
ck чек сумма.
Нужно вы делить данные этого сообщения и преобразовать в удобоваримый вид, например строку .
С аппаратной частью вопросов нет, а вот с программой без помощи не разберусь.
Ну и может посоветуете, что почитать для начала программирования. Учебник или что-нибудь подобное.
Сверху справа есть такое поле написано "Пользовательский поиск" вот там набираете "arduino can" и читаете, там даже скетчи готовые есть которые сосканят шину и выведут в удобном виде останется тоьлко отфильтровать, а если почитать еще подольше то можно найти и отфильтровку.
У меня вопрос к ТСу и ему подобным? Что за странная манера называть подобным образом темы? Это все-равно, что назвать свою книгу "Молодой автор. Книга для чтения". Ну напрягите извилины. Неужели вашей буйной фантазии не хватает, чтобы дать теме осмысленное название, хоть немного связанное с ее содержанием? Не можете связать три слова вместе - ну тогда хоть в качестве названия просто перечислите ключевые слова.
Спасибо за направление поиска в поиске. Пока не разобрался, можно ли менять заголовок. Почитаю про can, переосмыслю заголовок.
Всем доброго дня ! Вопрос есть такой : возможно ли запрограммировать на Ардуино выполнение определенного действия при помощи двух кнопок ? А именно: нажали одну кнопку , удерживая ее , нажимаем на вторую и только после этого выполняется та или иная команда .
Всем доброго дня ! Вопрос есть такой : возможно ли запрограммировать на Ардуино выполнение определенного действия при помощи двух кнопок ? А именно: нажали одну кнопку , удерживая ее , нажимаем на вторую и только после этого выполняется та или иная команда .
Возможно.
Хорошо ,спасибо ! А оператор regim подходит для этого ?
Если другой более подходит , подскажите , пожалуйста.
Хорошо ,спасибо ! А оператор regim подходит для этого ?
Можно ссылку или описание, про "оператор regim" ?
Откуда вы это вытаскиваете-то ?
Про оператор regim прочитал здесь на этом форуме . Хотя там приводится пример про запуск действия от долгого нажатия кнопки. (http://arduino.ru/forum/programmirovanie/zapusk-funktsii-pri-dolgom-zazh...). Про двух кнопок ничего не могу найти .
аааа вот оно что, тады я думаю вам лучше подойдет оператор button_long_state.
он памяти меньше занимает и работает быстрее.
аааа вот оно что, тады я думаю вам лучше подойдет оператор button_long_state.
он памяти меньше занимает и работает быстрее.
Спасибо ,xDrive ! Но там команды выполняет одна и та же кнопка . Разница только во времени ее удержания .
ну конечно, надо будеть подумать и поработать головой и руками,
ну думаю там все просто, добавляем оператор на вторую кнопку btnPress2 и он автоматом начинает отслеживать нажатие первой и только после этого когда нажата вторая выполняет команду DoPressBtn2 (эту команду тоже надо добавить).
ну конечно, надо будеть подумать и поработать головой и руками,
ну думаю там все просто, добавляем оператор на вторую кнопку btnPress2 и он автоматом начинает отслеживать нажатие первой и только после этого когда нажата вторая выполняет команду DoPressBtn2 (эту команду тоже надо добавить).
Спасибо за подсказку ! Постараюсь понять и воплотить .)))
Удачи, напишите о результатах.
Хорошо ! Если вопросы возникнут , сюда и буду обращаться . В теме " работа с кнопками " какая-то революция происходит ... Раньше там общался .
Хорошо ! Если вопросы возникнут , сюда и буду обращаться . В теме " работа с кнопками " какая-то революция происходит ... Раньше там общался .
"Я их в дверь, они в окно"(с). Рома и подобные, у вас за открытие своей темы с осмысленным названием и возникшими вопросами, денег что ли спрашивают? Открыли тему, с названием указывающим на проблему, а не "поможите хто могет", выложили скетч, описали что не так и что предпринимали для исправления. Если вопрос не идиотский, то ответят, если первое, то поглумятся всласть.
Доброго дня суток ! xDriver, не совсем пошло , как хотелось бы ...
Прицел работает , т.е. пока удерживаю кнопку L1 горит индикатор , отпускаю -гаснет . Но к сожалению серво работает сама по себе , а хотелось бы , чтобы она сработала только в паре от нажатия кнопки L1 .
Прицел работает , т.е. пока удерживаю кнопку L1 горит индикатор , отпускаю -гаснет . Но к сожалению серво работает сама по себе , а хотелось бы , чтобы она сработала только в паре от нажатия кнопки L1 .
Так проверяйте признак нажатия для двух кнопок перед командованием сервой...
Добрый день ! Понимаю, что с flag ом надо поработать . Только не могу на практике (((
Не обязательно. В условия "Прицела" вложите дополнительно условия "Выстрела". Или что там у вас серва делает.
Всё получилось ! Спасибо всем , кто помогал .
Сейчас переделываю скетч домофонного замка под свои условия и столкнулся с проблемой нехватки памяти.
Меток rfid около 100 штук номера у всех разные.
Купил не перезаписываемые по глупости, теперь мучаюсь)
Можно ли как-то изменить скетч чтобы можно было использовать все существующие метки ?
И еще вопрос: при работе скетча с двумя - тремя метками почему-то отрабатывается двойное считывание метки. Точнее не двойное, а по два раза прописывается номер метки и происходит слабый щелчек в реле. Его еле слышно, но он есть при втором отображении номера метки. После завершения процедуры происходит полноценный щелчок и реле отключается.
можно не строками хранить, а числом.
инвариантную часть "2504948485" отбрасываем (или не отбрасываем, по желанию), число влазит в uint64_t.
В EEPROM можно 128 ключей хранить.
Можно и строками оперировать, но хранить тогда их 32-разрядный хэш. тогда еще больше ключей влезеть.
P.S. Скажы, что у тебя за модуль RFID, который SoftwareSerial прикидываеца?
P.S. Скажы, что у тебя за модуль RFID, который SoftwareSerial прикидываеца?
https://ru.aliexpress.com/af/rdm6300.html?d=y&origin=n&blanktest=0&jump=...
DIYMan, спасибо. Так и думал, что на 125 кГц. Не пайдеть.
DIYMan, спасибо. Так и думал, что на 125 кГц. Не пайдеть.
Чо так? Удобная штука, кста - не надо геморроя, чем тебе 125 кГц не угодили? :)
125Мгц метки. а модуль 6300 кажись - тот что с квадратной рамкой-антенной с алиэкспресс.
в оригинале скетча использовался вот такой код - где и было прописано uint64_t . но этот кусок кода ,насколько я понял из пояснений, отвечает за сравнение 14 чисел массивов прочтенного ключа и внесенного в базу. хотя я не понимаю каким образом система понимает что было прочтено, а что берется из базы. вариант оригинального скетча не устроил по причине трудоемкости разделения запятыми при внесении в список валидных ключей в таком количестве.
и не могу найти инфу по uint8_t. может кто сталкивался с более менее подробным описанием ?
и не могу найти инфу по uint8_t. может кто сталкивался с более менее подробным описанием ?
это unsigned char тривиальный.
и не могу найти инфу по uint8_t. может кто сталкивался с более менее подробным описанием ?
это unsigned char тривиальный.
типа byte, на Ардуиновском.)))
и не могу найти инфу по uint8_t. может кто сталкивался с более менее подробным описанием ?
https://ru.wikipedia.org/wiki/Stdint.h
http://avr-libc.narod.ru/group__avr__stdint.html
Меток rfid около 100 штук номера у всех разные.
Купил не перезаписываемые по глупости, теперь мучаюсь)
Можно ли как-то изменить скетч чтобы можно было использовать все существующие метки ?
1. Перенести в PROGMEM, после чего сразу освободится 2700 байт оперативной памяти. В принципе этого достаточно. И даже достаточно для того, чтобы добавить еще 500 меток.
2. Если все-таки хочется большего, воспользоваться советом DetSimen, только в uint64_t использовать не двоичное, а двоично-десятичное представление, чтобы из одного байта сразу извлекать 2 цифры вместо очень длительных операций многократного деления uint64_t на степени десятки.
andriano, а эта бибка номер ключа только текстом отдавать умеет штоли?
andriano, а эта бибка номер ключа только текстом отдавать умеет штоли?
Я понятия не имею, о какой библиотеке речь. В обсуждаемом исходнике фигурирует только SoftwareSerial.
Но когда не хватает памяти для размещения статических данных, возникает два предложения:
1. Поместить данные в более объемное хранилище (возможно, внешнее).
2. Сжать данные.
Ваш ответ был посвящен исключительно 2 способу. Я упомянул, что существует также первый.
Ну и, непосредственно не Ваш вопрос: можно хранить в сжатом виде, а отдавать "только текстом".
спасибо. просто я тоже с такими модулями не работал, вот и спросил.
andriano, а эта бибка номер ключа только текстом отдавать умеет штоли?
Ага - этот RFID-reader при поднесении ключа пхает его данные в виде строки в UART. На самом деле - крайне удобно, кода - мизер.
Thanx a lot.
Thanx a lot.
Слу, я соврамши: там он не в виде строки пихает, а пакеты по N байт приходят постоянно, если метка приложена. Короче, ещё удобней :) Я и подзабыл уже, давно его юзал, щас поднял код - я его сам для теста в виде строки в Serial выводил, но код метки - в байтах приходит.
RDM6800 так шлёт: ftp://imall.iteadstudio.com/Modules/IM131218001/DS_IM131218001.pdf
Каждый пакет - заканчивается переводом строки, т.е. читать можно до \r\n - и усё: ключ приложен. Там ишшо есть и прерывание на ноге - если ключ приложен, на 10 ms на ноге импульс.
Но учти: есть разные модули, и по разному шлют инфу в UART. Вот этот, например, по-другому: http://wiki.seeed.cc/125Khz_RFID_module-UART/
Во, нашёл свой древний код баловства с RDM6300 на амперке: http://forum.amperka.ru/threads/rfid-rdm6300.8816/
const PROGMEM uint64_t Str[] = { 65253555453653 , 46654545166503 , 64853535451653 };
вроде бы так закидывается в PROGEM ?
а вот как это дело извлекать ?
const PROGMEM uint64_t Str[] = { 65253555453653 , 46654545166503 , 64853535451653 };
по вашему совету откинул инвариативную часть - помогло, спасибо. кстати, в полном виде все цифры не влезали почему-то. или я что-то не так делаю?)
Всем привет! Ищу помощи профи поэтому сюда и пришел. Помогите в сборке такой штуки как на фото, но хочется добавить прибору автономности и запитать от небольшой монокристаллической солнечной батареи. Сам я ничего в этом не секу, только паять умею)
Вам очень повезло, что я решил ответить первым. Ибо подобные комментарии и просьбы мгновенно огребают тонны ненависти.
Чем Вам помочь? Точнее, какую именно помощь Вы хотите получить? На фото, как я понимаю метеостанция. Вы хотите такую же? Начните с того, что почитайте про метеостанции на ардуино. Таких проектов в интернете тысячи. Прямо так и наберите в гугле "метеостанция ардуино". Здесь Вам обязательно помогут, но с какими-то более конкретными вопросами. Или Вы хотите, чтобы Вам нарисовали схему подключения и написали код? Тоже вроде здесь практикуется, но этим в платном разделе люди занимаются.
Lin-air, сотни ненависти тебе в карму от мня ... Открой тему и огребай там.
А DIYMan в карму одни ништяки. :)
поиски по теме в сети дали следующий результат, который, к слову, не работает)
пытаюсь вывести в монитор порта значение buffer , но почему-то после надписи "ye" ("s" отсутствует) пишется квадрат и несколько пробелов.
del
del
Не совсем понятна причина такой агрессии, ну да ладно.
Итак исходя из всего что я прочитал и увидел в интернете, я понял что точно нужна помощь или совет профессионала по части электроники, поэтому в кратце что хочется получить - это два блока внешний и внутренний.
Внешний блок для измерения температуры, влажности(сухо, дождь), давления, уровня освещенности(солнечно, пасмурно, ночь), скорости(анемометр)и направления ветра (флюгер?), передачи информации на внутренний блок по wifi, вопрос с питанием - возможно ли запитать от солнечной панели внешний блок или нет и каковы будут габариты панели если возможно.
Анемометр - как я понимаю необходимы оптический датчик? Вал крутится, окошко открывается и закрывается, исходя из частоты происходит анализ. Ну это как я себе представляю.
Флюгер - тут мне пока не ясно, может что то посоветуете?
Внутренний блок измерение внутренней температуры и влажности, получение информации с внешнего блока по wifi, вывод информации на один большой дисплей, либо на отдельные маленькие дисплеи где каждый отображает данные одного датчика.
Я так понимаю все необходимые железки можно заказать с али, но какие именно? Как просчитать питание для системы? Какие инструменты понадобятся, что нужно изучить, с чего начать?
Заранее благодарен.
Не совсем понятна причина такой агрессии, ну да ладно.
Итак исходя из всего что я прочитал и увидел в интернете, я понял что точно нужна помощь или совет профессионала по части электроники, поэтому в кратце что хочется получить - это два блока внешний и внутренний.
Я так понимаю все необходимые железки можно заказать с али, но какие именно? Как просчитать питание для системы? Какие инструменты понадобятся, что нужно изучить, с чего начать?
Заранее благодарен.
Листаете для начала хотя бы этот форум. Были разные темы по заданным вопросам. Подбираете подходящее оборудование, создаете схему, выкладываете, там возможно пойдет диалог и советы. Программирование тоже придется изучить, либо повезет и найдете единомышленника, что вряд ли. Если хотите готовое, то в "Ищу исполнителя". Это ФОРУМ АРДУИНО.РУ
Ну не делают здесь хотелки, не делают.