Embedded Distance-Control System

Robotikk og ingeniørsystemer2024EmbeddedControl

Et innebygd avstandsservosystem: infrarød avstandssensor, to STM32-noder koblet med RS422 og en lineær aktuator som regulerer mot en fast avstand.

Utfordringen

Systemet skulle holde en sensorplattform i en bestemt avstand fra et objekt i bevegelse. Det krevde hele kjeden fra analog sensor og støyfiltrering, via kommunikasjon mellom to mikrokontrollere, til regulering og styring av en lineær aktuator, bygget og testet på ekte maskinvare.

Løsningen

En sensornode leser en infrarød avstandssensor, filtrerer signalet analogt og digitalt, kalibrerer målingen til millimeter og sender den over en differensiell RS422-forbindelse. En kontrollnode beregner avviket fra ønsket avstand og styrer aktuatoren med PWM og et retningssignal. En Python-applikasjon på PC-en brukes til logging og overvåking.

Hvordan det ble bygget

Prosjektet ble utviklet i et team på tre. Jeg bidro på tvers av hardware og PCB, embedded firmware og regulering, integrasjon og testing. Teamet designet et eget kretskort i KiCad med spenningsregulering, analog forsterkning, et 8.-ordens switched-capacitor lavpassfilter klokket fra mikrokontrolleren, og RS422-transceivere. Fastvaren er skrevet i C for STM32F303 med ADC-avlesning, eksponentiell glatting, seriell kommunikasjon og timerstyrt PWM. P-, PI-, PD- og PID-regulering ble testet med Ziegler–Nichols-innstilling; full PID ga ustabil oppførsel, så den endelige løsningen bruker proporsjonal regulering med dødbånd og metning.

Resultat

Systemet fungerte ende til ende, fra sensor til aktuator. Det regulerte stabilt med lite oversving og et stasjonært avvik på omtrent 3 mm. Kravet var ±2 mm, så kravet ble ikke helt nådd, og reaksjonstiden ble ikke målt eksakt.

Kontekst

Kontrollnoden venter uten tidsgrense på nye målinger, så et brudd i kommunikasjonen kan la aktuatoren fortsette med siste kommando, en manglende feilsikring som ble identifisert i evalueringen. Kretskortet måtte bygges om etter feil i pinnetilordningen.

Teknologi og metoder

CSTM32F303 (Arm Cortex-M4)STM32 HALKiCadRS422/USARTADCTimere og PWMSwitched-capacitor-filterIIR-glattingP/PID-reguleringZiegler–NicholsPython (seriell kommunikasjon, logging)