Sisukord:

Kuidas Arduino abil nutikat robotit teha: 4 sammu
Kuidas Arduino abil nutikat robotit teha: 4 sammu

Video: Kuidas Arduino abil nutikat robotit teha: 4 sammu

Video: Kuidas Arduino abil nutikat robotit teha: 4 sammu
Video: Control Position and Speed of Stepper motor with L298N module using Arduino 2024, November
Anonim
Image
Image

Tere,

Olen arduino tegija ja selles õpetuses näitan teile, kuidas arduino abil nutikat robotit teha

kui teile meeldis minu õpetus, siis kaaluge minu youtube'i kanali arduino tegija toetamist

Tarvikud

ASJAD, mida teil vaja läheb:

1) arduino uno

2) ultraheli andur

3) Bo mootor

4) rattad

5) jäätisepulgad

6) 9v aku

1. samm: ÜHENDUSED

LIIMI KÕIK KOMPONENDID PAIGAL
LIIMI KÕIK KOMPONENDID PAIGAL

Pärast kõigi tarvikute hankimist peaksite alustama kõigi asjade ühendamist vastavalt ülaltoodud skeemile

2. samm: liimige kõik kohad kokku

OKEI,

Nüüd ühendage kõik asjad oma kohale, nagu ülaltoodud pildil näidatud

3. samm: PROGRAMMIMINE

Nüüd,

alustage tahvli programmeerimist allpool toodud koodiga

// ARDUINO OBSTACLE AVOIDING CAR //// Enne koodi üleslaadimist peate installima vajaliku kogu // // AFMotor Library https://learn.adafruit.com/adafruit-motor-shield/library-install // // NewPingi raamatukogu https://github.com/livetronic/Arduino-NewPing// // Servo raamatukogu https://github.com/arduino-libraries/Servo.git // // Raamatukogude installimiseks minge visandile >> Kaasa Raamatukogu >> Lisa. ZIP -fail >> Valige ülaltoodud linkidelt allalaaditud ZIP -failid //

#kaasake

#kaasake

#kaasake

#defineeri TRIG_PIN A0

#defineeri ECHO_PIN A1 #defineeri MAX_DISTANCE 200

#define MAX_SPEED 150 // määrab alalisvoolumootorite kiiruse

#define MAX_SPEED_OFFSET 20

NewPingi sonar (TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

AF_DCMootorimootor1 (1, MOTOR12_1KHZ);

// AF_DCMootorimootor2 (2, MOTOR12_1KHZ); // AF_DCMootorimootor3 (3, MOTOR34_1KHZ); AF_DCMootorimootor4 (4, MOTOR34_1KHZ); Servo myservo;

tõeväärtus läheb Edasi = vale;

int kaugus = 100; int speedSet = 0;

tühine seadistus () {

myservo.attach (10);

myservo.write (115); viivitus (1000); kaugus = readPing (); viivitus (100); kaugus = readPing (); viivitus (100); kaugus = readPing (); viivitus (100); kaugus = readPing (); viivitus (100); }

void loop () {

int kaugusR = 0; int kaugusL = 0; viivitus (40); if (kaugus <= 15) {moveStop (); viivitus (100); moveBackward (); viivitus (300); moveStop (); viivitus (200); kaugusR = lookRight (); viivitus (300); kaugusL = lookLeft (); viivitus (300);

kui (kaugusR> = kaugusL)

{ pööra paremale(); moveStop (); } else {turnLeft (); moveStop (); }} else {moveForward (); } kaugus = readPing (); }

int lookRight ()

{myservo.write (50); viivitus (650); int kaugus = readPing (); viivitus (100); myservo.write (115); tagasisõidu kaugus; }

int lookLeft ()

{myservo.write (170); viivitus (650); int kaugus = readPing (); viivitus (100); myservo.write (115); tagasisõidu kaugus; viivitus (100); }

int readPing () {

viivitus (70); int cm = sonar.ping_cm (); kui (cm == 0) {cm = 250; } tagasitulek cm; }

void moveStop () {

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

kui (! läheb edasi)

{lähebForward = tõsi; mootor1.jooks (EDASI); //motor2.run(EELT); //motor3.run(EELT); motor4.run (EDASI); for (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // tõsta kiirust aeglaselt, et vältida akude liiga kiiret laadimist {motor1.setSpeed (speedSet); //motor2.setSpeed(speedSet); //motor3.setSpeed(speedSet); motor4.setSpeed (speedSet); viivitus (5); }}}

void moveBackward () {

läheb edasi = vale; motor1.run (TAGASI); //motor2.run(BACKWARD); //motor3.run(BACKWARD); motor4.run (TAGASI); for (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // tõsta kiirust aeglaselt, et vältida akude liiga kiiret laadimist {motor1.setSpeed (speedSet); //motor2.setSpeed(speedSet); //motor3.setSpeed(speedSet); motor4.setSpeed (speedSet); viivitus (5); }}

void turnRight () {

motor1.run (TAGASI); //motor2.run(BACKWARD); //motor3.run(EELT); motor4.run (EDASI); viivitus (350); mootor1.jooks (EDASI); //motor2.run(EELT); //motor3.run(EELT); motor4.run (EDASI); } void turnLeft () {motor1.run (FORWARD); //motor2.run(EELT); //motor3.run(BACKWARD); motor4.run (TAGASI); viivitus (350); mootor1.jooks (EDASI); //motor2.run(EELT); //motor3.run(EELT); motor4.run (EDASI); }

Soovitan: