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

Bluetooth-gestuurde obstakelvermijdende robot

Componenten en benodigdheden

Arduino Nano R3
× 1
SparkFun Dual H-Bridge motordrivers L298
× 1
Ultrasone sensor - HC-SR04 (algemeen)
× 1
HC-05 Bluetooth-module
× 1
RGB diffuse gemeenschappelijke anode
× 1
SparkFun Logic Level Converter - bidirectioneel
× 1
Weerstand 330 ohm
× 1
Broodplank (algemeen)
× 1
SparkFun Breadboard-voedingsstick 5V/3,3V
× 1
DC-motor, 12 V
× 2
Mannelijke/Vrouwelijke doorverbindingsdraden
× 1

Apps en online services

Arduino IDE
Arduino BlueControl
Beschikbaar in Playstore.

Over dit project

Het project gebruikt een mobiele telefoon om via bluetooth met een robot te communiceren. Ik heb altijd al een robot willen bouwen en deze via een mobiele telefoon besturen. Na een lange periode van meer dan 12 jaar nam ik de taak op me om een ​​robot te bouwen en te bedienen. Dit is ook mijn eerste project in de Arduino Project Hub. Elektronica en robotica is een van mijn favoriete hobby's en daarom nam ik de taak op me om de robot te bouwen in deze tijd van lockdown vanwege Covid19.

De robot detecteert bluetooth-signalen die door de mobiele telefoon worden verzonden. Het gebruikt de HC-05 bluetooth-module om de commandosignalen van de mobiele telefoon te detecteren en de robot te besturen. Ik heb de ArduinoBlueControl-app gebruikt om de robot te besturen.

Het hart van de robot is de Arduino Nano. Het ontvangt de signalen van de HC-05-module via seriële communicatie en bestuurt de motoren via de L298N-motorstuurmodule voor beweging in voorwaartse, achterwaartse, linkse en rechtse richtingen.

Er moet voor worden gezorgd dat de TX- en RX-pinnen van de HC-05-module met de Arduino Nano worden verbonden. Hiervoor wordt een logische niveau-omzetter gebruikt.

De robot gebruikt de HC SR-04 ultrasone sensormodule om obstakels op zijn pad te detecteren. Bij het detecteren van een obstakel tijdens zijn voorwaartse beweging, stopt de robot. Een RGB-led wordt gebruikt om de status van de robot weer te geven.

De robot is gemonteerd in een 2-wielbasis bestaande uit twee aandrijfmotoren met reductie. De schakeling is gemonteerd op een breadboard met voeding (3,3v en 5v). De Arduino Nano kan de motoren niet rechtstreeks aansturen vanwege de veel hogere stroombehoefte voor de motoren. Daarom wordt de L298N motor driver module gebruikt om de motoren aan te drijven. De PWM-signalen van de Arduino Nano worden gebruikt om de snelheid van de motoren te regelen via de ENA- en ENB-pinnen van de L298N-motorstuurmodule.

Hier is een korte video van de robot in werking:

Ik hoop dat je mijn bluetooth-gestuurde robot voor het vermijden van obstakels leuk vond. Deze robot kan worden aangepast en uitgebreid voor gebruik in domotica, voertuigen voor het vermijden van obstakels voor de werkvloer enz. en nog veel meer toepassingen.

Code

  • Bluetooth-gestuurde Robot_Arduino-code.
Bluetooth-gestuurde Robot_Arduino-code.C/C++
/* Bluetooth-gestuurde robot voor het vermijden van obstakels Voorbereid door:Alok Talukdar Datum:09.05.2020*/#include // Om elke pin op Arduino te gebruiken voor seriële communicatie.// Definieer de digitale pinnen voor de L298-motor regelmodule.#define IN1 5 // voor rechter motor#define IN2 4 // voor rechter motor#define IN3 3 // voor linker motor#define IN4 2 // voor linker motor#define ENA 9 // Activeer A voor PWM-besturing van rechtermotor#define ENB 10 // Schakel B in voor PWM-besturing van linkermotor// Definieer de digitale pinnen voor RGB LED-besturing#definieer rodeLED 8#definieer groeneLED A0#definieer blauweLED 11// Stel de HC-SR04 Ultrasone sensormoduleconst in int trigPin =6; // TRIG-pin aangesloten op pin D6 van Arduino Nanoconst int echoPin =7; // ECHO-pin aangesloten op pin D7 van Arduino Nanoint i,j,k =0;floatduur,afstand; // variabelen voor afstandsmeting// Stel de HC05 Bluetooth-module inSoftwareSerial mySerial (12,13); // (12 --> RX, 13 --> TX) Stringgegevens; // variabelen voor Bluetooth controlint btVal;void setup() {// plaats hier uw setup-code om een ​​keer uit te voeren:pinMode(trigPin,OUTPUT); // Configureer pin D6 om ultrasone pulsen te verzenden pinMode (echoPin, INPUT); // Configureer pin D7 om ultrasone pulsen te ontvangen mySerial.begin (9600); // Configureer de software serieel op baudrate 9600 pinMode (IN1, OUTPUT); // Configureer IN1 - IN4 als OUTPUT om motoren pinMode (IN2, OUTPUT) te besturen; pinMode (IN3, UITGANG); pinMode (IN4, UITGANG); pinMode (ENA, UITGANG); pinMode (ENB, UITGANG); pinMode (rode LED, UITGANG); pinMode (blauwe LED, UITGANG); pinMode (groene LED, UITGANG); digitalWrite (IN1, LAAG); // Configureer de status van de IN1 - IN4 als LOW digitalWrite (IN2,LOW); digitalWrite (IN3, LAAG); digitalWrite (IN4, LAAG); analoogWrite(rodeLED,255); // Schakel de LED's uit. RGB LED is een veelvoorkomend anodetype. digitalWrite (blauwLED, HOOG); digitalWrite(greenLED,HIGH);}void loop(){ // plaats hier je hoofdcode om herhaaldelijk uit te voeren:while (mySerial.available()) { data =mySerial.readStringUntil('\n'); } btVal =(data.toInt()); switch (btVal) { geval 1:forward(); digitalWrite (groene LED, LAAG); analoogWrite(rodeLED,255); digitalWrite (blauwLED, HOOG); dist(); pauze; geval 2:omgekeerd(); digitalWrite (groene LED, HOOG); analoogWrite(rodeLED,255); digitalWrite (blauw LED, LAAG); pauze; geval 3:links(); pauze; geval 4:rechts(); pauze; geval 5:stoprobot(); digitalWrite (groene LED, HOOG); analoogWrite(rodeLED,0); digitalWrite (blauwLED, HOOG); pauze; standaard:digitalWrite (groene LED, HOOG); analoogWrite(rodeLED,255); digitalWrite (blauwLED, HOOG); pauze; } if (mySerial.available() <0) { //Serial.println("Geen Bluetooth-gegevens"); }} // declaraties van motorbesturingsfuncties void forward() { for(i=0;i<=100;i++) { analogWrite(ENA,i); analoogWrite(ENB,i); digitalWrite(IN1,HOOG); digitalWrite (IN2, LAAG); digitalWrite (IN3, LAAG); digitalWrite (IN4, HOOG); } } void reverse() { for(j=0;j<=100;j++) { analogWrite(ENA,j); analoogWrite(ENB,j); digitalWrite (IN1, LAAG); digitalWrite(IN2,HOOG); digitalWrite (IN3, HOOG); digitalWrite (IN4, LAAG); } } void left() { analogWrite(ENA,127); analoogWrite(ENB,0); digitalWrite(IN1,HOOG); digitalWrite (IN2, LAAG); digitalWrite (IN3, HOOG); digitalWrite (IN4, HOOG); } void right() { analogWrite(ENA,0); analoogWrite(ENB,127); digitalWrite(IN1,HOOG); digitalWrite(IN2,HOOG); digitalWrite (IN3, LAAG); digitalWrite (IN4, HOOG); } void stoprobot() { analogWrite(ENA,0); analoogWrite(ENB,0); digitalWrite (IN1, LAAG); digitalWrite (IN2, LAAG); digitalWrite (IN3, LAAG); digitalWrite (IN4, LAAG); } void dist() {digitalWrite(trigPin,LOW); // om een ​​puls te sturen via de TRIG-pin van HC-SR04 delayMicroseconds (2); digitalWrite (trigPin, HOOG); vertraging Microseconden (10); digitalWrite (trigPin, LAAG); duur =pulseIn(echoPin,HIGH); // lees de duur van de pulsafstand =(duur*0.0343)/2; // meet de afstand in cms. Geluidssnelheid is 340 m/s of 0,0343 cm/us als (afstand <20) // als afstand <20 cm is, STOP robot { stoprobot(); digitalWrite (groene LED, HOOG); analoogWrite(rodeLED,0); digitalWrite (blauwLED, HOOG); } vertraging (1000); } 

Schema's

Schakelschema van de robot.

Productieproces

  1. Een mobiele robot met op zicht gebaseerde obstakelvermijding
  2. Raspberry Pi-robot bestuurd via Bluetooth
  3. Bouw uw internetgestuurde videostreamingrobot met Arduino en Raspberry Pi
  4. Gebaargestuurde robot met Raspberry Pi
  5. RASPBERRY PI WIFI ROBOT GECONTROLEERD VANAF ANDROID SMART PHONE
  6. Windows 10 IoT Core:spraakgestuurde robot
  7. Wifi-gestuurde robot met Raspberry Pi
  8. ROObockey:op afstand bestuurbare, door het doel ondersteunde straathockeyrobot
  9. Obstakel vermijden met behulp van kunstmatige intelligentie
  10. Spraakgestuurde robot
  11. Robotarm bestuurd via Ethernet