This is an old revision of the document!


Mobile Controlled Bluetooth Car

Autor: Macadon Andrei-Cristian

Introducere

  • Proiectul este reprezentat de o masinuta care poate fi controlata dintr-o aplicatie Arduino. Acest lucru este posibil printr-un modul bluetooth HC-05 conectat la placuta arduino uno. Aceasta se afla pe un sasiu de robot.
  • Masinuta poate avea mai multe scopuri:
    1. Poate fi folosita pe post de vehicul transport/poate cara anumite chestii: Ex: Iti poti aduce o ciocolata din bucatarie in sufragerie doar cu ajutorul telefonului
    2. Poti pune un servetel sub ea, aceasta curatand zonele prin care se va plimba
    3. De asemenea, aceasta poate fi folosita si pe post de simpla jucarie.

Hardware Design

Lista componente

  1. Arduino Uno
  2. Placa de control motoare L298n
  3. 4 motoare
  4. Baterie
  5. Modul Bluetooth HC-05
  6. Sasiu robot
  7. Cabluri

Schema Bloc

Software Design

Codul masinii

<code>#include <SoftwareSerial.h> SoftwareSerial hc05(0, 1);

int m1pin1 = 8; int m1pin2 = 9; int m2pin1 = 10; int m2pin2 = 11; int avarii = 0; int backwardsLights = 0; char request;

void setup() {

Serial.begin(9600);
hc05.begin(9600);
// put your setup code here, to run once:
pinMode(m1pin1, OUTPUT);
pinMode(m1pin2, OUTPUT);
pinMode(m2pin1, OUTPUT);
pinMode(m2pin2, OUTPUT);
pinMode(4, OUTPUT); 
pinMode(5, OUTPUT);

}

void loop() {

request = ' ';
if(hc05.available() > 0){
  request = hc05.read();
  Serial.write(Serial.read());
}
if (request == 'F') {
  
  //Make the motors run forward:
  digitalWrite(m1pin1, HIGH);
  digitalWrite(m1pin2, LOW);
  
  digitalWrite(m2pin1, HIGH);
  digitalWrite(m2pin2, LOW);
  backwardsLights = 0;
  analogWrite(4, 255); //ENA pin
  analogWrite(5, 255); //ENB pin
}
if(backwardsLights == 1){
  digitalWrite(6, HIGH);
  delay(500);
  digitalWrite(6, LOW);
  delay(500);
}
if (request == 'B') {
  //Make the motors run backwards
  digitalWrite(m1pin1, LOW);
  digitalWrite(m1pin2, HIGH);
  
  digitalWrite(m2pin1, LOW);
  digitalWrite(m2pin2, HIGH);
  // set the flag for the backwardsLights
  backwardsLights = 1;
  
  digitalWrite(6, HIGH);
  delay(1000);
  digitalWrite(6, LOW);
  delay(1000);
  
  analogWrite(4, 255); //ENA pin
  analogWrite(5, 255); //ENB pin
}
if (request == 'L') {
  //Make only the left motors run 
  digitalWrite(m1pin1, HIGH);
  digitalWrite(m1pin2, LOW);

  digitalWrite(m2pin1, LOW);
  digitalWrite(m2pin2, LOW);
  backwardsLights = 0;
  analogWrite(4, 255); //ENA pin
  analogWrite(5, 255); //ENB pin
}

if (request == 'R') {
  //Make only the right motors run
  digitalWrite(m1pin1, LOW);
  digitalWrite(m1pin2, LOW);
  digitalWrite(m2pin1, HIGH);
  digitalWrite(m2pin2, LOW);
  backwardsLights = 0;
  analogWrite(4, 255); //ENA pin
  analogWrite(5, 255); //ENB pin
}
//check the avarii flag to see if the red LED should be flickering or not 
if(avarii == 1){
  digitalWrite(7, HIGH);
  delay(500);
  digitalWrite(7, LOW);
  delay(500);
}
if (request == 'S') {
  
  // stop all the motors
  digitalWrite(m1pin1, LOW);
  digitalWrite(m1pin2, LOW);
  digitalWrite(m2pin1, LOW);
  digitalWrite(m2pin2, LOW);
  //stop avarii 
  digitalWrite(7, LOW);
   
  analogWrite(4, 0); //ENA pin
  analogWrite(5, 0); //ENB pin
  //set the flags accordingly
  avarii = 0;
  backwardsLights = 0;
}
if(request == 'A'){
  // turn on avarii
  digitalWrite(7, HIGH);
  delay(1000);
  digitalWrite(7, LOW);
  delay(1000);
  // if avarii were already turned on, turn them off
  if(avarii == 0){
    avarii = 1;
  } else {
    avarii = 0;
  }
}

}<code>

Bibliografie

pm/prj2021/abirlica/mcb_car.1622804611.txt.gz · Last modified: 2021/06/04 14:03 by andrei.macadon
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