Arduino, Mini Sonar Robot (3 / 3 stap)

Stap 3: Code

Ik heb geprobeerd te schrijven van de code gemakkelijk genoeg om ook gewoon voor de beginners. Maar als u eventuele problemen, vragen en suggesties kan, ik graag willen weten.
Enkele tips:

  • Minimale afstand is de remafstand ter voorkoming van de crash. De beste afstand van een blok te stoppen met de robot, is afhankelijk van de snelheid van de versnellingsbak.
  • Robot komt terug naar max afstand.
  • backDist en turnDist moeten worden aangepast afhankelijk van de snelheid van de robot.
  • Een willekeurig gedrag, met inbegrip van een stop, heeft melodie en willekeurige beweging gebruikt.

//******************************

* Door: http://blog.mshams.ir *

//******************************

pincodes

Const byte pinMotor1 = 4, pinMotor2 5, pinMotor3 = = 6, pinMotor4 = 7;

Const byte pinLed = 8, pinTone = 10, pinSonar1 = 11, pinSonar2 = 12;

geluid freq

Const int toneFreq = 800;

sonar afstanden

Const byte minDistance = 45, maxDistance = 1000;

motor valt bestuurlijk

Const byte M_STOP = 0, M_GO = 1, M_BACK = 2, M_RIGHT = 3, M_LEFT = 4, M_RIGHT2X 5, M_LEFT2X = = 6;

robot Staten

Const byte R_START = 0, R_DRIVE = 1, R_BLOCK = 2, R_TURN = 3;

detecteren van de kater

Const int hangoverWait = 5000;

blok detecteren Ga terug

Const int backDist 1000, turnDist = = 300;

willekeurige gedrag

Const int randomChance = 300, randomStopWait = 10000, randomTurnWait = 200;

byte status = R_START;

int i, counter = 0;

int dist;

VOID Setup {}

randomSeed(analogRead(1));

init motor pinnen

pinMode (pinMotor1, OUTPUT);

pinMode (pinMotor2, OUTPUT);

pinMode (pinMotor3, OUTPUT);

pinMode (pinMotor4, OUTPUT);

pinMode (pinSonar1, OUTPUT);

pinMode (pinSonar2, INPUT);

init LED pin

pinMode (pinLed, OUTPUT);

}

void loop {}

schakelaar (staat) {}

Case R_START:

Motor(M_GO);

Melody();

staat = R_DRIVE;

breken;

Case R_DRIVE:

dist = Pingu();

Als (dist < minDistance) {}

Motor(M_STOP);

staat = R_BLOCK;

}

anders als (willekeurige (0, randomChance) == 5) {}

RandomTone();

Motor(M_STOP);

delay(randomStopWait);

Motor (willekeurige (M_BACK, M_LEFT2X + 1));

delay(randomTurnWait);

Motor(M_GO);

}

breken;

Case R_BLOCK:

Beep();

Motor(M_BACK);

delay(backDist);

Motor (willekeurige (M_RIGHT2X, M_LEFT2X + 1));

delay(turnDist);

staat = R_TURN;

breken;

Case R_TURN:

dist = Pingu();

Als (dist > = maxDistance) {}

Motor(M_STOP);

Motor(M_GO);

Beep();

staat = R_DRIVE;

}

else {}

teller += 1;

Als (teller > = hangoverWait) {}

Counter = 0;

Motor(M_STOP);

RandomTone();

staat = R_BLOCK;

}

}

breken;

}

}

VOID Blink (byte staat) {}

digitalWrite (pinLed, state);

}

VOID Beep() {}

Blink(1);

SpeakTone(2);

SpeakTone(1);

Blink(0);

}

VOID Melody() {}

Blink(1);

for (int i = 1; ik < 10; i ++) {}

SpeakTone(i);

}

Blink(0);

}

VOID RandomTone() {}

Blink(1);

for (int i = 1; ik < 10; i ++) {}

SpeakTone (random(1, 10));

}

Blink(0);

}

VOID SpeakTone(byte note) {}

Toon (pinTone, toneFreq * opmerking);

delay(100);

noTone(pinTone);

}

VOID Motor (byte staat) {}

byte m1, m2, m3, m4;

schakelaar (staat) {}

Case M_STOP:

M1 = m2 = m3 = m4 = laag;

breken;

Case M_GO:

M1 = hoog;

m2 = laag;

M3 = hoog;

M4 = laag;

breken;

Case M_BACK:

M1 = laag;

m2 = hoog;

M3 = laag;

M4 = hoog;

breken;

Case M_RIGHT:

M1 = hoog;

m2 = laag;

M3 = laag;

M4 = laag;

breken;

Case M_LEFT:

M1 = laag;

m2 = laag;

M3 = hoog;

M4 = laag;

breken;

Case M_RIGHT2X:

M1 = hoog;

m2 = laag;

M3 = laag;

M4 = hoog;

breken;

Case M_LEFT2X:

M1 = laag;

m2 = hoog;

M3 = hoog;

M4 = laag;

breken;

}

digitalWrite (pinMotor1, m1);

digitalWrite (pinMotor2, m2);

digitalWrite (pinMotor3, m3);

digitalWrite (pinMotor4, m4);

}

int Pingu() {}

digitalWrite (pinSonar1, laag);

delayMicroseconds(5);

digitalWrite (pinSonar1, hoge);

delayMicroseconds(5);

digitalWrite (pinSonar1, laag);

delayMicroseconds(2);

lange duur = pulseIn (pinSonar2, hoge);

retourneren (duur / 29 /2);

}

Gerelateerde Artikelen

Arduino Self Balancing Robot

Arduino Self Balancing Robot

In dit project die zal ik beschrijven de bouw van robots in evenwicht met Arduino.We staan uitgelegd in onze vorige versie van het android gecontroleerde project. In dit project gaan we tot onze controle. Laten we laten we krijgen op onze bouwproject
Arduino mini USB 24 kanaal servo controller boord

Arduino mini USB 24 kanaal servo controller boord

Arduino mini USB 24 kanaal servo controller boord gebruiken voor tweevoeter robot en kruipt robot controllerSteun van het meest recente Windows8 64 bit systeem, steun linuxsysteem (xp, vista, win7 ondersteuning)Dit is de onlangs bijgewerkte controlle
Arduino gecontroleerd L293D Robot (deel 1 - Update 1.0)

Arduino gecontroleerd L293D Robot (deel 1 - Update 1.0)

Hier is deel 1 van de Arduino en L293D Robot.This maakt deel uit van een reeks instructables leidt tot een lijn volgeling Robot.Dit is een fundamentele Robot gemaakt door het beheersen van de twee motoren via de L293D chip via een Arduino Board.Ik he
Arduino Mini CNC Plotter Machine uit de dvd drijft

Arduino Mini CNC Plotter Machine uit de dvd drijft

In dit project zal ik u tonen hoe gemakkelijk het bouwen van uw eigen voordelige Arduino Mini CNC Plotter!Dit project is een update van mijn eerdere cnc, met betere bouw en met meer nauwkeurigheid.Heb ik besloten om deze gedetailleerde gids om u het
LDRs + Arduino = een eenvoudige robot die het licht kan voelen!

LDRs + Arduino = een eenvoudige robot die het licht kan voelen!

Een LDR is een Light Dependent Resistor en heeft vele toepassingen, bijvoorbeeld een photocel dat wanneer de lichten van uw huis kunt schakelen zijn donker buiten.Een interessante manier om te begrijpen hoe het werkt is het lezen van haar waarden met
Arduino gecontroleerd Servo Robot (SERVISCH)

Arduino gecontroleerd Servo Robot (SERVISCH)

wat een betere manier om te experimenteren met opensource micro-controllers ( Arduino ) dan door het bouwen van uw eigen bron robot open ( CC (SA-door))?Wat te doen met uw Servische?(hier) - hoe uw Servische verbinden met het internet en het rijden o
Hobbelig, een Mini Tweebenig robot

Hobbelig, een Mini Tweebenig robot

lange tijd geleden, ik wilde het bouwen van een multi servo robot, zoals een membraan of een hexapod hexapod. Na het zien van de OddBot Mini Tweebenig robot, wilde ik bouwen gewoon voor de lol totdat ik veroorloven kon om het aantal servo's nodig voo
Arduino Mini breadboard FTDI-adapter

Arduino Mini breadboard FTDI-adapter

Ik wilde te kunnen programmeren van een Arduino Mini (v5) in plaats op een breadboard. De instructies zijn gemakkelijk te vinden op de Arduino website (gids voor de Arduino Mini) maar dan de draden in de weg van mijn project zou krijgen. Ik gebruik e
Zeer eenvoudig te maken van Arduino bluetooth spy robot met Android RemoteControl app

Zeer eenvoudig te maken van Arduino bluetooth spy robot met Android RemoteControl app

In dit project ziet u hoe eenvoudig mengsel van verschillende technologieën en derde-partij apps maakt het mogelijk om een tamelijk ingewikkelde speelgoed maken.De robot doet twee dingen:1. de Arduino gebaseerd spy robot beweegt volgens opdrachten ve
Aan de slag met BTE13-010 - kloon Arduino Mini

Aan de slag met BTE13-010 - kloon Arduino Mini

Dit is een eenvoudige gids dat je hoe leren zal aan de slag met deze goedkope Arduino mini kloon, die betrekking hebben op alle maatregelen die men doen moet om te laten werken. In principe zijn ze 4...Solderen PIN headers *Bedrading het omhoogCorrec
Arduino Mini 05 met FTDI Basic Program

Arduino Mini 05 met FTDI Basic Program

Wanneer u een kleine arduino met een goede hoeveelheid I/O pinnen, is de Arduino Mini voor jou. Dit is een van mijn favoriete microcontrollers voor wearable tech projecten vanwege zijn omvang.Stap 1: materialen Arduino MiniFTDI BasicMannelijke header
USS Enterprise: Arduino Mini aangedreven.

USS Enterprise: Arduino Mini aangedreven.

Hey guys, We hebben een cool speelgoed Enterprise we gekocht bij Michaels voor $15 en kreeg het aan het werk! Het was een geweldige ervaring we en gebouwd van een kleine speelgoed uit Star Trek. Als u geïnteresseerd in het project bent en er zijn gen
Hoe maak je een Mini Bug Robot?

Hoe maak je een Mini Bug Robot?

https://www.YouTube.com/watch?v=bpISq6RRdMk&feature=Youtu.beStap 1: Om te doen een mini bug robot moet u!!! In de huidige video laat ik je zien een interessant idee over hoe maak je een bug robot!Vooral met behulp van alleen oude details, bijvoorbeel
FT232 wijziging voor Arduino mini etc.

FT232 wijziging voor Arduino mini etc.

FT232 wijziging voor Arduino mini enz.Als je net als mij u besteld dit model die het is een PITA die de keuzeschakelaar verandert niets aan de VCC pin spanning.Maak je geen zorgen er is een echt eenvoudige wijziging. voor dat probleem dat geeft je ee