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:03]
ioan_robert.gogete
pm:prj2021:alazar:rc_offroad_car [2021/05/31 18:25] (current)
ioan_robert.gogete [Concluzii]
Line 1: Line 1:
 ====== 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 10: 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;
 +  }
 +}
  
-==== Schemă bloc ====+void readInput() 
 +
 +  if(Serial1.available()) ​  
 +  { 
 +    time millis(); 
 +    incoming_value ​Serial1.read();​
  
 +    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;
 +    }
 +  }   
 +}
  
-==== Hardware Design ====+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); 
 +  } 
 +}
  
-Arduino pro microacumulator 5Vbluetooth HC-05Driver motoaresenzor de proximitate+void setDirection() 
 +
 +  if (controller_x < 25) 
 +  { 
 +    digitalWrite(SERVO_DIRECTIONHIGH); 
 +    digitalWrite(SERVO_DIRECTION_SPEEDLOW); 
 +  }  
 +  else if (controller_x > 75) 
 +  { 
 +    digitalWrite(SERVO_DIRECTIONLOW); 
 +    digitalWrite(SERVO_DIRECTION_SPEEDHIGH); 
 +  } 
 +  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.1619377408.txt.gz · Last modified: 2021/04/25 22:03 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