Autorul poate fi contactat la adresa: Login pentru adresa
Descriere minimala
Se va citi regulat (la minim 100Hz) date de la senzorul de accelerometru + giroscop si se va face comensarea erorii prin actionarea motoarelor. Motoarele se actioneaza cu ajutorul driverelor.
Schema Bloc
Lista de Piese
Sechema electrica
Scurta descriere
Intreg robotul este alimentat de la bateria de 7.4V. Pentru a verifica starea bateriei am legat un voltmetru la bornele ei.
Motoarele functioneaza la 6V si pot consuma un curent maxim de 6.5A. Pentru fiecate motor am folosit o sursa coboratoare pentru a regla voltajul la 6V si care pot da un curent de pana la 5A pentru fiecare motor.
Pentru a alimenta placa de baza la 5V am folosit alta sursa coboratoare care da un curent mai mic.
Mediul de dezvoltare folosit este Atmel Studio.
Librarii
Implementare:
/* Initializare PWM */ void motor_init(void); void move_forward(uint8_t ocr); void move_backward(uint8_t ocr); void move_stop();
double compute(int input) { static int lastErr = 0; static int errSum = 0; int error = SETPOINT - input; errSum += error; int dErr = (error - lastErr); /*Remember some variables for next time*/ lastErr = error; /*Compute PID Output*/ return Kp * error + Ki * errSum * SAMPLE_TIME + Kd * dErr / SAMPLE_TIME; }
GitHub - implementarea software a proiectului