This is an old revision of the document!
Mașina așteaptă comenzi prin Bluetooth de pe smartphone. Odată primită o comandă, aceasta ajunge prin HC-05 la microcontroller, care o traduce în semnale către driver-ul L298N (PWM pentru viteză și GPIO pentru direcție), punând cele 4 motoare în mișcare. Pentru viraj, motoarele de pe o parte se rotesc mai repede decât cele de pe cealaltă.
Senzorul ultrasonic rulează în permanență în fundal. Dacă detectează un obstacol prea aproape în față, microcontrollerul ignoră automat orice comandă de mers înainte, obligând utilizatorul să schimbe direcția. Când drumul e liber, mașina răspunde din nou normal la toate comenzile.
| Periferic Conectat | Pin ATmega328P | Pin Periferic | Direcție Semnal |
|---|---|---|---|
| Modul Bluetooth HC-05 | PD0 (RX) | TXD | Intrare |
| PD1 (TX) | RXD | Ieșire | |
| Senzor HC-SR04 | PD2 | Trig | Ieșire |
| PD3 | Echo | Intrare | |
| Driver L298N | PD5 | IN1 | Ieșire |
| PD6 | IN2 | Ieșire | |
| PB1 | IN3 | Ieșire | |
| PB2 | IN4 | Ieșire |
Schema electrică arată cum sunt legate toate componentele în jurul microcontrollerului ATmega328P.
Pentru alimentare, am folosit 4 baterii AA (6V) conectate direct la pinul de 12V al driverului L298N, de unde își iau curent motoarele. Regulatorul intern de pe driver reduce această tensiune la 5V pentru a alimenta microcontrollerul, modulul Bluetooth și senzorul ultrasonic. Toate componentele din circuit împart aceeași masă comună (GND).
Pe partea de date, legăturile respectă exact tabelul de pinout. Modulul Bluetooth comunică serial prin pinii PD0 și PD1 (conectați la TXD/RXD). Senzorul de distanță folosește pinii PD2 (Trig) și PD3 (Echo) pentru a trimite și primi semnalele folosite la evitarea obstacolelor. Driverul L298N primește comenzile de direcție prin pinii IN1-IN4 (legați la pini de pe plăcuță ce permit folosirea PWM, pentru a controla manual viteza), iar ieșirile lui (OUT1-OUT4) controlează cele 4 motoare ale șasiului, fiind legate în paralel câte două pentru fiecare lateral al mașinii.
Mașina asamblată arată ca în imaginile de mai jos. Un demo în care se poate observa că funcționează toate componentele se poate găsi aici.
Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.