Оглавление:

Как сделать умного робота с помощью Arduino: 4 шага
Как сделать умного робота с помощью Arduino: 4 шага

Видео: Как сделать умного робота с помощью Arduino: 4 шага

Видео: Как сделать умного робота с помощью Arduino: 4 шага
Видео: КАК СДЕЛАТЬ ARDUINO РОБОТ МАШИНКУ КОТОРЫЙ ОБХОДИТ ПРЕПЯТСТВИЯ 2024, Ноябрь
Anonim
Image
Image

Привет,

Я производитель Arduino, и в этом уроке я покажу вам, как сделать умного робота с помощью Arduino.

Если вам понравился мой учебник, подумайте о поддержке моего канала на YouTube под названием Arduino maker

Запасы

ЧТО ВАМ НУЖНО:

1) arduino uno (ардуино уно)

2) ультразвуковой датчик

3) Бо мотор

4) колеса

5) палочки от мороженого

6) батарея 9в

Шаг 1: ПОДКЛЮЧЕНИЯ

КЛЕЙ ВСЕ КОМПОНЕНТЫ НА МЕСТЕ
КЛЕЙ ВСЕ КОМПОНЕНТЫ НА МЕСТЕ

После получения всех расходных материалов вы должны начать подключать все в соответствии со схемой, приведенной выше.

Шаг 2: КЛЕЙ ВСЕ КОМПОНЕНТЫ НА МЕСТЕ

ОК,

теперь соедините все вещи на месте, как показано на картинке выше

Шаг 3: ПРОГРАММИРОВАНИЕ

Теперь,

начните программировать плату с приведенным ниже кодом

// ПРЕПЯТСТВИЕ ARDUINO ИЗБЕЖАНИЕ МАШИНЫ //// Перед загрузкой кода необходимо установить необходимую библиотеку // // AFMotor Library https://learn.adafruit.com/adafruit-motor-shield/library-install // // Библиотека NewPing https://github.com/livetronic/Arduino-NewPing// // Servo Library https://github.com/arduino-libraries/Servo.git // // Чтобы установить библиотеки, перейдите в эскиз >> Включить Библиотека >> Добавить файл. ZIP >> Выберите загруженные ZIP-файлы по ссылкам выше //

#включают

#включают

#включают

#define TRIG_PIN A0

#define ECHO_PIN A1 #define MAX_DISTANCE 200

#define MAX_SPEED 150 // устанавливает скорость двигателей постоянного тока

#define MAX_SPEED_OFFSET 20

Эхолот NewPing (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); Сервомашина;

логическое goForward = false;

int distance = 100; int speedSet = 0;

void setup () {

myservo.attach (10);

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

void loop () {

int distanceR = 0; int distanceL = 0; задержка (40); если (расстояние <= 15) {moveStop (); задержка (100); двигаться назад(); задержка (300); moveStop (); задержка (200); distanceR = lookRight (); задержка (300); distanceL = lookLeft (); задержка (300);

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

{ Поверните направо(); moveStop (); } еще {turnLeft (); moveStop (); }} еще {moveForward (); } distance = readPing (); }

int lookRight ()

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

int lookLeft ()

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

int readPing () {

задержка (70); int cm = sonar.ping_cm (); если (см == 0) {см = 250; } return cm; }

void moveStop () {

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

если (! идет вперед)

{goForward = true; 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 (набор скорости); задержка (5); }}}

void moveBackward () {

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

void turnRight () {

motor1.run (НАЗАД); //motor2.run(BACKWARD); //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(BACKWARD); motor4.run (НАЗАД); задержка (350); motor1.run (ВПЕРЕД); //motor2.run(FORWARD); //motor3.run(FORWARD); motor4.run (ВПЕРЕД); }

Рекомендуемые: