Differences

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

Link to this comparison view

pm:prj2021:alazar:rc_offroad_car [2021/04/25 22:00]
ioan_robert.gogete
pm:prj2021:alazar:rc_offroad_car [2021/05/31 18:25] (current)
ioan_robert.gogete [Concluzii]
Line 1: Line 1:
-====== Introducere ====== 
- 
- 
-====== Componente folosite: ====== 
- 
-Arduino pro micro, acumulator 5V, bluetooth HC-05, Driver motoare, senzor de proximitate 
- 
 ====== RC Offroad Car ====== ====== RC Offroad Car ======
 +
 +===== Autor =====
 +Robert Gogete 331CB 
  
 ===== Introducere ===== ===== Introducere =====
 +
 Masina controlata de la distanta prin bluetooth. Masina controlata de la distanta prin bluetooth.
  
-==== Prezentarea pe scurt a proiectului vostru: ​====+===== Descriere generală =====
  
 O sa contruiesc masina de teren controlata bluetooth prin aplicatie android, cu senzor de proximitate pentru oprire de urgenta. O sa contruiesc masina de teren controlata bluetooth prin aplicatie android, cu senzor de proximitate pentru oprire de urgenta.
Line 17: Line 14:
 eu o loveam de multe ori in obiecte asa ca am decis sa ii adaug un senzor de proximitate prin care sa franez de urgenta. eu o loveam de multe ori in obiecte asa ca am decis sa ii adaug un senzor de proximitate prin care sa franez de urgenta.
  
-=== Descriere generală ===+===== Schemă bloc ===== 
 + 
 +{{:​pm:​prj2021:​alazar:​schemablocv2_gogeterobert331cb.png?​200|}} 
 + 
 +===== Hardware Design ===== 
 + 
 +Componente folosite: 
 +  * Arduino pro micro 
 +  * acumulator 5V 
 +  * bluetooth HC-05 
 +  * Driver motoare 
 +  * senzor de proximitate 
 +  * 3 motoare 5V 
 + 
 + 
 +{{:​pm:​prj2021:​alazar:​schemabloc_gogeterobert331cb.png?​200|}} 
 + 
 +===== Software Design ===== 
 + 
 +<​code>​ 
 +void setup()  
 +
 +  Serial.begin(9600);​ 
 +  Serial1.begin(9600);​ 
 +  pinMode(MOTORS,​ OUTPUT); 
 +  pinMode(MOTORS_DIRECTION,​ OUTPUT); 
 +  pinMode(SERVO_DIRECTION,​ OUTPUT); 
 +  pinMode(SERVO_DIRECTION_SPEED,​ OUTPUT); 
 +  pinMode(PROXIMITY_SENSOR,​ INPUT_PULLUP);​ 
 +
 + 
 +void loop() 
 +
 +  readInput();​ 
 +  resetAtInactivity();​ 
 +  setMotorSpeed();​ 
 +  setDirection();​ 
 +
 + 
 +void resetAtInactivity() 
 +
 +  if (millis() - time > 200) 
 +  { 
 +    controller_y = 50; 
 +    controller_x ​50; 
 +  } 
 +
 + 
 +void readInput() 
 +
 +  if(Serial1.available()) ​  
 +  { 
 +    time millis(); 
 +    incoming_value ​Serial1.read();​
  
-== ==== Schemă bloc ==== ==+    switch(incoming_value) 
 +    { 
 +      case '​X':​ 
 +        value_type ​1; 
 +        setControllerCoordinates();​ 
 +        controller_x_auxiliary ​0; 
 +        break; 
 +      case '​Y':​ 
 +        value_type ​2; 
 +        controller_y_auxiliary ​0; 
 +        break; 
 +      default: 
 +          switch(value_type) 
 +          { 
 +            case 1: 
 +              controller_x_auxiliary *10; 
 +              controller_x_auxiliary +incoming_value - '​0';​ 
 +              break; 
 +            case 2: 
 +              controller_y_auxiliary *10; 
 +              controller_y_auxiliary +incoming_value - '​0';​ 
 +              break; 
 +          } 
 +        break; 
 +    } 
 +  }    
 +}
  
 +void setMotorSpeed()
 +{
 +  int clearPath = digitalRead(PROXIMITY_SENSOR);​
 +  Serial.println(clearPath);​
 +  ​
 +  if (controller_y <= 50 && clearPath)
 +  {
 +    analogWrite(MOTORS,​ controller_y * 255 / 50);
 +    digitalWrite(MOTORS_DIRECTION,​ HIGH);
 +  } 
 +  else if (controller_y > 50)
 +  {
 +    analogWrite(MOTORS,​ (controller_y - 50) * 255 / 50);
 +    digitalWrite(MOTORS_DIRECTION,​ LOW);
 +  }
 +  else
 +  {
 +    analogWrite(MOTORS,​ 255);
 +    digitalWrite(MOTORS_DIRECTION,​ HIGH);
 +  }
 +}
  
-== Hardware Design ==+void setDirection() 
 +
 +  if (controller_x < 25) 
 +  { 
 +    digitalWrite(SERVO_DIRECTION,​ HIGH); 
 +    digitalWrite(SERVO_DIRECTION_SPEED,​ LOW); 
 +  }  
 +  else if (controller_x > 75) 
 +  { 
 +    digitalWrite(SERVO_DIRECTION,​ LOW); 
 +    digitalWrite(SERVO_DIRECTION_SPEED,​ HIGH); 
 +  } 
 +  else 
 +  { 
 +    digitalWrite(SERVO_DIRECTION,​ LOW); 
 +    digitalWrite(SERVO_DIRECTION_SPEED,​ LOW); 
 +  } 
 +}
  
-== Software Design ==+void setControllerCoordinates() 
 +
 +  controller_x ​controller_x_auxiliary;​ 
 +  controller_y ​controller_y_auxiliary;​ 
 +
 +</​code>​
  
-== Descrierea codului aplicaţiei (firmware): ​==+===== Rezultate Obţinute =====
  
-== Rezultate Obţinute ==+{{:​pm:​prj2021:​alazar:​rcoffroadcar_robertgogete331cb_car1.jpg?​200|}} 
 +{{:​pm:​prj2021:​alazar:​rcoffroadcar_robertgogete331cb_car2.jpg?​200|}}
  
-== Concluzii ==+Link catre video cu demo (am filmat masinuta in timp  ce o controlam din telefon): [[https://​mega.nz/​file/​IpAE2TqA#​ABH6GDGrwyVRfZCJEqUFGSODR-stFDeneov0merYs3o]] 
 +===== Concluzii ​=====
  
-== Download == +Proiect pe care l-am facut din placere, din care simt ca am invatat mai multa electronica decat in 2 cursuri. 
-Export în PDF: [[https://​ocw.cs.pub.ro/​courses/​pm/​prj2021/​alazar/​rc_offroad_car?​do=export_pdf|]]+===== Download ​===== 
 +Export în [[https://​ocw.cs.pub.ro/​courses/​pm/​prj2021/​alazar/​rc_offroad_car?​do=export_pdf| ​PDF]]
pm/prj2021/alazar/rc_offroad_car.1619377249.txt.gz · Last modified: 2021/04/25 22:00 by ioan_robert.gogete
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