جدول المحتويات:
- الخطوة 1: المعدات
- الخطوة 2: ملف صورة مخطط الدائرة
- الخطوة 3: ملف فريتزينج لمخطط الدائرة
- الخطوة 4: كود المرسل
- الخطوة 5: رمز المتلقي
- الخطوة 6: ملفات INO
- الخطوة 7: ربط المكتبات
فيديو: سيارة لاسلكية يتم التحكم فيها عن طريق الإيماءات: 7 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:39
في هذا البرنامج التعليمي سوف نتعلم كيفية صنع سيارة يتم التحكم فيها بالإيماءات أو أي روبوت. يتكون هذا المشروع من جزأين ، جزء واحد هو وحدة الإرسال وجزء آخر هو وحدة الاستقبال. في الواقع ، يتم تثبيت وحدة الإرسال على قفازات يدوية ويتم وضع وحدة الاستقبال داخل السيارة أو أي إنسان آلي. حان الوقت الآن لصنع سيارة جميلة. لنذهب!
الخطوة 1: المعدات
وحدة الارسال
1. اردوينو نانو.
2. وحدة الاستشعار MPU6050.
3. الترددات اللاسلكية 433 ميغاهيرتز الارسال.
4. أي نوع من 3 خلايا ، بطارية 11.1 فولت (لقد استخدمت خلية عملة معدنية هنا).
5. فيرو المجلس.
6. قفازات اليد.
وحدة الاستقبال
1. Arduino Nano أو Arduino Uno.
2. L298N Motor Driver Module.
3. 4 إطار روبوت بما في ذلك المحركات.
4. جهاز استقبال RF 433 RF.
5. 3 خلايا ، 11.1 فولت بطارية ليثيوم بو.
6. فيرو مجلس.
آحرون
1. عصي غراء وبندقية.
2. أسلاك العبور.
3. مفكات البراغي
4. طقم لحام.
إلخ.
الخطوة 2: ملف صورة مخطط الدائرة
الخطوة 3: ملف فريتزينج لمخطط الدائرة
الخطوة 4: كود المرسل
#يشمل
#يشمل
#يشمل
MPU6050 mpu6050 (سلك) ؛
مؤقت طويل = 0 ؛
تحكم char * ؛
الإعداد باطل()
{Serial.begin (9600) ، Wire.begin () ؛ mpu6050.begin () ، mpu6050.calcGyroOffsets (صحيح) ، vw_set_ptt_inverted (صواب) ، // vw_set_tx_pin (10) ؛ vw_setup (4000) ؛ // سرعة نقل البيانات كيلوبت في الثانية
}
حلقة فارغة()
{ ////////////////////////////////////////////////////////////////////////////////////////////////
mpu6050.update () ،
إذا (بالمللي () - المؤقت> 1000)
{Serial.println ("============================================ =========== ") ؛ Serial.print ("temp:") ؛ Serial.println (mpu6050.getTemp ()) ؛ Serial.print ("accX:") ؛ Serial.print (mpu6050.getAccX ()) ؛ Serial.print ("\ taccY:") ؛ Serial.print (mpu6050.getAccY ()) ؛ Serial.print ("\ taccZ:")؛ Serial.println (mpu6050.getAccZ ()) ؛ Serial.print ("gyroX:") ؛ Serial.print (mpu6050.getGyroX ()) ؛ Serial.print ("\ tgyroY:")؛ Serial.print (mpu6050.getGyroY ()) ؛ Serial.print ("\ tgyroZ:")؛ Serial.println (mpu6050.getGyroZ ()) ؛ Serial.print ("accAngleX:") ؛ Serial.print (mpu6050.getAccAngleX ()) ؛ Serial.print ("\ taccAngleY:") ؛ Serial.println (mpu6050.getAccAngleY ()) ؛ Serial.print ("gyroAngleX:") ؛ Serial.print (mpu6050.getGyroAngleX ()) ؛ Serial.print ("\ tgyroAngleY:")؛ Serial.print (mpu6050.getGyroAngleY ()) ؛ Serial.print ("\ tgyroAngleZ:")؛ Serial.println (mpu6050.getGyroAngleZ ()) ؛ Serial.print ("angleX:") ؛ Serial.print (mpu6050.getAngleX ()) ؛ Serial.print ("\ tangleY:")؛ Serial.print (mpu6050.getAngleY ()) ؛ Serial.print ("\ tangleZ:")؛ Serial.println (mpu6050.getAngleZ ()) ؛ Serial.println ("============================================= ========== / n ") ؛ الموقت = مللي () ؛ }
/////////////////////////////////////////////////////////////////////////////////////
إذا (mpu6050.getAccAngleX () 30) {وحدة تحكم = "X2" ؛ vw_send ((uint8_t *) تحكم ، strlen (تحكم)) ؛ vw_wait_tx () ؛ // انتظر حتى تختفي الرسالة بأكملها Serial.println ("FORWARD") ؛ } else if (mpu6050.getAccAngleY ()> 40) {controller = "Y1"؛ vw_send ((uint8_t *) تحكم ، strlen (تحكم)) ؛ vw_wait_tx () ؛ // انتظر حتى تختفي الرسالة بأكملها Serial.println ("LEFT") ؛ } else if (mpu6050.getAccAngleY () <- 40) {controller = "Y2"؛ vw_send ((uint8_t *) تحكم ، strlen (تحكم)) ؛ vw_wait_tx () ؛ // انتظر حتى تختفي الرسالة بأكملها Serial.println ("RIGHT") ؛ } else if (mpu6050.getAccAngleX () - 10 && mpu6050.getAccAngleY () - 10) {controller = "A1"؛ vw_send ((uint8_t *) تحكم ، strlen (تحكم)) ؛ vw_wait_tx () ؛ // انتظر حتى تختفي الرسالة بأكملها Serial.println ("STOP") ؛ }}
الخطوة 5: رمز المتلقي
#يشمل
int LA = 3 ؛
كثافة العمليات LB = 11 ؛ int RA = 5 ؛ كثافة العمليات RB = 6 ؛ إعداد باطل () {Serial.begin (9600) ؛ vw_set_ptt_inverted (صواب) ، // مطلوب لـ DR3100 vw_set_rx_pin (12) ؛ vw_setup (4000) ؛ // بت لكل ثانية pinMode (13 ، الإخراج) ؛ pinMode (LA ، الإخراج) ؛ pinMode (LB ، الإخراج) ؛ pinMode (RA ، الإخراج) ؛ pinMode (RB ، الإخراج) ؛ vw_rx_start () ، // بدء تشغيل جهاز الاستقبال PLL الذي يعمل على Serial.println ("كل شيء على ما يرام") ؛
}
حلقة باطلة () {uint8_t buf [VW_MAX_MESSAGE_LEN] ؛ uint8_t buflen = VW_MAX_MESSAGE_LEN ،
if (vw_get_message (buf، & buflen)) // Non-blocking
{if ((buf [0] == 'X') && (buf [1] == '1')) {Serial.println ("BACKWARD")؛ الى الوراء()؛ تأخير (100) ؛ //إيقاف()؛ } else if ((buf [0] == 'X') && (buf [1] == '2')) {Serial.println ("FORWARD")؛ إلى الأمام()؛ تأخير (100) ؛ //إيقاف()؛ }
else if ((buf [0] == 'Y') && (buf [1] == '1'))
{Serial.println ("LEFT") ؛ اليسار()؛ تأخير (100) ؛ //إيقاف()؛ }
else if ((buf [0] == 'Y') && (buf [1] == '2'))
{Serial.println ("RIGHT") ؛ حق()؛ تأخير (100) ؛ //إيقاف()؛ } else if ((buf [0] == 'A') && (buf [1] == '1')) {Serial.println ("STOP")؛ إيقاف()؛ تأخير (100) ؛ }} else {Serial.println ("لم يتم استلام إشارة") ؛ }}
باطل إلى الأمام ()
{analogWrite (LA، 70) ؛ analogWrite (LB ، 0) ؛ analogWrite (RA ، 70) ؛ analogWrite (RB، 0) ؛ }
باطل للخلف ()
{analogWrite (LA، 0) ؛ analogWrite (LB ، 70) ؛ analogWrite (RA ، 0) ؛ analogWrite (RB ، 70) ؛ }
اليسار باطل ()
{analogWrite (LA، 0) ؛ analogWrite (LB ، 70) ؛ analogWrite (RA ، 70) ؛ analogWrite (RB، 0) ؛ }
حق باطل ()
{analogWrite (LA، 70) ؛ analogWrite (LB ، 0) ؛ analogWrite (RA ، 0) ؛ analogWrite (RB ، 70) ؛ }
باطل ()
{analogWrite (LA، 0) ؛ analogWrite (LB ، 0) ؛ analogWrite (RA ، 0) ؛ analogWrite (RB، 0) ؛ }
الخطوة 6: ملفات INO
الخطوة 7: ربط المكتبات
مكتبة الأسلاك الافتراضية:
MPU6050_tockn Libraby:
مكتبة الأسلاك:
موصى به:
سيارة DIY Arduino يتم التحكم فيها عن طريق البلوتوث: 6 خطوات (مع صور)
سيارة اردوينو التي يتم التحكم فيها عن طريق البلوتوث: مرحبًا يا أصدقاء! اسمي نيكولاس ، عمري 15 عامًا وأعيش في أثينا ، اليونان. سأوضح لك اليوم كيفية صنع سيارة ذات عجلتين يتم التحكم فيها عن طريق البلوتوث باستخدام Arduino Nano وطابعة ثلاثية الأبعاد وبعض المكونات الإلكترونية البسيطة! تأكد من مشاهدة
سيارة RC يتم التحكم فيها عن طريق البلوتوث مع التحكم في السرعة وقياس المسافة: 8 خطوات
سيارة RC يتم التحكم فيها عن طريق البلوتوث مع التحكم في السرعة وقياس المسافة: عندما كنت طفلاً ، كنت دائمًا مفتونًا بسيارات RC. في الوقت الحاضر ، يمكنك العثور على العديد من البرامج التعليمية لصنع سيارات RC رخيصة الثمن يتم التحكم فيها عن طريق البلوتوث بمساعدة Arduino. لنأخذ خطوة إلى الأمام ونستخدم معرفتنا العملية بالكينماتيكا لحساب
سيارة يتم التحكم فيها عن بعد - يتم التحكم فيها باستخدام وحدة تحكم Xbox 360 اللاسلكية: 5 خطوات
سيارة يتم التحكم فيها عن بعد - يتم التحكم فيها باستخدام وحدة تحكم Xbox 360 اللاسلكية: هذه هي التعليمات من أجل بناء سيارتك الخاصة التي يتم التحكم فيها عن بعد ، والتي يتم التحكم فيها باستخدام وحدة تحكم Xbox 360 اللاسلكية
سيارة يتم التحكم فيها عن طريق الإيماءات: 5 خطوات (بالصور)
السيارة التي يتم التحكم فيها عن طريق الإيماءات: تلعب الروبوتات دورًا مهمًا في الأتمتة في جميع القطاعات مثل الإنشاءات والعسكرية والطبية والتصنيع وما إلى ذلك
يد روبوتية لاسلكية يتم التحكم فيها عن طريق الإيماءات والصوت: 7 خطوات (بالصور)
يد روبوتية لاسلكية يتم التحكم فيها عن طريق الإيماءات والصوت: كان هذا في الأساس مشروع كليتنا وبسبب ضيق الوقت لتقديم هذا المشروع ، فقد نسينا التقاط صور لبعض الخطوات. لقد صممنا أيضًا رمزًا يمكن من خلاله التحكم في هذه اليد الآلية باستخدام الإيماءات والصوت في نفس الوقت ولكن بسبب