Съдържание:

Как да си направим интелигентен робот с помощта на Arduino: 4 стъпки
Как да си направим интелигентен робот с помощта на Arduino: 4 стъпки

Видео: Как да си направим интелигентен робот с помощта на Arduino: 4 стъпки

Видео: Как да си направим интелигентен робот с помощта на Arduino: 4 стъпки
Видео: How to use up to 10 push button switch with 1 Arduino input pin ANPB-V1 2024, Ноември
Anonim
Image
Image

Здравейте,

Аз съм производител на arduino и в този урок ще ви покажа как да направите интелигентен робот с помощта на arduino

ако ви е харесал моя урок, помислете дали да не подкрепите моя канал в YouTube, наречен производител на arduino

Консумативи

НЕЩА, КОИТО ЩЕ СЕ ИМУГАТ:

1) arduino uno

2) ултразвуков сензор

3) Bo мотор

4) колела

5) пръчици за сладолед

6) 9v батерия

Стъпка 1: ВРЪЗКИ

ПОЛЕПЕТЕ ВСИЧКИ КОМПОНЕНТИ НА МЯСТО
ПОЛЕПЕТЕ ВСИЧКИ КОМПОНЕНТИ НА МЯСТО

След като получите всички консумативи сега, трябва да започнете да свързвате всички неща съгласно схемата, дадена по -горе

Стъпка 2: ЗАЛЕПЕТЕ ВСИЧКИ КОМПОНЕНТИ НА МЯСТО

ДОБРЕ,

сега свържете всички неща на място, както е показано на горната снимка

Стъпка 3: ПРОГРАМИРАНЕ

Сега,

започнете да програмирате дъската с дадения код по -долу

// ARDUINO ПРЕПЪЛНЕНИЕ, ИЗБЯГВАЩО КОЛА //// Преди да качите кода, трябва да инсталирате необходимата библиотека // // AFMotor Library https://learn.adafruit.com/adafruit-motor-shield/library-install // // Библиотека NewPing https://github.com/livetronic/Arduino-NewPing// // Серво библиотека https://github.com/arduino-libraries/Servo.git // // За да инсталирате библиотеките отидете на скица >> Включете Библиотека >> Добавяне на. ZIP файл >> Изберете изтеглените ZIP файлове От горните връзки //

#включва

#включва

#включва

#дефинирайте TRIG_PIN A0

#дефинирайте ECHO_PIN A1 #дефинирайте MAX_DISTANCE 200

#define MAX_SPEED 150 // задава скорост на DC двигатели

#дефинирайте MAX_SPEED_OFFSET 20

NewPing сонар (TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

AF_DC Мотор на двигателя1 (1, MOTOR12_1KHZ);

// AF_DCMotor motor2 (2, MOTOR12_1KHZ); // AF_DCMotor motor3 (3, MOTOR34_1KHZ); AF_DCМотор на мотора4 (4, MOTOR34_1KHZ); Servo myservo;

boolean goesForward = false;

int разстояние = 100; int speedSet = 0;

void setup () {

myservo.attach (10);

myservo.write (115); забавяне (1000); разстояние = readPing (); забавяне (100); разстояние = readPing (); забавяне (100); разстояние = readPing (); забавяне (100); разстояние = readPing (); забавяне (100); }

void loop () {

int разстояние R = 0; int разстояние L = 0; забавяне (40); if (разстояние <= 15) {moveStop (); забавяне (100); moveBackward (); забавяне (300); moveStop (); забавяне (200); distanceR = lookRight (); забавяне (300); distanceL = lookLeft (); забавяне (300);

ако (разстояние R> = разстояниеL)

{ обърни се на дясно(); moveStop (); } else {turnLeft (); moveStop (); }} else {moveForward (); } разстояние = readPing (); }

int lookRight ()

{myservo.write (50); забавяне (650); int разстояние = readPing (); забавяне (100); myservo.write (115); обратно разстояние; }

int lookLeft ()

{myservo.write (170); забавяне (650); int разстояние = readPing (); забавяне (100); myservo.write (115); обратно разстояние; забавяне (100); }

int readPing () {

забавяне (70); int cm = sonar.ping_cm (); ако (cm == 0) {cm = 250; } return cm; }

void moveStop () {

motor1.run (РЕЛИЗАЦИЯ); //motor2.run(RELEASE); //motor3.run(RELEASE); motor4.run (РЕЛИЗАЦИЯ); } void moveForward () {

ако (! отива напред)

{отива напред = вярно; motor1.run (НАПРЕД); //motor2.run(FORWARD); //motor3.run(FORWARD); motor4.run (НАПРЕД); for (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // бавно увеличавайте скоростта, за да избегнете зареждането на батериите твърде бързо {motor1.setSpeed (speedSet); //motor2.setSpeed(speedSet); //motor3.setSpeed(speedSet); motor4.setSpeed (speedSet); забавяне (5); }}}

void moveBackward () {

отива напред = невярно; motor1.run (НАЗАД); //motor2.run(НАЗАД); //motor3.run(НАЗАД); motor4.run (НАЗАД); for (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // бавно увеличавайте скоростта, за да избегнете зареждането на батериите твърде бързо {motor1.setSpeed (speedSet); //motor2.setSpeed(speedSet); //motor3.setSpeed(speedSet); motor4.setSpeed (speedSet); забавяне (5); }}

void turnRight () {

motor1.run (НАЗАД); //motor2.run(НАЗАД); //motor3.run(FORWARD); motor4.run (НАПРЕД); забавяне (350); motor1.run (НАПРЕД); //motor2.run(FORWARD); //motor3.run(FORWARD); motor4.run (НАПРЕД); } void turnLeft () {motor1.run (НАПРЕД); //motor2.run(FORWARD); //motor3.run(НАЗАД); motor4.run (НАЗАД); забавяне (350); motor1.run (НАПРЕД); //motor2.run(FORWARD); //motor3.run(FORWARD); motor4.run (НАПРЕД); }

Препоръчано: