Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Smartphone G-sensor gestuurde robotauto met Arduino en Bluetooth

Onderdelen en benodigdheden

OnderdeelAantal
Arduino UNO1
HC-06 Bluetooth-module1
Motordriver L298N1
Robotautochassis (tweewielig)1

Apps en online diensten

  • RemoteXY (web-editor en mobiele app)

Over dit project

Deze robotauto wordt bestuurd via de G-sensor (versnellingsmeter) van een smartphone met behulp van de RemoteXY-app en een Bluetooth-verbinding. Het project is ideaal voor beginners die willen leren hoe je een robot kunt besturen met een telefoon.

Stap 1: Bouw de robotauto

Gebruik een beschikbaar tweewielig chassis. Het aansluitschema van de elektronische componenten is in de afbeelding te zien. Je hebt nodig: Arduino UNO (of compatibel), Bluetooth HC-05/06 module, motordriver (L298N) en een voedingsbatterij. De tandwielmotoren worden op het chassis gemonteerd en drijven de wielen aan.

Stap 2: Maak de GUI met RemoteXY

Ga naar RemoteXY editor en maak een grafische gebruikersinterface voor de robotbesturing. Voeg een joystick-besturing toe die de G-sensor van de smartphone gebruikt. Een voorbeeldinterface is in de afbeelding te zien. Klik op "Get source code" om de gegenereerde code te downloaden.

Stap 3: Broncode openen in Arduino IDE

Download de broncode van de GUI en open hem in de Arduino IDE. Voor compilatie heb je de RemoteXY.h bibliotheek nodig, te downloaden van RemoteXY library. Je kunt de code al uploaden naar de Arduino en verbinden met de mobiele app, maar de code is nog leeg – je moet nog de functionaliteit koppelen aan de motordriver.

Stap 4: Robotbesturingsfunctionaliteit toevoegen

Voeg de besturingslogica toe aan de broncode met behulp van de RemoteXY structuur, die alle GUI-besturingen bevat. De complete broncode is hieronder weergegeven. Compileer en upload naar de Arduino.

Stap 5: Mobiele app installeren en testen

Installeer de RemoteXY-app via de downloadpagina. Start de app, druk op de Bluetooth-knop, selecteer je Bluetooth-module (meestal "INVOR" of "HC-06" voor HC-05/06). Het werkt!

Code

/////////////////////////////////////////////
// RemoteXY include library
/////////////////////////////////////////////
#define REMOTEXY_MODE__SOFTWARESERIAL
#include <SoftwareSerial.h>
#include <RemoteXY.h>

#define REMOTEXY_SERIAL_RX 2
#define REMOTEXY_SERIAL_TX 3
#define REMOTEXY_SERIAL_SPEED 9600

unsigned char RemoteXY_CONF[] = {
  3,0,23,0,1,5,5,15,41,11,
  43,43,1,2,0,6,5,27,11,5,
  79,78,0,79,70,70,0
};

struct {
  signed char joystick_1_x; // -100..100
  signed char joystick_1_y; // -100..100
  unsigned char switch_1;   // 1=AN, 0=UIT
  unsigned char connect_flag;
} RemoteXY;

/////////////////////////////////////////////
// Motor pins
/////////////////////////////////////////////
#define PIN_MOTOR_RIGHT_UP 7
#define PIN_MOTOR_RIGHT_DN 6
#define PIN_MOTOR_RIGHT_SPEED 10
#define PIN_MOTOR_LEFT_UP 5
#define PIN_MOTOR_LEFT_DN 4
#define PIN_MOTOR_LEFT_SPEED 9
#define PIN_LED 13

unsigned char RightMotor[3] = {PIN_MOTOR_RIGHT_UP, PIN_MOTOR_RIGHT_DN, PIN_MOTOR_RIGHT_SPEED};
unsigned char LeftMotor[3]  = {PIN_MOTOR_LEFT_UP, PIN_MOTOR_LEFT_DN, PIN_MOTOR_LEFT_SPEED};

void Wheel(unsigned char *motor, int v) {
  if (v > 100) v = 100;
  if (v < -100) v = -100;
  if (v > 0) {
    digitalWrite(motor[0], HIGH);
    digitalWrite(motor[1], LOW);
    analogWrite(motor[2], v * 2.55);
  } else if (v < 0) {
    digitalWrite(motor[0], LOW);
    digitalWrite(motor[1], HIGH);
    analogWrite(motor[2], (-v) * 2.55);
  } else {
    digitalWrite(motor[0], LOW);
    digitalWrite(motor[1], LOW);
    analogWrite(motor[2], 0);
  }
}

void setup() {
  pinMode(PIN_MOTOR_RIGHT_UP, OUTPUT);
  pinMode(PIN_MOTOR_RIGHT_DN, OUTPUT);
  pinMode(PIN_MOTOR_LEFT_UP, OUTPUT);
  pinMode(PIN_MOTOR_LEFT_DN, OUTPUT);
  pinMode(PIN_LED, OUTPUT);
  RemoteXY_Init();
}

void loop() {
  RemoteXY_Handler();
  digitalWrite(PIN_LED, (RemoteXY.switch_1 == 0) ? LOW : HIGH);
  Wheel(RightMotor, RemoteXY.joystick_1_y - RemoteXY.joystick_1_x);
  Wheel(LeftMotor,  RemoteXY.joystick_1_y + RemoteXY.joystick_1_x);
}

Schema's

Smartphone G-sensor gestuurde robotauto met Arduino en Bluetooth

Smartphone G-sensor gestuurde robotauto met Arduino en Bluetooth

Smartphone G-sensor gestuurde robotauto met Arduino en Bluetooth

Productieproces

  1. Bouw een Bluetooth-gecontroleerde Raspberry Pi Robot met Audio Feedback
  2. Bouw een Wi-Fi-gecontroleerde Raspberry Pi Robot met Python – Stap-voor-stap Gids
  3. Een DTMF-decoder bouwen met alleen een Arduino – Geen extra IC's nodig
  4. Bouw een indrukwekkend monitor Ambilight-systeem met Arduino
  5. SERENA: Een Aangepast Arduino Mega 2560 Alarmsysteem Met TFT LCD Touchscreen
  6. Een slimme voltmeter bouwen met Arduino en smartphone – Eenvoudig DIY-project
  7. Bouw een Android-bestuurd extern voertuig met Raspberry Pi Motor Shield
  8. Een oude RC-auto ombouwen tot joystick-gestuurd voertuig met Arduino
  9. Bouw een Stemgecontroleerde Robot met Arduino Nano
  10. MobBob: Bouw Je Eigen Arduino Robot, Naadloos Bestuurd via Android Smartphone
  11. Python 3 naar Arduino UNO: Eenvoudige Commando Besturing en LED Demo