3D optikai visszaverődésiidő-mérők gyors tervezése

By Stephen Evanczuk

Contributed By DigiKey's North American Editors

A visszaverődési idő (ToF, Time of Flight) optikai mérésével végzett távolságmérés alapvető szerepet játszik a legkülönbözőbb készülékekben az ipari érzékeléstől kezdve a mozdulatérzékelő kezelőfelületekig. Most, hogy elérhetővé váltak a pontos, nagy sebességű, több képpontos visszaverődésiidő-mérők, a fejlesztők kifejleszthetik azokat a kifinomultabb térbeli (3D) érzékelési algoritmusokat, amelyekre ezeken a felhasználási területeken szükség van. A fejlesztési idő azonban a több képpontos optikai érzékelő alrendszer összetettsége miatt megnő.

Ez a cikk ismerteti a visszaverődési idő alapelveit, majd bemutatja a Broadcom optikai visszaverődésiidő-mérő fejlesztőkészletét, amely lehetővé teszi a fejlesztők számára a pontos 1D és 3D távolságmérő eszközök prototípusának gyors elkészítését, valamint a saját optikai visszaverődésiidő-mérő megoldások gyors megvalósítását.

Az optikai visszaverődésiidő-mérési technika alapjai

Az optikai visszaverődésiidő-mérési technikát több olyan felhasználási területen is használják, ahol a távolság pontos meghatározására van szükség. A módszer a fény levegőben egyik pontból a másikba való eljutásához szükséges idő mérésén alapuló távolságméréseket tesz lehetővé. Az ezen mérések elvégzéséhez használt konkrét számítások általában két különböző megközelítésen alapulnak – a közvetlen és a közvetett visszaverődésiidő-mérésen. A közvetlen visszaverődésiidő-mérés, más néven impulzusmérés során a készülék az 1. egyenlet segítségével méri az adott fényimpulzusnak a visszaverődésiidő-mérővel történő adása és vétele között eltelt időt:

1. egyenlet 1. egyenlet

Ahol:

c0 = A fény sebessége vákuumban

∆T = Az adás és a vétel között eltelt idő

Bár az elv egyszerű, a pontos mérések ezen módszerrel történő elvégzése számos kihívást jelent, beleértve a kellően erős adók és kellően érzékeny vevők szükségességét, a jel-zaj viszony javítását és az impulzusok fel- és lefutó éleinek pontos érzékelését.

Ezzel szemben a közvetett visszaverődésiidő-mérési módszerek modulált folytonos hullámot használnak, és az adott és a vett jel közti fáziskülönbséget mérik a 2. egyenlet szerint:

d = c0/2fmod × ∆φ/2π 2. egyenlet

Ahol:

c0 = A fény sebessége vákuumban

fmod = A lézerfény modulációs frekvenciája

∆φ = A megadott fáziskülönbség

Amellett, hogy itt kisebbek az adó és a vevő teljesítményével szemben támasztott elvárások, a közvetett visszaverődésiidő-mérési módszer mérsékeli az impulzusformázásra vonatkozó követelményeket is, csökkentve a 3D távolságmérés és mozgásérzékelés tervezésének bonyolultságát.

Mind a közvetlen, mind a közvetett visszaverődésiidő-mérési módszerek megkövetelik az optikai bemeneti oldali eszközök körültekintő tervezését, valamint az adott és a vett jel pontos szabályozását. A fejlesztők már évek óta kihasználhatják az integrált áramkörös optikai visszaverődésiidő-mérők előnyeit, amelyek egyetlen tokban egyesítik a jeladókat és a jelvevő érzékelőket. Mindazonáltal ezeknek az eszközöknek a korábbi generációi általában megkövetelték a fejlesztőktől, hogy valamilyen kompromisszumot kössenek a teljesítmény- vagy a működési jellemzők valamilyen kombinációját illetően, például a fogyasztás, a hatótávolság, a pontosság vagy a sebesség terén. Az ilyen kompromisszumok lényeges akadállyá váltak az egyre növekvő számú olyan ipari érzékelőeszközök esetében, amelyeknek közepes, akár 10 méteres távolságból kell működniük.

A korszerűbb közvetett visszaverődésiidő-mérő modulokat, például a Broadcom AFBR-S50MV85G modulját kifejezetten arra tervezték, hogy megfeleljenek a gyors és pontos eredmények iránti növekvő igénynek közepes távolságok esetén, a lehető legkisebb tokméret és fogyasztás mellett. A Broadcom AFBR-S50MV85G-EK fejlesztőkészlete és a hozzá tartozó szoftverfejlesztő készlet (SDK) e köré az érzékelő köré épülve egy olyan több képpontos visszaverődésiidő-mérő fejlesztőplatformot kínál, amely lehetővé teszi a fejlesztők számára 3D visszaverődésiidő-mérő eszközök gyors kifejlesztését.

A visszaverődési idő mérésén alapuló távolságmérés egyszerűsítése integrált áramkörös modulokkal

Az ipari érzékelőeszközökhöz kifejlesztett AFBR-S50MV85G modul teljes optikai visszaverődésiidő-mérő megoldást kínál egyetlen tokban. Az integrált áramkörbe beépített alkatrészek közé tartozik egy 850 nm-es hullámhosszú VCSEL ([e.: vikszel], függőleges üregű, felületről sugárzó lézer) az infravörös (IR) megvilágításhoz, egy hatszögletű, 32 képpontos érzékelőmátrix, beépített lencsék a VCSEL lézerhez és az érzékelőoptikához, valamint egy felhasználásspecifikus integrált áramkör (ASIC).

Az érzékelőmátrixhoz képest rögzített helyzetben elhelyezett adó megvilágítja a céltárgyat, és az érzékelőmátrixban néhány képpont érzékeli a visszavert infravörös jelet. Alapesetben ez lehetővé teszi a modul számára, hogy beépített környezetifény-szűrő képességének köszönhetően pontos távolságmérést végezzen fehér, fekete, színes, fémes vagy fényvisszaverő felületek esetén, még erős napfényben is.

Ahogy a tárgy távolsága csökken, a parallaxishibák automatikus helyesbítése lehetővé teszi a gyakorlatilag alsó távolsághatár nélküli méréseket. Ugyanakkor az infravörös megvilágítás és az érzékelőmátrix kombinációja lehetővé teszi, hogy további információkat is kapjunk a tárgyról, beleértve annak mozgását, sebességét, dőlésszögét és oldalirányú elhelyezkedését. Ennek eredményeként a modul képes adatokat szolgáltatni az elhaladó vagy közeledő céltárgy irányának és sebességének meghatározásához (1. ábra).

A Broadcom AFBR-S50MV85G modul 8 × 4 képpontos érzékelőmátrixából nyert adatokat mutató ábra (nagyításhoz kattintson a képre)1. ábra: Az AFBR-S50MV85G modul 8 × 4 képpontos érzékelőmátrixából nyert adatok felhasználásával a fejlesztők olyan 3D-s eszközöket fejleszthetnek ki, amelyek képesek a tárgyak mozgási jellemzőinek mérésére (kép: Broadcom)

A VCSEL és az érzékelőmátrix pontos működését a modul beépített felhasználásspecifikus integrált áramköre (ASIC) hangolja össze, amely tartalmazza a VCSEL vezérléséhez, az érzékelőmátrixtól kapott analóg jel rögzítéséhez és a digitális jelformáláshoz szükséges összes áramkört (2. ábra).

A Broadcom AFBR-S50MV85G modulba beépített felhasználásspecifikus integrált áramkör (ASIC) blokkvázlata2. ábra: Az AFBR-S50MV85G modulba beépített felhasználásspecifikus integrált áramkör (ASIC) tartalmazza az összes olyan áramkört, amely a modul VCSEL fényforrásának vezérléséhez, az érzékelőmátrixból érkező jelek rögzítéséhez és az SPI-sínen továbbított digitális adatok előállításához szükséges (kép: Broadcom)

Az ASIC beépített tápáramköre lehetővé teszi, hogy a modul egyetlen 5 V-os tápegységről működjön, míg a gyárilag kalibrált és hőmérséklet-kiegyenlített ellenállás–kondenzátor (RC) oszcillátor és a digitális fáziszárt hurok (PLL) biztosítja az összes szükséges órajelet. Ennek az összeépítettségnek köszönhetően a fejlesztők könnyen beilleszthetik a modult a terveikbe pusztán egy mikrovezérlő egységet (MCU) és néhány további külső alkatrészt használva. A mikrovezérlő egységhez való illesztéshez csak egy általános célú be- és kimeneti (GPIO) lábra van szükség a modulból érkező „az adat használatra kész” (data ready) jelhez, valamint egy kapcsolatra a modul digitális soros perifériaillesztőjén (SPI) keresztül (3. ábra).

