كيفية صنع روبوت ذكي باستخدام Arduino: 4 خطوات
كيفية صنع روبوت ذكي باستخدام Arduino: 4 خطوات
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 (إلى الأمام) ؛ }

موصى به: