Build A Bluetooth RC Car: Easy Arduino Nano Tutorial

Поділитися
Вставка
  • Опубліковано 20 сер 2024

КОМЕНТАРІ • 18

  • @bbiasao
    @bbiasao 9 місяців тому +1

    I am trying to convice my kids to work on some build project. This looks like a great idea! Thanks for sharing!

    • @BMonsterLaboratory
      @BMonsterLaboratory  9 місяців тому +1

      hey there! I tell my kids to learn at least one coding language and Linux. This project is great for beginners because you end up with something tangible to control, and who doesn't like rc cars? Thanks for the comment and good luck to you! 👍💪

    • @bbiasao
      @bbiasao 9 місяців тому +1

      @@BMonsterLaboratory indeed! That makes sense.

  • @rahafnouralla4831
    @rahafnouralla4831 9 місяців тому

    10/10 made it look so effortless!🤩

    • @BMonsterLaboratory
      @BMonsterLaboratory  9 місяців тому

      hey there! I appreciate your compliment. Thanks! 👍💪

  • @parthkatiyar1531
    @parthkatiyar1531 9 місяців тому +1

    Satisfying

  • @sadramohh
    @sadramohh 8 місяців тому +1

    Awesome tutorial!
    I'll have to try this on my own sometime.

    • @BMonsterLaboratory
      @BMonsterLaboratory  8 місяців тому

      hey there! Thanks for the compliment - much appreciated. 👍

  • @chevy4x466
    @chevy4x466 6 місяців тому +1

    Could u have used a Wi-Fi connection instead of blue tooth 🦷? How would that work?
    Another thing, I thought the 9v battery would step down to 5v if u use the 5v pin 📌. Apparently I do have much to learn.
    Yes, I am a 53 year old beginner 😂😂😂. I am basically writing a blank check for electronic supplies. I am a mentor for my son’s robotics junior high team. And my daughter is in high school robotics where I volunteer. I live in the Detroit area. They have a dozen automotive engineers as mentors on the high school team. 😂😂😂
    Thank you so much for the wonderful content.

    • @BMonsterLaboratory
      @BMonsterLaboratory  6 місяців тому +1

      Hey there! The HC-05 and HC-06 modules are bluetooth modules, but ya, you could use ESP32 boards to make a wifi rc car. You would need two ESP32 development boards-one for the car (receiver) and one for the remote control (transmitter). There are some other ways to build a wifi car but the ESP32 is well-documented, and there are lots of resources available.
      The motor driver and Arduino have a 5v regulator. When attaching 9v at the Arduino VIN pin, you can provide 5v power to low power boards without issue - never attach a motor directly to Arduino and always check your current draw on the board.
      It's pretty awesome that you're learning this stuff on your own and helping out with your children's robotics teams. I'm in Ohio and I started this hobby to encourage my own kids to learn something useful. If you ever have a question, just ask! I'll do my best.
      good luck to you and keep up the good work! 👍

    • @chevy4x466
      @chevy4x466 6 місяців тому +1

      @@BMonsterLaboratory thanks for the feed back. Just ordered the hc05. And the l298. I do like the design of ur build. Thx for making great videos. Nice to see a UA-camr I follow in the Midwest.

    • @BMonsterLaboratory
      @BMonsterLaboratory  6 місяців тому +1

      ​@@chevy4x466 ​ Sound good! Don't forget the HC-06 module. In this video i used HC-05 as Master (remote) and HC-06 as slave for the car. Good luck with your build and thanks for droppin' a message. let me know how it goes for ya.

  • @degamers8710
    @degamers8710 4 місяці тому +2

    can you please give me the code link

    • @BMonsterLaboratory
      @BMonsterLaboratory  4 місяці тому

      sure! I can. Here are both sketches.
      //HC-06 slave for car
      #include
      SoftwareSerial BTSerial(11, 12); // RX, TX
      const int motorPin1 = 3; // Motor control pins
      const int motorPin2 = 4;
      const int motorPin3 = 5;
      const int motorPin4 = 6;
      const int enA = 9; // Enable pin for motor A
      const int enB = 10; // Enable pin for motor B
      void setup() {
      Serial.begin(9600);
      BTSerial.begin(9600); // HC-06 default speed
      pinMode(motorPin1, OUTPUT);
      pinMode(motorPin2, OUTPUT);
      pinMode(motorPin3, OUTPUT);
      pinMode(motorPin4, OUTPUT);
      pinMode(enA, OUTPUT);
      pinMode(enB, OUTPUT);
      analogWrite(enA, 255); // Full speed
      analogWrite(enB, 255);
      }
      void loop() {
      if (BTSerial.available()) {
      char command = BTSerial.read();
      Serial.print("Received command: ");
      Serial.println(command); // Debug output
      controlCar(command);
      }
      }
      void controlCar(char command) {
      switch (command) {
      case 'F': // Forward
      digitalWrite(motorPin1, LOW);
      digitalWrite(motorPin2, HIGH);
      digitalWrite(motorPin3, LOW);
      digitalWrite(motorPin4, HIGH);
      break;
      case 'B': // Backward
      digitalWrite(motorPin1, HIGH);
      digitalWrite(motorPin2, LOW);
      digitalWrite(motorPin3, HIGH);
      digitalWrite(motorPin4, LOW);
      break;
      case 'L': // Left
      digitalWrite(motorPin1, LOW);
      digitalWrite(motorPin2, HIGH);
      digitalWrite(motorPin3, HIGH);
      digitalWrite(motorPin4, LOW);
      break;
      case 'R': // Right
      digitalWrite(motorPin1, HIGH);
      digitalWrite(motorPin2, LOW);
      digitalWrite(motorPin3, LOW);
      digitalWrite(motorPin4, HIGH);
      break;
      case 'S': // Stop
      digitalWrite(motorPin1, LOW);
      digitalWrite(motorPin2, LOW);
      digitalWrite(motorPin3, LOW);
      digitalWrite(motorPin4, LOW);
      break;
      }
      }
      //HC-05 joystick
      #include
      SoftwareSerial BTSerial(11, 12); // RX, TX
      const int joyX = A0; // Joystick X-axis
      const int joyY = A1; // Joystick Y-axis
      const int threshold = 50; // Threshold for joystick sensitivity
      void setup() {
      BTSerial.begin(9600); // HC-05 default speed
      pinMode(joyX, INPUT);
      pinMode(joyY, INPUT);
      }
      void loop() {
      int xVal = analogRead(joyX);
      int yVal = analogRead(joyY);
      // Check if the joystick is in the neutral position for stopping
      if (abs(xVal - 512) < threshold && abs(yVal - 512) < threshold) {
      BTSerial.write('S'); // Stop
      } else {
      // Forward and Backward
      if (yVal > 512 + threshold) {
      BTSerial.write('F'); // Forward
      } else if (yVal < 512 - threshold) {
      BTSerial.write('B'); // Backward
      }
      // Left and Right
      if (xVal > 512 + threshold) {
      BTSerial.write('R'); // Right
      } else if (xVal < 512 - threshold) {
      BTSerial.write('L'); // Left
      }
      }
      delay(100); // Delay to prevent too many commands
      }

    • @degamers8710
      @degamers8710 4 місяці тому

      @@BMonsterLaboratory can you sent me the code its a school project ?

    • @BMonsterLaboratory
      @BMonsterLaboratory  4 місяці тому

      @@degamers8710 it's posted on my facebook page. #arduinoRC to find it. thatt's the only other place that I posted it. facebook.com/profile.php?id=100059867144068