A Broadcom cég AFBR-S50MV85G moduljának kapcsolási rajza (nagyításhoz kattintson a képre)3. ábra: A Broadcom cég AFBR-S50MV85G modulja csak egy mikrovezérlőt és néhány további alkatrészt igényel egy teljes visszaverődésiidő-mérő rendszer megvalósításához (kép: Broadcom)

Hogy kiegészítse ezt az egyszerű hardverkialakítást, a Broadcom visszaverődésiidő-méréshez készült vezérlőszoftvere biztosítja a távolságmérés megvalósításához szükséges összes szoftveres funkciót. Míg a modul az optikai adatgyűjtést végzi a távolságmérési funkciókhoz, a Broadcom visszaverődésiidő-méréshez készült vezérlőszoftvere, amely a vállalat által biztosított AFBR-S50 SDK szoftverfejlesztő készletben található, elvégzi az összes hardverbeállítási, kalibrálási és mérési lépést. A mérés során a vezérlőszoftver kinyeri a képpontokból a távolság- és amplitúdóértékeket is.

Távolságmérő eszköz gyors fejlesztése

Az AFBR-S50 SDK-val kombinálva a Broadcom AFBR-S50MV85G-EK fejlesztőkészlete átfogó platformot kínál a távolságmérő eszközök prototípusainak gyors kifejlesztéséhez. A készletnek része egy az AFBR-S50MV85G modult tartalmazó illesztőkártya, az NXP cég ARM Cortex-M0+ mikrovezérlő egységére épülő FRDM-KL46Z fejlesztőkártya, valamint egy mini-USB-kábel, amelynek segítségével a fejlesztőkártya számítógéphez vagy más beágyazott rendszerhez csatlakoztatható (4. ábra).

A Broadcom AFBR-S50MV85G-EK fejlesztőkészlet képe4. ábra: A Broadcom AFBR-S50MV85G-EK fejlesztőkészlete és a hozzá tartozó szoftver teljes platformot kínál a visszaverődési idő mérésén alapuló távolságmérő eszközök fejlesztéséhez és prototípusának kialakításához (kép: Broadcom)

Mindössze néhány lépésre van szükség ahhoz, hogy a fejlesztőkészlettel nekiláthasson a visszaverődési idő mérésén alapuló távolságmérésnek. Az AFBR-S50 SDK letöltése után egy telepítővarázsló vezeti végig a fejlesztőt a gyors telepítési folyamaton. Miután a fejlesztő elindítja a Broadcom SDK csomagban található AFBR-S50 Explorer szoftveralkalmazást, a szoftver az USB-csatlakozón keresztül csatlakozik az AFBR-S50 fejlesztőkártyához, az NXP fejlesztőkártyáján lévő mikrovezérlőn futó vezérlőszoftveren keresztül fogadja a mérési adatokat, és lehetővé teszi a felhasználó számára az eredmények 1D vagy 3D ábrán történő megjelenítését (5. ábra).

A Broadcom AFBR-S50 Explorer szoftver képe (nagyításhoz kattintson a képre)5. ábra: Az AFBR-S50 Explorer szoftver a visszaverődésiidő-mérő érzékelőmátrix minden egyes képpontját érő megvilágítás amplitúdóját mutató 3D-s ábrák segítségével leegyszerűsíti a visszaverődésiidő-mérések kiértékelését (kép: Broadcom)

Amint az 5. ábrán látható, a 3D ábra megjeleníti minden egyes képpont leolvasott értékét, de a szoftverben elérhető egy másik nézet is, amely azt teszi lehetővé a fejlesztők számára, hogy csak a méréshez érvényesnek ítélt képpontokat tekintsék meg. Ebben az alternatív nézetben a meghatározott feltételeket nem teljesítő képpontokat a szoftver eltávolítja a grafikonról (6. ábra).

A Broadcom AFBR-S50 Explorer szoftver képe (nagyításhoz kattintson a képre)6. ábra: A Broadcom AFBR-S50 Explorer szoftverrel a fejlesztők jól értelmezhető 3D mérési ábrákat kapnak, amelyek kizárják az előre meghatározott feltételeket nem teljesítő képpontokat (kép: Broadcom)

Hogy a fejlesztők különböző használati körülmények, például eltérő megvilágítás, fényvisszaverő képesség és felülettípus esetén is vizsgálhassák a mérési pontosságot és teljesítményt, megtekinthetik a különböző érzékelési beállítások hatását, például több képpont használatát a magasabb szintű 3D eszközök vagy kevesebb képpont használatát a pontosabb mérést igénylő 1D felhasználási módok esetében. A mérési módszerek prototípusokkal történő kiértékelése után a fejlesztők építhetnek a Broadcom AFBR-S50 SDK szoftverfejlesztő készletben található mintaszoftverre, hogy gyorsan megvalósíthassák saját fejlesztésű visszaverődésiidő-mérő eszközeiket.

Visszaverődésiidő-mérő szoftveralkalmazások készítése

A Broadcom a visszaverődésiidő-mérő eszközök támogatását az érzékelőhardver-függő kódot, alkalmazásprogramozási felületet (API) és hardverabsztrakciós rétegeket (HAL) tartalmazó AFBR-S50 magkönyvtáron alapuló hatékony architektúrára építi (7. ábra).

A Broadcom visszaverődésiidő-mérési működési környezetének blokkvázlata7. ábra: A Broadcom visszaverődésiidő-mérési működési környezetén belül a visszaverődési idő (ToF) mérésére szolgáló vezérlőprogram alkalmazásprogramozási felülete (API) a visszaverődési idő mérésére szolgáló, előre lefordított vezérlőprogramot tartalmazó magkönyvtárban található kalibrálási, mérési és kiértékelési funkciókhoz hozzáférő felhasználói alkalmazáskódot kínál (kép: Broadcom)

A Broadcom a magkönyvtárat az AFBR-S50 SDK csomag részeként, egy előre lefordított ANSI-C könyvtárfájl formájában teszi elérhetővé, amely beágyazva tartalmazza az AFBR-S50MV85G hardver futtatásához szükséges összes adatot és algoritmust. A távolságmérő rendszer mikrovezérlő egységén futó magkönyvtár a kalibrálást, mérést és kiértékelést is magában foglaló funkciókat kínál a távolságmérés minimális processzorterheléssel és fogyasztással való elvégzéséhez. Mivel a magkönyvtár funkciói kezelik az összes mögöttes részletet, a fejlesztő által látott alapszintű mérési ciklus egyszerű (8. ábra).

A Broadcom AFBR-S50 SDK visszaverődésiidő-mérő szoftver felépítését mutató kép (nagyításhoz kattintson a képre)8. ábra: Az AFBR-S50 SDK visszaverődésiidő-mérő szoftver megszakítások és visszahívások segítségével csökkenti minimálisra a processzor munkaterhelését (kép: Broadcom)

A mikrovezérlő egység minden mérési ciklus kezdetén (amely ciklust egy periodikus időzítő megszakításkérés (IRQ) indít) elindítja a mérést, majd azonnal visszatér tétlen állapotba (vagy folytatja valamilyen alkalmazáskód feldolgozását). A mérés befejezése után az AFBR-S50MV85G modul a csatlakoztatott GPIO vonalon megszakítást kér, ami felébreszti a mikrovezérlő egységet, amely pedig elindítja az adatok kiolvasását az SPI-sínen, majd visszatér előző állapotába. Az adatkiolvasás befejezése után (amelyet egy „SPI done” (Az SPI elvégezve) megszakításkérés (IRQ) jelez) a mikrovezérlő egység végrehajtja a visszaverődésiidő-mérőtől kapott adatok kiértékelésére szolgáló kódot.

A mérési adatok elvesztésének megakadályozása érdekében a magkönyvtár blokkolja az adatpuffert, hogy az értékelési rutin meghívásáig megakadályozza egy újabb mérési ciklus megkezdését. Emiatt a fejlesztők általában két puffert építenek be a nyers adatok számára, hogy lehetővé tegyék a mérési és kiértékelési feladatok egymást váltogatva történő végrehajtását.

Az eszközszoftverek fejlesztőinek fontos tudniuk, hogy a kalibrálási, mérési és kiértékelési adatokat a magkönyvtárban található rutinok védik. A gyakorlatban a fejlesztők a fejlesztőkészletet és az AFBR-S50 Explorer alkalmazást teljes prototípuskészítő platformként használhatják, hogy a mérési adatokat eljuttassák a magas szintű szoftveralkalmazás-kódhoz.

Azon fejlesztők számára, akiknek saját eszközszoftvereket kell kifejleszteniük, az AFBR-S50 SDK csomag számos mintaszoftvert is kínál az előre lefordított magkönyvtári modulok mellé. Ennek köszönhetően az SDK-ban található mintaprogramokat felhasználva a fejlesztők gyorsan létrehozhatják saját visszaverődésiidő-mérő eszközeiket. A fejlesztők az AFBR-S50MV85G hardver és az AFBR-S50 magkönyvtár funkcióit az eszközhöz kifejlesztett saját szoftverkódjukban az AFBR-S50 SDK API függvényeinek meghívásával, valamint a magkönyvtár által támogatott különböző visszahívásokhoz saját függvényeket megadva érhetik el (lásd ismét a 7. ábrát).

A Broadcom részletes dokumentációt is ad az API és a mintaszoftverek mellé, így a fejlesztők gyorsan a saját igényeikhez igazíthatják a mintaszoftvereket, de a munkát nulláról kezdve is gyorsan haladhatnak a dokumentációk alapján. Igazából az alapszintű mérési és kiértékelési ciklus egyszerű, pusztán csak a saját függvényeket és API-hívásokat kell a mérési ciklushoz illeszteni (lásd ismét a 8. ábrát). A mérési ciklust például, mint arról korábban már szó volt, három fázis alkotja: a visszaverődésiidő-mérő eszköz bevonása, az adatok kiolvasása és a kiértékelés. A három fázis elindításához szükséges magkönyvtári API-hívások a következők:

  • Argus_TriggerMeasurement() – egy mérési keretet indít el aszinkron módon.
  • Argus_GetStatus() – a mérés sikeres befejezésekor a STATUS_OK (Állapot: rendben) értéket adja vissza.
  • Argus_EvaluateData() – a hasznos adatokat értékeli ki a nyers mérési adatok alapján.

A Broadcom ezt az alapvető mérési hurkot az SDK-ban található egyik mintaalkalmazásban mutatja be, ennek kódja az 1. listán látható.

Másolja a vágólapra
int main(void)
{
   status_t status = STATUS_OK;
   
   /* Initialize the platform hardware including the required peripherals
   * for the API. */
   hardware_init();
   
   /* The API module handle that contains all data definitions that is
   * required within the API module for the corresponding hardware device.
   * Every call to an API function requires the passing of a pointer to this
   * data structure. */
   argus_hnd_t * hnd = Argus_CreateHandle();
   handle_error(hnd ? STATUS_OK : ERROR_FAIL, "Argus_CreateHandle failed!");
   
   /* Initialize the API with default values.
   * This implicitly calls the initialization functions
   * of the underlying API modules.
   *
   * The second parameter is stored and passed to all function calls
   * to the S2PI module. This piece of information can be utilized in
   * order to determine the addressed SPI slave and enabled the usage
   * of multiple devices on a single SPI peripheral. */
   
   status = Argus_Init(hnd, SPI_SLAVE);
   handle_error(status, "Argus_Init failed!");
   
   /* Print some information about current API and connected device. */
   uint32_t value = Argus_GetAPIVersion();
   uint8_t a = (value >> 24) & 0xFFU;
   uint8_t b = (value >> 16) & 0xFFU;
   uint8_t c = value & 0xFFFFU;
   uint32_t id = Argus_GetChipID(hnd);
   argus_module_version_t mv = Argus_GetModuleVersion(hnd);
   print("\n##### AFBR-S50 API - Simple Example ##############\n"
   " API Version: v%d.%d.%d\n"
   " Chip ID: %d\n"
   " Module: %s\n"
   "##################################################\n",
   a, b, c, id,
   mv == AFBR_S50MV85G_V1 ? "AFBR-S50MV85G (v1)" :
   mv == AFBR_S50MV85G_V2 ? "AFBR-S50MV85G (v2)" :
   mv == AFBR_S50MV85G_V3 ? "AFBR-S50MV85G (v3)" :
   mv == AFBR_S50LV85D_V1 ? "AFBR-S50LV85D (v1)" :
   mv == AFBR_S50MV68B_V1 ? "AFBR-S50MV68B (v1)" :
   mv == AFBR_S50MV85I_V1 ? "AFBR-S50MV85I (v1)" :
   mv == AFBR_S50SV85K_V1 ? "AFBR-S50SV85K (v1)" :
   "unknown");
      
/* Adjust some configuration parameters by invoking the dedicated API methods. */
   status = Argus_SetConfigurationFrameTime( hnd, 100000 ); // 0.1 second = 10 Hz
   handle_error(status, "Argus_SetConfigurationFrameTime failed!");
   
   /* The program loop ... */
   for (;;)
   {
      myData = 0;
      /* Triggers a single measurement.
      * Note that due to the laser safety algorithms, the method might refuse
      * to restart a measurement when the appropriate time has not been elapsed
      * right now. The function returns with status #STATUS_ARGUS_POWERLIMIT and
      * the function must be called again later. Use the frame time configuration
      * in order to adjust the timing between two measurement frames. */
      Argus_TriggerMeasurement(hnd, measurement_ready_callback);
      handle_error(status, "Argus_StartMeasurementTimer failed!");
      STATUS_ARGUS_POWERLIMIT)
      {
         /* Not ready (due to laser safety) to restart the measurement yet.
         * Come back later. */
         continue;
      }
      else
      {
         /* Wait until measurement data is ready. */
      do
         {
            status = Argus_GetStatus(hnd);
         }
         while (status == STATUS_BUSY);
         handle_error(status, "Waiting for measurement data ready (Argus_GetStatus) failed!");
         /* The measurement data structure. */
         argus_results_t res;
         
         /* Evaluate the raw measurement results. */
         status = Argus_EvaluateData(hnd, &res, (void*) myData);
         handle_error(status, "Argus_EvaluateData failed!");
         
         /* Use the obtain results, e.g. print via UART. */
         print_results(&res);
         }
      }
}

1. lista: A Broadcom AFBR-S50 SDK-ban található mintakód bemutatja az AFBR-S50MV85G modulból származó visszaverődésiidő-adatok megszerzésének és kiértékelésének alapvető tervezési mintáját (kódforrás: Broadcom)

Ahogy a listán látható, a korábban említett három API-függvényhívás alkotja a mérési ciklus végrehajtásának gerincét. Az API-dokumentáció és az SDK-ban található egyéb mintaprogramok tanulmányozásával a fejlesztők gyorsan fejleszthetnek ki összetett 3D-s eszközöket, kihasználva a modul azon tulajdonságát, hogy képes a magasabb szintű jellemzőknek, például a célobjektum sebességének, irányának és dőlésszögének meghatározásához szükséges adatokat szolgáltatni.

Összegzés

Az optikai visszaverődésiidő-mérő eszközök lehetővé tették a pontos távolságmérést igénylő különböző területeken szükséges eszközök kifejlesztését, de a mérési tartomány, a pontosság és a megbízhatóság korlátai gátat szabtak az olyan felhasználási területeken való elterjedésüknek, mint az ipari érzékelőrendszerek, ahol kis fogyasztású, ámde nagyobb távolságban is pontos eredmények mérésére képes eszközökre van szükség. A Broadcom integrált áramkörös optikai visszaverődésiidő-mérő alrendszere megfelel a következő generációs érzékelőeszközök ezen nemrégiben felmerült követelményeinek. Az erre a modulra épülő fejlesztőkészlet segítségével a fejlesztők gyorsan fejleszthetnek ki pontos mérőrendszereket az 1D-s távolságmérést igénylő területekre, valamint az objektumok összetett mozgásának követését megkövetelő 3D-s eszközökbe.

DigiKey logo

Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.

About this author

Image of Stephen Evanczuk

Stephen Evanczuk

Stephen Evanczuk has more than 20 years of experience writing for and about the electronics industry on a wide range of topics including hardware, software, systems, and applications including the IoT. He received his Ph.D. in neuroscience on neuronal networks and worked in the aerospace industry on massively distributed secure systems and algorithm acceleration methods. Currently, when he's not writing articles on technology and engineering, he's working on applications of deep learning to recognition and recommendation systems.

About this publisher

DigiKey's North American Editors