0,00 €

V košarici ni izdelkov.

0,00 €

V košarici ni izdelkov.

More
    DomovRevijaProgramiranjeArduino radar BGT60LTR11 Shield2Go

    Arduino radar BGT60LTR11 Shield2Go

    Hackster Inc.

    Ugotovite, kako lahko z Infineonovim radarskim Shield2Go in Arduino IDE zaznate gibanje in spremembo smeri!

    Če gledate televizijo ali igrate videoigre na splošno, potem je prva stvar, ki vam pride na misel, ko preberete naslov, verjetno to, kar vidite na sliki 1.

    Zeleni krogi, črno ozadje, kazalec, ki se pomika naokoli, in svetlo zelena utripajoča pika. To ali pa kazni za prekoračitev hitrosti, ki ste jih zbrali v času svoje prehitre vožnje z avtomobilom.

    Ste se kdaj spraševali, kako deluje, ali pa ste si ga želeli imeti tudi sami?

    Najverjetneje ste imeli opravka z enim od njih, ne da bi to opazili, saj je ta stvar v več napravah, kot si mislite, npr. v letalih, avtomobilih, pri nadzoru prometa, vremenskih postajah in še bi lahko naštevali. Skoraj vse, kar je povezano z zaznavanjem predmetov, zaznavanjem gibanja, merjenjem razdalje in/ali merjenjem hitrosti, lahko vključuje radar.

    Vas zanima, kako lahko ugotovite, ali se nekaj premika ali imate le halucinacije? Priskrbite si radarski modul Shield2Go podjetja Infineon in ga začnite programirati s pomočjo Arduino IDE!

    Komponente, uporabljene v tem projektu:
    Infineon S2GO RADAR BGT60LTR11
    Infineon XMC2GO – industrijski mikrokontroler
    Infineon Boot Kit XMC1100 (združljiv z Arduino shield)
    Infineon My IOT adapter
    Arduino IDE

    Kaj je radar?
    Radar je kratica za »Radio Detection and Ranging« (radijsko zaznavanje in določanje razdalje) in je tehnologija, ki uporablja radijske valove za zaznavanje in lociranje predmetov v okolju. Deluje tako, da oddaja radijske valove v obliki impulzov, ki potujejo po prostoru. Ko ti valovi naletijo na predmet, se od njega odbijejo proti radarskemu sistemu. Tako lahko npr. izmerimo čas, ki ga valovi potrebujejo, da se vrnejo, in določimo razdaljo, hitrost in celo velikost predmeta.

    Na kratko, radar pošilja radijske valove in posluša njihove odmeve. Z analizo teh odmevov lahko ugotovimo, kje so predmeti, kako daleč so in kako hitro se premikajo.
    Podoben je radar, ki deluje s pomočjo ultrazvoka, vendar je razlika v frekvenci. Radar deluje v radiofrekvenčnem območju z večjim dosegom, medtem ko ultrazvočni radar deluje v ultrazvočnem frekvenčnem območju. Njegov doseg je omejen, vendar ima večjo ločljivost.

    Radar Shield2Go, specifikacije modula
    Shield2Go omogoča enostavno zaznavanje cilja in faze odbitega signala od predmeta. Za to potrebuje dva GPIO. Če povzamemo nekaj specifikacij Shield-a:
    Programiranje v okolju Arduino IDE.
    Nastavljivo območje zaznavanja od 0,5 m do 7 m.
    Potenciometri in stikala za prilagoditev nastavitev radarja (QS1-QS4).
    Zelo majhna plošča TIV (približno 5 cm x 2,5 cm).
    60GHz oddajnik BGT60LTR11AIP MMIC z eno oddajno in eno sprejemno enoto.

    Opomba: višja kot je radarska frekvenca, bolj natančen je radar. Tako lahko zazna npr. tudi manjše predmete ter natančneje meri razdaljo in hitrost.
    Razpored priključkov

    Razporeditev priključkov na ščitu je prikazana na sliki 4. TD in PD sta glavna »akterja«, TD pomeni zaznavanje cilja, PD pa zaznavanje faze:
    TD: Logična vrednost HIGH, ko cilj/premik ni bil zaznan, in logična vrednost LOW, ko je bil cilj/premik zaznan.
    PD: Če je bilo zaznano gibanje: logično visoko, ko se cilj približuje radarju, in logično nizko, ko se cilj oddaljuje.

    OPOZORILO: NE POSKUŠAJTE PRIKLJUČITI SHIELD2GO NEPOSREDNO NA PLOŠČO ARDUINO ALI KATERO KOLI PLOŠČO Z DELOVNO NAPETOSTJO 5 V. Za to lahko uporabite adapter MyIot ali pa uporabite ustrezno vezje za prilagoditev nivojev iz 5V na 3,3V).

    Nastavitev in programska koda
    Kot smo že omenili, sta vaša najboljša prijatelja TD in PD, vendar morate za pridobitev želenih informacij najprej nastaviti nekaj stvari:
    Prilagajanje trdno nastavljenih parametrov (nastavitev strojne opreme).
    Programiranje Shield2Go s knjižnico Arduino radar-bgt60 (koda in knjižnica).

    Nastavitev strojne opreme
    Kot smo že omenili, ima radar nekaj vhodnih parametrov (QS1-QS4), ki so hardversko nastavljivi z dvema potenciometroma in dvema stikaloma, kar vidimo na sliki 4.

    Te parametre lahko razdelimo na:
    QS1: odgovoren za način delovanja radarja; levo za avtonomni (napredni) način ali desno za omogočanje načina SPI senzorja. Opomba: SPI način je trenutno še v razvoju! Za zdaj je podprt samo avtonomni način.
    QS2: prilagaja prag za radar, v bistvu območje zaznavanja; čim nižja je vrednost, tem večje je območje. Če vrtite QS2 v smeri urinega kazalca, se zniža občutljivost.
    QS3: določa čas zadržanja TD izhoda. Ta določa, kako dolgo bo izhodno stanje ohranjeno po zaznavi cilja. Če vrtite QS3 v smeri urinega kazalca, se zmanjšuje čas zadržanja TD.
    QS4: je tristopenjsko stikalo, kar pomeni, da ima tri možnosti in nastavlja delovno frekvenco radarja. Levi položaj ustreza 61,1 GHz, srednji (plavajoči) položaj ustreza 61,2 GHz, desni položaj pa 61,4 GHz.

    Na sliki 5 vidite primer nastavitev (te nastavitve se uporabljajo tudi v programskem delu):

    QS1 => levo
    QS2 => navpično (približno 2,48 m območja zaznavanja cilja)
    QS3 => poševno (približno 5 minut časa zadržanja)
    QS4 => sredina

    POMEMBNO: Te vhode lahko prilagodite, da umerite želeno obnašanje, pazite le, da nastavitve prilagodite, ko je plošča izklopljena.

    Program in knjižnica
    Po konfiguriranju radarske Shield2Go plošče lahko preidemo na programsko stran.

    Če ne poznate XMC za Arduino, kliknite tukaj [1] in se seznanite z XMC mikrokontrolerji ter se naučite, kako jih uporabljati v Arduino okolju. V bistvu je potrebno samo dodati XMC razvojno ploščo v Arduino okolje. Ko to naredite, odprite Arduino IDE in prenesite knjižnico radar-bgt60 podjetja Infineon.

    Repozitorij lahko prenesete tudi od tu [2] in ga dodate v Arduino z možnostjo dodajanja knjižnice »Add.ZIP«.
    Zdaj lahko nadaljujete in namestite Shield2Go na adapter XMC2Go ali MyIoT in odprete Arduino IDE.

    Svojo kodo začnite z naslednjim vnosom:

    #include <Arduino.h>

    #include <bgt60-ino.hpp>

    #include <bgt60-platf-ino.hpp>

    Prva knjižnica je namenjena uporabi osnovnih funkcij Arduina, druga je namenjena uporabi glavnih funkcij Radar Shield2Go, tretja pa prepoznavanju platforme, ki jo uporabljate.

    POMEMBNO: Če uporabljate XMC2Go za radarski Shield2Go, vnesite:

    #ifndef TD
    #define TD 4
    #endif
    #ifndef PD
    #define PD 8
    #endif

    Ali na splošno, če uporabljate ploščo, ki ni navedena v nadaljevanju:
    Arduino MKR1000
    Arduino MRK WIFI 1010
    Arduino Uno
    XMC1100 Boot Kit
    XMC4700 Relax Kit

    Potem boste morali določiti priključke, ki so povezani s TD oziroma PD.

    Glavne funkcije Radar Shield2Go so:
    Inicializacija radarja
    Zaznavanje ciljev
    Zaznavanje faze (smer)

    Inicializacija radarja je precej preprosta in spada v zanko setup() vaše kode:

    Error_t init_status = radarShield.init();
    if (OK != init_status) {
    Serial.println(“Init failed.”);
    }
    else {
    Serial.println(“Init successful.”);
    }

    init_status je spremenljivka podatkovnega tipa po meri: Error_t, v njej je zapisano, ali je bila funkcija init() uspešna ali ne.

    Zaznavanje cilja
    Radarski Shield2Go je dejansko vnaprej programiran tako, da se njegova MODRA LED dioda prižge, ko zazna cilj (ali gibanje). Ne pozabite, da so bistveni parametri že določeni s prej omenjenimi vhodi QS. Nekaj časa bo ostala prižgana, saj bi morali počakati približno 4-5 minut (zaradi QS3) brez gibanja, da bi se LED ugasnila.

    Če želite to informacijo pridobiti z Arduinom, morate v zanki loop() uporabiti naslednjo funkcijo:

    Bgt60::Motion_t motion = Bgt60::NO_MOTION;

    radarShield.getMotion(motion);

    getMotion(motion): metoda iz razreda Bgt60 v knjižnici. Ta metoda prebere pin TD in ugotovi, ali je bilo zaznano gibanje ali ne, ter to shrani v spremenljivko gibanje, ki je bila vzpostavljena zgoraj.

    Zaznavanje faze
    Zaznavanje faze je skoraj enak koncept kot zaznavanje cilja (prav tako vnaprej programirano) in je prav tako odvisno od vhodnih nastavitev QS, ki jih uporabljate. Nad stikalom QS1 je rdeča lučka, ki se vklopi, ko radar zazna oddaljevanje cilja, in se izklopi, ko se cilj približuje.

    Če želite to uporabiti v svojem programu Arduino, v zanko loop() vnesite naslednje:

    Bgt60::Direction_t direction = Bgt60::NO_DIR;

    radarShield.getDirection(direction);

    getDirection(direction): določi, ali se tarča približuje, oddaljuje (APPROACHING, DEPARTING) ali ima oznako NO_DIR, ker se ne premika, in rezultat shrani v zgoraj navedeno spremenljivko direction.

    Zaključek in možna uporaba
    To je torej zaključek. Zdaj ste pravi mojster radarskega Shield2Go! Zdaj je čas, da postanete ustvarjalni in s tem znanjem nekaj naredite.

    Ta Shield2Go lahko na primer uporabite za vklop nekaterih LED trakov, ki jih lahko programirate z Arduinom, ko se nekdo približuje ali ko je na območju zaznati gibanje. Ob polnoči ga lahko vklopite in povežete z alarmom, da prestrašite tatove ali morda potepuške pse (odvisno od vaše soseske).

    Oglejte si primere v razdelku Priloge in tudi nekaj primerov iz knjižnice! Morda vas bodo navdihnili, da naredite nekaj odličnega!

    Viri:
    https://www.hackster.io/Infineon_Team/xmc-for-arduino-4a29f6
    https://github.com/Infineon/arduino-radar-bgt60
    https://www.hackster.io/Infineon_Team/myiot-adapter-shield2go-adapter-for-arduino-0817fa

    Povzeto po:
    https://www.hackster.io/Infineon_Team/bgt60ltr11-radar-shield2go-5a3e14

    https://hackster.io