AVR + Bluetooth

Обсуждаем контроллеры компании Atmel.
Ответить
Друг Кота
Сообщения: 19495
Зарегистрирован: Чт фев 20, 2014 18:57:55

Сообщение Morroc »

ну если купить в китае, то может быть :) если что - следующих ждать дооолго, поэтому всех и везде предупреждаю - не берите hc-06 если есть другие варианты (04 не щупал - не знаю)

если уже прошивал - все просто, но вот так взять и превратить 06 в 05 (скачав нужное ПО, подключившись к специальным ногам и разобравшись что и как там запускать [хотя если повезет - попадется архив с готовым .bat'ником]), да еще не имея LPT в компе... да их в 10 раз проще к AVR подключить и научиться с ними работать, чем так шить :)
"Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
Реклама
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 343
Зарегистрирован: Пн апр 01, 2013 15:13:40
Откуда: Москва

Сообщение Мikа »

Во, блин, вы говорите о вещах, которых я пока что руками не трогал :) Это я про прошивание через ЛПТ, USB-LPT и прочие дела :) Это к слову о том, что я только осваиваю UART и BT :) Поэтому мне проще щас сделать платку с МК и индикатором и пообщаться с BT на ней :)
Почему я здесь и задаю тупые вопросы?
Потому что хочу научиться.
Реклама
Друг Кота
Сообщения: 19495
Зарегистрирован: Чт фев 20, 2014 18:57:55

Сообщение Morroc »

да проще через терминал с компом сначала пообщаться - попереключать там всякое, а вообще там на борту свой мк есть и даже I/O pin'ы свободные имеются, с помощью того ПО можно простые управляемые устройства делать непосредственно на этом модуле безо всяких AVR ( но не проще, наверное :) )

советую попробовать сконфигурить как в статье на изиэлектроник, если эти команды проходят - значит модуль может быть и мастером и слейвом, добиваемся коннекта между запитанными модулями (контролируется на отдельном пине, можно светодиод туда повесить, один из модулей можно сконфигурировать и никуда не подключать потом, только питание подать), устанавливаем нужную скорость обмена по uart и вешаем модули уже на AVR, зная, что они работают на нужной нам скорости (а разные прошивки по умолчанию на разных скоростях работают) и сами устанавливают соединение - усе, двустороннее радиоуправление готово :)

если что не получится - могу глянуть как на HC-05 выглядит, у меня они в ящике валяются, побаловался и отложил, правда те, с которыми баловался, прилеплены на платку уже со светодиодами и ногами "под макетку с ардуиной", есть и такие вот голые hc-05, но их не трогал еще
"Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 343
Зарегистрирован: Пн апр 01, 2013 15:13:40
Откуда: Москва

Сообщение Мikа »

Я так понимаю, PIOx - это и есть местные I/O порты? :) Было бы круто использовать этот модуль для опроса датчиков :) А в какую сторону вообще копать, чтобы написать в него какую-нибудь программу?
Почему я здесь и задаю тупые вопросы?
Потому что хочу научиться.
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Сообщения: 19495
Зарегистрирован: Чт фев 20, 2014 18:57:55

Сообщение Morroc »

называется это дело Blue Lab, у меня 4.1 и оно как бы платное... по идее, но скачать не проблема (гуглить torrent 110720CSR_CASIRA_BLUELAB_SDK_v4.1 кстати там пара pdf'ов именно по HC-04)

"xIDE for BlueLab 4.1-Release
Based on xIDE version 3.37.5 (Multi-processor support enabled)
Kalimba, 3.19
VM, 3.17
© CSR, 2003-2008
© Cambridge Consultants Limited, 2003-2008"

не ковырялся в нем, скачал ради перепрошивки в HC-05 только
"Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
Реклама
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 343
Зарегистрирован: Пн апр 01, 2013 15:13:40
Откуда: Москва

Сообщение Мikа »

Я щас почитал тут http://habrahabr.ru/post/125214/ , довольно интересно, но там тоже проскакивает программатор на LPT порту, поэтому это я всё же оставлю на сладкое :) Сейчас сделаю плату и пообщаюсь с модулем через переводчика семейства ATmega :)
Почему я здесь и задаю тупые вопросы?
Потому что хочу научиться.
Реклама
Друг Кота
Сообщения: 19495
Зарегистрирован: Чт фев 20, 2014 18:57:55

Сообщение Morroc »

Мikа писал(а):но там тоже проскакивает программатор на LPT порту
а эти ребяты другого варианта не предусмотрели :( это для AVR куча программаторов, а для блютусов на CSR только такой и вариант с ардуино + самопальная dll, но с ней иногда вываливается ошибка "адрес NNNN записано AAA, прочитано BBB", у меня такое было по 1 или 2м адресам вроде и я в исходнике dll сделал "обход", т.е. значения так и не поменялись, но дошилось до конца и работает (там какими то блоками небольшими шьется прошивка и прерывается при ошибке в процессе)

я даже шил ардуинку через такой блютус прям с Arduino IDE (т.е. прям в устройство можно заливать прошивку без проводов), только ресет до конца не победил, приходилось нажимать кнопку руками как только скомпилится - тоже может пригодится как идея

попозже выложу пару картинок на тему "блютус - это просто" :)
"Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 343
Зарегистрирован: Пн апр 01, 2013 15:13:40
Откуда: Москва

Сообщение Мikа »

Хм, беспроводная прошивка - это интересно :) можно себе собрать плату-программатор и забыть о проводулях))

подскажите микросхемку, для преобразования логических уровней :)
Почему я здесь и задаю тупые вопросы?
Потому что хочу научиться.
Друг Кота
Сообщения: 19495
Зарегистрирован: Чт фев 20, 2014 18:57:55

Сообщение Morroc »

там не нужно чего то такого страшного, достаточно что то типа

Изображение

AVR поймет логические уровни с блютуса, а чтобы не подать с AVR на блютус 5 в можно поставить просто делитель

совсем правильно - это как то так вроде, но это когда в обе стороны нужно

Изображение
"Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
Друг Кота
Аватара пользователя
Сообщения: 3784
Зарегистрирован: Ср дек 24, 2008 09:58:58

Сообщение Ser60 »

Mika - для освоения UART проще использовать переходник UART-USB и терминальную программу на компе.

А касательно беспроводной связи - использовать BT/BLE для связи с сенсорами в сети с фиксированной архитектурой типа звезда (один дисплей и несколько сенсоров с одно- или двусторонней связью с базовой станцией) - это стрельба из пушки по воробьям. К тому-же диапазон 2.4 Ггц совсем не лучший для связи с сенсорами, особенно находящимися вне помещения, где установлена приемная станция. Гораздо лучше обстоит дело с субгигагерцовым диапазоном.

По поводу микросхем - преобразователей уровня рекомендую TXS0102. Еще лучше просто питать МК от 3.3В. А совсем хорошо, особенно для снижения токопотребления при работе с трансивером - это использовать понижающий DC-DC конвертер типа TPS62730.
Друг Кота
Сообщения: 19495
Зарегистрирован: Чт фев 20, 2014 18:57:55

Сообщение Morroc »

Эксперименты с блютусами...

берем макетку, светодиодики (в данном случае двухцветные)

Изображение

пару кабелей usb-uart (ttl)

Изображение

и превращаем зеленую платку в DIP-микросхему в соответствии с вышеприведенной (постом выше) схемой :)

залуживаем нужные пины и припаеваем детали / ножки

Изображение Изображение Изображение

Изображение Изображение Изображение

продолжение следует ...
Последний раз редактировалось Morroc Вт мар 25, 2014 00:20:21, всего редактировалось 2 раза.
"Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
Друг Кота
Аватара пользователя
Сообщения: 3784
Зарегистрирован: Ср дек 24, 2008 09:58:58

Сообщение Ser60 »

Лучше не надо всякие ужасы показывать :)
Друг Кота
Сообщения: 19495
Зарегистрирован: Чт фев 20, 2014 18:57:55

Сообщение Morroc »

надо надо ! :)

ставим на макетку нашу измученную многоножку (точнее две многоножки), красная хреновина сбоку - модуль питания, с которого берем 3.3 в ( на дальней стороне, на ближней 5 в - не берем никуда, нам оно не надо :) )

Изображение Изображение Изображение

зеленый - tx с usb-uart кабеля (через делитель 1к/1.3к, см. схему выше постом), белый - rx с usb-uart кабеля (напрямую), остальное с этих кабелей не используется (земля у нас общая с компом, пришла с питанием 3.3 в)

красный проводок - ресет (соединен через ~400 ом с пином модуля RESET), синий - управление режимом (соединен через ~8.2к с пином 34 модуля, так уж вышло)

синие втыкаем в + 3.3 питания, красные на общий, включаем и видим... ничего не видим - все ок, ресет на земле, готовимся конфигурить

Изображение

синие не трогаем, отрываем ресеты от земли, светодиоды начинают мигать с частотой около 1 гц (медленно в общем, вне командного режима мигают быстро)

Изображение Изображение

запускаем терминал, включаем скорость командного режима по умолчанию - 38400 (в нормальном режиме по умолчанию 9600)
смотрим адреса устройств, слева включаем мастер, справа слэйв (ROLE), режим коннекта к определенному адресу (CMODE=0) и BIND друг на друга по адресам:

Изображение

все сконфигурилось, теперь синенькие проводочки цепляем на общий и даем ресет обоим модулям, через несколько секунд перемаргивания гаснет, мигавший до того, светодиод (иногда он подмигивает) и зажигается другой - соединение установлено !

Изображение

в терминале меняем скорость на 9600 и проверяем наш канал, отправляя сначала ABCDE с мастера на слэйв, а потом 12345 со слэйва на мастер

Изображение

вот так быстро дешево и сердито мы проверили модули и настроили их на автоматическое поднятие канала, приводим модули в божеский вид и подключаем их к ардуинам и прочим AVR'ам (тем же путем - т.е. 3.3 питание, пара резисторов на делитель и не забыть 0.1mF на питание, остальные лампочки по вкусу, можно вместо светодиодов эти пины в AVR завести напрямую для контроля), в которых... просто шлем байтики через uart по воздуху :)

(использовалась инфа по командам в основном отсюда: http://we.easyelectronics.ru/part/rabot ... -hc05.html и по другим ссылкам, которые я давал выше)
"Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 343
Зарегистрирован: Пн апр 01, 2013 15:13:40
Откуда: Москва

Сообщение Мikа »

Morroc, а делитель напряжения нормально справится со своей задачей на высокой частоте работы?

Ser60, у меня под рукой нет переходника UART-USB и в данный момент связываться с ПК у меня задачи не стояло (если честно, желания тоже не было :) ). Схема, которую я хочу сделать, я приводил в первом сообщении.
Датчик - МК - BT < ----- > BT - МК - Дисплей.
Насчёт того, что BT в данном случае - это стрельба из пушки по воробьям - это я полностью согласен. Когда я почитал характеристики этого BT модуля я понял, что он гораздо мощнее, чем МК, который должен был им управлять. Отсюда у меня вытекает вопрос: можете посоветовать, что искать, как альтернативу BT, которая не будет уступать по размерам?
Спасибо за подсказку с преобразователем, т.к сам я ничего не нагуглил :( Но решил использовать SN74LVC1G34, т.к. канал получается односторонний и этого должно хватить.
Далее, питать МК от 3.3 В очень хотелось бы, но я планировал использовать ATmega48, которая от 3.3 не питается. (И тут я полез в даташит, чтобы уточнить, и увидел, что: ATmega48/88/168: 0 - 10MHz @ 2.7V - 5.5V, 0 - 20MHz @ 4.5V - 5.5V. То есть при частоте до 10 МГц, её вполне можно питать от 3.3 В О_о. Эм, ловлю себя на том, что я это уже читал раньше, тк хотел питать от 3.3 В, но что-то как-то не правильно читал. Или правильно? Оо).
"...понижающий DC-DC конвертер типа TPS62730" Щас надо узнать, что это такое :)

Кстати, Morroc рисует вполне себе мануал, к которому я обязательно вернусь, когда дойду до общения с компом по UART :)
Почему я здесь и задаю тупые вопросы?
Потому что хочу научиться.
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18678
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

лично я был бы признателен за полезный диалог по поводу нормального программирования самого контроллера этого модуля, чтобы возлагать на него некоторые свои задачи, отказавшись от внешнего МК. к сожалению, имеющаяся в свободном доступе инфа не позволяет мне разобраться в этом процессе... если кто занимался этими вещами - было бы здорово побеседовать.
в частности, интересует реализация следующего процесса:
1. модуль измеряет длительность импульсов на одном из своих пинов (от 100 до 1000 мкс) и передает результат замера по bluetooth. точность замера достаточно 20-50 мкс
2. модуль принимает по радиоканалу команды и формирует по ним импульсы нужной длительности (в тех же пределах и с той же точностью) на другом пине.
3. кроме этого просто обмен кое-какой информацией, влияющей на описанные процессы.

вроде бы все просто, но на счет того, как измерить длительность внешних сигналов, я инфы не нашел...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Друг Кота
Сообщения: 19495
Зарегистрирован: Чт фев 20, 2014 18:57:55

Сообщение Morroc »

Мikа писал(а):Morroc, а делитель напряжения нормально справится со своей задачей на высокой частоте работы?
высокая может быть на spi, а тут очень даже скромная, можно вообще не париться (да и в принципе аккуратный делитель на smd резюках будет работать нормально в диапазонах частот "мег", можно сопротивление поменьше сделать для надежности, но не для uart - тут пофиг, я бы не стал лишний корпус ставить, хотя из той серии и если есть под рукой... это же 6ти ножки мелкие вроде ?)
Мikа писал(а): Ser60, у меня под рукой нет переходника UART-USB и в данный момент связываться с ПК у меня задачи не стояло (если честно, желания тоже не было :) ). Схема, которую я хочу сделать, я приводил в первом сообщении.
Датчик - МК - BT < ----- > BT - МК - Дисплей.
схема схемой, а в BT придется какие то команды давать и проще настроить их один раз с компа с проверкой, чем давать эти команды в BT с МК (видимо вслепую), но можно конечно и с МК ( и как люди живут без COM-порта ? :) я с МК постоянно что то выдаю по uart для отладки/настройки, обычный "COM" конечно тоже можно подцепить, но понадобится собрать уже честный преобразователь уровней из 3 в 12 )
Мikа писал(а): Насчёт того, что BT в данном случае - это стрельба из пушки по воробьям - это я полностью согласен. Когда я почитал характеристики этого BT модуля я понял, что он гораздо мощнее, чем МК, который должен был им управлять. Отсюда у меня вытекает вопрос: можете посоветовать, что искать, как альтернативу BT, которая не будет уступать по размерам?
если кроме того, что он мощнее мк ничего не смущает - почему бы и не пострелять по воробьям ? :) есть дешевле и экономичней по питанию альтернатива - модули на NRF24L01 http://www.aliexpress.com/item/10PCS-LO ... 56080.html, но работать с ними сложнее - это уже не просто байтики слать в самоподнимающийся беспроводной uart
Мikа писал(а): Далее, питать МК от 3.3 В очень хотелось бы, но я планировал использовать ATmega48, которая от 3.3 не питается. (И тут я полез в даташит, чтобы уточнить, и увидел, что: ATmega48/88/168: 0 - 10MHz @ 2.7V - 5.5V, 0 - 20MHz @ 4.5V - 5.5V. То есть при частоте до 10 МГц, её вполне можно питать от 3.3 В О_о. Эм, ловлю себя на том, что я это уже читал раньше, тк хотел питать от 3.3 В, но что-то как-то не правильно читал. Или правильно? Оо).
для собственных единичных конструкций оно все попроще, одна не заработала - ткнул другую :) у меня вообще все меги заводились на 3.3, правда я люблю внутренним генератором пользоваться на низких частотах (но у меня мег и не много - в основном 8/328 в разных корпусах)
Мikа писал(а): "...понижающий DC-DC конвертер типа TPS62730" Щас надо узнать, что это такое :)
приличный ассортимент таких готовых штуковин в магазинах, торгующих различными ардуинами и у китайцев, я себе понабрал разных и повышающих и понижающих, на небольшой мощности отлично работают, на большой не довелось пока попробовать

вот тут прилеплен сверху один из готовых понижающих, из 5 делает ~2 для микродвигателей, маленький и жрет мало на холостом ходу, звуков не издает

Изображение
Мikа писал(а): Кстати, Morroc рисует вполне себе мануал, к которому я обязательно вернусь, когда дойду до общения с компом по UART :)
у меня есть модули на NRF24L01, но я не готов такой по ним сделать - возни больше будет хоть они и оформлены уже под макетку с ногами :) если что то и сделаю - это будет под ардуинку, но там понятно все обычно
ARV писал(а):лично я был бы признателен за полезный диалог по поводу нормального программирования самого контроллера этого модуля
если бы оно хоть шилось как AVR в 5 сек, а то 2.5 часа заливать прошивку через ардуино не очень :(
"Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 343
Зарегистрирован: Пн апр 01, 2013 15:13:40
Откуда: Москва

Сообщение Мikа »

Я вот щас взвесил объём ковыряний для того, чтобы приделать к МК кнопки, дисплей, написать программу и т.п, чтобы просто сконфигурировать BT и мне стало понятно, что через PC это будет гораздо веселее. У меня вопрос, для того, чтобы сделать переходник USB-UART, достаточно ли отрезать нафиг одну сторону кабеля и обжать провода? И несёт ли какую-то смысловую нагрузку та коробочка, в которую USB втыкаются?
Почему я здесь и задаю тупые вопросы?
Потому что хочу научиться.
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18678
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

Morroc писал(а):если бы оно хоть шилось как AVR в 5 сек, а то 2.5 часа заливать прошивку через ардуино не очень :(
а сделать нормальный вариант прошивальщика без ардуино нельзя, что ли? если я не ошибаюсь, то IDE ардуино использует AVR-GCC и его библиотеки, т.е. можно просто написать программку без ардуиновских библиотек - она должна работать намного быстрее.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Друг Кота
Сообщения: 19495
Зарегистрирован: Чт фев 20, 2014 18:57:55

Сообщение Morroc »

ARV писал(а):
Morroc писал(а):если бы оно хоть шилось как AVR в 5 сек, а то 2.5 часа заливать прошивку через ардуино не очень :(
а сделать нормальный вариант прошивальщика без ардуино нельзя, что ли? если я не ошибаюсь, то IDE ардуино использует AVR-GCC и его библиотеки, т.е. можно просто написать программку без ардуиновских библиотек - она должна работать намного быстрее.
скорость не упирается во что то ардуиновское, там то, что называется bitbang программатор - просто дрыгает ногами по команде с PC, почему именно с такой скоростью и можно ли поменять - не наю, в самой ардуине почти пусто, но исходник dll'ки под вижуал студио есть, в меру загадочный

не факт, что он и по LPT шьет быстро, автор ардуинской dll расковырял LPT'шную и попытался повторить ее на базе ардуино
Мikа писал(а):Я вот щас взвесил объём ковыряний для того, чтобы приделать к МК кнопки, дисплей, написать программу и т.п, чтобы просто сконфигурировать BT и мне стало понятно, что через PC это будет гораздо веселее. У меня вопрос, для того, чтобы сделать переходник USB-UART, достаточно ли отрезать нафиг одну сторону кабеля и обжать провода? И несёт ли какую-то смысловую нагрузку та коробочка, в которую USB втыкаются?
в переходниках специальная микруха (в данном случае были на CP2102, есть на FT232 - вроде получше и чуть дороже), без нее никак, если есть обычный "COM порт" - цепляй к нему через преобразователь уровней, два сразу не обязательно же - это я для наглядности

можно такой собрать если заняться нечем и микрухи такие есть :)

http://chipenable.ru/index.php/projects ... p2103.html
"Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 343
Зарегистрирован: Пн апр 01, 2013 15:13:40
Откуда: Москва

Сообщение Мikа »

Доброго времени суток, Коты. Я подключил модуль BT182 к ПК через MMusbMCP2200. Но, чё-то я не догоняю или чего-то в Термите я не настроил. По умолчанию он просто возвращал мне эхо. Кликнув на settings я вижу настройки, но не особо понимаю, что там к чему. ТОлько убрал галочку с Local echo, соответственно, эхо не возвращается, но и ничего другого в ответ от модуля не приходит.
Изображение
Rx и Tx подключены крест-накрест. Питаются оба девайса от 3.3 В, которые приходят из USB и преобразуются стабилизатором.

UPD: поигрался со скоростью передачи, на разных скоростях он отвечает рызные кракозябры на команду ATN?, которая запрашивает его имя. По дефолту у модуля:

The factory settings of UART are as follows:
Baud rate: 19200 bps
Data bit: 8
Parity: none
Stop bit: 1

На этой скорости он возвращает эхо.

UPD: Продолжаю эксперименты. Соединился через планшет с BT182, и через MMusbMCP220 с компьютером. Девайсы общаются, нормально всё принимают и передают, но вот команды в блютус передать пока не получилось :(
Почему я здесь и задаю тупые вопросы?
Потому что хочу научиться.
Ответить

Вернуться в «AVR»