Sisukord:

Kuidas teha kodus isetegemist Arduino takistuseks, vältides robotit: 4 sammu
Kuidas teha kodus isetegemist Arduino takistuseks, vältides robotit: 4 sammu

Video: Kuidas teha kodus isetegemist Arduino takistuseks, vältides robotit: 4 sammu

Video: Kuidas teha kodus isetegemist Arduino takistuseks, vältides robotit: 4 sammu
Video: Noored Koodi Arduino õppematerjalide tutvustus 2024, Juuli
Anonim
Image
Image

Tere poisid, selles juhendatavas teete takistuse, vältides robotit. See juhendamine hõlmab ultrahelianduriga roboti ehitamist, mis tuvastab lähedal asuvad objektid ja muudab nende suunda, et neid objekte vältida. Ultraheliandur kinnitatakse servomootori külge, mis skaneerib pidevalt vasakule ja paremale, otsides oma teel olevaid esemeid.

Niisiis, ilma pikema jututa alustame!

Samm: mida vajate selles projektis:

Mida vajate selles projektis
Mida vajate selles projektis
Mida vajate selles projektis
Mida vajate selles projektis

Siin on osade loend:

1) Arduino Uno

2) Mootori juhi kilp

3) Käigumootor, raam ja rattad

4) Servomootor

5) Ultraheli andur

6) Li-ion aku (2x)

7) Akuhoidik

8) Isane ja emane hüppaja traat

9) jootekolb

10) Laadija

2. samm: vooluahela skeem

Lülitusskeem
Lülitusskeem

Töötamine:

Enne projekti kallale asumist on oluline mõista, kuidas ultrahelisensor töötab. Ultraheli anduri tööpõhimõte on järgmine:

Välise päästiku signaali abil muudetakse ultrahelianduri Trig -tihvt loogikaks vähemalt 10 µs. Saatemoodulist saadetakse helipurse. See koosneb kaheksast 40KHz impulsist.

Pärast pinnale löömist naasevad signaalid tagasi ja vastuvõtja tuvastab selle signaali. Kaja tihvt on signaali saatmise ja vastuvõtmise ajast kõrgel. Selle aja saab sobivate arvutuste abil teisendada kauguseks.

Selle projekti eesmärk on rakendada takistusi, vältides robotit, kasutades ultrahelisensorit ja Arduino. Kõik ühendused tehakse vastavalt skeemile. Projekti toimimist selgitatakse allpool.

Roboti sisselülitamisel töötavad mõlemad roboti mootorid normaalselt ja robot liigub edasi. Selle aja jooksul arvutab ultraheliandur pidevalt kaugust roboti ja peegeldava pinna vahel.

Seda teavet töötleb Arduino. Kui roboti ja takistuse vaheline kaugus on väiksem kui 15 cm, peatub robot ja otsib servomootori ja ultrahelianduri abil vasakule ja paremale suundades uut kaugust. Kui kaugus vasakule poole on suurem kui paremal, valmistub robot vasakpöördeks. Kuid kõigepealt varundab see veidi ja seejärel aktiveerib vasakpoolse ratta mootori vastupidises suunas.

Samamoodi, kui õige kaugus on suurem kui vasakpoolne, valmistab robot ette parempöörde. See protsess jätkub igavesti ja robot liigub edasi ilma takistust tabamata.

Samm: Arduino UNO programmeerimine

#kaasake

#kaasake

#kaasake

# define TRIG_PIN A1

# define ECHO_PIN A0

# define MAX_DISTANCE 200

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

# define MAX_SPEED_OFFSET 20

NewPingi sonar (TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

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 (2000); 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 (200); kaugusL = lookLeft (); viivitus (200);

kui (kaugusR> = kaugusL) {

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

int lookRight () {

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

int lookLeft () {

myservo.write (170); viivitus (500); 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 () {

motor3.run (RELEASE);

motor4.run (RELEASE); }

void moveForward () {

kui (! läheb edasi) {

läheb edasi = tõsi;

motor3.run (EDASI);

motor4.run (EDASI); for (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // suurendage kiirust aeglaselt, et vältida akude liiga kiiret laadimist {

motor3.setSpeed (speedSet);

motor4.setSpeed (speedSet); viivitus (5); }}}

void moveBackward () {

läheb edasi = vale;

motor3.run (TAGASI);

motor4.run (TAGASI); for (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // suurendage kiirust aeglaselt, et vältida akude liiga kiiret laadimist {

motor3.setSpeed (speedSet);

motor4.setSpeed (speedSet); viivitus (5); }}

void turnRight () {

motor3.run (EDASI);

motor4.run (TAGASI); viivitus (500);

motor3.run (EDASI);

motor4.run (EDASI); }

void turnLeft () {

motor3.run (TAGASI);

motor4.run (EDASI); viivitus (500);

motor3.run (EDASI);

motor4.run (EDASI); }

1) Laadige alla ja installige Arduino Desktop IDE

  • aknad -
  • Mac OS X -
  • Linux -

2) Laadige alla ja kleepige NewPingi raamatukogu (ultraheli andmekogu) fail Arduino teekide kausta.

  1. Laadige alla NewPing.rar
  2. Ekstraktige see teele - C: / Arduino / teegid

3) Laadige kood Arduino plaadile USB -kaabli abil

Allalaadimiskood:

Samm: suurepärane

Nüüd on teie robot valmis takistusi vältima …

Vastan hea meelega kõigile teie küsimustele

Emailme: [email protected]

Veebisait:

Telli minu YouTube'i kanal:

Instagram:

Facebook:

Aitäh:)

Soovitan: