Sisukord:

Robotiauto vältimine: 9 sammu
Robotiauto vältimine: 9 sammu

Video: Robotiauto vältimine: 9 sammu

Video: Robotiauto vältimine: 9 sammu
Video: Yellow Bumblebee the Beasts: TRANSFORMERS COLLECTION: Smash Excavator, truck crane & boat Cars Robot 2024, Juuli
Anonim
Takistus robotauto vältimiseks
Takistus robotauto vältimiseks
Takistus robotauto vältimiseks
Takistus robotauto vältimiseks

Kuidas ehitada takistusi robotit vältides

Samm: must kast

Must kast
Must kast

Esimese sammuna kasutasin oma roboti aluseks musta kasti.

Samm: Arduino

Arduino
Arduino

Arduino on kogu süsteemi aju ja korraldab meie mootoreid

Samm: Arduino kinnitamine Blackboxi

Arduino ühendamine Blackboxiga
Arduino ühendamine Blackboxiga

Kinnitasin arduino kuuma liimi abil musta kasti külge

Samm: ultraheli andur

Ultraheli andur
Ultraheli andur

Selleks, et teha robot, mis suudab ise liikuda, vajame mingisugust sisendit, andurit, mis sobib meie eesmärgiga. Ultraheliandur on seade, mis mõõdab kaugust objektini ultrahelilainete abil. Ultraheliandur kasutab andurit ultraheliimpulsside saatmiseks ja vastuvõtmiseks, mis edastavad teavet objekti läheduse kohta

Samm: anduri ühendamine leivalauaga Arduinoga

Leivaplaadi anduri ühendus Arduinoga
Leivaplaadi anduri ühendus Arduinoga
Leivaplaadi anduri ühendus Arduinoga
Leivaplaadi anduri ühendus Arduinoga

Ma kasutasin juhtmeid leivalaua ja arduino vahelise ühenduse loomiseks.

Pöörake tähelepanu sellele, et teie ping -anduril võib olla erinev tihvtide paigutus, kuid sellel peaks olema pinge-, maandus-, käivitus- ja kajapolt.

6. samm: mootorikilp

Mootori kilp
Mootori kilp

Arduino lauad ei saa alalisvoolumootoreid ise juhtida, kuna nende tekitatavad voolud on liiga madalad. Selle probleemi lahendamiseks kasutame mootorikilpe. Mootori kilbil on 2 kanalit, mis võimaldab juhtida kahte alalisvoolumootorit või 1 samm -mootor. … Nende tihvtide abil saate valida käivitatava mootorikanali, määrata mootori suuna (polaarsuse), määrata mootori kiiruse (PWM), peatada ja käivitada mootori ning jälgida iga kanali voolu neeldumist

Samm: ühendage mootorikilp Arduinoga

Motor Shieldi ühendamine Arduinoga
Motor Shieldi ühendamine Arduinoga

Lihtsalt kinnitage mootorikilp arduino külge, anduri juhtmed on krigistatud

Samm: 4 mootori ja aku ühendamine kilbiga

4 mootori ja aku ühendamine kilbiga
4 mootori ja aku ühendamine kilbiga

Igal mootorikilbil on (vähemalt) kaks kanalit, üks mootoritele ja teine toiteallikale, ühendage need üksteise suhtes

Samm: programmeerige robot

käivitage see kood

#kaasama #kaasama

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;

#defineeri TRIG_PIN A2 #define ECHO_PIN A3 #define MAX_DISTANCE 150 #define MAX_SPEED 100 #define MAX_SPEED_OFFSET 10

tõeväärtus läheb Edasi = vale; int kaugus = 80; 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 (50); moveBackward (); viivitus (150); moveStop (); viivitus (100); kaugusR = lookRight (); viivitus (100); kaugusL = lookLeft (); viivitus (100);

if (kaugusR> = kaugusL) {turnRight (); moveStop (); } else {turnLeft (); moveStop (); }} else {moveForward (); } kaugus = readPing (); }

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

int lookLeft () {myservo.write (120); viivitus (300); int kaugus = readPing (); viivitus (100); myservo.write (115); tagasisõidu kaugus; viivitus (100); }

int readPing () {delay (70); int cm = sonar.ping_cm (); kui (cm == 0) {cm = 200; } tagasitulek cm; }

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

kui (! läheb Edasi) {läheb Edasi = tõsi; mootor1.jooks (EDASI); motor2.run (EDASI); motor3.run (EDASI); motor4.run (EDASI); for (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) {motor1.setSpeed (speedSet); motor2.setSpeed (speedSet); motor3.setSpeed (speedSet); motor4.setSpeed (speedSet); viivitus (5); }}}

void moveBackward () {goForward = false; motor1.run (TAGASI); motor2.run (TAGASI); motor3.run (TAGASI); motor4.run (TAGASI); for (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) {motor1.setSpeed (speedSet); motor2.setSpeed (speedSet); motor3.setSpeed (speedSet); motor4.setSpeed (speedSet); viivitus (5); } void turnLeft () {motor1.run (BACKWARD); motor2.run (TAGASI); motor3.run (EDASI); motor4.run (EDASI); viivitus (500); mootor1.jooks (EDASI); motor2.run (EDASI); motor3.run (EDASI); motor4.run (EDASI); }

void turnLeft () {motor1.run (BACKWARD); motor2.run (TAGASI); motor3.run (EDASI); motor4.run (EDASI); viivitus (500); mootor1.jooks (EDASI); motor2.run (EDASI); motor3.run (EDASI); motor4.run (EDASI); }

Soovitan: