Innehållsförteckning:

Hinder Undvik Robotbil: 9 steg
Hinder Undvik Robotbil: 9 steg

Video: Hinder Undvik Robotbil: 9 steg

Video: Hinder Undvik Robotbil: 9 steg
Video: Golf Routines 024 - Taktik - Undvik hinder 2024, Juli
Anonim
Hinder Undvik Robotbil
Hinder Undvik Robotbil
Hinder Undvik Robotbil
Hinder Undvik Robotbil

Hur man bygger ett hinder för att undvika robot

Steg 1: Black Box

Svart låda
Svart låda

det första steget använde jag en svart låda som bas för min robot.

Steg 2: Arduino

Arduino
Arduino

Arduino är hjärnan i hela systemet och orkestrerar våra motorer

Steg 3: Anslut Arduino till Blackbox

Fäster Arduino på Blackbox
Fäster Arduino på Blackbox

Jag fäst arduinoen i blackboxen med varmt lim

Steg 4: Ultraljudssensor

Ultraljudssensor
Ultraljudssensor

För att skapa en robot som kan röra sig själv behöver vi någon form av ingång, en sensor som passar vårt mål. En ultraljudssensor är ett instrument som mäter avståndet till ett föremål med hjälp av ultraljuds ljudvågor. En ultraljudssensor använder en givare för att skicka och ta emot ultraljudspulser som vidarebefordrar information om ett objekts närhet

Steg 5: Anslutning av brödbräda till sensor till Arduino

Brödbräda Anslutning av sensor till Arduino
Brödbräda Anslutning av sensor till Arduino
Brödbräda Anslutning av sensor till Arduino
Brödbräda Anslutning av sensor till Arduino

Jag använde trådar för att hana anslutningen mellan brödbrädan och arduino.

Var uppmärksam på att din pingsensor kan ha en annan stiftlayout, men den bör ha en spänningsstift, jordstift, trigpinne och en ekostift.

Steg 6: Motorskydd

Motorskydd
Motorskydd

Arduino -kort kan inte styra likströmsmotorer själva eftersom strömmarna de genererar är för låga. För att lösa detta problem använder vi motorskydd. stegmotor. … Genom att adressera dessa stift kan du välja en motorkanal som ska initieras, ange motorriktning (polaritet), ställ in motorvarvtal (PWM), stoppa och starta motorn och övervaka strömabsorptionen för varje kanal

Steg 7: Anslutning av motorskydd till Arduino

Anslutning av motorskydd till Arduino
Anslutning av motorskydd till Arduino

Fäst helt enkelt motorskyddet på arduino med sensortrådarna inpressade

Steg 8: Anslut de fyra motorerna och batterierna till skärmen

Anslut de 4 motorerna och batterierna till skärmen
Anslut de 4 motorerna och batterierna till skärmen

Varje motorskydd har (minst) två kanaler, en för motorerna och en för en strömkälla, Anslut dem i förhållande till varandra

Steg 9: Programmera roboten

kör den här koden

#inkludera #inkludera

NewPing -ekolod (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

booleska goesForward = false; int avstånd = 80; int speedSet = 0;

void setup () {

myservo.attach (10); myservo.write (115); fördröjning (2000); avstånd = readPing (); fördröjning (100); avstånd = readPing (); fördröjning (100); avstånd = readPing (); fördröjning (100); avstånd = readPing (); fördröjning (100); }

void loop () {int distanceR = 0; int avstånd L = 0; fördröjning (40); if (avstånd <= 15) {moveStop (); fördröjning (50); flytta bakåt(); fördröjning (150); moveStop (); fördröjning (100); distanceR = lookRight (); fördröjning (100); distanceL = lookLeft (); fördröjning (100);

if (distanceR> = distanceL) {turnRight (); moveStop (); } annat {turnLeft (); moveStop (); }} annat {moveForward (); } distans = readPing (); }

int lookRight () {myservo.write (50); fördröjning (250); int avstånd = readPing (); fördröjning (50); myservo.write (100); returavstånd; }

int lookLeft () {myservo.write (120); fördröjning (300); int avstånd = readPing (); fördröjning (100); myservo.write (115); returavstånd; fördröjning (100); }

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

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

if (! goesForward) {goesForward = true; motor1.körning (FRAMÅT); motor2.run (FRAMÅT); motor3.körning (FRAMÅT); motor4.run (FRAMÅT); för (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) {motor1.setSpeed (speedSet); motor2.setSpeed (speedSet); motor3.setSpeed (speedSet); motor4.setSpeed (speedSet); fördröjning (5); }}}

void moveBackward () {goesForward = false; motor1.körning (BACKWARD); motor2.run (BACKWARD); motor3.körning (BACKWARD); motor4.körning (BACKWARD); för (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) {motor1.setSpeed (speedSet); motor2.setSpeed (speedSet); motor3.setSpeed (speedSet); motor4.setSpeed (speedSet); fördröjning (5); } void turnLeft () {motor1.run (BACKWARD); motor2.run (BACKWARD); motor3.körning (FRAMÅT); motor4.run (FRAMÅT); fördröjning (500); motor1.körning (FRAMÅT); motor2.run (FRAMÅT); motor3.körning (FRAMÅT); motor4.run (FRAMÅT); }

void turnLeft () {motor1.run (BACKWARD); motor2.run (BACKWARD); motor3.körning (FRAMÅT); motor4.run (FRAMÅT); fördröjning (500); motor1.körning (FRAMÅT); motor2.run (FRAMÅT); motor3.körning (FRAMÅT); motor4.run (FRAMÅT); }

Rekommenderad: