جدول المحتويات:

كيفية صنع روبوت ذكي باستخدام Arduino: 4 خطوات
كيفية صنع روبوت ذكي باستخدام Arduino: 4 خطوات

فيديو: كيفية صنع روبوت ذكي باستخدام Arduino: 4 خطوات

فيديو: كيفية صنع روبوت ذكي باستخدام Arduino: 4 خطوات
فيديو: المشروع الاول: كيف تقوم بعمل روبوت تتبع بشري باستخدام الاردوينو مع البرمجة الخاصة بها 2024, شهر نوفمبر
Anonim
Image
Image

أهلا،

أنا صانع اردوينو وسأوضح لك في هذا البرنامج التعليمي كيفية صنع روبوت ذكي باستخدام اردوينو

إذا كنت تحب البرنامج التعليمي الخاص بي ، ففكر في دعم قناة youtube الخاصة بي المسماة صانع اردوينو

اللوازم

الأشياء التي سوف تحتاجها:

1) اردوينو أونو

2) جهاز استشعار بالموجات فوق الصوتية

3) محرك بو

4) عجلات

5) عيدان الآيس كريم

6) بطارية 9 فولت

الخطوة 1: التوصيلات

صمغ جميع المكونات في مكانها
صمغ جميع المكونات في مكانها

بعد الحصول على جميع المستلزمات الآن ، يجب أن تبدأ في توصيل كل الأشياء وفقًا لمخطط الدائرة الموضح أعلاه

الخطوة 2: صمغ جميع المكونات في مكانها

نعم،

قم الآن بتوصيل جميع الأشياء الموجودة في مكانها كما هو موضح في الصورة أعلاه

الخطوة الثالثة: البرمجة

حاليا،

ابدأ في برمجة اللوحة بالكود المحدد أدناه

// ARDUINO OBSTACLE AVOIDING CAR //// قبل تحميل الكود ، يجب عليك تثبيت المكتبة الضرورية // // مكتبة AFMotor 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_1 كيلو هرتز) ؛

// AF_DCMotor motor2 (2 ، MOTOR12_1KHZ) ؛ // AF_DCMotor motor3 (3 ، MOTOR34_1 كيلو هرتز) ؛ AF_DCMotor motor4 (4 ، MOTOR34_1 كيلو هرتز) ؛ مؤازرة myservo.

قيمة منطقية goForward = false ؛

المسافة int = 100 ؛ int speedSet = 0 ؛

الإعداد باطل() {

myservo.attach (10) ،

myservo.write (115) ؛ تأخير (1000) ؛ المسافة = readPing () ؛ تأخير (100) ؛ المسافة = readPing () ؛ تأخير (100) ؛ المسافة = readPing () ؛ تأخير (100) ؛ المسافة = readPing () ؛ تأخير (100) ؛ }

حلقة فارغة() {

المسافة intR = 0 ؛ المسافة intL = 0 ؛ تأخير (40) ؛ إذا كانت (مسافة <= 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 () ؛ إذا (سم == 0) {سم = 250 ؛ } عودة سم؛ }

خطوة باطلة توقف () {

motor1.run (إطلاق) ؛ //motor2.run (إطلاق) ؛ //motor3.run(RELEASE) ؛ motor4.run (إطلاق) ؛ } void moveForward () {

إذا (! يذهب إلى الأمام)

{يذهب إلى الأمام = صحيح ؛ motor1.run (إلى الأمام) ؛ //motor2.run(FORWARD) ، //motor3.run(FORWARD) ، motor4.run (إلى الأمام) ؛ لـ (speedSet = 0؛ speedSet <MAX_SPEED؛ speedSet + = 2) // ارفع السرعة ببطء لتجنب تحميل البطاريات بسرعة كبيرة {motor1.setSpeed (speedSet) ؛ //motor2.setSpeed(speedSet) ، //motor3.setSpeed(speedSet) ، Motor4.setSpeed (مجموعة السرعة) ؛ تأخير (5) ؛ }}}

نقل باطل إلى الخلف () {

goForward = خطأ ؛ motor1.run (خلفي) ؛ //motor2.run(BACKWARD) ؛ //motor3.run(BACKWARD) ؛ motor4.run (خلفي) ؛ لـ (speedSet = 0؛ speedSet <MAX_SPEED؛ speedSet + = 2) // قم بزيادة السرعة ببطء لتجنب تحميل البطاريات بسرعة كبيرة جدًا {motor1.setSpeed (speedSet) ؛ //motor2.setSpeed(speedSet) ، //motor3.setSpeed(speedSet) ، Motor4.setSpeed (مجموعة السرعة) ؛ تأخير (5) ؛ }}

دوران باطل لليمين () {

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 (FORWARD) ؛ //motor2.run(FORWARD) ، //motor3.run(BACKWARD) ؛ motor4.run (خلفي) ؛ تأخير (350) ؛ motor1.run (إلى الأمام) ؛ //motor2.run(FORWARD) ، //motor3.run(FORWARD) ، motor4.run (إلى الأمام) ؛ }

موصى به: