Агуулгын хүснэгт:

Arduino ашиглан ухаалаг робот хэрхэн хийх вэ: 4 алхам
Arduino ашиглан ухаалаг робот хэрхэн хийх вэ: 4 алхам

Видео: Arduino ашиглан ухаалаг робот хэрхэн хийх вэ: 4 алхам

Видео: Arduino ашиглан ухаалаг робот хэрхэн хийх вэ: 4 алхам
Видео: Камера-ЛАМПА со слежением и определением человека. 2024, Арваннэгдүгээр
Anonim
Image
Image

Сайн уу,

Би arduino үйлдвэрлэгч бөгөөд энэ заавар дээр би arduino ашиглан ухаалаг робот хэрхэн хийх талаар танд үзүүлэх болно.

Хэрэв танд миний заавар таалагдсан бол миний yoduube сувгийг arduino үйлдвэрлэгч гэж нэрлэж болно

Хангамж

Танд хэрэгтэй зүйлүүд:

1) arduino uno

2) хэт авианы мэдрэгч

3) Бо мотор

4) дугуй

5) зайрмагны мод

6) 9в батерей

Алхам 1: ХОЛБОО

БҮХ БҮРЭЛДЭХҮҮДИЙГ БАЙГУУЛАЛТАНД НЬ ЦАВУУЛАХ
БҮХ БҮРЭЛДЭХҮҮДИЙГ БАЙГУУЛАЛТАНД НЬ ЦАВУУЛАХ

Үүний дараа бүх хангамжийг авахдаа дээр дурдсан схемийн дагуу бүх зүйлийг холбож эхлэх хэрэгтэй

Алхам 2: БҮХ БҮТЭЭГДЭХҮҮДИЙГ БАЙГУУЛАЛТАНД НЬ ЦАВУУЛАХ

БОЛЖ БАЙНА УУ,

Дээрх зураг дээр үзүүлсэн шиг одоо бүх зүйлийг байрлуул

Алхам 3: ХӨТӨЛБӨРЛӨХ

Одоо,

Доорх кодоор самбарыг програмчилж эхлээрэй

// ARDUINO OBSTACLE AVOIDING CAR //// Кодыг байршуулахаасаа өмнө шаардлагатай номын санг суулгах хэрэгтэй // // 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 файлуудыг сонгоно уу //

#оруулах

#оруулах

#оруулах

#тодорхойлох TRIG_PIN A0

#тодорхойлох ECHO_PIN A1 #MAX_DISTANCE 200 -ийг тодорхойлох

#define MAX_SPEED 150 // DC моторын хурдыг тохируулдаг

#MAX_SPEED_OFFSET -ийг тодорхойлох 20

NewPing sonar (TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

AF_DCMotor мотор1 (1, MOTOR12_1KHZ);

// AF_DCMotor мотор2 (2, MOTOR12_1KHZ); // AF_DCMotor мотор3 (3, MOTOR34_1KHZ); AF_DCMotor мотор4 (4, MOTOR34_1KHZ); Servo myservo;

boolean goForward = худал;

int зай = 100; int speedSet = 0;

хүчингүй тохиргоо () {

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); зайR = lookRight (); саатал (300); зайL = харагдахЗүүн (); саатал (300);

хэрэв (зайR> = зай L)

{ Баруун тийш эргэ(); moveStop (); } өөр {turnLeft (); moveStop (); }} өөр {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 (); хэрэв (см == 0) {см = 250; } буцах см; }

void moveStop () {

мотор 1. ажиллуулах (суллах); //motor2.run(RELEASE); //motor3.run(RELEASE); мотор 4. ажиллуулах (суллах); } void moveForward () {

хэрэв (! Урагшаа явдаг)

{goForward = үнэн; мотор 1. гүйх (урагш); //motor2.run (FORWARD); //motor3.run (FORWARD); мотор 4. гүйх (урагш); for (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // батерейг хэт хурдан цэнэглэхгүйн тулд хурдыг аажмаар дээшлүүлнэ үү {motor1.setSpeed (speedSet); //motor2.setSpeed(speedSet); //motor3.setSpeed(speedSet); motor4.setSpeed (speedSet); саатал (5); }}}

хүчингүй алхамBackward () {

goForward = худал; мотор 1. ажиллуулах (Буцах); //motor2.run(BACKWARD); //motor3.run(BACKWARD); мотор 4. ажиллуулах (БУЦАХ); for (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // батерейг хэт хурдан цэнэглэхгүйн тулд хурдыг аажмаар дээшлүүлнэ үү {motor1.setSpeed (speedSet); //motor2.setSpeed(speedSet); //motor3.setSpeed(speedSet); motor4.setSpeed (speedSet); саатал (5); }}

void turnRight () {

мотор 1. ажиллуулах (Буцах); //motor2.run(BACKWARD); //motor3.run (FORWARD); мотор 4. гүйх (урагш); саатал (350); мотор 1. гүйх (урагш); //motor2.run (FORWARD); //motor3.run (FORWARD); мотор 4. гүйх (урагш); } void turnLeft () {motor1.run (FORWARD); //motor2.run (FORWARD); //motor3.run(BACKWARD); мотор 4. ажиллуулах (БУЦАХ); саатал (350); мотор 1. гүйх (урагш); //motor2.run (FORWARD); //motor3.run (FORWARD); мотор 4. гүйх (урагш); }

Зөвлөмж болгож буй: