Мазмұны:

Қозғалатын қозғалысты қадағалаушыны жасаңыз (Arduino -дан Android Studio -ның арнайы қосымшасына дейін): 4 қадам
Қозғалатын қозғалысты қадағалаушыны жасаңыз (Arduino -дан Android Studio -ның арнайы қосымшасына дейін): 4 қадам

Бейне: Қозғалатын қозғалысты қадағалаушыны жасаңыз (Arduino -дан Android Studio -ның арнайы қосымшасына дейін): 4 қадам

Бейне: Қозғалатын қозғалысты қадағалаушыны жасаңыз (Arduino -дан Android Studio -ның арнайы қосымшасына дейін): 4 қадам
Бейне: Теңүдемелі қозғалатын дененің қозғалыс теңдеулері мен графиктері. 10 сынып. 2024, Желтоқсан
Anonim
Қозғалатын қозғалысты қадағалаушы құрыңыз (BLE Arduino -дан Android Studio -ның арнайы қосымшасына дейін)
Қозғалатын қозғалысты қадағалаушы құрыңыз (BLE Arduino -дан Android Studio -ның арнайы қосымшасына дейін)

Bluetooth төмен энергия (BLE) - бұл төмен қуатты Bluetooth байланысының бір түрі. Киюге болатын құрылғылар, мысалы, мен Predictive Wear -де дизайн жасауға көмектесетін ақылды киімдер, батареяның қызмет ету мерзімін ұзарту үшін BLE -ді жиі пайдалану үшін энергия шығынын шектеуі керек. Bluetooth арнайы қызығушылық тобы (SIG) «профильдер» деп аталатын Bluetooth құрылғысымен өзара әрекеттесу үшін құрылғы қолдануы керек бірнеше ерекшеліктерді анықтайды. Қолданба профильдерінің көпшілігі деректерді BLE сілтемесі арқылы жіберу үшін Жалпы атрибут профилін (GATT) пайдаланады. BLE -де үш негізгі ұғым бар: профильдер, қызметтер және атрибуттар.

Bluetooth SIG көптеген жалпы профильдерді, қызметтер мен атрибуттарды стандартталған. Дегенмен, реттелетін аппараттық құралдарды құру кезінде көбінесе реттелетін қызметтер мен атрибуттарды жасау қажет болады және көптеген оқулықтар жоқ. Мәселені қиындату үшін, Adafruit BLE модульдерімен жұптастыру үшін мобильді қосымшаларды жобалау бойынша ешқандай нұсқаулық бермейді және олардың қосымшаларының бастапқы кодын инженерге қайтару қиын.

Бұл оқулық түсіндіруге бағытталған:

  1. Жеке GATT қызметтері мен сипаттамаларын қалай құрастыруға болады
  2. Adafruit Bluefruit LE SPI Friend бағдарламасын осы арнайы қызметтер мен сипаттамалар үшін GATT сервері ретінде қалай бағдарламалау керек.
  3. GATT серверінен деректерді оқу үшін Android құрылғысын GATT клиенті ретінде қалай бағдарламалау керек

Бұл оқулық өндіріске дайын қосымшаға аударылуға арналмаған - бұл жай BLE -ге кіріспе.

Фондық оқу:

  • Adafruit Bluefruit LE SPI Friend құжаттамасы
  • Егер сіз GATT немесе BLE білмесеңіз

Жабдықтар

  • 1x - Arduino құрылғысы (мен бұл нұсқаулық үшін UNO қолданамын)
  • 1x - Adafruit Bluefruit LE SPI досы
  • 8х - еркектен еркекке секіргіш сымдар
  • Негізгі дәнекерлеу жабдығы (SPI Friend -дегі дәнекерлеу түйреуіштеріне)
  • Компьютер (Arduino құрылғысы мен андроид құрылғысын бағдарламалау үшін)

1 -қадам: Арнайы қызметтер мен сипаттамаларды жобалау

КІРІСПЕ

Бұл мақала жеке қызметтер мен сипаттамаларды қалай жасау керектігін түсіндіретін тамаша жұмыс. Мен осы мақаланы оқуға кеңес беремін. Мен төменде өте қарапайым шолуды ұсынамын, ол қарапайымдылыққа қатысты нәзіктіктерді елемейді.

GATT қызметтері - сипаттамалар жиынтығы.

GATT сипаттамаларында қасиет, мән және нөлдік немесе одан да көп дескрипторлар бар.

  • Меншік: клиентпен деректерді қалай өңдеу керек (Android қолданбасы), мысалы. оқу, жазу, жауапсыз жазу, хабарлау және көрсету.
  • Мән: сипаттаманың нақты мәні, мысалы. 1089
  • Дескрипторлар: бұл мән туралы ақпарат, мысалы. бірлік, миллисекунд

ДИЗАЙН

Жарайды, енді сіз қандай қызметтер мен сипаттамалар екенін білесіз, біз жеке деректер алу үшін GATT серверінен (Arduino) клиентке (Android қолданбасы) жіберу үшін кейбір қызметтер мен сипаттамаларды қалай құрастыру керектігін анықтауымыз керек. Акселерометр-гироскоп модулінен (AGM) мәліметтер жинайтын Arduino құрылғысын қарастырайық. Біз үш кеңістіктік осьтен гироскоп пен үдеу өлшемдерін жинағымыз келеді және бұл өлшемдер алынған уақытты және бұл мәліметтерді мобильді қосымшамызға жеткізгіміз келеді. Біз сонымен қатар құрылғыны қашан зарядтау керектігін білгіміз келеді, сондықтан біз батареяның деңгейін оқып, оны мобильді қосымшаға жібергіміз келеді.

1. Біз стандартты қызметтер мен сипаттамалардың кез келгенін қолдана аламыз ба?

Bluetooth SIG көптеген жалпы қызметтер мен сипаттамаларды стандартталған. Алдымен, стандартты қызметтер мен сипаттамалардың кез келгенін қосуға болатынын білу үшін оларды тексеріңіз. Стандартты қызметтер мен сипаттамалар әлдеқайда кіші деректер пакетін қолдана алады, өйткені әмбебап бірегей идентификатор (UUID) 16 битті құрайды, ал реттелетін қызметтер мен сипаттамалар UUID үшін 128 битті қолдануы керек. UUID туралы толығырақ кейінірек. Іздеу барысында біз стандартты «аккумуляторлық қызмет» таптық, онда бір «батарея деңгейі» бар.

2. BLE арқылы жіберілетін барлық деректер мәндерін сипаттамалар мен қызметтерге бөліңіз

Біз реттелетін деректер нүктелерін бір реттелетін қызметте жеті реттелетін сипаттамаға бөле аламыз. Біз бұл қызметті «AGM қызметі» деп атаймыз. Ол 7 сипаттамадан тұрады: х-үдеу, у-үдеу, z-үдеу, х-гироскоп, у-гироскоп, z-гироскоп және уақыт анықтамасы.

3. Әр сипаттамаға қажет қасиеттерді анықтаңыз

Мінезде болуы мүмкін бірнеше қасиеттер бар.

  1. Оқыңыз: Клиент (Android қолданбасы) GATT серверінен (Arduino) мәнді оқи алады
  2. Жазу: Клиент GATT серверінен мәнді өзгерте алады
  3. Көрсетіңіз: егер GATT серверінен мән өзгерсе және Клиент GATT серверіне растау жібереді деп күтілсе, Клиентке хабарланады.
  4. Хабарландыру: егер GATT серверінен мән өзгерсе және Клиент растауды GATT серверіне жібермесе, Клиентке хабарланады.

Бұл оқулық үшін біз барлық сипаттамаларды оқуға қоямыз, тек хабарландыру және оқу қасиеттері бар батарея деңгейінен басқа.

4. Реттелетін қызметтер мен сипаттамалар үшін UUID жасаңыз және стандартты UUID табыңыз

Жоғарыда қысқаша айтқанымдай, Bluetooth SIG стандартталған қызметтері мен сипаттамалары 16 биттік UUID пайдаланады, ал реттелетін қызметтер мен сипаттамалар 128 биттік UUID пайдаланады. Мысалы, Bluetooth SIG батарея қызметіне берілген нөмірді қараңыз. Берілген 0x180F нөмірі «0000180F-0000-1000-8000-00805F9B34FB» 128 биттік UUID білдіреді. Қараңғыланған төрт цифр (16 бит) белгілі бір стандартты қызметке немесе сипаттамаға ғана тән, ал қалған таңбалар барлық стандартталған қызметтер мен сипаттамалар арасында сақталады. Клиент те, GATT сервері де стандартталған қызметтер мен сипаттамалар тек жуан цифрларға байланысты өзгеретінін білетіндіктен, деректер пакетінің көлемін едәуір азайтуға болады. Дегенмен, теңшелетін қызметтер мен сипаттамалар дәл осы болжам бойынша жұмыс істей алмайды.

Оның орнына, реттелетін қызметтер мен сипаттамалар қысқартылмаған 128 биттік UUID қолдануы керек. Міне, UUID онлайн -генераторы. Стандартталған UUID -тен басқа кез келген UUID реттелетін UUID үшін қолайлы. Алайда, атаудың әдеттегі конвенциясы-00000001-… теңшелетін қызметін және сол 00000002-… реттелетін қызметіндегі сипаттамаларды белгілеу.

Міне, біз UUID -пен бірге енгізетін қызметтер мен сипаттамалардың қысқаша кестесі

2 -қадам: Arduino коды

BLUEFRUIT LE SPI FRIEND ЖАҢАРТЫҢЫЗ

Алдымен, Adafruit Bluefruit LE SPI Friend қосылу нұсқаулығында көрсетілгендей, Arduino құрылғысын қосыңыз. Bluetooth құрылғыларын сканерлеу кезінде Android құрылғысынан Adafruit Bluefruit LE SPI Friend таба алатындығыңызға көз жеткізіңіз. Bluefruit Connect қосымшасын жүктеп алыңыз, Adafruit Bluefruit LE SPI Friend -ке қосылыңыз және оған құрылғыдағы микробағдарламаны жаңартуға рұқсат етіңіз. Бұл қадам маңызды. Егер сіз микробағдарламаны жаңартпасаңыз, Arduino арқылы құрылғыны шығаратын командалар сәтсіздікке ұшырайды және мәселенің не екенін анықтау үшін сізде қате болмайды.

Міне, бұл жобаға менің репо. Толық Arduino кодын мына жерден көре аласыз.

ШОЛУ

Назар аударатын бірнеше маңызды нәрселер:

  1. Setup () әдісінде барлық теңшелетін UUID әр екі таңба арасында «-» болуға тиіс. Мысалы, «AT+GATTADDCHAR = UUID128 = 00-00-00-05-62-7E-47-E5-A3-FC-DD-AB-D9-7A-A9-66» жұмыс істейді. «AT+GATTADDCHAR = UUID128 = 00000005-627E-47E5-A3fCDDABD97AA966» жұмыс істемейді.
  2. Орнату () әдісінде «battery.begin (true);» екенін ескеріңіз. «ble.reset ();» шақырады автоматты түрде Егер сіз батарея қызметін мен сияқты пайдаланбасаңыз, онда ble модулін қалпына келтіру керек («ble.reset ();» пайдаланыңыз), онда менде «battery.begin (true);»).
  3. Setup () әдісінде, егер сіз отладтағыңыз келсе, «if (! Ble.begin (false))» «if (! Ble.begin (true))» мәніне өзгертіңіз.

Бұл код өте түсінікті. Мен әр реттелетін әдіске сипаттама енгіздім. Орнату әдісі BLE модулін GATT сервері ретінде әрекет етуге дайындайды. Цикл әдісі акселерометр гироскопының модулін (AGM) жалған тазалау арқылы өтеді және осы мәндер үшін 1 -ден 100 -ге дейінгі кездейсоқ санды шығарады. Батареяны пайдалануды модельдеу үшін батарея 1% -ға таусылады. Сіз бұл кодты сенсордың нақты мәндерімен оңай ауыстыра аласыз. Бұл код сізге бір өлшемнен гөрі, ұзындығы 6 өлшемді AGM деректер жиынын жіберетінін болжайды, себебі AGM мәліметтерінің терезесін талдау бір нүктеден гөрі пайдалы болуы мүмкін. Егер сіз массив өлшемін өзгертсеңіз, андроид студиясының коды қажет болатынын ескеріңіз. Деректер жиынын түсіру үшін, сіз жібергіңіз келетін деректермен бірге есептегішті беруіңіз керек. Бұл есептегіш сізге android студиясының қосымшасынан терезеде қай жерде екеніңізді табуға мүмкіндік береді, осылайша сіз терезеде жоғалған деректер нүктелерін тыңдауды күте аласыз. Есептегішсіз немесе басқа өлшемді массивпен андроид студиясының жобасы деректер нүктелерін жіберіп алады немесе олар күтетін қалған деректер нүктелерін күтетін циклде қалады.

3 -қадам: Android Studio коды

Міне, бұл жобаға менің репо. Android Studio кодының толық нұсқасын мына жерден көруге болады.

ШОЛУ

Мен мұны ардуино мен андроид коды қалай жұмыс істейтіні туралы егжей -тегжейлі шолу арқылы жаңартуды жалғастырамын … Қолданба толығымен жұмыс істейді, сондықтан кодты өзіңіз көре аласыз.

4 -қадам: соңғы өтінім

Соңғы өтінім
Соңғы өтінім
Соңғы өтінім
Соңғы өтінім
Соңғы өтінім
Соңғы өтінім

Құттықтаймын! Сіздің қосымшаңыз телефонға жүктеледі, ал тозатын құрылғы зарядталады және деректерді жібереді.

ҚОЛДАНБАНЫ ҚОСУ

Бастау үшін қосымшаның іске қосу белгішесін нұқыңыз.

ГРАНТТЫ РҰҚСАТТАР

Қолданбаның дұрыс жұмыс істеуі үшін сізге кейбір рұқсаттардың қолданылуын мақұлдау қажет.

ҚҰРЫЛҒЫЛАРДЫ ІЗДЕУ

Содан кейін бағдарламаның сол жақ жоғарғы бұрышындағы «Сканерлеу» түймесін басыңыз.

ЖҰМЫСҚА ҚҰРЫЛҒЫҢЫЗДЫ ТАҢДАҢЫЗ

Содан кейін, қол жетімді BLE құрылғыларының тізімінен киілетін құрылғыны таңдаңыз. Оның атауы - «BLE Arduino Hardware». ДЕРЕКТЕРДІ АЛУ Қолданба AGM деректерін алады және пайдаланушының қайда тұрғанын немесе қозғалатынын анықтайды. Нәтижені қараңыз Экраннан нәтижелерді қараңыз! Деректерді басқа оқу үшін синхрондау түймесін басыңыз.

Ұсынылған: