Social Icons

الخميس، 11 أبريل 2013

المتحكم الأصغري ATTINY 85

  المتحكم الأصغري ATTINY85 


هل لديك مشروع يحتاج عدد قليل من المداخل و المخارج  ؟ هل حجم المايكروكنترولر في بعض الأحيان يعتبر ميزة سلبية لمشروعك ؟ هل ترغب في تصغير مشروعك ليناسب الوظائف الدقيقة ؟  بعد قراءتك لهذه التدوينة ستتعرف على المتحكم ATTINY85 و ستعرف أكثر عن مزاياه و خصائصه و محدداته .

المتحكم الأصغري  
ATTINY85 من شركة اتميل Atmel له فقط 8 أرجل , بذاكرة فلاش 8Kbyte و وحدة معالجة مركزية 8 bit   , و الجدول أدناه يبين المواصفات القياسية لهذا المتحكم :



و يمكن التعرف على المواصفات الكاملة له من خلال زيارة موقع الشركة على هذا الرابط ATMEL



ما سنهتم به اليوم هو توصيل هذا المتحكم و برمجته ضمن بيئة أردوينو البرمجية Arduino IDE .

في البداية توزيع أرجل لهذا المتحكم :



 و بالنسبة للمسميات في لغة أردوينو , توزيع الأرجل يعطى في هذا المخطط :


  • المعدات التي سنحتاجها لهذه التجربة :

ستحتاج لتنفيذ هذه التجربة إلى :
1) بطاقة اردوينو " uno, deumilinova  " 

2) المتحكم ATTINY 85 
3)مكثف 10uF .
4) Breadboard .
5)اسلاك توصيل Solderless jumper .



لنبدأ :

سنقوم في هذه التجربة بتحويل بطاقة الأردوينو Uno إلى مبرمجة   تقوم من خلالها بتحميل البرنامج إلى 
ATTINY 85  .

البروتوكول المستخدم لهذا الغرض هو SPI .

في تجربة اليوم يجب أن تستخدم نسخة برمجية الأردوينو 1.0.1 او 1.0.3  لكي تنفذ التجربة بشكل صحيح .

في البداية يجب عليك تحميل هذا الملف الذي يحتوي على تعريف المتحكمين ATTINY 45/85 من هنا  

قم بفك ضغط هذا الملف و قم بنسخ المجلد الموجود بداخله الذي اسمه attiny و قم بوضعه ضمن مسار الSketchbook الخاص بالأردوينو  في مجلد قم بانشاءه و تسميته ب hardware " ستجده في جهازك في العنوان







 My document >>Arduino >>hardware>>attiny

بعد ذلك قم بفتح برمجية الأردوينو و اذهب إلى خيار 
tools >> Board 

 و سترى وجود الملفات التي اضفتها مؤخراً في القائمة 

بعد ذلك نقوم بتحويل بطاقة الأردوينو إلى مبرمجة ArduinoAs ISP , و تحميل برنامج arduino ISP .



هذا البرنامج يحول الأردوينو إلى مبرمجة , يستخدم ايضاً في حالة تنزيل برنامج الإقلاع Bootloader لمتحكم آخر .


إذا كنت تستخدم أردوينو UNO قم فقط بتعديل التأخير الزمني في الجملة heartbeat من 40 إلى 20 "في الإصدارات الحديثة تم وضعها 20 بشكل تلقائي " .




عدّل اعدادات البرنامج التالية
Board : Arduino Uno"or what you work with"
programmer: arduino as ISP .


بعدها قم بتحميل البرنامج على بطاقة الأردوينو , و انتقل لمرحلة توصيل بطاقة الأردوينو .

لا تنسى توصيل مكثف 10uF  بين مدخل الRESET و الGND




بعد أن تقوم بتوصيل القطع كما في المخطط , افتح برنامج Blink.ino و قم بتغيير رقم المدخل من 13 إلى 0 كما هو مكتوب في المثال ادناه .
/*
  Blink
  Turns on an LED on for one second, then off for one second, repeatedly.
 
  This example code is in the public domain.
 */
 
// Pin D0 on Attiny 85 
//Modified by Mohannad Rawashdeh

//http://genotronex.blogspot.com/
//...................................
int led = 0;

// the setup routine runs once when you press reset:
void setup() {                
  // initialize the digital pin as an output.
  pinMode(led, OUTPUT);     
}

// the loop routine runs over and over again forever:
void loop() {
  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);               // wait for a second
  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);               // wait for a second
}

غيّر اعدادات البرنامج لتصبح
Board : ATTINY 85(Internal 8MHz).
programmer: arduino as ISP .

ثم قم بتحميل البرنامج , ستظهر النتائج لك كما في الفيديو .

لا تهتم للرسالة التي ستظهر اسفل الشاشة .

و هذا برنامج fade ايضاً قمت بتعديله ليناسب الattiny .



هذا الفيديو يظهر نتائج تطبيق البرنامجين :


مميزات و محددات الATTINY85 :


من أهم المميزات التي يمكن لنا اكتشافها في هذا المتحكم :

1)عدد مداخل و مخارج كبير بالنسبة لعدد الأرجل "لها 6 I/O و هذا رقم كبير " .

2) وجود 4 مرابط Pins تعمل كمقاطعات خارجية .
3)وجود الرابط التسلسلي I2C و SPI .
)استهلاك منخفض للطاقة .


على الرغم من الميزات التي ذكرناها عن هذه القطعة إلا أن هناك عدة محددات لهذا المتحكم هي :


1)محدودية  ذاكرة الفلاش التخزينية  ذات مساحة 8kbyte  .
2)تعطيل بعض الأوامر و عدم عملها في هذا المتحكم .
3)  تتم برمجته بواسطة الSPI فلا وجود للسيريال فيه Serial Rx,Tx. 

هنالك عدة اوامر لا يستطيع هذا المتحكم ترجمتها و يعطي Error عند كتابة البرنامج بهذه الاوامر .
الأوامر التي يدعمها هذا المتحكم  ضمن بيئة اردوينو البرمجية :


SoftwareSerial (has been updated in Arduino 1.0)


باقي الأوامر قد لا تعمل أو تتوافق مع هذا المتحكم .

أرجو أن أكون قد وفقت في عرض امكانيات هذا المتحكم لكم , 

الى اللقاء 

7 التعليقات :

  1. ما شاء الله اخي مهند موضوع متكامل ومفيد جزاك الله خيرا

    ردحذف
  2. شكراً لك سلطان على المرور الرائع .

    ردحذف
  3. اين تباع فى مصر وكم سعرها ؟

    ردحذف
  4. في مصر لا أعلم أين لكن في الأردن لدي محل ألكترونيات تباع فيه هذه القطعة .

    للتواصل معي أذا اردت هذه القطعة Genotronex@gmail.com

    ردحذف
  5. note:you must burn the bootloader first befor upload first app for clear error
    :)

    ردحذف
  6. اخي السلام عليكم هل لازم استخدم Arduino Uno والا عادي ممكن استخدم اردوينو مايكرو ارجو الرد علي للاهمية

    ردحذف
  7. هل يعمل مع اوامر الا if وال for

    ردحذف

 
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.