Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2025:vstoica:florin.ionita3007 [2025/05/26 13:28]
florin.ionita3007 [Bill of Materials]
pm:prj2025:vstoica:florin.ionita3007 [2025/05/26 13:49] (current)
florin.ionita3007 [Jurnal]
Line 79: Line 79:
  
  
-<note tip> +=== Descrierea codului ​aplicatiei === 
-Descrierea codului ​aplicaţiei (firmware)+ 
-  * mediu de dezvoltare ​(if any) (e.g. AVR StudioCodeVisionAVR+Codul aplicatiei controleaza un robot autonom capabil sa urmeze o linie folosind patru senzori IR analogici si un accelerometru ADXL345 pentru a ajusta viteza in functie de inclinarea terenului. Motorul stang si cel drept sunt controlate printr-un driver L298N conectat la pinii digitali ai microcontrolerului,​ folosind semnale PWM pentru ajustarea vitezei. 
-  * librării şi surse 3rd-party ​(e.g. Procyon AVRlib+ 
-  * algoritmi şi structuri ​pe care plănuiţi să le implementaţi +=== Etapa 3: Surse si functii implementate === 
-  (etapa 3) surse şfuncţii implementate + 
-</note>+Fisierul principal al aplicatiei este '''​main.c''',​ care contine codul firmware-ului pentru controlul robotului line follower. Toate functiile periferice sunt implementate direct, fara librarii externe, folosind registrele microcontrolerului ATmega328P. Programul este organizat modular, cu functii separate pentru fiecare componenta hardwaremotoare, UART, I2C, ADC si accelerometru. 
 + 
 +=== Functiile implementate:​ === 
 + 
 +pwm_init() 
 +motor_forward(
 +motor_left() 
 +motor_right() 
 +motor_stop() 
 +uart_init(ubrr) 
 +uart_putchar() 
 +i2c_init() 
 +i2c_start()i2c_stop(), i2c_write(),​ i2c_read_ack(),​ i2c_read_nack()4 
 +adxl345_write(reg, value
 +adxl345_read_xyz(x,​ y, z) 
 +adxl345_init() 
 +adc_init() 
 +read_adc(channel) 
 +follow_line() 
 +main() 
 + 
 + 
 +=== Mediu de dezvoltare === 
 + 
 +Aplicatia a fost dezvoltata ​pe WSL si programul a fost incarcat prin sistem de operare Windows folosind toolchain-ul GNU AVR. Am utilizat un editor de text (VS Code) impreună cu urmatoarele unelte: 
 + 
 +'''​Compilator''':​ avr-gcc 
 +* '''​Uploader''':​ avrdude 
 +* '''​Platforma hardware''':​ Arduino Uno R3 cu microcontroler ATmega328P 
 +* '''​Terminal serial pentru debugging''':​ Serial Monitor Arduino IDE 
 + 
 +Compilarea si programarea s-au realizat prin urmatoarele comenzi: 
 + 
 +<​code>​ 
 +avr-gcc -mmcu=atmega328p -DF_CPU=16000000UL -Os -o main.elf main.c -Wl,​-u,​vfprintf -lprintf_flt -lm 
 + 
 +avr-objcopy -O ihex -R .eeprom main.elf main.hex 
 + 
 +avrdude -c arduino -p m328p -P COM5 -b 115200 -U flash:​w:​C:​\Users\40731\Desktop\main.hex:​
 +</code> 
 + 
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
Line 96: Line 137:
  
 ===== Download ===== ===== Download =====
 +
 +{{:​pm:​prj2025:​vstoica:​cd:​florin.ionita3007:​main.rar|}}
  
 <note warning> <note warning>
Line 112: Line 155:
  
 5/18 ora 15:00 - ultimele retusuri pe hardware 5/18 ora 15:00 - ultimele retusuri pe hardware
 +
 +5/26 ora 1:49 - am schimbat pinii pe schema hardware, adaugat software-ul,​ retusat facut putin mai dragut si adaugat codul in download
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
  
pm/prj2025/vstoica/florin.ionita3007.1748255332.txt.gz · Last modified: 2025/05/26 13:28 by florin.ionita3007
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0