Paul Kronegger
StudiumProjekteTechnologienÜber mich
Zurück zu den Projekten

University Lab | Winter 2024/25

FPGA-Based Robot Control

FPGA-basiertes Steuerungssystem in VHDL für eine mechanische Robotplattform. Der Fokus lag auf digitalem Hardwaredesign, Control Logic und Signalverarbeitung auf echter FPGA-Hardware.

VHDLRTL DesignFSMsSimulationIntel QuartusFPGA Bring-upPWMDelta-ADC
FPGA-gesteuerte Robotplattform aus dem Hardware Design Lab

Projektumfang

Was das System macht

Neigungssteuerung

Zwei Achsen werden über Sensorsignale verarbeitet. In den Quellen sind unter anderem Delta-ADC, optionaler Moving-Average-Filter, Tilt-Axis-Logik und 7-Segment-Ausgabe aufgebaut.

Manuelle Steuerung

Taster und Schalter werden synchronisiert und entprellt. Ein Debug-/Button-Control-Pfad erlaubt kleine oder größere Schrittweiten und die Auswahl der aktiven Achse.

Autonome Sequenz

Ein Command Processor liest eine Command-ROM mit 61 Bewegungsbefehlen. Die FSM durchläuft Warte-, Initialisierungs-, Zeichen- und Abschlusszustände.

Die mechanische Robotplattform wurde vom University Lab bereitgestellt. Die Projektarbeit lag in der digitalen Hardwarebeschreibung, im Zusammenspiel der VHDL-Module und in der Umsetzung auf FPGA.

RTL-Aufbau

Vom Einzelmodul zum Top-Level

Die finalen Quellen zeigen ein integriertes Top-Level um `board`, das Neigungssteuerung, Command Processing und Servo-Ausgabe verbindet. Für asynchrone Eingaben werden Synchronizer und Debounce-Logik eingesetzt.

board
tilt_axis_debugable
debugable_ctrl
command_proc
command_rom
servo_ctrl
delta_adc
mov_avg_filter
pwm
synchronizer
debounce_fsm
bcd_to_7seg / bin2bcd

Entwicklung

Schrittweise aufgebaut

  • Counter, FSMs und einfache sequenzielle Schaltungen
  • PWM-Erzeugung und Testbench-Aufbau
  • Delta-ADC, Strobe-Generator und Sampling-Pfad
  • Synchronizer, Debounce-FSM und Button-Control
  • Tilt-Axis-Verarbeitung mit Anzeige und optionalem Filter
  • Command-ROM, Command Processor und Servo-Control-Integration
  • Top-Level-Integration im board-Modul mit X-, Y- und Z-Servo-Ausgaengen

Verifikation

Simulation & Bring-up

Neben der Quartus-Implementierung wurden zentrale Module mit Testbenches abgesichert. In den finalen Übungen liegen unter anderem diese Testbenches vor:

pwm_tbdebounce_fsm_tbmov_avg_filter_tbtilt_axis_tbcommand_proc_tbboard_debug_tbboard_tilt_tbboard_cmd_proc_tb