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

وحدة التحكم المؤازرة التسلسلية القائمة على Arduino: 6 خطوات
وحدة التحكم المؤازرة التسلسلية القائمة على Arduino: 6 خطوات

فيديو: وحدة التحكم المؤازرة التسلسلية القائمة على Arduino: 6 خطوات

فيديو: وحدة التحكم المؤازرة التسلسلية القائمة على Arduino: 6 خطوات
فيديو: اردوينو ماستركلاس | ورشة برمجة كاملة في 90 دقيقة! 2024, يوليو
Anonim
وحدة تحكم مؤازرة تسلسلية تعتمد على اردوينو
وحدة تحكم مؤازرة تسلسلية تعتمد على اردوينو
اردوينو تحكم المسلسل المؤازر
اردوينو تحكم المسلسل المؤازر

هذه وحدة تحكم تسلسلية بسيطة للعديد من الماكينات القائمة على Arduino. (أول تدريب لي أيضًا:))

جاء معظم العمل في هذا من جعل البرنامج يتحدث مع اردوينو وعمل بروتوكول لتمرير البيانات. بالنسبة لجانب الأجهزة ، فكل ما استخدمته هو مؤازرتان (Parallax standard servo هنا.) Sparkfun Arduino ProtoShield و Arduino Duemilanove مع ATMEGA328 ، ولكن يمكن استبدال معظم هذه الأجزاء بعناصر مماثلة. فكرت في هذا المشروع كجزء من نظام RC ، لكن إعداد الاتصال استغرق الكثير من الوقت. إذا كان لدى أي شخص أي تحسينات أو أفكار أو أخطاء ، فلا تتردد في التعليق. تحرير: لقد كتبت هذا منذ فترة ، فقط قمت بنشره مؤخرًا.

الخطوة 1: الأشياء التي قد تحتاجها …

أشياء قد تحتاجها …
أشياء قد تحتاجها …
أشياء قد تحتاجها …
أشياء قد تحتاجها …

بعض الأشياء سوف تحتاج لبناء هذا. 1. لوحة Arduino (التي تختارها) 2. مؤازرتان (أو واحد) 3. أسلاك توصيل 4. Visual Studio 2008 Express - رابط (اختياري) 5. Arduino IDE - رابط آسف لعشاق Linux و Apple ، برنامجي يعمل فقط على windows في الوقت الحالي ، ولكن لا يزال بإمكانك إرسال أوامر تسلسلية يدويًا إلى arduino دون تغيير الرمز.

الخطوة 2: قم بتوصيل الجهاز

قم بتوصيل الجهاز
قم بتوصيل الجهاز

لا يوجد شيء معقد للغاية لهذه الخطوة ، ما عليك سوى توصيل أحد المؤازرات بالرقم 9 والآخر بالرقم 10.

الخطوة 3: برمجة Arduino

برمجة اردوينو
برمجة اردوينو

الآن يمكنك تحميل الرسم التخطيطي على اردوينو.

فيما يلي تفصيل بسيط للشفرة: #include Servo myservo؛ // إنشاء كائن مؤازر للتحكم في مؤازرة myservo1 ؛ int incomingByte = 0 ، عدد البيانات = 0 ، العداد = 0 ، جاهز = 0 ؛ // لبيانات char الخاصة بالبيانات التسلسلية الواردة [10] ؛ التحقق من char const [8] = "ma11hew" ؛ أمر char [3] ؛ إعداد باطل () {myservo.attach (9) ؛ myservo1.attach (10) ، Serial.begin (38400) ؛ // يفتح المنفذ التسلسلي ، يحدد معدل البيانات Serial.println ("مرحبًا Arduino هنا!") ؛ // تمت إضافته للمساعدة في تحديد المنفذ التسلسلي. إنت أنا لـ (i = 0 ؛ i <180 ؛ i ++) {myservo.write (i) ؛ تأخير (15) ؛ } myservo.write (5) ؛ لـ (i = 0 ؛ i <180 ؛ i ++) {myservo1.write (i) ؛ تأخير (15) ؛ } myservo1.write (5) ؛ } حركة مسح بسيطة للتحقق من عمل الماكينات بشكل صحيح. حلقة باطلة () {جاهز = 0 ؛ عداد = 0 ؛ while (1 == 1) {if (Serial.read ()! = check [counter]) {break؛ } إذا (عداد == 6) {تأخير (20) ؛ الأمر [0] = Serial.read () ، الأمر [1] = Serial.read () ، // إذا (Serial.read () == ((الأمر [1] * 12)٪ 8)) // {جاهز = 1 ؛ //} Serial.println ("أمر محفوظ") ؛ } عداد ++؛ تأخير (2) ؛ } هذا يتحقق من المخزن المؤقت التسلسلي لسلسلة التفويض الصحيحة ثم يأخذ وحدتي بايت للأمر. التعليق إذا كانت العبارة تسمح بمجموع اختباري مؤقت ولكنها ستجعل الربط اليدوي صعبًا. يمكن ضبط جاهز على 0 حتى لا يتم تحليل الأوامر كما هو الحال في حالة البيانات التالفة. // ابحث من خلال الأوامر إذا (جاهز == 1) {إذا (الأمر [0] == 'T') {الأمر [0] = 0 ؛ Serial.print ("التحكم في دواسة الوقود على السن 9 إلى:") ؛ Serial.println (خريطة (أمر [1] ، 32 ، 126 ، 2 ، 180) ، DEC) ؛ myservo.write (map (أمر [1] ، 32 ، 126 ، 2 ، 180)) ؛ } إذا (الأمر [0] == 'S') {الأمر [0] = 0 ؛ Serial.print ("التحكم في الخانق على السن 10 إلى:") ؛ Serial.println (خريطة (أمر [1] ، 32 ، 126 ، 2 ، 180) ، DEC) ؛ myservo1.write (map (أمر [1] ، 32 ، 126 ، 2 ، 180)) ؛ }}} ما تبقى من الكود هو البحث في الأمر عن أوامر صالحة (T أو S.) إذا تطابق أي منهما ، فإنه يأخذ البايت التالي ويرسله إلى المؤازرة. المزيد على الخريطة (الأمر [1] ، 32 ، 126 ، 2 ، 180) لاحقًا … الكود هنا قابل للتوسيع لأي شيء آخر قد تحتاجه (مثل الأضواء والمحركات والأشعة تحت الحمراء وما إلى ذلك) يجب أن يعمل هذا الرمز بشكل جيد بدون التعديلات.

الخطوة 4: تثبيت البرنامج

تثبيت نظام التشغيل
تثبيت نظام التشغيل

لدي طريقتان لتثبيت … مثبت nsis: تنزيل برنامج التثبيت الذاتي الاستخراج أدناه وتشغيله. سيكون لديك خيار تثبيت المصادر أثناء التثبيت. تقوم الحزمة الثنائية للمثبت بتثبيت core c ++ dlls بحيث يمكن تشغيلها على جهاز كمبيوتر دون تثبيت c ++ المرئي بالفعل. بمجرد انتهاء برنامج التثبيت ، يمكنك تشغيله من سطح المكتب أو قائمة البدء. zip way (لم يتم التحقق منه): التنزيل والتشغيل ، يجب أن يعمل. يمكن. (يحتوي أرشيف zip على نفس بنية المجلد التي أنشأها المثبت ، بدون مصادر. ليس لدي جهاز بدون استوديو مرئي لاختباره ، لذا فقد لا يعمل.)

الخطوة 5: استخدم برنامج الواجهة

استخدم برنامج الواجهة
استخدم برنامج الواجهة
استخدم برنامج الواجهة
استخدم برنامج الواجهة

لاستخدام البرنامج ، حدد أولاً معدل الباود المحدد في رسم اردوينو. الإعداد الافتراضي للرسم غير المعدل هو 38400 باود ولكن يمكن تغييره ليناسب احتياجاتك لأشياء مثل ارتباط راديو أبطأ. ملاحظة: معدلات البث بالباود الأعلى من 38400 لم تكن مستقرة جدًا ، وأعتقد أن هذا بسبب امتلاء uart قبل معالجة البيانات. بعد ذلك ، حدد منفذ COM لاستخدامه. البرنامج الافتراضي هو COM4 تأكد من تغييره وإلا فسوف يتعطل البرنامج. أخيرًا ، انقر فوق فتح. إذا سارت الأمور على ما يرام ، فسيفتح البرنامج المنفذ التسلسلي المحدد بمعدل باود محدد. إذا لم يكن الأمر كذلك ، فمن المحتمل أن يتعطل البرنامج مع استثناء لم تتم معالجته. تأكد من صحة المنفذ وحاول مرة أخرى. استخدم مربعات النص لإرسال أوامر مباشرة إلى اردوينو. تقوم "الخريطة (الأمر [1] ، 32 ، 126 ، 2 ، 180)" بقياس كل 94 أمرًا ممكنًا ، * مسافة * عبر ~ ، يمكن قراءتها بواسطة اردوينو في ASCII إلى 2 إلى 180 من أجل المؤازرة. أي بايت أقل من ASCII 32 (مسافة) أو أعلى من 126 (~) يتم تعيينه افتراضيًا إلى 63 (؟) توفر أشرطة المسار واجهة جهاز توجيه للأوامر المباشرة. ترسل كل خطوة أمرًا تسلسليًا إلى اردوينو بشكل تدريجي.

الخطوة 6: كن مبدعا

الحصول على الإبداع!
الحصول على الإبداع!
الحصول على الإبداع!
الحصول على الإبداع!

فكر في أشياء رائعة تصنعها بهذا. بعض الأفكار: 1. دواسة الوقود عن بعد للسيارة. 2. جبل الكاميرا ثلاثية الأبعاد 3. العربة الجوالة تحت الماء استمتع!

موصى به: