Բովանդակություն:

Ինչպես պատրաստել խելացի ռոբոտ Arduino- ի միջոցով. 4 քայլ
Ինչպես պատրաստել խելացի ռոբոտ Arduino- ի միջոցով. 4 քայլ

Video: Ինչպես պատրաստել խելացի ռոբոտ Arduino- ի միջոցով. 4 քայլ

Video: Ինչպես պատրաստել խելացի ռոբոտ Arduino- ի միջոցով. 4 քայլ
Video: REAL RACING 3 LEAD FOOT EDITION 2024, Նոյեմբեր
Anonim
Image
Image

Բարեւ Ձեզ,

Ես arduino ստեղծող եմ և այս ձեռնարկում ես ձեզ ցույց կտամ, թե ինչպես պատրաստել խելացի ռոբոտ ՝ օգտագործելով arduino- ն

եթե ձեզ դուր եկավ իմ ձեռնարկը, ապա հաշվի առեք arduino ստեղծող անունով իմ YouTube ալիքը

Պարագաներ

ԲԱՆԵՐ, որոնք ձեզ պետք կլինեն

1) arduino uno

2) ուլտրաձայնային տվիչ

3) Bo շարժիչ

4) անիվներ

5) պաղպաղակի ձողիկներ

6) 9 վ մարտկոց

Քայլ 1: ԿԱՊԵՐ

ՍՊԱՍԵԼ ԲՈԼՈՐ ՄԱՍՆԱԿՈԹՅՈՆՆԵՐԸ ՏԵՈՄ
ՍՊԱՍԵԼ ԲՈԼՈՐ ՄԱՍՆԱԿՈԹՅՈՆՆԵՐԸ ՏԵՈՄ

Հետո, այժմ ստանալով բոլոր պաշարները, դուք պետք է սկսեք միացնել բոլոր իրերը ՝ համաձայն վերը տրված սխեմայի

Քայլ 2. ՍՏԵԵՔ ՏԵ INՈ ALLՄ ԲՈԼՈՐ բաղադրիչները

ԼԱՎ,

այժմ միացրեք բոլոր իրերը տեղում, ինչպես ցույց է տրված վերը նկարում

Քայլ 3: PROՐԱԳՐԱՎՈՐՈՄ

Հիմա,

սկսեք ծրագրավորել տախտակը ՝ ստորև տրված ծածկագրով

// ARDUINO ԽՈՍՔԸ ԽՈՍԵԼՈAR ՄԵՔԵՆԱՆ //// Կոդը վերբեռնելուց առաջ պետք է տեղադրել անհրաժեշտ գրադարանը // // AFMotor Library https://learn.adafruit.com/adafruit-motor-shield/library-install // // NewPing Library https://github.com/livetronic/Arduino-NewPing// // Servo Library https://github.com/arduino-libraries/Servo.git // // Գրադարանները տեղադրելու համար անցեք ուրվագիծը >> Ներառեք Գրադարան >> Ավելացնել. ZIP ֆայլ >> Ընտրեք ներբեռնված ZIP ֆայլերը վերևի հղումներից //

#ներառում

#ներառում

#ներառում

#սահմանեք TRIG_PIN A0- ը

#սահմանեք ECHO_PIN A1 #սահմանեք MAX_DISTANCE 200

#սահմանել MAX_SPEED 150 // սահմանում է DC շարժիչների արագություն

#սահմանել MAX_SPEED_OFFSET 20

NewPing սոնար (TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

AF_DC Շարժիչ 1 (1, MOTOR12_1KHZ);

// AF_DCMotor motor2 (2, MOTOR12_1KHZ); // AF_DCMotor motor3 (3, MOTOR34_1KHZ); AF_DC Շարժիչ 4 (4, MOTOR34_1KHZ); Servo myservo;

բուլյան գնում էԱռաջ = կեղծ;

int հեռավորությունը = 100; int speedSet = 0;

void setup () {

myservo.attach (10);

myservo.write (115); ուշացում (1000); հեռավորություն = readPing (); ուշացում (100); հեռավորություն = readPing (); ուշացում (100); հեռավորություն = readPing (); ուշացում (100); հեռավորություն = readPing (); ուշացում (100); }

դատարկ շրջան () {

int հեռավորությունը R = 0; int հեռավորություն L = 0; ուշացում (40); if (հեռավորություն <= 15) {moveStop (); ուշացում (100); moveBackward (); ուշացում (300); moveStop (); ուշացում (200); distanceR = lookRight (); ուշացում (300); distanceL = lookLeft (); ուշացում (300);

եթե (հեռավորությունը R> = հեռավորությունը Լ)

{turnRight (); moveStop (); } else {turnLeft (); moveStop (); }} else {moveForward (); } հեռավորություն = կարդալ Ping (); }

int lookRight ()

{myservo.write (50); ուշացում (650); int հեռավորություն = readPing (); ուշացում (100); myservo.write (115); վերադարձի հեռավորություն; }

int lookLeft ()

{myservo.write (170); ուշացում (650); int հեռավորություն = readPing (); ուշացում (100); myservo.write (115); վերադարձի հեռավորություն; ուշացում (100); }

int readPing () {

ուշացում (70); int cm = sonar.ping_cm (); եթե (սմ == 0) {սմ = 250; } վերադարձ սմ; }

void moveStop () {

motor1.run (ազատ արձակել); //motor2.run(RELEASE); //motor3.run(RELEASE); motor4.run (ԹՈLEԱՐԿՈՄ); } void moveForward () {

եթե (! գնում է առաջ)

{goForward = true; motor1.run (ԱՌԱARD); //motor2.run(FORWARD); //motor3.run(FORWARD); motor4.run (ԱՌԱ); for (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // դանդաղ բարձրացրեք արագությունը, որպեսզի մարտկոցները շատ արագ չբեռնեք {motor1.setSpeed (speedSet); //motor2.setSpeed(speedSet); //motor3.setSpeed(speedSet); motor4.setSpeed (speedSet); ուշացում (5); }}}

void moveBackward () {

գնում է առաջ = կեղծ; motor1.run (BACKWARD); //motor2.run(BACKWARD); //motor3.run(BACKWARD); motor4.run (BACKWARD); for (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // դանդաղ բարձրացրեք արագությունը, որպեսզի մարտկոցները շատ արագ չբեռնեք {motor1.setSpeed (speedSet); //motor2.setSpeed(speedSet); //motor3.setSpeed(speedSet); motor4.setSpeed (speedSet); ուշացում (5); }}

void turnRight () {

motor1.run (BACKWARD); //motor2.run(BACKWARD); //motor3.run(FORWARD); motor4.run (ԱՌԱ); ուշացում (350); motor1.run (ԱՌԱARD); //motor2.run(FORWARD); //motor3.run(FORWARD); motor4.run (ԱՌԱ); } void turnLeft () {motor1.run (FORWARD); //motor2.run(FORWARD); //motor3.run(BACKWARD); motor4.run (BACKWARD); ուշացում (350); motor1.run (ԱՌԱARD); //motor2.run(FORWARD); //motor3.run(FORWARD); motor4.run (ԱՌԱARD); }

Խորհուրդ ենք տալիս: