Satura rādītājs:

Šķērslis, lai izvairītos no robotu automašīnas: 9 soļi
Šķērslis, lai izvairītos no robotu automašīnas: 9 soļi

Video: Šķērslis, lai izvairītos no robotu automašīnas: 9 soļi

Video: Šķērslis, lai izvairītos no robotu automašīnas: 9 soļi
Video: Es strādāju privātajā bagāto un slaveno muzejā. Šausmu stāsti. Šausmas. 2024, Novembris
Anonim
Šķērslis, lai izvairītos no robotu automašīnas
Šķērslis, lai izvairītos no robotu automašīnas
Šķērslis, lai izvairītos no robotu automašīnas
Šķērslis, lai izvairītos no robotu automašīnas

Kā izveidot šķēršļus, izvairoties no robota

1. darbība: melnā kaste

Melnā kaste
Melnā kaste

pirmais solis es izmantoju melno kasti kā robota pamatu.

2. darbība: Arduino

Arduino
Arduino

Arduino ir visas sistēmas smadzenes un organizē mūsu motorus

3. darbība: Arduino pievienošana Blackbox

Arduino pievienošana Blackbox
Arduino pievienošana Blackbox

Es pievienoju arduino melnajai kastei, izmantojot karstu līmi

4. solis: ultraskaņas sensors

Ultraskaņas sensors
Ultraskaņas sensors

Lai izveidotu robotu, kas var pārvietoties pats, mums ir nepieciešama sava veida ievade, sensors, kas atbilst mūsu mērķim. Ultraskaņas sensors ir instruments, kas mēra attālumu līdz objektam, izmantojot ultraskaņas skaņas viļņus. Ultraskaņas sensors izmanto devēju, lai nosūtītu un saņemtu ultraskaņas impulsus, kas pārsūta informāciju par objekta tuvumu

5. solis: maizes dēļa sensora savienojums ar Arduino

Maizes dēļa sensora savienojums ar Arduino
Maizes dēļa sensora savienojums ar Arduino
Maizes dēļa sensora savienojums ar Arduino
Maizes dēļa sensora savienojums ar Arduino

Es izmantoju vadus, lai izveidotu savienojumu starp maizes dēli un arduino.

Pievērsiet uzmanību, ka jūsu ping sensoram var būt atšķirīgs tapu izkārtojums, bet tam vajadzētu būt ar sprieguma tapu, zemējuma tapu, sprūda tapu un atbalss tapu.

6. solis: motora vairogs

Motora vairogs
Motora vairogs

Arduino dēļi paši nevar kontrolēt līdzstrāvas motorus, jo to radītās strāvas ir pārāk zemas. Lai atrisinātu šo problēmu, mēs izmantojam motora vairogus. Motora vairogam ir 2 kanāli, kas ļauj kontrolēt divus līdzstrāvas motorus vai 1 pakāpju motors. … Pievēršoties šīm tapām, jūs varat izvēlēties motora kanālu, ko ierosināt, norādīt motora virzienu (polaritāti), iestatīt motora apgriezienu skaitu (PWM), apturēt un iedarbināt motoru un uzraudzīt katra kanāla strāvas absorbciju.

7. darbība: motora vairoga pievienošana Arduino

Motora vairoga savienošana ar Arduino
Motora vairoga savienošana ar Arduino

Vienkārši piestipriniet motora vairogu arduino, kad ir saspiesti sensora vadi

8. solis: 4 motoru un akumulatoru pievienošana vairogam

4 motoru un akumulatoru pievienošana vairogam
4 motoru un akumulatoru pievienošana vairogam

Katram motora vairogam ir (vismaz) divi kanāli, viens motoriem un viens barošanas avotam, savienojiet tos viens ar otru.

9. solis: ieprogrammējiet robotu

palaist šo kodu

#iekļaut #iekļaut

NewPing hidrolokators (TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

AF_DCMotora motors1 (1, MOTOR12_1KHZ); AF_DCMotora motors2 (2, MOTOR12_1KHZ); AF_DCMotora motors3 (3, MOTOR34_1KHZ); AF_DCMotora motors4 (4, MOTOR34_1KHZ); Servo myservo;

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

Būla iet uz priekšu = nepatiess; int attālums = 80; int speedSet = 0;

void setup () {

myservo.attach (10); myservo.write (115); kavēšanās (2000); attālums = lasītPing (); kavēšanās (100); attālums = lasītPing (); kavēšanās (100); attālums = lasītPing (); kavēšanās (100); attālums = lasītPing (); kavēšanās (100); }

void loop () {int distanceR = 0; int attālumsL = 0; kavēšanās (40); ja (attālums <= 15) {moveStop (); kavēšanās (50); moveBackward (); kavēšanās (150); moveStop (); kavēšanās (100); distanceR = lookRight (); kavēšanās (100); distanceL = meklētLeft (); kavēšanās (100);

ja (distanceR> = distanceL) {turnRight (); moveStop (); } cits {turnLeft (); moveStop (); }} else {moveForward (); } distance = readPing (); }

int lookRight () {myservo.write (50); kavēšanās (250); int distance = readPing (); kavēšanās (50); myservo.write (100); atgriešanās attālums; }

int lookLeft () {myservo.write (120); kavēšanās (300); int distance = readPing (); kavēšanās (100); myservo.write (115); atgriešanās attālums; kavēšanās (100); }

int readPing () {kavēšanās (70); int cm = sonārs.ping_cm (); ja (cm == 0) {cm = 200; } atgriezties cm; }

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

ja (! ietForward) {ietForward = true; motor1.run (uz priekšu); motor2.run (uz priekšu); motor3.run (uz priekšu); motor4.run (uz priekšu); for (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) {motor1.setSpeed (speedSet); motor2.setSpeed (speedSet); motor3.setSpeed (speedSet); motor4.setSpeed (speedSet); kavēšanās (5); }}}

void moveBackward () {goForward = false; motor1.run (ATPAKAĻ); motor2.run (ATPAKAĻ); motor3.run (ATPAKAĻ); motor4.run (ATPAKAĻ); for (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) {motor1.setSpeed (speedSet); motor2.setSpeed (speedSet); motor3.setSpeed (speedSet); motor4.setSpeed (speedSet); kavēšanās (5); } void turnLeft () {motor1.run (BACKWARD); motor2.run (ATPAKAĻ); motor3.run (uz priekšu); motor4.run (uz priekšu); kavēšanās (500); motor1.run (uz priekšu); motor2.run (uz priekšu); motor3.run (uz priekšu); motor4.run (uz priekšu); }

void turnLeft () {motor1.run (BACKWARD); motor2.run (ATPAKAĻ); motor3.run (uz priekšu); motor4.run (uz priekšu); kavēšanās (500); motor1.run (uz priekšu); motor2.run (uz priekšu); motor3.run (uz priekšu); motor4.run (uz priekšu); }

Ieteicams: