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:09]
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 =====
Line 13: Line 16:
 ===== Schemă bloc ===== ===== Schemă bloc =====
  
 +{{:​pm:​prj2021:​alazar:​schemablocv2_gogeterobert331cb.png?​200|}}
  
 ===== Hardware Design ===== ===== Hardware Design =====
  
-Arduino pro microacumulator 5Vbluetooth HC-05Driver motoaresenzor de proximitate+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 ===== ===== Software Design =====
  
-===== Descrierea codului aplicaţiei ​(firmware): =====+<​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();​ 
 + 
 +    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); 
 +  } 
 +
 + 
 +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); 
 +  } 
 +
 + 
 +void setControllerCoordinates() 
 +
 +  controller_x ​controller_x_auxiliary;​ 
 +  controller_y ​controller_y_auxiliary;​ 
 +
 +</​code>​
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
 +{{:​pm:​prj2021:​alazar:​rcoffroadcar_robertgogete331cb_car1.jpg?​200|}}
 +{{:​pm:​prj2021:​alazar:​rcoffroadcar_robertgogete331cb_car2.jpg?​200|}}
 +
 +Link catre video cu demo (am filmat masinuta in timp  ce o controlam din telefon): [[https://​mega.nz/​file/​IpAE2TqA#​ABH6GDGrwyVRfZCJEqUFGSODR-stFDeneov0merYs3o]]
 ===== Concluzii ===== ===== Concluzii =====
  
 +Proiect pe care l-am facut din placere, din care simt ca am invatat mai multa electronica decat in 2 cursuri.
 ===== Download ===== ===== Download =====
-Export în PDF: [[https://​ocw.cs.pub.ro/​courses/​pm/​prj2021/​alazar/​rc_offroad_car?​do=export_pdf|]]+Export în [[https://​ocw.cs.pub.ro/​courses/​pm/​prj2021/​alazar/​rc_offroad_car?​do=export_pdf| ​PDF]]
pm/prj2021/alazar/rc_offroad_car.1619377760.txt.gz · Last modified: 2021/04/25 22:09 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