Een AFE-sensor van laag vermogen gebruiken om een uiterst nauwkeurig chemisch of biologisch detectiesysteem te implementeren

Door Stephen Evanczuk

Bijgedragen door De Noord-Amerikaanse redacteurs van DigiKey

Bij een toenemende vraag naar nauwkeurigere biologische of elektrochemische detectie hebben ontwikkelaars maar weinig effectieve oplossingen met meerdere sensoren gevonden die zowel nauwkeurig als flexibel genoeg zijn om aan de uiteenlopende vereisten te voldoen. De noodzaak om zulke systemen compact te maken en weinig energie te laten verbruiken maakt het allemaal nog complexer en vertraagt de ontwikkelingen.

Zonder nauwkeurige signaalacquisitie en -verwerking kunnen pogingen om zwakke signalen met veel ruis te meten, zoals bij toepassingen met biologische en chemische sensoren, vaak tot grote fouten leiden. In biologische toepassingen zoals het meten van lichaamsfuncties bij mensen of chemische toepassingen zoals het detecteren van gifgassen, kunnen vals-positieven of vals-negatieven als gevolg van meetfouten tot desastreuze gevolgen leiden.

In dit artikel wordt aangetoond dat een nauwkeurige analoge front-end (AFE) van Analog Devices voor een breed scala van detectietoepassingen met 2, 3 of 4 ingangen een simpele en effectieve oplossing biedt. Ontwerpers kunnen, door de configuratie en verwerkingsmogelijkheden eenvoudig te programmeren, de AD5940 gebruiken om snel ontwerpen te implementeren, die bijzonder weinig energie verbruiken en aan allerlei eisen voor nauwkeurige biologische of chemische detectie voldoen.

Toepassingen voor biologische of chemische detectiesystemen

In veel toepassingen is het belangrijk veranderingen te kunnen meten in impedantie, spanning of stroomsterkte in het menselijk lichaam of aan een elektrochemische bron. De mogelijkheid stress-indicatoren te identificeren door elektrodermale activiteit (EDA), vroeger galvanic skin response (GSR) genoemd, geeft medici een belangrijke aanwijzing over de psychofysiologische status van een persoon. Chronische stress en angstgevoelens kunnen zonder behandeling tot hartproblemen en andere ernstige fysiologische aandoeningen leiden.

Andere soorten metingen als bio-impedantieanalyse (BIA) vinden ook steeds meer toepassingen in consumentenproducten voor gezondheid en fitness, maar ook voor medische analyse. BIA wordt al jarenlang in lichaamsvetmetingen gebruikt en wordt steeds meer door medici gebruikt als een niet-invasieve techniek om bloeddruk te meten. Door een verwante methode te gebruiken die kleine wijzigingen in stroomsterkte in elektrochemische bronnen meet, gebruiken ontwerpers van medische apparatuur zulke meetmethodes om effectievere bloedsuikermeters en andere apparaten te maken. Ingenieurs in de industrie kunnen deze zelfde elektrochemische meetmethodes gebruiken in toepassingen als gifgasmeters en waterkwaliteitstesters.

Deze en andere meettechnieken hebben gemeenschappelijke eigenschappen als het gebruik van op de huid of in een vloeistof geplaatste elektrodes. Maar de implementaties zijn op detailniveau zo verschillend, dat het voor ontwikkelaars moeilijk wordt om één oplossing te vinden die al deze uiteenlopende eisen dekt.

Zo is voor EDA-meting een laagfrequente bekrachtigingsbron nodig, doorgaans niet meer dan 200 hertz (Hz), bedoeld om de penetratie van het bekrachtigingssignaal niet te diep in het menselijk weefsel te laten doordringen. De bronspanning, meestal een tweedraads schakeling tussen twee op de huid geplaatste elektrodes, induceert een zwakke stroom die varieert met de wijzigingen in de geleiding van de opperhuid.

Een BIA vereist daarentegen meestal een vierdraads schakeling met zowel een laagfrequente als een hoogfrequente aansturing (doorgaans 50 kilohertz (kHz)) om dieper liggende weefsels te bereiken.

Elektrochemische metingen vereisen meestal weer een andere configuratie. Bij dergelijke metingen wordt een elektrode gebruikt die één of andere chemische reactie meet, plus een referentie-elektrode op een constante potentiaal en een contra-elektrode om de stroomlus te sluiten.

In de loop der tijd zijn er allerlei oplossingen voor deze verschillende metingen verschenen, maar er zijn bijzonder weinig efficiënte alternatieven die aan de uiteenlopende vereisten van deze technieken voldoen. Ontwikkelaars kunnen met de Analog Devices AD5940BCBZ-RL7 AFE eenvoudiger biologische en elektrochemische detectiesystemen implementeren, die bijzonder nauwkeurig en klein zijn en tevens een laag energieverbruik hebben.

Geïntegreerde AFE

De AD5940 is een multifunctionele AFE met laag energieverbruik die programmatisch kan worden geconfigureerd voor allerlei toepassingen van twee-, drie- of vierdraads sensormetingen. Door de AD5940 met de juiste elektrodes te combineren kunnen snel uiterst nauwkeurige appraten worden ontwikkeld, die aan de uiteenlopende eisen voor metingen in gezondheids-, medische en industriële toepassingen kunnen voldoen.

De AD5940 is niet alleen nauwkeurig en eenvoudig te configureren, maar heeft bovendien een stroomverbruik van nog geen 80 microampère (µA) bij een uitgangsfrequentie van 4 hertz (Hz), zodat ontwikkelaars de meetmogelijkheden kunnen inbouwen in de nieuwe producten van bijzonder laag vermogen zoals wearables en andere apparaten op batterijen. Met de AD5940 wordt het ontwerpen ook eenvoudiger omdat hij allerlei subsystemen bevat die nodig zijn voor uiterst nauwkeurige meting van spanning, stroomsterkte en impedantie (Afbeelding 1).

Schema van de Analog Devices AD5940Afbeelding 1: De Analog Devices AD5940 bevat een complete set subsystemen die nodig zijn voor het genereren van bekrachtigingsbronnen en het meten van stroomsterkte, spanning en impedantie. (Bron afbeelding: Analog Devices)

De functionele architectuur van de AD5940 bevat drie primaire subsystemen: uitgang voor bekrachtiging, ingang voor meetsignalen en besturing.

Voor bekrachtiging biedt de AD5940 twee aparte, uiterst nauwkeurige bekrachtigingslussen. Voor toepassingen als BIA, die hoogfrequente bekrachtiging tot 200 kHz vereisen, kunnen ontwikkelaars een hogebrandbreedtelus gebruiken waarmee een bekrachtigingssignaal met de gewenste frequentie en golfvorm kan worden opgewekt. In deze lus stuurt een golfvormgenerator een snelle 12-bits digitaal-analoog converter (DAC) aan. De uitvoer hiervan wordt naar een programmeerbare versterker (PGA) gevoerd die de uitgangsversterker voor het bekrachtigingssignaal aanstuurt. De uitgangsversterker zet het wisselspanningssignaal voor de bekrachtiging bovenop het voor de sensor benodigde gelijkspanningssignaal (Afbeelding 2).

Schema van de snelle signaalketen van de Analog Devices AD5940Afbeelding 2: Ontwikkelaars kunnen voor hoogfrequente bekrachtigingssignalen de snelle signaalketen van de Analog Devices AD5940 gebruiken om verschillende golfvormen en frequenties tot 200 kHz te genereren. (Bron afbeelding: Analog Devices)

Voor toepassingen als EDA of elektrochemische metingen die een laagfrequent bekrachtigingssignaal van 0 tot 200 Hz vereisen, kunnen ontwikkelaars een bekrachtigingslus van lage bandbreedte gebruiken. In deze lus stuurt een laagvermogen 12-bits DAC met dubbele uitgang het niet-inverterende ingangssignaal van een potentiostaatversterker (PA) aan, doorgaans in een configuratie met driedraads sensor met de contra-elektrode (CE) verbonden (Afbeelding 3).

In deze configuratie wordt de meetlus gesloten door de referentie-elektrode (RE) die de inverterende ingang van de PA aanstuurt en de sensorelektrode (SE) die de inverterende ingang van een laagvermogen transimpedantieversterker (TIA) aanstuurt. De niet-inverterende ingang van deze laatste wordt aangestuurd door het andere uitgangskanaal van de DAC met dubbele uitgang.

Schema van de lagebandbreedtelus van de Analog Devices AD5940Afbeelding 3: Voor configuraties met driedraads sensoren die laagfrequente bekrachtiging vereisen, bevat de lagebandbreedtelus van de AD5940 een PA, waarvan de uitgang aan de CE is aangesloten, en waarvan de ingang aan de RE is aangesloten, terwijl de SE op de ingang van een laagvermogen transimpedantieversterker (LPTIA) is aangesloten. (Bron afbeelding: Analog Devices)

Net als de lagebandbreedtelus bevat de hogebandbreedtelus naast de hoogfrequente bekrachtigingssignaalketen een snelle TIA om de invoerstroom van de SE naar een spanning om te zetten. Beide lussen sturen op hun beurt hun respectievelijke uitgangen naar de geïntegreerde analoge multiplexer van de AD5940 die als signaalmeetsubsysteem dienst doet.

In het hart van het signaalmeetsubsysteem bevindt zich een krachtige analoge signaalketen bestaande uit een buffer, een PGA en een 2e-orde filter dat een analoog-digitaal-converter (ADC) met een 16-bits successive approximation register (SAR) bevat (Afbeelding 4).

Schema van het signaalmeetsubsysteem van de Analog Devices AD5940Afbeelding 4: Binnen het signaalmeetsubsysteem van de AD5940 bevindt zich een analoge multiplexer waarmee ontwikkelaars via een signaalconditioneringstrap verschillende spanningsbronnen kunnen aansturen die vervolgens door een krachtige 16-bits ADC worden geconverteerd. (Bron afbeelding: Analog Devices)

Ontwikkelaars kunnen de analoge ingangsmultiplexer gebruiken om de ADC-signaalketen met verschillende signaalbronnen aan te sturen zoals de interne temperatuursensor, voedings- en referentiespanningen en andere externe bronnen. Bij een karakteristieke toepassing blijven de primaire signaalbronnen voor het verzamelen van de sensorsignalen gevormd worden door de uitgangen van de laagvermogen TIA en de snelle TIA vanuit hun respectievelijke lage- en hogebandbreedtelussen.

Na conversie bieden aparte functionele blokken verdere nabewerking zoals digitaal filteren en automatische berekening van gemiddelde en variantie van een deelverzameling. De nabewerkingsmogelijkheden van de AD5940 bevat naast deze elementaire functies nog de mogelijkheid tot discrete Fouriertransformatie (DFT). Ontwikkelaars kunnen met deze DFT-functie de AD5940 configureren om automatisch de amplitude en de fase te berekenen die nodig zijn in impedantiemetingen.

Met het derde belangrijke subsysteem wordt de werking van het apparaat geregeld zoals het genereren van bepaalde bekrachtigingsbronnen, converteren van verschillende spanningsbronnen en het uitvoeren van nabewerkingsfuncties. Een programmeerbare sequencer vormt de basis van dit regelsubsysteem en hiermee kunnen ontwikkelaars bekrachtigingen genereren en sensormetingen uitvoeren zonder tussenkomst van de host microcontroller of microprocessor.

Ontwikkelaars kunnen de host processor gebruiken om een serie opdrachten in de AD5940 te laden en vervolgens eenvoudig een opdracht uitvoeren om de sequencer in de AD5940 te starten en direct daarna de host processor in slaapstand te zetten via de instructie Wait for Interrupt (WFI) of anderszins. Vanaf dat moment neemt de sequencer de besturing over de AD5940 over, waarbij deze onafhankelijk een serie metingen kan uitvoeren en zelfs het apparaat tussen de metingen door op een verlaagd vermogen kan zetten.

Schema van de Analog Devices AD5940 geprogrammeerd voor zelfstandige verwerking, zelfs na een power-on-resetAfbeelding 5: Ontwikkelaars kunnen de AD5940 zo programmeren dat deze zelfs na een power-on-reset zelfstandig kan werken. Hiervoor worden tijdens het booten waardes geladen, het apparaat geïnitialiseerd, een serie opdrachten geladen en tenslotte wordt de sequencer gestart. (Bron afbeelding: Analog Devices)

De AD5940 leest, tijdens autonome bewerking onder besturing van de sequencer, opdrachten uit een FIFO-opdrachtenbuffer en schrijft de resultaten in een FIFO-gegevensbuffer. De opdrachten- en -gegevensbuffers delen één blok van 6 kilobyte (kB) uit het geïntegreerde statische random-access memory (SRAM) van de AD5940, maar de twee FIFO-buffers blijven tijdens de verwerking gescheiden. De AD5940 kan worden geprogrammeerd om, naarmate de opdrachtenbuffer leeg raakt of de gegevensbuffer vol raakt, een interrupt naar de host processor te genereren om in voorkomende gevallen extra opdrachten te laden of gegevens uit te lezen.

Systeemontwerp

Ontwerpen met de AD5940 is, zowel vanuit hardware- als software-oogpunt, recht-toe-recht-aan.

Omdat de benodigde hardware subsystemen volledig geïntegreerd zijn, kunnen ontwikkelaars met de AD5940 complexe ontwerpen zoals een vierdraads BIA-meetlus met een minimaal aantal externe componenten implementeren. Ontwikkelaars kunnen de lagebandbreedtelus van de AD5940 zodanig configureren dat de vereiste laagfrequente metingen met twee van de analoge ingangspoorten (AIN) van het apparaat AIN2 en AIN3 kunnen worden verwerkt (Afbeelding 6). Tegelijkertijd zijn de CE0- en AIN1-poorten beschikbaar voor het implementeren van de hoogfrequente bekrachtiging en meting die ook voor BIA-toepassingen nodig zijn.

Schema van de Analog Devices AD5940 om vierdraads configuraties te implementerenAfbeelding 6: Ontwikkelaars hebben bij gebruik van de Analog Devices AD5940 slechts weinig externe componenten nodig om vierdraads configuraties te implementeren met zowel laagfrequente als hoogfrequente bekrachtigingen zoals nodig bij BIA-toepassingen. (Bron afbeelding: Analog Devices)

Er zijn bij Analog Devices evaluatieboards beschikbaar waarmee ontwikkelaars bij projecten met rapid prototyping deze minimale hardware-interfacestap kunnen overslaan. De Analog Devices EVAL-ADICUP3029 evaluatieset maakt gebruik van de Arduino UNO form factor en biedt een ontwikkelplatform op basis van de Analog Devices ADUCM3029 microcontroller. Ontwikkelaars kunnen de AD5940 bio-elektrische schil gebruiken om met de AD5940 direct biologische metingen zoals BIA uit te voeren. Ook kunnen ontwikkelaars de AD5940 elektrochemische schil gebruiken en externe sensoren aansluiten zoals gassensoren om gifgasanalyse uit te voeren op basis van de AD5940 elektrochemische metingen.

Ontwikkelaars kunnen net zo snel beschikbare bronnen gebruiken om verschillende op AD5940 gebaseerde softwaretoepassingen te evalueren. Analog Devices levert, samen met zijn open source AD5490 firmwarebibliotheek voor de programmeertaal C een open-source repository met enkele voorbeeldtoepassingen in de programmeertaal C, waaronder een voorbeeldtoepassing voor analyse van de lichaamsimpedantie.

Zoals weergegeven in Listing 1 roept de hoofdroutine AD5940_Main() in de BIA-module een aantal initialiseringsfuncties aan:

  • AD5940PlatformCfg() is een AD5490-functie uit de firmwarebibliotheek die de AD5940 hardware-subsystemen initialiseert, waaronder de FIFO, de klok en de GPIO's.
  • AD5940BIAStructInit() is een BIA-toepassingsfunctie die een structuur instantieert met waardes die de ontwikkelaars kunnen aanpassen om eenvoudig de toepassingsparameters te kunnen wijzigen, zoals de bemonsteringsfrequentie van de uitvoergegevens (BiaODR) in hertz (Hz) en het aantal monsters (NumOfData).
  • AppBIAInit() is een BIA-toepassingsfunctie waarmee parameters worden gereset, berekeningen worden uitgevoerd en de sequencer wordt geïnitialiseerd met een aanroep van een andere BIA-toepassingsroutine, AppBIASeqCfgGen().
Kopiëren
/* !!Change the application parameters here if you want to change it to none-default value */
void AD5940BIAStructInit(void)
{
  AppBIACfg_Type *pBIACfg;
  
  AppBIAGetCfg(&pBIACfg);
  
  pBIACfg->SeqStartAddr = 0;
  pBIACfg->MaxSeqLen = 512; /** @todo add checker in function */
  
  pBIACfg->RcalVal = 10000.0;
  pBIACfg->DftNum = DFTNUM_8192;
  pBIACfg->NumOfData = -1;      /* Never stop until you stop it mannually by AppBIACtrl() function */
  pBIACfg->BiaODR = 20;         /* ODR(Sample Rate) 20Hz */
  pBIACfg->FifoThresh = 4;      /* 4 */
  pBIACfg->ADCSinc3Osr = ADCSINC3OSR_2;
}
 
void AD5940_Main(void)
{
  static uint32_t IntCount;
  static uint32_t count;
  uint32_t temp;
  
  AD5940PlatformCfg();
  
  AD5940BIAStructInit(); /* Configure your parameters in this function */
  
  AppBIAInit(AppBuff, APPBUFF_SIZE);    /* Initialize BIA application. Provide a buffer, which is used to store sequencer commands */
  AppBIACtrl(BIACTRL_START, 0);         /* Control BIA measurment to start. Second parameter has no meaning with this command. */
 
  while(1)
  {
    /* Check if interrupt flag which will be set when interrupt occured. */
    if(AD5940_GetMCUIntFlag())
    {
      IntCount++;
      AD5940_ClrMCUIntFlag(); /* Clear this flag */
      temp = APPBUFF_SIZE;
      AppBIAISR(AppBuff, &temp); /* Deal with it and provide a buffer to store data we got */
      BIAShowResult(AppBuff, temp); /* Show the results to UART */
 
      if(IntCount == 240)
      {
        IntCount = 0;
        //AppBIACtrl(BIACTRL_SHUTDOWN, 0);
      }
    }
    count++;
    if(count > 1000000)
    {
      count = 0;
      //AppBIAInit(0, 0);    /* Re-initialize BIA application. Because sequences are ready, no need to provide a buffer, which is used to store sequencer commands */
      //AppBIACtrl(BIACTRL_START, 0);          /* Control BIA measurment to start. Second parameter has no meaning with this command. */
    }
  }
}

Listing 1: Bij de BIA-voorbeeldtoepassing van Analog Devices laat de hoofdroutine het basispatroon zien voor het initialiseren van de AD5940 waarbij de parameters worden ingesteld, een serie opdrachten wordt gedefinieerd en uiteindelijk de meetresultaten worden verzameld in een eindeloze lus die op een interrupt van de AD5940 wacht. (Bron code: Analog Devices)

Na aangeroepen te zijn door de functie AppBIAInit() voert AppBIASeqCfgGen() het zware werk uit bij het configureren van de AD5940 subsystemen die nodig zijn om de gewenste serie opdrachten (in dit geval impedantiemeting) uit te voeren. De routine instantieert een serie structuren in het headerbestand van de firmwarebibliotheek van de AD5940, ad5940.h, waarin de voor elke toepassing vereiste specifieke configuraties en parameters worden ingesteld.

AD5940_Main() roept tenslotte AppBIACtrl() aan om de metingen te starten en gaat dan de eindeloze lus in om gegevens te verzamelen. Al naar gelang de gegevens beschikbaar komen (aangegeven door een interrupt-signaal), wordt AppBIAISR() aangeroepen om de gegevens uit het apparaat te lezen evenals een andere routine, AppBIADataProcess(), die de ruwe gegevens bewerkt en de door de toepassing vereiste gegevens genereert (Listing 2). Ontwerpers kunnen voor een productietoepassing de uitgebreide interrupt-functies van de AD5940 gebruiken om efficiëntere methodes voor het verzamelen van gegevens te ontwerpen.

Kopiëren
/* Depending on the data type, do appropriate data pre-process before return back to controller */
static AD5940Err AppBIADataProcess(int32_t * const pData, uint32_t *pDataCount)
{
  uint32_t DataCount = *pDataCount;
  uint32_t ImpResCount = DataCount/4;
 
  fImpPol_Type * const pOut = (fImpPol_Type*)pData;
  iImpCar_Type * pSrcData = (iImpCar_Type*)pData;
 
  *pDataCount = 0;
 
  DataCount = (DataCount/4)*4;/* We expect RCAL data together with Rz data. One DFT result has two data in FIFO, real part and imaginary part.  */
 
  /* Convert DFT result to int32_t type */
  for(uint32_t i=0; i<DataCount; i++)
  {
    pData[i] &= 0x3ffff; /* @todo option to check ECC */
    if(pData[i]&(1<<17)) /* Bit17 is sign bit */
    {
      pData[i] |= 0xfffc0000; /* Data is 18bit in two's complement, bit17 is the sign bit */
    }
  }
  for(uint32_t i=0; i<ImpResCount; i++)
  {
    iImpCar_Type *pDftVolt, *pDftCurr;
 
    pDftCurr = pSrcData++;
    pDftVolt = pSrcData++;
    float VoltMag,VoltPhase;
    float CurrMag, CurrPhase;
 
    VoltMag = sqrt((float)pDftVolt->Real*pDftVolt->Real+(float)pDftVolt->Image*pDftVolt->Image);
    VoltPhase = atan2(-pDftVolt->Image,pDftVolt->Real);
    CurrMag = sqrt((float)pDftCurr->Real*pDftCurr->Real+(float)pDftCurr->Image*pDftCurr->Image);
    CurrPhase = atan2(-pDftCurr->Image,pDftCurr->Real);
 
    VoltMag = VoltMag/CurrMag*AppBIACfg.RtiaCurrValue[0];
    VoltPhase = VoltPhase - CurrPhase + AppBIACfg.RtiaCurrValue[1];
 
    pOut[i].Magnitude = VoltMag;
    pOut[i].Phase = VoltPhase;
  }
  *pDataCount = ImpResCount; 
  /* Calculate next frequency point */
  if(AppBIACfg.SweepCfg.SweepEn == bTRUE)
  {
    AppBIACfg.FreqofData = AppBIACfg.SweepCurrFreq;
    AppBIACfg.SweepCurrFreq = AppBIACfg.SweepNextFreq;
    AD5940_SweepNext(&AppBIACfg.SweepCfg, &AppBIACfg.SweepNextFreq);
    AppBIACfg.RtiaCurrValue[0] = AppBIACfg.RtiaCalTable[AppBIACfg.SweepCfg.SweepIndex][0];
    AppBIACfg.RtiaCurrValue[1] = AppBIACfg.RtiaCalTable[AppBIACfg.SweepCfg.SweepIndex][1];
  }
  return AD5940ERR_OK;
}

Listing 2: De routine AppBIADataProcess() is onderdeel van de BIA-voorbeeldtoepassing van Analog Devices en laat zien hoe ontwikkelaars de meetgegevens van de AD5940 in maatwerkroutines voor nabewerking kunnen gebruiken zoals de hier getoonde, waarin de amplitude en fase van spanningen worden berekend. (Bron code: Analog Devices)

Voor een oplossing die meer functionaliteit bevat voor wearables voor gezondheid en fitness, kunnen ontwikkelaars bijvoorbeeld de impedantiemeetfuncties van de AD5940 combineren met de Analog Devices AD8233 hartslagmonitor (zie "Specialty Heart-Rate Monitor ICs Overcome ECG Noise and Power Challenges").

Conclusie

De Analog Devices AD5940 AFE ondersteunt een breed scala aan twee-, drie- en vierdraads detectietoepassingen en biedt een eenvoudige en effectieve oplossing voor het probleem van nauwkeurigheid en flexibiliteit voor nauwkeurige detectie van biologische of elektromagnetische signalen. Ontwerpers kunnen, door de configuratie en verwerkingsmogelijkheden eenvoudig te programmeren, de AD5940 gebruiken om snel ontwerpen te implementeren, die bijzonder weinig energie verbruiken en aan de eisen van allerlei toepassingen voldoen.

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.

Achtergrondinformatie over deze auteur

Image of Stephen Evanczuk

Stephen Evanczuk

Stephen Evanczuk heeft meer dan 20 jaar ervaring in het schrijven voor en over de elektronicasector met betrekking tot heel wat onderwerpen, waaronder hardware, software, systemen en toepassingen zoals het IoT. Hij behaalde zijn filosofiediplomain neurowetenschappen over neuronale netwerken en werkte in de ruimtevaartsector op massaal verspreide veilige systemen en algoritmeversnellingsmethoden. Wanneer hij geen artikels over technologie en techniek schrijft, werkt hij aan toepassingen voor “deep learning” voor herkennings- en aanbevelingssystemen.

Over deze uitgever

De Noord-Amerikaanse redacteurs van DigiKey