Inhoudsopgave:

Hoe maak je een doe-het-zelf Arduino-obstakel om robot thuis te vermijden - Ajarnpa
Hoe maak je een doe-het-zelf Arduino-obstakel om robot thuis te vermijden - Ajarnpa

Video: Hoe maak je een doe-het-zelf Arduino-obstakel om robot thuis te vermijden - Ajarnpa

Video: Hoe maak je een doe-het-zelf Arduino-obstakel om robot thuis te vermijden - Ajarnpa
Video: How To Make A DIY Arduino Obstacle Avoiding Car At Home 2024, November
Anonim
Image
Image

Hallo jongens, in deze Instructable maak je een robot die obstakels ontwijkt. Deze Instructable omvat het bouwen van een robot met een ultrasone sensor die objecten in de buurt kan detecteren en van richting kan veranderen om deze objecten te vermijden. De ultrasone sensor wordt bevestigd aan een servomotor die constant naar links en rechts scant op zoek naar objecten op zijn weg.

Dus, zonder verder oponthoud, laten we beginnen!

Stap 1: Wat heb je nodig in dit project:

Wat heb je nodig in dit project
Wat heb je nodig in dit project
Wat heb je nodig in dit project
Wat heb je nodig in dit project

Hier is de onderdelenlijst:

1) Arduino Uno

2) Motorbesturingsschild

3) Gear Motor, Frame en wielen set

4) Servomotor

5) Ultrasone sensor:

6) Li-ionbatterij (2x)

7) Batterijhouder

8) Mannelijke en vrouwelijke verbindingsdraad

9) Soldeerbout:

10) Oplader

Stap 2: Schakelschema

Schakelschema
Schakelschema

Werken:

Voordat u aan het project gaat werken, is het belangrijk om te begrijpen hoe de ultrasone sensor werkt. Het basisprincipe achter de werking van de ultrasone sensor is als volgt:

Met behulp van een extern triggersignaal wordt de Trig-pin op de ultrasone sensor minimaal 10 µs logisch hoog gemaakt. Er wordt een sonische burst van de zendermodule verzonden. Deze bestaat uit 8 pulsen van 40KHz.

De signalen keren terug na het raken van een oppervlak en de ontvanger detecteert dit signaal. De Echo-pin is hoog vanaf het moment dat het signaal wordt verzonden en ontvangen. Deze tijd kan worden omgezet in afstand met behulp van geschikte berekeningen.

Het doel van dit project is om een obstakel vermijdende robot te implementeren met behulp van ultrasone sensor en Arduino. Alle aansluitingen zijn gemaakt volgens het schakelschema. Hieronder wordt de werking van het project toegelicht.

Wanneer de robot is ingeschakeld, zullen beide motoren van de robot normaal draaien en beweegt de robot vooruit. Gedurende deze tijd berekent de ultrasone sensor continu de afstand tussen de robot en het reflecterende oppervlak.

Deze informatie wordt verwerkt door de Arduino. Als de afstand tussen de robot en het obstakel minder dan 15 cm is, stopt de robot en scant in linker- en rechterrichting voor nieuwe afstand met behulp van servomotor en ultrasone sensor. Als de afstand naar de linkerkant groter is dan die van de rechterkant, zal de robot zich voorbereiden op een bocht naar links. Maar eerst gaat hij een beetje achteruit en activeert dan de linkerwielmotor in omgekeerde richting.

Evenzo, als de rechterafstand groter is dan die van de linkerafstand, bereidt de robot de rotatie naar rechts voor. Dit proces gaat voor altijd door en de robot blijft bewegen zonder een obstakel te raken.

Stap 3: Programmeren Arduino UNO

#erbij betrekken

#erbij betrekken

#erbij betrekken

# definieer TRIG_PIN A1

# definieer ECHO_PIN A0

# definieer MAX_DISTANCE 200

# definieer MAX_SPEED 255 // stelt de snelheid van DC-motoren in

# definieer MAX_SPEED_OFFSET 20

NewPing-sonar (TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

AF_DCMotormotor3 (3, MOTOR34_1KHZ);

AF_DCMotormotor4(4, MOTOR34_1KHZ); Servo-mijnservo;

boolean goesForward = false;

int afstand = 100; int speedSet = 0;

ongeldige setup() {

mijnservo.attach(10);

mijnservo.write(115); vertraging (2000); afstand = readPing(); vertraging (100); afstand = readPing(); vertraging (100); afstand = readPing(); vertraging (100); afstand = readPing(); vertraging (100); }

lege lus() {

int afstandR = 0; int afstandL = 0; vertraging (40);

if (afstand <= 15) { moveStop(); vertraging (100); moveBackward(); vertraging (300); verplaatsStop(); vertraging (200); afstandR = lookRight(); vertraging (200); afstandL = kijk Links(); vertraging (200);

if (afstandR >= afstandL) {

draaiRechts(); verplaatsStop(); } else { turnLeft(); verplaatsStop(); } } else { moveForward(); } afstand = readPing(); }

int lookRight() {

mijnservo.write(50); vertraging (500); int afstand = readPing(); vertraging (100); mijnservo.write(115); retour afstand; }

int lookLeft() {

mijnservo.write(170); vertraging (500); int afstand = readPing(); vertraging (100); mijnservo.write(115); retour afstand; vertraging (100); }

int leesPing() {

vertraging (70); int cm = sonar.ping_cm(); als (cm == 0) { cm = 250; } retour cm; }

ongeldig moveStop() {

motor3.run(RELEASE);

motor4.run(RELEASE); }

void moveForward() {

if (!goesForward) {

gaatVooruit = waar;

motor3.run(VOORUIT);

motor4.run(VOORUIT); for (speedSet = 0; speedSet < MAX_SPEED; speedSet += 2) // verhoog langzaam de snelheid om te voorkomen dat de batterijen te snel leeg raken {

motor3.setSpeed (speedSet);

motor4.setSpeed (speedSet); vertraging (5); } } }

void moveBackward() {

gaatVooruit = false;

motor3.run (ACHTERUIT);

motor4.run (ACHTERUIT); for (speedSet = 0; speedSet < MAX_SPEED; speedSet += 2) // verhoog langzaam de snelheid om te voorkomen dat de batterijen te snel leeg raken {

motor3.setSpeed (speedSet);

motor4.setSpeed (speedSet); vertraging (5); } }

ongeldig turnRight() {

motor3.run(VOORUIT);

motor4.run (ACHTERUIT); vertraging (500);

motor3.run(VOORUIT);

motor4.run(VOORUIT); }

void turnLeft() {

motor3.run(ACHTERUIT);

motor4.run(VOORUIT); vertraging (500);

motor3.run(VOORUIT);

motor4.run(VOORUIT); }

1) Download en installeer de Arduino Desktop IDE

  • windows -
  • Mac OS X -
  • Linux -

2) Download en plak het bestand NewPing-bibliotheek (Ultrasone sensorfunctiebibliotheek) in de map Arduino-bibliotheken.

  1. Download de NewPing.rar hieronder
  2. Pak het uit naar het pad - C:\Arduino\libraries

3) Upload de code naar het Arduino-bord via een USB-kabel

Downloadcode:

Stap 4: Geweldig

Nu is je robot klaar om elk obstakel te ontwijken…

Ik beantwoord graag al je vragen

E-mail mij: [email protected]

Website:

Abonneer je op mijn YouTube-kanaal:

Instagram:

Facebook:

Bedankt:)

Aanbevolen: