This is an old revision of the document!


Masina de tuns iarba

Introducere

Proiectul constă într-o mașină de jucărie controlată prin Bluetooth,de pe telefonul mobil, echipată cu LED-uri pentru a imita farurile și stopurile și cu o elice atașată pentru tăiatul ierbii În plus față de aceste caracteristici, am adăugat și un LCD pentru a afișa viteza la care sunt controlate motoarele

Scopul este de a oferi o modalitate distractivă si practica pentru îndeplinirea unei sarcini ,precum tăierea ierbii în grădină.

Descriere generală

Modulul HC-05 primește comenzile Bluetooth de la aplicație și le transmite la microcontroller folosind interfața USART. Microcontrollerul interpretează aceste comenzi si va trimite mai departe către driver-ul motoarelor(L298N) pentru a indica directa si viteza motoarelor, folosind interfata PWM.LCD ul va afisa viteza motoarelor, aceasta fiind selectata din aplicatie.

Hardware Design

Piese utilizate:

  • Arduino UNO (ATmega328p)
  • Modul bluetooth HC-05
  • Modul cu Driver de Motoare Dual L298N
  • Sasiu de masina cu 4 motoare(directie si deplasare)
  • 4 led uri
  • Cabluri cu Conectori Tata-Tata,Tata-Mama
  • 16×2 LCD screen cu interfata I2C
  • Rezistenta de 400 Ohmi
  • Acumulatoare

  • ATmega328P: Este responsabil pentru interpretarea comenzilor Bluetooth primite de la modulul HC-05 și pentru controlul funcțiilor mașinii și a LED-urilor.
  • Modulul Bluetooth HC-05: Este folosit pentru a permite comunicarea fără fir între telefonul mobil și mașina.Transmite comenzile primite de la telefon către ATmega328P.
  • Modulul cu Driver de Motoare Dual L298N: Folosit pentru a controla motoarele care conduc direcția și deplasarea mașinii
  • 4 LED-uri: Acestea sunt utilizate pentru a imita farurile și stopurile mașinii.
  • Cabluri cu Conectori Tata-Tata, Tata-Mama: Utilizate pentru a conecta componentele între ele în cadrul circuitului.
  • 16×2 LCD screen cu interfata I2C: Folosit pentru a afisa viteza motoarelor.
  • Acumulator: Fornizează energia necesară pentru funcționarea mașinii și a componentelor electronice asociate.

Schema electrica

Componentele conectate

Pini folositi

* Pentru a folosi USART in comunicarea dintre microcontrolerul ATmega328P și modulul Bluetooth HC-05,conectez piniul RX de la modul la pinul TX de la microcontroler, si TX la RX.De asemenea, VCC ul de la modul il conectez la pinul de 5V de la microcontroler pentru alimentare si GND ul la GND.

* Motoarele sunt conectate la modulul L298N prin prinii out1,out2,out3 si out4 pentru a controla directia lor.

* Pentru a functiona tot ansamblul, cele 2 acumulatoare sunt conectate la pinul de 12V de la modulul L298N,care oferta si alimnetare microcontrolerului prin pinul de 5V.

* Comenzile primite de la modulul HC-05 sunt trimise la modulul care controleaza motoarele prin pinii de semnale digitale Am ales pinii 4,5,6,7 de la microcontroler

* Pinii 10 si 11 de la microcontroler conectati la pinii ENA si ENB de la modulul L298N controleaza viteza motoarelor prin PWM

* LED urile sunt conectate la pin ul digital 9 de la microcontroler si alimentarea la pinul de 3.3V

* Pinii VCC SI GND de la LCD cu interfata I2C sunt conectati la pinii de 5v si, respecitv GND ai microcontrolerului.

* Pinii SDA SI SCL ai LCD ului sunt concectati la microcontroler prin pinii A4 si A5(SDA SI SCL)

Software Design

  • Mediu de dezvoltare: Arduino IDE
  • biblioteci folosite: Wire.h si LiquidCrystal_I2C.h
  • Surse şi funcţii implementate:

 void setup() {
Serial.begin(9600);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
pinMode(ena, OUTPUT);
pinMode(enb, OUTPUT);
pinMode(led,OUTPUT);
analogWrite(ena, 0);
analogWrite(enb, 0);
lcd.init();
lcd.backlight();
lcd.setCursor(1, 0);
lcd.print("SPEED IS 0");
}

void loop() {

if (Serial.available() > 0) {
  char value = Serial.read();
  analogWrite(ena, Speed);
  analogWrite(enb, Speed);
  lcd.clear();
  lcd.print("SPEED IS ");
  lcd.print(Speed);
  lcd.print("   ");  
  
  if (value == 'B') {
    Forward();
  }
  else if (value == 'F') {
    Back();
  }
  else if (value == 'L') {
    Left();
  }
  else if (value == 'R') {
    Right();
  }
  else if (value == 'X') {
     Speed = 255;
  }
  else if (value == 'Y') {
    Speed = 120;
  }
  else if (value == 'S') {
    Stop();
  }
  else if (value == 'M' || value == 'N')
  {
      digitalWrite(led, LOW);
  }
   else if (value == 'm' || value == 'n')
  {
      digitalWrite(led,HIGH );
  } 
}

void Forward() {

digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);

}

void Back() {

digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);

}

void Left() {

digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);

}

void Right() {

digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);

} void Stop() {

digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);

}

Rezultate Obţinute

Care au fost rezultatele obţinute în urma realizării proiectului vostru.

Concluzii

Download

O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).

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.

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

Bibliografie/Resurse

Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.

Export to PDF

pm/prj2024/vstoica/valentin.ionescu02.1716032289.txt.gz · Last modified: 2024/05/18 14:38 by valentin.ionescu02
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