INHOUDSOPGAWE:

Hoe om 'n slim robot te maak met behulp van Arduino: 4 stappe
Hoe om 'n slim robot te maak met behulp van Arduino: 4 stappe

Video: Hoe om 'n slim robot te maak met behulp van Arduino: 4 stappe

Video: Hoe om 'n slim robot te maak met behulp van Arduino: 4 stappe
Video: Die Antwoord - Baita Jou Sabela feat. Slagysta (Official Video) 2024, November
Anonim
Image
Image

hallo,

Ek is 'n arduino -vervaardiger, en in hierdie handleiding gaan ek jou wys hoe om 'n slim robot te maak met behulp van arduino

As u van my tutoriaal hou, oorweeg dit dan om my YouTube -kanaal met die naam Arduino te ondersteun

Voorrade

DINGE WAT U NODIG HET:

1) arduino uno

2) ultrasoniese sensor

3) Bo motor

4) wiele

5) roomysstokkies

6) 9v battery

Stap 1: VERBINDINGS

LIG AL DIE KOMPONENTE IN PLEK
LIG AL DIE KOMPONENTE IN PLEK

Nadat u alle benodigdhede gekry het, moet u alle dinge aansluit volgens die stroombaan -diagram hierbo

Stap 2: GELEER AL DIE KOMPONENTE IN PLEK

OK,

verbind nou al die dinge wat in plek is soos in die prentjie hierbo getoon

Stap 3: PROGRAMMERING

Nou,

begin met die programmering van die bord met die gegewe kode hieronder

// ARDUINO Hindernis vermy motor //// Voordat u die kode oplaai, moet u die nodige biblioteek installeer // // AFMotor Library https://learn.adafruit.com/adafruit-motor-shield/library-install // // NewPing-biblioteek https://github.com/livetronic/Arduino-NewPing// // Servobiblioteek https://github.com/arduino-libraries/Servo.git // // Om die biblioteke te installeer, gaan na skets >> Sluit in Biblioteek >> Voeg. ZIP -lêer by >> Kies die afgelaaide zip -lêers uit die boonste skakels //

#insluit

#insluit

#insluit

#definieer TRIG_PIN A0

#definieer ECHO_PIN A1 #definieer MAX_DISTANCE 200

#define MAX_SPEED 150 // stel die snelheid van GS -motors in

#definieer MAX_SPEED_OFFSET 20

NewPing sonar (TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

AF_DCMotor motor1 (1, MOTOR12_1KHZ);

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

boolean goesForward = false;

int afstand = 100; int speedSet = 0;

ongeldige opstelling () {

myservo.attach (10);

myservo.write (115); vertraging (1000); afstand = readPing (); vertraging (100); afstand = readPing (); vertraging (100); afstand = readPing (); vertraging (100); afstand = readPing (); vertraging (100); }

leemte -lus () {

int afstandR = 0; int afstand L = 0; vertraging (40); if (afstand <= 15) {moveStop (); vertraging (100); moveBackward (); vertraging (300); moveStop (); vertraging (200); distanceR = lookRight (); vertraging (300); distanceL = lookLeft (); vertraging (300);

as (afstand R> = afstand L)

{ draai regs(); moveStop (); } anders {turnLeft (); moveStop (); }} anders {moveForward (); } afstand = readPing (); }

int lookRight ()

{myservo.write (50); vertraging (650); int afstand = readPing (); vertraging (100); myservo.write (115); terugkeer afstand; }

int lookLeft ()

{myservo.write (170); vertraging (650); int afstand = readPing (); vertraging (100); myservo.write (115); terugkeer afstand; vertraging (100); }

int readPing () {

vertraging (70); int cm = sonar.ping_cm (); as (cm == 0) {cm = 250; } cm terug; }

leegte moveStop () {

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

as (! gaan vorentoe)

{goesForward = true; motor1.run (VOORUIT); //motor2.run(VOORUIT); //motor3.run(VOORUIT); motor4.run (VOORUIT); vir (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // verhoog die spoed stadig om te voorkom dat die batterye te vinnig laai {motor1.setSpeed (speedSet); //motor2.setSpeed(speedSet); //motor3.setSpeed(speedSet); motor4.setSpeed (speedSet); vertraging (5); }}}

nietig moveBackward () {

goesForward = vals; motor1.run (TERUG); //motor2.run(TERUG) //motor3.run(TERUG) motor4.run (TERUG); vir (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // verhoog die spoed stadig om te voorkom dat die batterye te vinnig laai {motor1.setSpeed (speedSet); //motor2.setSpeed(speedSet); //motor3.setSpeed(speedSet); motor4.setSpeed (speedSet); vertraging (5); }}

nietige turnRight () {

motor1.loop (TERUG); //motor2.run(TERUG); //motor3.run(VOORUIT); motor4.run (VOORUIT); vertraging (350); motor1.run (VOORUIT); //motor2.run(VOORUIT); //motor3.run(VOORUIT); motor4.run (VOORUIT); } void turnLeft () {motor1.run (FORWARD); //motor2.run(VOORUIT); //motor3.run(TERUG); motor4.run (TERUG); vertraging (350); motor1.run (VOORUIT); //motor2.run(VOORUIT); //motor3.run(VOORUIT); motor4.run (VOORUIT); }

Aanbeveel: