Kazalo:

Kako narediti pametnega robota z uporabo Arduina: 4 koraki
Kako narediti pametnega robota z uporabo Arduina: 4 koraki

Video: Kako narediti pametnega robota z uporabo Arduina: 4 koraki

Video: Kako narediti pametnega robota z uporabo Arduina: 4 koraki
Video: Control Position and Speed of Stepper motor with L298N module using Arduino 2024, Julij
Anonim
Image
Image

zdravo,

Jaz sem izdelovalec arduino in v tej vadnici vam bom pokazal, kako narediti pametnega robota z arduinom

če vam je bila moja vadnica všeč, razmislite o podpori mojemu youtube kanalu z imenom arduino maker

Zaloge

Stvari, ki jih boste potrebovali:

1) arduino uno

2) ultrazvočni senzor

3) Bo motor

4) kolesa

5) sladoledne palčke

6) 9v baterija

1. korak: POVEZAVE

LEPITE VSE KOMPONENTE NA MESTU
LEPITE VSE KOMPONENTE NA MESTU

Potem, ko dobite vse zaloge, bi morali začeti povezovati vse stvari v skladu z zgornjo shemo vezja

2. korak: LEPITE VSE KOMPONENTE NA MESTU

V REDU,

zdaj povežite vse stvari, kot je prikazano na zgornji sliki

3. korak: PROGRAMIRANJE

Zdaj,

začnite programirati ploščo s spodnjo kodo

// ARDUINO OBSTACLE IVOID CAR //// Pred nalaganjem kode morate namestiti potrebno knjižnico // // AFMotor Library https://learn.adafruit.com/adafruit-motor-shield/library-install // // Knjižnica NewPing https://github.com/livetronic/Arduino-NewPing// // Servo knjižnica https://github.com/arduino-libraries/Servo.git // // Za namestitev knjižnic pojdite na skico >> Vključi Knjižnica >> Dodaj datoteko. ZIP >> Izberite prenesene datoteke ZIP Z zgornjih povezav //

#vključi

#vključi

#vključi

#define TRIG_PIN A0

#define ECHO_PIN A1 #define MAX_DISTANCE 200

#define MAX_SPEED 150 // nastavi hitrost enosmernih motorjev

#define MAX_SPEED_OFFSET 20

Sonar NewPing (TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

AF_DCMotor motorja1 (1, MOTOR12_1KHZ);

// AF_DCMotor motorja2 (2, MOTOR12_1KHZ); // AF_DCMotor motor3 (3, MOTOR34_1KHZ); AF_DCMotor motorja4 (4, MOTOR34_1KHZ); Servo myservo;

boolean goesForward = false;

int razdalja = 100; int speedSet = 0;

void setup () {

myservo.attach (10);

myservo.write (115); zamuda (1000); distance = readPing (); zamuda (100); distance = readPing (); zamuda (100); distance = readPing (); zamuda (100); distance = readPing (); zamuda (100); }

void loop () {

int razdalja R = 0; int razdaljaL = 0; zamuda (40); if (razdalja <= 15) {moveStop (); zamuda (100); moveBackward (); zamuda (300); moveStop (); zamuda (200); distanceR = lookRight (); zamuda (300); distanceL = lookLeft (); zamuda (300);

če (razdaljaR> = razdaljaL)

{ zavij desno(); moveStop (); } else {turnLeft (); moveStop (); }} else {moveForward (); } distance = readPing (); }

int lookRight ()

{myservo.write (50); zamuda (650); int distance = readPing (); zamuda (100); myservo.write (115); povratna razdalja; }

int lookLeft ()

{myservo.write (170); zamuda (650); int distance = readPing (); zamuda (100); myservo.write (115); povratna razdalja; zamuda (100); }

int readPing () {

zamuda (70); int cm = sonar.ping_cm (); če (cm == 0) {cm = 250; } vrnitev cm; }

void moveStop () {

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

če (! gre naprej)

{goesForward = true; motor1.run (NAPREJ); //motor2.run(FORWARD); //motor3.run(FORWARD); motor4.run (NAPREJ); for (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // počasi povečajte hitrost, da se izognete prehitremu nalaganju baterij {motor1.setSpeed (speedSet); //motor2.setSpeed(speedSet); //motor3.setSpeed(speedSet); motor4.setSpeed (speedSet); zamuda (5); }}}

void moveBackward () {

gre naprej = napačno; motor1.run (NAZAD); //motor2.run(BACKWARD); //motor3.run(BACKWARD); motor4.run (NAZAD); for (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // počasi povečajte hitrost, da se izognete prehitremu nalaganju baterij {motor1.setSpeed (speedSet); //motor2.setSpeed(speedSet); //motor3.setSpeed(speedSet); motor4.setSpeed (speedSet); zamuda (5); }}

void turnRight () {

motor1.run (NAZAD); //motor2.run(BACKWARD); //motor3.run(FORWARD); motor4.run (NAPREJ); zamuda (350); motor1.run (NAPREJ); //motor2.run(FORWARD); //motor3.run(FORWARD); motor4.run (NAPREJ); } void turnLeft () {motor1.run (NAPREJ); //motor2.run(FORWARD); //motor3.run(BACKWARD); motor4.run (NAZAD); zamuda (350); motor1.run (NAPREJ); //motor2.run(FORWARD); //motor3.run(FORWARD); motor4.run (NAPREJ); }

Priporočena: