Я где-то у китайцев на али видел шилды в виде "заготовок", на которые можно напаять свою схему, это избавляет от необходимости делать плату, но без пайки все-равно никак.
не очень, а что нужно будет паять? тут все так выглядело что можно и без пайки обойтись я так понял
без пайки можно обойтись - но в итоге все получится раз в 10 обьемнее и раз в 20 дороже, чем если собрать из отдельных элементов. Вот, к примеру - такой диод, как вы привели на скартинке выше - в виде отдельной детальки стоит не дороже 5-10 центов.
И еще - если планируется мобильность с питанием от батареек - единственный вариант собственная плата, собранная из отдельных элементов, так как многие готовые модули имеют потребление в десятки и сотни раз больше, чем элементы, из которых они собраны.
Да, только там эта плата все-равно под заказ и надо будет ждать поставку, плюс заплатите за доставку в ваш город, а у китайцев все это будет стоить всего пару баксов вместе с доставкой, плюс в комплекте дополнительные плюшки в виде штырей, разъемов, пары кнопок, светодиодов с резисторами и маленькой макетки.
но это я так понял что нужно будет от пина к пину проводки припаять и все? в нете есть инфа как шилд сделать самому или у каждого свой враиант как сделать??
Если планируете засунуть все это хозяйство в какой-нибудь корпус и навеки, то с шилдом можно, конечно, и не заморачиваться. А аккуратно подпаяться проводами непосредственно к плате ардуины. И обеспечить, чтобы это все не болталось в корпусе. В этом плане, например, Nano будет куда удобней и менее габаритней чем Uno (Pro Mini для вашего уровня рекомендовать не осмелюсь).
Да какое 0.1??? Почитайте наконец описание этой функции. Там оно должно быть long - т.е.целое, а не дробное. Ну и подумайте, если по умолчанию оно 1000, то наверное не зря? А вы его в ничто сразу вот так превращаете.
Можете еще попробовать не через временную задержку, а передавать после комманды какой-то левый символ, например, пробел, подчеркивание, ..., да что угодно, только не R, G, B, и не цифру. Тогда, когда Serial.parseInt() наткнется на этот символ, он прекратит чтение и не будет ждать. Т.е. передавать, например, "B250 " (после ноля идет пробел).
ну да я так пробовал если пробел писать в конце каждой команды то оно более менее плавно работает, а потом вы предложили эту функцию и с ней не нужно вставлять пробелы
Кто его знает, будут не будут, но могут. Я же писал, для чего используют таймаут. А если из-за удаленности, помех или еще чего-то связь будет плохой и ардуина будет вычитывать байты быстрее, чем они будут поступать и при этом почти не будет ждать следующего? Отослали вы, к примеру, комманду "R150", а последний нолик "не успел" и ардуина прочитает это сначала как "R15", а при следующем цикле лупа - "0".
тоесть нужно все-таки подогнать это значение с таймаута для корректной работы, а вот вы в начале говорили что можно как то оптимизировать скетч типа для уменьшения колличества всяких проблем, так вот что это значит оптимизировать?
Не помню и не хочу перечитывать всю тему, скорее всего я это говорил в отношении предпоследней версии скетча, в котором была только заложена основа функциональности. Последняя версия вполне рабочая. Совершенствовать можно бесконечно. Например, избавиться от delay, но смысла в такой простой программе не вижу. Если захотите, то пускай это будет вашим домашним заданием.
та тут домашнего задания еще вагон и маленькая тележка, ведь микроконтроллер запрограмировать это пол беды или даже треть еще нужно на андроид дописать а потом и микроконтроллер упаковать красиво
ну да я так пробовал если пробел писать в конце каждой команды то оно более менее плавно работает, а потом вы предложили эту функцию и с ней не нужно вставлять пробелы
Drew20 - вставить пробел в конце будет надежнее, чем уменьшать таймаут. Что вы так этого боитесь - вам эти пробелы не вручную вводить. Неужели сложно один лишний символ в программе на андроиде добавить?
Если не устраивает Serial.parseInt() можно поменять подход и обойтись без него. Но тогда команду надо передавать целиком, отдельно цвет, отдельно задержку - уже не получится. Например, принять за формат команды три байта: в первом кодировать цвет (например, единица соответствует красному цвету, 2 - зеленому, 3 - синему), второй и третий - задержка. Но тут тоже есть свои подводные камни.
Если не устраивает Serial.parseInt() можно поменять подход и обойтись без него.
да не понятно, что Drew устраивает, а что нет. Скорее всего он сам не знает, что хочет. Он этот же вопрос сегодня на Амперке задал , я ему посоветовал на выбор - пробел в конце команды либо отказ от parseInt и разбор команды вручную. Там он выбрал пробел, а тут с вас стребовал задержку - в общем, хитрый лис :) Не доверяю я таким :)
та ну просто сейчас есть два варианта решения этой проблемы каждый из которых рабочий, а теперь нужно выбрать какой взять, просто и тот и тот дают одинаковый результат и вот я теперь в замешательстве)))
:) в этом тоже что-то есть. Что-то посоветуют в одном месте, что-то в другом, что-то в третьем... - будет из чего выбрать. Или не доверяет одному источнику.
та не я всем доверяю, просто я на форумы только на прошлой неделе начал обращаться до этого три месяца сидел сам ковырялся, а тут столько вариантов и все не против помочь, так что я теперь могу почитать предложенную литературу и выбрать что то более менее подходящее для моих потребностей)))
В вашем случае, лучше используйте пробел в конце команды, так будет проще, тем более, что такой вариант вам посоветовало уже двое.
Я не знаю, определились ли вы уже, как будете передавать команды - по отдельности цвет и задержку или в одной команде и то и другое, но учтите, что пробел нужен только после числа, после цвета его не надо.
та ну просто сейчас есть два варианта решения этой проблемы каждый из которых рабочий, а теперь нужно выбрать какой взять, просто и тот и тот дают одинаковый результат и вот я теперь в замешательстве)))
При возникновении проблемы "Буриданова осла", наиболее рациональным решением, является метод подбрасываемой монетки.))))
а можно скорость порта назначить не 9600 а 10000 например???
Для красоты что ли? Так никто не делает. Есть некий общепринятый ряд скоростей передачи данных: 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400 и т.д. Промежуточные значения практически не используются.
ну просто я когда передаю данные с телефона на микроконтроллер то у меня часто он тупит тоесть принимает информацию с опозданием, вот я и подумал если увеличить скорость то может я смогу решить эту проблему хотя когда я увеличил скорость до 19200 то у меня в мониторе порта какая-то фигня полезла вместо нормальных символов
ой что то протупил, а увеличение скорости может решить мою проблему ту которую я пытался описать?
"это вряд ли" (с)
У вас передается всего 3-4 символа, при скорости 9600 это 3-4 тысячные секунды, при 19200 будет вместо 4 тысячных - две. Не думаю. что вы 2 от 4х тысячных на взгляд отличите :)
на каком передатчике? я с телефона передаю данные, но 19200 все равно не помогло, просто полезли квадратики какие-то
ваш телефон - это "передатчик", ардуина - "приемник". Чтобы использовать скорость 19200 - ее нужно выставить и в скетче на ардуино и в программе на андроиде.
Я где-то у китайцев на али видел шилды в виде "заготовок", на которые можно напаять свою схему, это избавляет от необходимости делать плату, но без пайки все-равно никак.
не очень, а что нужно будет паять? тут все так выглядело что можно и без пайки обойтись я так понял
без пайки можно обойтись - но в итоге все получится раз в 10 обьемнее и раз в 20 дороже, чем если собрать из отдельных элементов. Вот, к примеру - такой диод, как вы привели на скартинке выше - в виде отдельной детальки стоит не дороже 5-10 центов.
И еще - если планируется мобильность с питанием от батареек - единственный вариант собственная плата, собранная из отдельных элементов, так как многие готовые модули имеют потребление в десятки и сотни раз больше, чем элементы, из которых они собраны.
это я так понял что на такую штуку нужно паять будет все что нужно
https://arduino.ua/prod395-Pechatnaya_plata_dlya_shilda_pod_Arduino_Uno_...
Да, только там эта плата все-равно под заказ и надо будет ждать поставку, плюс заплатите за доставку в ваш город, а у китайцев все это будет стоить всего пару баксов вместе с доставкой, плюс в комплекте дополнительные плюшки в виде штырей, разъемов, пары кнопок, светодиодов с резисторами и маленькой макетки.
Например:
https://ru.aliexpress.com/item/UNO-Proto-Shield-prototype-expansion-boar...
https://ru.aliexpress.com/item/Free-Shipping-UNO-Proto-Shield-prototype-...
https://ru.aliexpress.com/item/1pcs-lot-Smart-Electronics-For-Arduino-UN...
но это я так понял что нужно будет от пина к пину проводки припаять и все? в нете есть инфа как шилд сделать самому или у каждого свой враиант как сделать??
Вы только недавно говорили, что для вас пайка проблема. А сейчас уже сами хотите плату делать???
ну у меня нет другого выхода кроме как постигнуть исскуство пайки
Ну так зачем тогда самому мучаться с изготовлением платы? Купите заготовку шилда и напаяйте на нее bluetooth-модуль и светодиод с резисторами.
а ножки у блютуз модуля гнуть можно?? это ему не навредит?
Это смотря какие ножки и как их гнуть :)
Можно отпаять те согнутые, и напаять прямые. В крайнем случае можно и те, что есть, попробовать выровнять.
а вот вопрос я насколько понял что ту задержку в serial.peek() менять нужно в это месте:
Если планируете засунуть все это хозяйство в какой-нибудь корпус и навеки, то с шилдом можно, конечно, и не заморачиваться. А аккуратно подпаяться проводами непосредственно к плате ардуины. И обеспечить, чтобы это все не болталось в корпусе. В этом плане, например, Nano будет куда удобней и менее габаритней чем Uno (Pro Mini для вашего уровня рекомендовать не осмелюсь).
Нет, достаточно один раз в сетапе. И это, 0.00001 - прикалываетесь? Обратите внимание на размерность, она задается в мс.
та ну просто я уже купил уно может у нано свои примочки
а ну да тут немного протупил, тоесть где 0,1 хватит с головой
хотя я вставил в сетап то теперь светодиод просто светит и все можно только цвета менять, походу лучше там оставить где оно было
Да какое 0.1??? Почитайте наконец описание этой функции. Там оно должно быть long - т.е.целое, а не дробное. Ну и подумайте, если по умолчанию оно 1000, то наверное не зря? А вы его в ничто сразу вот так превращаете.
Можете еще попробовать не через временную задержку, а передавать после комманды какой-то левый символ, например, пробел, подчеркивание, ..., да что угодно, только не R, G, B, и не цифру. Тогда, когда Serial.parseInt() наткнется на этот символ, он прекратит чтение и не будет ждать. Т.е. передавать, например, "B250 " (после ноля идет пробел).
ну да я так пробовал если пробел писать в конце каждой команды то оно более менее плавно работает, а потом вы предложили эту функцию и с ней не нужно вставлять пробелы
Весело у вас тут :)
Не то слово :)
блин только хотел написать
я вот вставил в сетап эту функцию с значением 10 и нормально вроде
Вы попробуйте отойти со смартфоном на какое-то расстояние и снова попробуйте. Не факт, что будет стабильно.
а что будут проблемы??? просто я пока через монитор работаю так как на телефон еще программа не совсем готова
Кто его знает, будут не будут, но могут. Я же писал, для чего используют таймаут. А если из-за удаленности, помех или еще чего-то связь будет плохой и ардуина будет вычитывать байты быстрее, чем они будут поступать и при этом почти не будет ждать следующего? Отослали вы, к примеру, комманду "R150", а последний нолик "не успел" и ардуина прочитает это сначала как "R15", а при следующем цикле лупа - "0".
тоесть нужно все-таки подогнать это значение с таймаута для корректной работы, а вот вы в начале говорили что можно как то оптимизировать скетч типа для уменьшения колличества всяких проблем, так вот что это значит оптимизировать?
Не помню и не хочу перечитывать всю тему, скорее всего я это говорил в отношении предпоследней версии скетча, в котором была только заложена основа функциональности. Последняя версия вполне рабочая. Совершенствовать можно бесконечно. Например, избавиться от delay, но смысла в такой простой программе не вижу. Если захотите, то пускай это будет вашим домашним заданием.
та тут домашнего задания еще вагон и маленькая тележка, ведь микроконтроллер запрограмировать это пол беды или даже треть еще нужно на андроид дописать а потом и микроконтроллер упаковать красиво
ну да я так пробовал если пробел писать в конце каждой команды то оно более менее плавно работает, а потом вы предложили эту функцию и с ней не нужно вставлять пробелы
Drew20 - вставить пробел в конце будет надежнее, чем уменьшать таймаут. Что вы так этого боитесь - вам эти пробелы не вручную вводить. Неужели сложно один лишний символ в программе на андроиде добавить?
та я не боюсь просто мне казалось что функцию надежнее использовать
Если не устраивает Serial.parseInt() можно поменять подход и обойтись без него. Но тогда команду надо передавать целиком, отдельно цвет, отдельно задержку - уже не получится. Например, принять за формат команды три байта: в первом кодировать цвет (например, единица соответствует красному цвету, 2 - зеленому, 3 - синему), второй и третий - задержка. Но тут тоже есть свои подводные камни.
та не я уже так думаю это вариант сойдет впринципи отправка символа и пробела после него не проблема
Если не устраивает Serial.parseInt() можно поменять подход и обойтись без него.
да не понятно, что Drew устраивает, а что нет. Скорее всего он сам не знает, что хочет. Он этот же вопрос сегодня на Амперке задал , я ему посоветовал на выбор - пробел в конце команды либо отказ от parseInt и разбор команды вручную. Там он выбрал пробел, а тут с вас стребовал задержку - в общем, хитрый лис :) Не доверяю я таким :)
та ну просто сейчас есть два варианта решения этой проблемы каждый из которых рабочий, а теперь нужно выбрать какой взять, просто и тот и тот дают одинаковый результат и вот я теперь в замешательстве)))
:) в этом тоже что-то есть. Что-то посоветуют в одном месте, что-то в другом, что-то в третьем... - будет из чего выбрать. Или не доверяет одному источнику.
та не я всем доверяю, просто я на форумы только на прошлой неделе начал обращаться до этого три месяца сидел сам ковырялся, а тут столько вариантов и все не против помочь, так что я теперь могу почитать предложенную литературу и выбрать что то более менее подходящее для моих потребностей)))
В вашем случае, лучше используйте пробел в конце команды, так будет проще, тем более, что такой вариант вам посоветовало уже двое.
Я не знаю, определились ли вы уже, как будете передавать команды - по отдельности цвет и задержку или в одной команде и то и другое, но учтите, что пробел нужен только после числа, после цвета его не надо.
ну я так смотрю что впринципи можно подавать и по отдельности и вместе но за пробел я понял, с цветом таких заморочек нет
та ну просто сейчас есть два варианта решения этой проблемы каждый из которых рабочий, а теперь нужно выбрать какой взять, просто и тот и тот дают одинаковый результат и вот я теперь в замешательстве)))
При возникновении проблемы "Буриданова осла", наиболее рациональным решением, является метод подбрасываемой монетки.))))
так тоже можно как вариант выбора))
добрый вечер всем, скажите пожалуйста а можно скорость порта назначить не 9600 а 10000 например???
Можно, только зачем? В мониторе порта такой скорости нет. В большинстве устройств - тоже.
а можно скорость порта назначить не 9600 а 10000 например???
Для красоты что ли? Так никто не делает. Есть некий общепринятый ряд скоростей передачи данных: 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400 и т.д. Промежуточные значения практически не используются.
ну просто я когда передаю данные с телефона на микроконтроллер то у меня часто он тупит тоесть принимает информацию с опозданием, вот я и подумал если увеличить скорость то может я смогу решить эту проблему хотя когда я увеличил скорость до 19200 то у меня в мониторе порта какая-то фигня полезла вместо нормальных символов
хотя когда я увеличил скорость до 19200 то у меня в мониторе порта какая-то фигня полезла вместо нормальных символов
Так в мониторе порта тоже надо поставить 19200 в правом нижнем углу :)
ой что то протупил, а увеличение скорости может решить мою проблему ту которую я пытался описать?
когда я увеличил скорость до 19200 то у меня в мониторе порта какая-то фигня полезла вместо нормальных символов
Одинаковая скорость должна быть выбрана на обоих устройствах - передатчике и приёмнике.
на каком передатчике? я с телефона передаю данные, но 19200 все равно не помогло, просто полезли квадратики какие-то
ой что то протупил, а увеличение скорости может решить мою проблему ту которую я пытался описать?
"это вряд ли" (с)
У вас передается всего 3-4 символа, при скорости 9600 это 3-4 тысячные секунды, при 19200 будет вместо 4 тысячных - две. Не думаю. что вы 2 от 4х тысячных на взгляд отличите :)
на каком передатчике? я с телефона передаю данные, но 19200 все равно не помогло, просто полезли квадратики какие-то
ваш телефон - это "передатчик", ардуина - "приемник". Чтобы использовать скорость 19200 - ее нужно выставить и в скетче на ардуино и в программе на андроиде.