Aan de slag met een moderne radarsensor: Staat een nauwkeurige meting op uw radar?
op

Laten we aan de slag gaan met de A121-radarsensor van Acconeer, een zeer krachtige maar niet eenvoudig te beheersen sensor. Naast wat achtergrondinformatie bieden wij tal van tips voor het in gebruik nemen ervan!
De A121 radarsensor
Sensoren zijn fascinerend. Enige tijd geleden, tijdens een onderzoeksproject voor het bouwen van een postmelder voor de brievenbus , stuitte ik op een interessante video van Andreas Spiess , waarin onder andere een zeer krachtige radarsensor werd genoemd: de A121 van het Zweedse bedrijf Acconeer, met een prijs van ongeveer €12. Dit wekte meteen mijn belangstelling en ik besloot ermee aan de slag te gaan. De officiële ontwikkelkit van de fabrikant, de XE125, is vrij prijzig (ongeveer €120), maar gelukkig biedt SparkFun ook een ontwikkelbord aan dat op dezelfde sensor is gebaseerd, voor $50. Dat is een stuk gunstiger, en de prijs helpt bovendien een bedrijf te steunen dat uitstekend werk levert door elektronica toegankelijk te maken voor ingenieurs van elk niveau, dankzij hun modules en documentatie. Het feit dat SparkFun en Elektor zakelijke partners zijn, heeft geen invloed gehad op mijn keuze; ik heb dit module persoonlijk aangeschaft en ben daar blij om. Laten we erin duiken!
Radar 101
Hoewel het algemene principe van radar inhoudt dat een radiosignaal naar een doel wordt uitgezonden en het gereflecteerde signaal wordt geanalyseerd, bestaan er verschillende typen. Bij continue-golf (CW) radar, zoals de HB100 die eerder in Elektor besproken werd of de vergelijkbare CDM324, wordt een signaal met constante frequentie uitgezonden en tegelijkertijd ontvangen. Hierdoor kan de snelheid van het doel worden gemeten via het Dopplereffect, maar niet de afstand. Frequentiegemoduleerde continue-golf (FMCW) radar biedt een verbetering door de uitgezonden frequentie continu te variëren in de tijd. Omdat het signaal tijd nodig heeft om heen en terug te reizen, is de frequentie van het ontvangen signaal op elk moment anders dan die van het uitgezonden signaal. Door het verschil tussen beide frequenties te meten, kan de afstand tot het object worden berekend.
Daarentegen zendt gepulste radar korte pulsen uit op een enkele frequentie en luistert tussen de pulsen naar echo’s. Door de tijd t te meten tussen het uitzenden en ontvangen van het gereflecteerde signaal, wordt de afstand d bepaald volgens de formule d = 1/2 * t * v, waarbij v de voortplantingssnelheid van de golf is, afhankelijk van het materiaal. De A121 (Figuur 1) is een gepulseerde coherente radar, waarbij ‘coherent’ betekent dat hij ook de fase van het ontvangen signaal kan meten voor nog nauwkeurigere afstandsbepaling.

Hardware-overzicht
De A121 maakt gebruik van de 60 GHz-band en biedt een groot aantal functies in een uiterst compact formaat (5,2 x 5,5 x 0,8 mm). De sensor is volledig geïntegreerd: de baseband-processor, RF-front-end en antenne bevinden zich in één behuizing, met digitale uitgang via SPI. Intern meet de A121 tijdsverschillen met een resolutie in de orde van een picoseconde, wat resulteert in een uitstekende afstandsresolutie van ongeveer 0,1 mm (!). Het maximale bereik bedraagt ongeveer 20 m. Dit is een zeer complex component; een gedetailleerde uitleg ervan zou zowel zeer moeilijk zijn als de reikwijdte van dit artikel ruim overschrijden. De documentatie van de fabrikant (zie en ) is echter zeer uitgebreid en van hoge kwaliteit.
Acconeer stelt toepassingen voor zoals afstandsmeting, nabijheids- of aanwezigheidsdetectie, snelheidsmeting, objecttracking, robotnavigatie, enzovoort. Dankzij de hoge resolutie in afstandsmodus kan de A121 ook vitale functies zoals ademhaling en hartslag monitoren. Omdat de sensor zowel fase als amplitude van het ontvangen signaal doorgeeft, is het mogelijk (via verwerking van de data op een aangesloten microcontroller) om verschillende materialen te detecteren en classificeren, en eenvoudige gebaren te herkennen. Net als andere radarsensoren is hij ongevoelig voor stof, variaties in omgevingslicht, enzovoort.
Dit alles is indrukwekkend, maar op zichzelf is dit component niet eenvoudig te ontdekken of mee te experimenteren, om twee redenen: ten eerste is deze minuscule behuizing een 50-ball BGA, die lastig te solderen is. Ten tweede vereisen de geavanceerde functies veel dataverwerking via software, wat een aanzienlijke inspanning betekent voor wie gewoon met het component wil kennismaken. Acconeer biedt hiervoor gelukkig een uitstekende oplossing.
Het XM125-module
Het Acconeer XM125-module (Figuur 2) maakt het veel eenvoudiger om met dit product aan de slag te gaan. Het betreft een kleine, rechthoekige printplaat van 18,6 mm x 15 mm, waarop zich bevinden: de A121-sensor, een 24 MHz-kristal dat nodig is voor de werking, enkele weerstanden en condensatoren, en tenslotte een STM32L431CBY6-microcontroller van STMicroelectronics. Alle componenten zijn aan de bovenzijde gemonteerd, zodat het module vlak op een Land Grid Array (LGA)-voetafdruk van uw prototypeprint kan worden gesoldeerd met behulp van hetelucht of een soldeerbout. Van de 28 pinnen met een steek van 1,27 mm (toegankelijker dan BGA voor de meesten van ons) zijn er slechts enkele absoluut noodzakelijk; het is zelfs mogelijk om voor prototyping direct draadjes te solderen zonder printplaat.
Het module is compact genoeg om rechtstreeks in commerciële producten te worden geïntegreerd. Het kan functioneren als een zelfstandige eenheid, waarbij gebruikers hun applicaties kunnen bouwen bovenop de software van Acconeer. Daarnaast kan het ook gecombineerd worden met een externe microcontroller, die via een registergebaseerd commando-protocol communiceert via een seriële poort of I²C.
Een SparkFun Breakout Board
Het integreren van een microcontroller in het module was een slimme keuze. Op deze manier kan Acconeer kant-en-klare firmwarebestanden aanbieden die reeds gecompileerd zijn en direct op de STM32L431 kunnen worden geflasht, wat het uitproberen van de sensor aanzienlijk vereenvoudigt. SparkFun maakt het geheel nog gebruiksvriendelijker door een printplaat aan te bieden die het XM125-module bevat, samen met een CH340C USB-naar-UART-converter, een USB-C-aansluiting en de benodigde spanningsregelaars, zoals weergegeven in Figuur 3. Twee Qwiic-connectoren maken het mogelijk om het module via I²C te koppelen aan andere SparkFun-boards.
Dit breakout-board is uitsluitend bedoeld om de aansluitingen te vereenvoudigen; het bevat geen extra microcontroller. SparkFun adviseert om de meegeleverde binaries ongewijzigd te gebruiken voor de STM32L431, en om uw eigen applicatie te ontwikkelen op een externe microcontroller — bijvoorbeeld een ESP32 op een afzonderlijk board — die via I²C met het XM125-module communiceert. Voor meer gevorderde gebruikers, of zij die vertrouwd zijn met STM32-producten, is het ook mogelijk om geen externe microcontroller te gebruiken en het volledige project te ontwikkelen op de geïntegreerde STM32L431.
Software
Acconeer biedt diverse softwareopties aan. Voor het XM125-module is een Software Development Kit (SDK) beschikbaar , die zowel broncode als gecompileerde bestanden bevat. Deze zijn direct overdraagbaar naar de geïntegreerde STM32L431 en ondersteunen uiteenlopende voorbeeldtoepassingen, zoals afstandsmeting, snelheidsmeting en aanwezigheidsdetectie. Voor wie de A121-sensor wil gebruiken in een volledig maatwerkproject zonder het XM125-module, zijn er alternatieve SDK's beschikbaar in verschillende varianten (Keil, ARM-GCC, IAR, enz.) voor ARM Cortex M7-, M4-, M33- en M0-platforms. Voor elk van deze gevallen is een aparte PDF-handleiding beschikbaar.
Een speciale vermelding verdient de Exploration Tool die Acconeer via GitHub beschikbaar stelt . Deze volledig in Python ontwikkelde tool biedt een grafische gebruikersinterface voor pc (Windows of Linux) waarmee de A121 geëvalueerd kan worden. Gebruikers kunnen hiermee parameters aanpassen en live meetgegevens naar de computer streamen. Laten we daar nu nader op ingaan.
De Acconeer Exploration Tool
Voor wie nog nooit de Python-interpreter op zijn pc heeft geïnstalleerd, is dit het moment om dat te doen. De Exploration Tool wordt geïnstalleerd via de pip-packagebeheerder. Sommige Linux-distributies (zoals Mint, die ik onlangs heb uitgeprobeerd) raden echter sterk af om pip rechtstreeks op de systeem-Python te gebruiken, omdat er een risico bestaat dat systeemkritische pakketten worden overschreven. In dergelijke gevallen is het aan te raden om pip te gebruiken binnen een virtuele omgeving. Ook op Windows kan dit een verstandige aanpak zijn om het overzicht te behouden over welke pakketten voor welk project zijn geïnstalleerd of verwijderd. Zelf heb ik gebruikgemaakt van PyCharm, dat zowel onder Windows als Linux goed functioneert.

Gebruik in de terminal (van PyCharm of het systeem zelf) het volgende commando om de Exploration Tool te installeren python -m pip install --upgrade acconeer-exptool[app] Zodra alle pakketten zijn geïnstalleerd, kan de grafische gebruikersinterface worden gestart met python -m acconeer.exptool.app. De Exploration Tool ondersteunt ook de voorganger van de A121, namelijk de A111. Via het linkerpaneel kan de A121-versie worden geselecteerd. De hoofdpagina die verschijnt bij het opstarten wordt weergegeven in Figuur 4.
Firmware Downloaden
Voor elke specifieke toepassing — zoals afstandsmeting, snelheidsbepaling of aanwezigheidsdetectie — is geoptimaliseerde firmware beschikbaar in binair formaat. Ook de Exploration Tool vereist specifieke firmware, genaamd de Exploration Server. Om te beginnen, maakt u een account aan via . Vervolgens downloadt u de Exploration Server-firmware via en pakt u het ZIP-bestand uit.

De Exploration Tool bestaat uit vier afzonderlijke secties: Stream, Flash, Resource Calculator (RC) en Help. Deze zijn toegankelijk via de knoppen aan de linkerkant. Begin met het openen van de Flash-pagina (Figuur 5).In principe is het mogelijk om onder het tabblad Get Latest Binary direct de nieuwste firmwareversie te downloaden. Op het moment van schrijven lijkt er echter een bug te bestaan: de firmware acconeer_xc120_exploration_server_a121-v1_10_0.bin die via de Exploration Tool wordt gedownload, functioneert niet correct. Hoewel het flashproces normaal lijkt te verlopen, leidt een poging om daarna verbinding te maken met het module tot een verbindingsfout (Figuur 6).Naast deze storing zijn er ook enkele kleinere problemen. Zo geeft de link die de Exploration Tool biedt om een Developer-account aan te maken een 404-foutmelding. Gebruik in plaats daarvan om toegang te verkrijgen.

Om de firmwarebug te omzeilen, opent u het tabblad Browse en selecteert u handmatig het firmwarebestand uit het eerder gedownloade ZIP-archief. Kies vervolgens Serial, selecteer de juiste seriële poort (op Windows kunt u het poortnummer controleren in Apparaatbeheer zodra het module is aangesloten), en kies daarna XM125. Klik tenslotte op Flash en volg de instructies op het scherm:
druk op de knop Boot, druk vervolgens op de knop Reset terwijl u Boot ingedrukt houdt,laat dan eerst Reset los , en ten slotte Boot. Ik raad aan deze volgorde niet te snel uit te voeren; laat tussen elke druk ten minste een derde tot een halve seconde tijd. Het flashproces zou vervolgens normaal moeten verlopen.
Eerste tests
Klik nu op de knop Advanced Settings (links van Connect in de bovenbalk) en vul in het veld Baudrate de waarde 115200 in. Sluit vervolgens het venster Advanced Settings en klik op Connect. Gefeliciteerd, het module is verbonden!
U kunt nu de functionaliteiten van de Exploration Tool uitproberen. De verschillende toepassingen staan vermeld in het linkerpaneel: Sparse IQ, Distance Detector, Presence Detector, Speed Detector, enzovoort. Elke toepassing maakt gebruik van drie weergavegebieden (Figuur 7): Preset Configurations onderaan het linkerpaneel (label 1), gedetailleerde instellingen in het rechterpaneel (2), en meetresultaten in het midden (3). Elke toepassing moet worden gestart met de knop Start measurement. U wordt aangemoedigd om de verschillende demo-applicaties te verkennen. De Sparse IQ-pagina toont de ruwe uitvoerdata van de sensor, in de vorm van amplitude en fase van de ontvangen signalen, weergegeven als complexe getallen. Deze waarden zijn visueel wat lastig te interpreteren. Hoewel deze pagina als eerste wordt vermeld, is het niet de meest toegankelijke. Presence Detector en Touchless Button zijn eenvoudiger te begrijpen en leveren snellere resultaten op.

Sneller maken!
Na enkele tests merkte ik dat de grafiekweergave niet erg vloeiend verliep: de data komt binnen in horten en stoten. Hoewel sommige toepassingen zoals Touchless Button redelijk goed functioneren, treden er pauzes van ongeveer vijf seconden op tussen opeenvolgende datablokken en het verversen van de grafieken bij toepassingen als Sparse IQ, Presence Detector en andere. Dat is enigszins frustrerend, zeker gezien de hoge snelheid van de sensor en alle inspanningen die Acconeer heeft geleverd om een krachtige en gebruiksvriendelijke softwaretool te ontwikkelen.
Het blijkt dat noch Acconeer noch de sensor verantwoordelijk is voor dit probleem. De oorzaak ligt bij een ongelukkige samenloop van omstandigheden die SparkFun tot op heden niet heeft gecorrigeerd. Opnieuw is gekozen voor de CH340C van WCH, een zeer populaire USB-naar-UART-converter die SparkFun ook in andere boards toepast — een logische keuze vanuit hun perspectief. Helaas ondersteunt deze chip geen volledige hardware flow control, ondanks de aanwezigheid van RTS- en CTS-pinnen, die vereist zijn door het XM125-module. De datasheet van de CH340C, versie 1D, is hier nogal vaag over: “The USB to serial interface is only compatible with the application layer, not totally”. In een latere versie van hetzelfde document, versie 3B , wordt het duidelijker verwoord: “Voor eendirectionele communicatie vanaf 1 Mbps, of tweerichtingsverkeer vanaf 500 kbps, wordt aanbevolen om de CH343 te gebruiken en automatische hardware flow control in te schakelen.”
Wat jammer! In dit geval vereisen zowel het XM125-module als de Exploration Tool hardwarematige flow control om een optimale gegevensdoorvoer te garanderen. Op de XE125 (de officiële ontwikkelkit van Acconeer), In plaats daarvan wordt op de XE125 van Acconeer een Silicon Labs CP2105 toegepast. Wellicht brengt SparkFun in de toekomst een Revision 2 uit. Voorlopig merkt SparkFun in de Hookup Guide op: “Note: The Acconeer Exploration Tool may run slower than expected when using the SparkFun XM125 Pulsed Coherent Radar Sensor.” Ook de FAQ van Acconeer over de Exploration Tool bevestigt dit.
Ik had geen module op basis van de CP2105 ter beschikking om te testen; de CP2105 Friend van Adafruit zou ideaal zijn geweest, maar was op het moment van schrijven niet op voorraad. De CP2102 en CP2104 zijn echter vrij vergelijkbaar en het proberen waard. Ze worden in veel producten toegepast — ik had verschillende apparaten bij de hand waarin ze zijn geïntegreerd — maar de RTS- en CTS-pinnen zijn niet altijd toegankelijk. Na enig speurwerk in mijn voorraad vond ik een USB-naar-serieeladapter met een CP2102 waarop de benodigde pinnen wel zijn doorgevoerd (Figuur 8). Let bij aankoop goed op de beschikbare pinnen in de productfoto’s of documentatie.

Aangezien het niet de bedoeling is om een andere USB-naar-UART-converter te gebruiken, zijn de primaire TX-, RX-, CTS- en RTS-signalen niet eenvoudig toegankelijk; deze zijn rechtstreeks verbonden van het XM125-module naar de CH340C. De DEBUG_TX- en DEBUG_RX-pinnen aan de zijkant van het module zijn aangesloten op de tweede seriële poort van het XM125, die uitsluitend bedoeld is voor debugging. Dit vereiste enige aanpassing (Figuur 9).

Aan de achterzijde van de sensor werd een klein stuk gaatjesprint toegevoegd, en een pinheader werd met dunne draad verbonden aan de betreffende pinnen van de CH340C. Indien u dit zelf wilt proberen: de pinnen TX, RX, CTS en RTS komen overeen met respectievelijk pin 2, 3, 9 en 14 op de CH340C. Het is ook mogelijk om rechtstreeks op de pads van het XM125 aan de voorzijde te solderen. Om de CH340C uit te schakelen, moet zijn VCC-pin (pin 16) worden losgekoppeld, hetzij door de printspoor nabij de pin door te snijden, hetzij door de pin voorzichtig op te tillen en het soldeer te verwijderen. Ik heb een jumper toegevoegd om deze wijziging omkeerbaar te maken. Daarnaast zijn twee extra draden (+5 V en GND) naar de pinheader geleid, zodat de oorspronkelijke USB-C-kabel overbodig werd.
Om de CP210x in plaats van de CH340 te gebruiken, hoeft u enkel het COM-poortnummer aan te passen in de Exploration Tool. In mijn geval werkte de CP2102 probleemloos, en worden de grafieken nu continu ververst, met een frequentie van 2 tot 20 keer per seconde, afhankelijk van de toepassing. Een aanzienlijke verbetering! Een ander module op basis van de FT232RL van FTDI functioneerde eveneens correct, maar was iets trager.
Een oplossing op zoek naar een probleem
De Presence Detector illustreert hoe de gevoeligheid van radar voor microbewegingen een voordeel biedt ten opzichte van andere soorten sensoren. Ik probeerde enkele meters van de sensor verwijderd perfect stil te zitten: hoe ik ook mijn best deed, mijn minimale, onvrijwillige bewegingen werden door de A121 gedetecteerd, en de Exploration Tool gaf consistent aan dat ik aanwezig was — geruststellend in het geval van een existentiële crisis. Ter vergelijking: een passieve infraroodsensor (PIR) op dezelfde afstand negeerde mijn aanwezigheid na enkele seconden als ik niet bewoog. Interessantere toepassingen zijn onder andere het op afstand meten van trillingen van machines, of het niet-invasief monitoren van iemands ademhaling. Ik heb dit getest (zie Figuur 10), maar er lijkt iets niet te kloppen: tijdens de meting was ik kalm en ademde ik veel langzamer dan wat de grafiek weergaf. Bovendien stemde de aangegeven waarde in ademhalingen per minuut (bpm) niet overeen met de curve. Ik zal dit verder onderzoeken en eventuele bevindingen melden in onze rubriek Err-lectronics. Zelf heb ik thuis nog geen directe toepassing voor deze sensor gevonden, maar het gedetailleerd bestuderen ervan blijft een bijzonder bevredigend proces. Aarzel niet om mij uw ideeën of suggesties te mailen.

Verder experimenteren
Het wordt aanbevolen om zelf met de verschillende instellingen van de Exploration Tool te experimenteren. Bekijk ook het Resource Calculator-paneel, dat schattingen (geen metingen) geeft van het stroomverbruik van het module op basis van de gekozen parameters. Raadpleeg ook SparkFun’s Hookup Guide, waarin een Arduino-bibliotheek wordt aangeboden. Deze stelt u in staat om een externe microcontroller naar keuze te gebruiken om via I²C met het XM125-module te communiceren in Presence en Distance modus. Ik raad aan om de documentatie van Acconeer grondig door te nemen voor een diepgaand begrip van de werking. Voor de gevorderde gebruiker is het ook de moeite waard om de bronbestanden te bekijken. Indien u een eigen applicatie wilt ontwikkelen, kunt u de STM32CubeIDE installeren en verder bouwen op de Acconeer SDK met de STM32L431.
Beveel ik het SparkFun XM125-module aan? Dat is moeilijk te zeggen. Op papier is het aantrekkelijk: dezelfde functionaliteit als de officiële Acconeer-kit, voor 40% van de prijs. Als u het XM125 voornamelijk gebruikt in Presence- of Distance-modus en, net als SparkFun, hoofdzakelijk via de I²C-interface werkt, dan vormt de traagheid van de CH340C geen groot probleem. Voor wie een vlottere ervaring wil met de Exploration Tool en kosten wil besparen, is het wellicht beter om enkel het XM125-module aan te schaffen, samen met een aparte USB-naar-UART-converter, en een eenvoudige adapterprint te maken. Veel plezier!
Opmerking van de redactie: Dit artikel (250167-03) over de radarsensor is verschenen in Elektor juli/augustus 2025.
Vragen of opmerkingen?
Hebt u vragen of opmerkingen over dit artikel? Stuur een e-mail naar de auteur via jean-francois.simon@elektor.com, of neem contact op met Elektor via editor@elektor.com.
Discussie (0 opmerking(en))