Innholdsfortegnelse:

Hindring for å unngå robotbil: 9 trinn
Hindring for å unngå robotbil: 9 trinn

Video: Hindring for å unngå robotbil: 9 trinn

Video: Hindring for å unngå robotbil: 9 trinn
Video: Кто-нибудь из вас слышал о полуночной игре? Страшные истории. Мистика. Ужасы 2024, Juli
Anonim
Hindring for å unngå robotbil
Hindring for å unngå robotbil
Hindring for å unngå robotbil
Hindring for å unngå robotbil

Hvordan bygge et hinder for å unngå robot

Trinn 1: Black Box

Svart boks
Svart boks

det første trinnet brukte jeg en svart boks som base for roboten min.

Trinn 2: Arduino

Arduino
Arduino

Arduino er hjernen i hele systemet og orkestrerer motorene våre

Trinn 3: Fest Arduino til Blackbox

Fest Arduino til Blackbox
Fest Arduino til Blackbox

Jeg festet arduinoen til blackboxen med varmt lim

Trinn 4: Ultralydsensor

Ultralydsensor
Ultralydsensor

For å lage en robot som kan bevege seg alene trenger vi en slags inngang, en sensor som passer målet vårt. En ultralydsensor er et instrument som måler avstanden til et objekt ved hjelp av ultralyds lydbølger. En ultralydsensor bruker en transduser til å sende og motta ultralydspulser som videresender informasjon om et objekts nærhet

Trinn 5: Tilkobling av sensor til brødbrett til Arduino

Brødbrettstilkobling av sensor til Arduino
Brødbrettstilkobling av sensor til Arduino
Brødbrettstilkobling av sensor til Arduino
Brødbrettstilkobling av sensor til Arduino

Jeg brukte ledninger til å male forbindelsen mellom brødbrettet og arduino.

Vær oppmerksom på at ping -sensoren din kan ha en annen pin -layout, men den bør ha en spenningspinne, jordet pin, trig -pin og en ekko -pin.

Trinn 6: Motorskjerm

Motorskjerm
Motorskjerm

Arduino -kort kan ikke styre likestrømsmotorer alene, fordi strømmen de genererer er for lav. For å løse dette problemet bruker vi motorskjerm. trinnmotor. … Ved å adressere disse pinnene kan du velge en motorkanal å starte, spesifisere motorretningen (polaritet), stille inn motorhastighet (PWM), stoppe og starte motoren og overvåke strømabsorpsjonen til hver kanal

Trinn 7: Koble motorskjermen til Arduino

Koble motorskjold til Arduino
Koble motorskjold til Arduino

Bare fest motorskjermen til arduinoen med sensortrådene knust inn

Trinn 8: Koble de 4 motorene og batteriene til skjoldet

Koble de 4 motorene og batteriene til skjoldet
Koble de 4 motorene og batteriene til skjoldet

Hvert motorskjerm har (minst) to kanaler, en for motorene og en for en strømkilde, koble dem til hverandre

Trinn 9: Programmer roboten

kjør denne koden

#include #include

NewPing -ekkolodd (TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

AF_DCMotor motor1 (1, MOTOR12_1KHZ); AF_DCMotor motor2 (2, MOTOR12_1KHZ); AF_DCMotor motor3 (3, MOTOR34_1KHZ); AF_DCMotor motor4 (4, MOTOR34_1KHZ); Servo myservo;

#define TRIG_PIN A2 #define ECHO_PIN A3 #define MAX_DISTANCE 150 #define MAX_SPEED 100 #define MAX_SPEED_OFFSET 10

boolsk goesForward = false; int avstand = 80; int speedSet = 0;

ugyldig oppsett () {

myservo.attach (10); myservo.write (115); forsinkelse (2000); distance = readPing (); forsinkelse (100); distance = readPing (); forsinkelse (100); distance = readPing (); forsinkelse (100); distance = readPing (); forsinkelse (100); }

void loop () {int distanceR = 0; int distanse L = 0; forsinkelse (40); if (avstand <= 15) {moveStop (); forsinkelse (50); Flytt tilbake(); forsinkelse (150); moveStop (); forsinkelse (100); distanceR = lookRight (); forsinkelse (100); distanceL = lookLeft (); forsinkelse (100);

if (distanceR> = distanceL) {turnRight (); moveStop (); } annet {turnLeft (); moveStop (); }} annet {moveForward (); } distanse = readPing (); }

int lookRight () {myservo.write (50); forsinkelse (250); int distance = readPing (); forsinkelse (50); myservo.write (100); returavstand; }

int lookLeft () {myservo.write (120); forsinkelse (300); int distance = readPing (); forsinkelse (100); myservo.write (115); returavstand; forsinkelse (100); }

int readPing () {forsinkelse (70); int cm = sonar.ping_cm (); hvis (cm == 0) {cm = 200; } retur cm; }

void moveStop () {motor1.run (RELEASE); motor2.run (RELEASE); motor3.run (RELEASE); motor4.run (RELEASE); } void moveForward () {

hvis (! goesForward) {goesForward = true; motor1.run (FREM); motor2.run (FREM); motor3.run (FREM); motor4.run (FREM); for (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) {motor1.setSpeed (speedSet); motor2.setSpeed (speedSet); motor3.setSpeed (speedSet); motor4.setSpeed (speedSet); forsinkelse (5); }}}

void moveBackward () {goesForward = false; motor1.run (BACKWARD); motor2.run (TILBAKE); motor3.kjøring (TILBAKE); motor4.run (BACKWARD); for (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) {motor1.setSpeed (speedSet); motor2.setSpeed (speedSet); motor3.setSpeed (speedSet); motor4.setSpeed (speedSet); forsinkelse (5); } void turnLeft () {motor1.run (BACKWARD); motor2.run (TILBAKE); motor3.run (FREM); motor4.run (FREM); forsinkelse (500); motor1.run (FREM); motor2.run (FREM); motor3.run (FREM); motor4.run (FREM); }

void turnLeft () {motor1.run (BACKWARD); motor2.run (TILBAKE); motor3.run (FREM); motor4.run (FREM); forsinkelse (500); motor1.run (FREM); motor2.run (FREM); motor3.run (FREM); motor4.run (FREM); }

Anbefalt: