Turinys:

Kaip sukurti protingą robotą naudojant „Arduino“: 4 žingsniai
Kaip sukurti protingą robotą naudojant „Arduino“: 4 žingsniai

Video: Kaip sukurti protingą robotą naudojant „Arduino“: 4 žingsniai

Video: Kaip sukurti protingą robotą naudojant „Arduino“: 4 žingsniai
Video: How to use 4 channel Relay to control AC load with Arduino code 2024, Liepa
Anonim
Image
Image

Sveiki,

Aš esu arduino kūrėjas ir šioje pamokoje aš jums parodysiu, kaip padaryti išmanųjį robotą naudojant arduino

jei jums patiko mano pamoka, apsvarstykite galimybę palaikyti mano „YouTube“kanalą, pavadintą „arduino maker“

Prekės

DAUG REIKIA:

1) arduino uno

2) ultragarso jutiklis

3) Bo variklis

4) ratai

5) ledų lazdelės

6) 9 V baterija

1 žingsnis: JUNGTYS

Klijuokite visus komponentus vietoje
Klijuokite visus komponentus vietoje

Dabar, kai gausite visas atsargas, turėtumėte pradėti jungti visus dalykus pagal aukščiau pateiktą schemą

2 veiksmas: priklijuokite visas sudedamąsias dalis

GERAI,

Dabar prijunkite visus daiktus, kaip parodyta aukščiau esančiame paveikslėlyje

3 žingsnis: PROGRAMAVIMAS

Dabar,

pradėkite programuoti lentą naudodami žemiau pateiktą kodą

// „ARDUINO OBSTACLE AVOIDING CAR“//// Prieš įkeldami kodą turite įdiegti reikiamą biblioteką // // „AFMotor Library“https://learn.adafruit.com/adafruit-motor-shield/library-install // // „NewPing“biblioteka https://github.com/livetronic/Arduino-NewPing// // Servo biblioteka https://github.com/arduino-libraries/Servo.git // // Norėdami įdiegti bibliotekas, eikite į eskizą >> Įtraukti Biblioteka >> Pridėti. ZIP failą >> Pasirinkite atsisiųstus ZIP failus iš aukščiau pateiktų nuorodų //

#įtraukti

#įtraukti

#įtraukti

#define TRIG_PIN A0

#define ECHO_PIN A1 #define MAX_DISTANCE 200

#define MAX_SPEED 150 // nustato nuolatinės srovės variklių greitį

#define MAX_SPEED_OFFSET 20

„NewPing“sonaras (TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

AF_DCMotorinis variklis1 (1, MOTOR12_1KHZ);

// AF_DCMotor motor2 (2, MOTOR12_1KHZ); // AF_DCMotor motor3 (3, MOTOR34_1KHZ); AF_DCMotorinis variklis4 (4, MOTOR34_1KHZ); Servo myservo;

loginis einaForward = false;

int atstumas = 100; int speedSet = 0;

void setup () {

myservo.attach (10);

myservo.write (115); vėlavimas (1000); atstumas = skaitytiPing (); vėlavimas (100); atstumas = skaitytiPing (); vėlavimas (100); atstumas = skaitytiPing (); vėlavimas (100); atstumas = skaitytiPing (); vėlavimas (100); }

void loop () {

int atstumasR = 0; int atstumasL = 0; vėlavimas (40); if (atstumas <= 15) {moveStop (); vėlavimas (100); Judėk atgal(); vėlavimas (300); moveStop (); vėlavimas (200); atstumasR = lookRight (); vėlavimas (300); atstumasL = lookLeft (); vėlavimas (300);

jei (atstumasR> = atstumasL)

{ Pasukite į dešinę(); moveStop (); } else {turnLeft (); moveStop (); }} else {moveForward (); } atstumas = skaitytiPing (); }

int lookRight ()

{myservo.write (50); vėlavimas (650); int atstumas = skaitytiPing (); vėlavimas (100); myservo.write (115); grįžimo atstumas; }

int lookLeft ()

{myservo.write (170); vėlavimas (650); int atstumas = skaitytiPing (); vėlavimas (100); myservo.write (115); grįžimo atstumas; vėlavimas (100); }

int readPing () {

vėlavimas (70); int cm = sonar.ping_cm (); jei (cm == 0) {cm = 250; } grįžti cm; }

void moveStop () {

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

jei (! eina pirmyn)

{eina pirmyn = tiesa; motor1.run (į priekį); //motor2.run(PIRMININKAS); //motor3.run(PIRMININKAS); motor4.run (į priekį); for (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // lėtai didinkite greitį, kad akumuliatoriai nebūtų kraunami per greitai {motor1.setSpeed (speedSet); //motor2.setSpeed(speedSet); //motor3.setSpeed(speedSet); motor4.setSpeed (speedSet); vėlavimas (5); }}}

void moveBackward () {

eina pirmyn = klaidinga; motor1.run (BACKWARD); //motor2.run(BACKWARD); //motor3.run(BACKWARD); motor4.run (BACKWARD); for (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // lėtai didinkite greitį, kad akumuliatoriai nebūtų kraunami per greitai {motor1.setSpeed (speedSet); //motor2.setSpeed(speedSet); //motor3.setSpeed(speedSet); motor4.setSpeed (speedSet); vėlavimas (5); }}

void turnRight () {

motor1.run (BACKWARD); //motor2.run(BACKWARD); //motor3.run(PIRMININKAS); motor4.run (į priekį); vėlavimas (350); motor1.run (į priekį); //motor2.run(PIRMININKAS); //motor3.run(PIRMININKAS); motor4.run (į priekį); } void turnLeft () {motor1.run (FORWARD); //motor2.run(PIRMININKAS); //motor3.run(BACKWARD); motor4.run (BACKWARD); vėlavimas (350); motor1.run (į priekį); //motor2.run(PIRMININKAS); //motor3.run(PIRMININKAS); motor4.run (į priekį); }

Rekomenduojamas: