كيفية تحويل Arduino إلى ISP - برمجة ATmel ATtiny85
نشرت: 2017-06-13البايت القصير: في بعض الأحيان ، يكون استخدام لوحة Arduino مسبقة الصنع في المشروع أمرًا مبالغًا فيه ، أو يكون كبيرًا جدًا. ATtiny85 هو متحكم دقيق غير مكلف ولكنه قادر بشكل مدهش يمكن أن يساعد في تقليل البصمة الخاصة بمشروعك. إليك كيف يمكنك برمجة ATtiny لاستخدامه في مشروعك.
تعتبر منصة Arduino أداة رائعة للتعلم ، ولكن في بعض الأحيان لا تتناسب لوحات Arduino المدعومة تمامًا مع المكان الذي تريده. مع قياس Arduino Uno (النموذج الأكثر شيوعًا) بحوالي 65 مم × 50 مم ، من السهل أن ترى كيف يمكن أن يكون أكبر مكون في بعض المشاريع. هناك لوحات أخرى مثل Nano أصغر بكثير (مقاس Nano الخاص بي هو 43 ملم × 17 ملم ، 4.5 مرة أصغر) ، ولكن حتى ذلك الحين ، في بعض الأحيان يكون حجمه أكبر من اللازم. ماذا لو ، على سبيل المثال ، كنت ترغب في بناء جهاز يمكن ارتداؤه ، فربما يكون مجرد مصباح LED وامض يرتديه كلبك ليلاً. بمجرد إدخال بطارية وما إلى ذلك ، يمكن أن تصبح كبيرة إلى حد ما.جديلة خط ATtiny ، بطل مشكلتنا. الاسم نفسه لـ ATtiny واضح. يمكنك العثور عليها في حزمة DIP-8 (حزمة مزدوجة مضمنة - 8 دبابيس) ، والتي تبلغ حوالي 9 ملم مربع. في الطبيعة الحقيقية التي تحمل الاسم نفسه ، فإن ATtiny صغير جدًا ، ولكن من نواحٍ أكثر من مجرد حجمه المادي. يحتوي ATtiny85 ، المستخدم في هذه المقالة ، على 8 كيلو بايت فقط من تخزين فلاش البرنامج و 512 بايت من ذاكرة الوصول العشوائي و 512 بايت من EEPROM (التخزين الدائم خارج تخزين البرنامج) .
المشكلة الآن هي برمجة واحد من هؤلاء الرجال الصغار. هناك بعض البرامج التعليمية عبر الإنترنت لهذا الغرض ، لكنني وجدت أنها غير مكتملة بعض الشيء أو تفتقر إلى الإرشادات.
ISP - في نظام مبرمج
مبرمج داخل النظام (ISP) ليس خياليًا كما يبدو. عادةً ما يتكون ISP لشريحة ATmel من جهاز به كبل USB موصل بستة سنون. من السهل حقًا تحديد دبابيس ISP على Arduinos ، فهي تقع عادةً مقابل موصل USB. من المفترض أن تتم برمجة رقائق ATmel عبر دبابيس ISP ، لكن منصة Arduino نفذت USB إلى محول تسلسلي على اللوحة للتخلص من الحاجة إلى جهاز ISP. على الرغم من ذلك ، فقد تركوا دبابيس ISP متاحة في العديد من الطرز ، إن لم يكن معظمها.
نظرًا لأن رقائق ATtiny الخاصة بنا لا تحتوي على USB إلى الجهاز التسلسلي الموجود في Arduinos ، فمن الضروري أن تتم برمجتها باستخدام مزود خدمة الإنترنت. تعد أجهزة ATmel ISP باهظة الثمن إلى حد ما ، على الأقل بالمقارنة مع تكلفة Arduino نفسها ، لذلك سنوفر على أنفسنا المال ووقت الشحن من خلال برمجة Arduino للتصرف كمزود خدمة الإنترنت.
نقوم بذلك عن طريق فتح Arduino IDE واختيار ArduinoISP من نماذج الرسومات.
عند فتح ملف الرسم ، سترى بعض المعلومات حول السلوك المتوقع للكود. في هذا الملف ، يجب علينا إجراء تعديل سريع لمزود خدمة الإنترنت الخاص بنا للتواصل مع Arduino IDE بشكل صحيح.
في السطر 220 نجد وظيفة الإعداد () .
الإعداد باطل() { SERIAL.begin (BAUDRATE) ، pinMode (LED_PMODE ، الإخراج) ؛ نبضة (LED_PMODE ، 2) ؛ pinMode (LED_ERR ، الإخراج) ؛ نبضة (LED_ERR ، 2) ؛ pinMode (LED_HB ، الإخراج) ؛ نبضة (LED_HB ، 2) ؛ }
نحتاج إلى تغيير BAUDRATE إلى 19200 بحيث يقرأ السطر
SERIAL.begin (19200) ؛
مما قرأته ، تلقى Arduino IDE تحديثًا كسر التوافق مع برنامج ArduinoISP الثابت. كان Arduino و IDE يحاولان الاتصال بمعدلات باود مختلفة مما أدى إلى فشل استخدام Arduino كمزود خدمة إنترنت ، على الرغم من وميض البرامج الثابتة بشكل صحيح.
مكتبات ATtiny
يدعم Arduino IDE مجموعة متنوعة من وحدات التحكم الدقيقة واللوحات المختلفة ، ولكن لسوء الحظ ، لا يتم تضمين سلسلة ATtiny. هذا يعني أنه يتعين علينا الحصول على الدعم لهم بأنفسنا.
كانت الطريقة التي نجحت بالنسبة لي هي إضافة عنوان URL أدناه إلى عناوين URL الإضافية لـ Boards Manager ضمن تفضيلات Arduino IDE ،
أعد تشغيل IDE ، وافتح Boards Manager ضمن Tools -> Board -> Boards Manager ثم ابحث عن حزمة ATtiny وقم بتثبيتها.
بمجرد الانتهاء من ذلك ، يمكنك البدء في بناء دائرتك لبرمجة ATtiny الخاص بك.
بناء مزود خدمة الإنترنت الخاص بك
هناك عدد من الطرق التي يمكنك من خلالها بناء مزود خدمة الإنترنت الخاص بك. يمكنك بنائه في لوح تجارب غير ملحوم حتى تتمكن من إعادة توظيف الأجزاء ، أو يمكنك عمل حل شبه دائم عن طريق لحامها معًا كما فعلت. إذا كنت تقوم بلحامها معًا بعناية ، فيمكنك إعادة استخدام Arduino لمشروع آخر إذا اخترت ذلك.
بالنظر إلى أول ثلاثين سطرًا من مخطط ArduinoISP ، يمكننا العثور على المعلومات التالية حول إعداد Arduino ليعمل كمزود خدمة إنترنت.
دبوس 10 | لإعادة تعيين رقم التعريف الشخصي لـ الهدف متحكم |
دبوس 11 | SPI Master Out الرقيق في |
دبوس 12 | SPI Master In العبيد |
دبوس 13 | الساعة التسلسلية SPI |
اختياريًا ، يمكنك توصيل مصابيح LED بالدبابيس التالية للإشارة إلى الحالة
- دبوس 9 - نبضات القلب - يشير إلى تشغيل مزود خدمة الإنترنت
- دبوس 8 - خطأ - يشير إلى حدوث خطأ
- دبوس 7 - البرمجة - يشير إلى الاتصال النشط مع الهدف
ضع في اعتبارك أن مصابيح LED هذه ستتطلب مقاومات.
هنا يمكننا أن نرى pinout لـ ATtiny85 والوصلات المناسبة التي نحتاجها للعودة إلى Arduino. إنه رسم بدائي جدًا ، لكنني قمت بتسمية المسامير الموجودة على ATtiny85 للراحة. ومع ذلك ، تجدر الإشارة إلى أن المسامير لم يتم تناولها عند 1،2،3،8 كما هي في الرسم التخطيطي ، تم تحديدها داخل Arduino IDE كما تم تسميتها في النص القطري.
هذا رسم تخطيطي أكثر تفصيلاً للوصلات المختلفة. جميع مصابيح LED اختيارية ، لكنها مفيدة لاستكشاف الأخطاء وإصلاحها ، بالإضافة إلى مصابيح LED الثلاثة للحالة التي تم التوصية بها في ملف رسم ArduinoISP ، هناك واحد يتصل ببساطة من 5 فولت إلى الأرض (مع المقاوم ، بالطبع) ، و ثم هناك واحد متصل بالدبوس الثاني (الدبوس 3 في IDE) لاختبار ATtiny مع اختبار الوميض. لاحظ المكثف الذي يربط إعادة تعيين الدبوس بالأرض ، فهذا مطلوب لكي يعمل Arduino كمزود خدمة إنترنت.
هذا هو Arduino ISP الذي قمت بإنشائه للميكروكونترولر ATtiny. يمكنك أن ترى أنني استخدمت مقبس DIP-8 لعقد ATtiny أثناء برمجته. لقد تركت أيضًا مساحة كافية على اليمين لتثبيت مقبس DIP-28 لبرمجة رقائق ATmega مثل ATmega328P. ستكون الترقية مباشرة للغاية ، وستتطلب فقط توصيل المسامير الضرورية لرقائق Atmega كما لدينا مع ATtiny.
بمجرد تجميع Arduino ISP الخاص بك ، سترغب بالتأكيد في تجربته. تأكد من تحديد الإعدادات المناسبة للبرمجة من خلال Arduino المتصل وليس برمجة Arduino نفسه.
بالنسبة للوحة ، نختار خيار ATiny 25/45/85 ، ثم نختار ATtiny85 في اختيار المعالج ، وأخيرًا ، نختار Arduino كمزود خدمة إنترنت من المبرمجين. يخبر ذلك IDE بكل ما يحتاج لمعرفته حول النظام المستهدف ، بما في ذلك كيفية التواصل معه. نحن الآن جاهزون لإحضار رسم Blink (أو كتابته بنفسك إذا كنت بهذه القوة) وجربه ، فقط تأكد من تبديل الدبوس المستخدم في وميض مؤشر LED إلى الذي استخدمته في الدائرة ، هذا هو الدبوس 3 إذا كنت تستخدم التخطيطي الذي قدمته. أخيرًا ، نقوم بتجميع وتحميل المخطط بالنقر فوق Sketch -> Upload using Programmer.
الإعداد باطل() { pinMode (3 ، الإخراج) ؛ } حلقة فارغة() { digitalWrite (3 ، عالية) ؛ تأخير (1000) ؛ digitalWrite (3 ، منخفض) ؛ تأخير (1000) ؛ }
في المجموع ، من المحتمل أن يكلف مزود خدمة الإنترنت الخاص بي من Arduino والذي تم لحامه معًا حوالي ثلاثة أو أربعة دولارات. يمكن أن تكون رقائق ATtiny غير مكلفة للغاية ، وعادة ما تكون حوالي دولار واحد فقط للقطعة. أوصي بشراء مآخذ DIP-8 إذا كنت تخطط لوضع رقائق ATtiny في المشاريع لأنك قد ترغب في تحديث بعض التعليمات البرمجية أو إعادة توظيف الشريحة. يمكن إجراء لحام IC في مكانه ، ولكن يمكنك بسهولة إتلاف IC ، خاصة مع التعرض المتكرر ، كما هو الحال إذا كنت تقوم بتحديث الكود عدة مرات.
هل قام أي شخص آخر بأي شيء مثل هذا؟ هل ترغب في رؤية المزيد من عناصر Arduino؟ اسمحوا لنا أن نعرف في التعليقات أدناه.
اقرأ أيضًا: Raspberry Pi أو Arduino - أي لوحة أفضل للمبتدئين؟