Skip to main content
Version: ACS CC

Derby Predictor

Simulator de curse asincron cu control de precizie pe 4 axe liniare.

info

Description

Sistemul este un simulator fizic de curse pe 4 axe liniare. Utilizatorul selectează un concurent prin butoane și LCD. La start, sistemul procesează un seed aleatoriu citind zgomotul de pe un pin ADC pentru a genera profile de viteză variabile și dinamice. Procesarea folosește multitasking asincron pentru a controla simultan și independent mișcarea celor 4 axe fără blocaje software. Intrările de la limitatoarele de cursă declanșează întreruperi hardware (EXTI) pentru calibrarea automată a poziției. Ieșirile includ mișcarea coordonată a axelor, afișarea stării pe LCD și feedback sonor.

Motivation

Am ales acest proiect pentru a explora provocările controlului fizic de precizie combinat cu multitasking-ul asincron (Embassy) în Rust. Dorința de a construi un sistem electromecanic complex, care evită blocajele software prin folosirea DMA-ului și a întreruperilor hardware (EXTI), reprezintă o oportunitate excelentă de a aprofunda conceptele de programare aplicate pe hardware real (STM32).

Architecture

Schema Bloc

Main Components:

  • Input: Butoane tactile (Selecție/Start), Potențiometru liniar (Seed ADC), 4x Limitatoare de cursă mecanice (EXTI pentru calibrare/finish).
  • Processing: Placa STM32 Nucleo. Rulează mediul asincron și generează frecvențele variabile pentru pașii motoarelor.
  • Output: Shield CNC Arduino v3 cu 4x Drivere A4988, 4x Motoare pas cu pas NEMA 17, Ecran LCD 1602 (I2C) și Buzzer pasiv.
  • Power: Sursă în comutație de 12V 5A (60W) dedicată părții de forță (CNC Shield).

Log

  • Săptămâna 20 - 26 Aprilie: Cercetare componente, definirea arhitecturii software/hardware și completarea formularului de proiect pe Moodle. Am finalizat și plasat comenzile pentru toate componentele fizice.

Hardware & Bill of Materials (BOM)

Sistemul utilizează componente electromecanice solide pentru axele liniare, controlate de drivere dedicate pentru a asigura o mișcare fluidă. Logica este izolată electric de circuitul de forță prin folosirea CNC Shield-ului.

DeviceUsagePrice
STM32 Nucleo BoardUnitatea centrală de procesareGratuit (Facultate)
Motor Pas cu Pas NEMA 17 (x4)Acționare mecanică a axelor~218.69 Lei
Driver Motoare A4988 (x4)Control curent și micropășire~35.67 Lei
Shield CNC Arduino v3Rutare pini STEP/DIR și alimentare forță~15.30 Lei
Axă T8 400mm + Piuliță (x4)Pista fizică de rulare~133.87 Lei
Limitator Cursă Mecanic (x4)Senzori de poziție (Start/Finish)~19.44 Lei
Cuplaj Flexibil 5-8mm (x4)Conexiune ax motor - axă filetată~26.41 Lei
Sursă 12V 5A (60W)Alimentare dedicată modulelor A4988~33.48 Lei
Display LCD 1602 (Modul I2C)Interfața grafică UI23.22 Lei
Potențiometru 10k & Butoane (x5)Input ADC și comenzi UI~16.00 Lei
Buzzer Pasiv 3.3VFeedback sonor asincron (PWM)~1.12 Lei
Breadboard & Set Fire DupontPrototipare și conexiuni logice~36.00 Lei

Software

LibraryDescriptionUsage
embassy-stm32HAL asincron pentru STM32Configurare pini STEP/DIR, EXTI, I2C (LCD) și ADC (Zgomot).
embassy-executorRuntime asincronRularea simultană a celor 4 task-uri complet independente pentru motoare.
embassy-timeTimer asincronGenerarea delay-urilor non-blocante pentru profilul de viteză.
defmtLogging frameworkDepanarea stărilor sistemului și a datelor de pe senzorul ADC.