Arduino ilə ATtiny Proqramlama

Bəzən çox kiçik fiziki yer limiti olan və ya misal üçün, 1-2 rəqəmsal giriş/çıxış pini lazım olan proyektlərimizdə böyük Arduino UNO (hətta Nano) işlətmək praktiki mümkün olmur. Belə olduqda bizə kiçik form faktorda olan bir mikrokontroller lazıdır.  ATtiny mikrokontroller seriyasına daxil olan bir neçə model var ki, (ATtiny44, ATtiny84, ATtiny45, ATtiny85) həm qiymətləri çox ucuz, həm də kiçik gövdədə bir çox funksionallığı özlərində daşıyırlar. Digər bir üstünlüyü isə odur ki, biz bu çipləri əlavə proqramlayıcıya ehtiyac olmadan Arduinonun özü ilə proqramlaya bilərik.  Bu məqaləmizdə biz bu model sırasına daxil olan 8 ayaqlı ATtiny85-i proqramlamağa çalışacaq və Arduino üçün sadə bir ATtiny proqramlayıcı başlıq hazırlayacağıq. Gəlin qısaca bizə lazım olacaq detalları sadalayaq:

  • ATtiny85: Makerstore-Az,Ebay.
  • Arduino Uno (Mega və ya digər kiçik modellərlə də mümkündür)
  • Breadboard
  • Əlaqə kabelləri (jumper)
  • 10 µF (mikroFarad) kondensator
  • 5 mm LED
  • 220 Ω rezistor
  • Prototip lövhəsi + ZİF socket (əlavə başlıq hazırlamaq üçün. Ətraflı məqalənin sonunda.)
breadboard-1

Başlanğıc üçün biz ilk olaraq Arduino İDE-yə ATtiny dəstək kitabxanasını (support library) əlavə etməliyik. Bunun üçün İDE-də File menyusundan Preferences bölməsinə daxil olub “Additional Boards Manager URLs” xanasına aşağıdakı github keçidini kopyalayırıq.

https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json

1

Qeyd: şəkilləri böyütmək üçün sağ düymədən yeni səhifədə açın.

2

Daha sonra “OK” düyməsini basıb, bu pəncərəni bağlayırıq. Daha sonra yaxşı olar ki, Arduino İDE-ni bağlayıb, yenidən açaq. Açıldıqdan sonra Tools->Boards Manager… bölməsinə keçirik.

3

Açılan pəncərədə yuxarı soldakı seçmə xanasından “Contributed” variantını seçib, “attiny” kitabxanasını tapdıqdan sonra “install” edirik.

4

Kitabxana yükləndikdən sonra İDE-miz ATtiny proqramlamağa hazırdı. İndi isə Arduinomuzu proqramlayıcı kimi istifadə etmək üçün ArduinoISP skeçini File->Examples->ArduinoISP->ArduinoISP menyusunda açıb, Arduino Unomuza yükləyirik.

10

Aşağı status panelində “Done uploading” yazısını gördükdən sonra əmin oluruq ki, Arduino Uno ICSP (İn Circuit Serial Programmer) proqramlayıcı kimi istifadə oluna bilər. Bir neçə addım əvvəl əlavə etdiyimiz ATtiny dəstək kitabxanasının nəticəsində Tools->Boards menyusuna baxsaq, yeniATtiny mikrokontrollerinin əlavə olunduğunu görərik.

5

Bu o deməkdir ki, bütün addımları uğurla yerinə yetirdik və ATtiny-miz proqramlamağa hazırdır. Demək olar ki 🙂 Yoruldunuzsa, bir çay için…

İndi isə davam edək (bilirəm proses biraz uzundu, amma nəticə çox məhsuldar olacaq). Daha sonra Arduino UNO-un Reset və GND pinləri arasına 10 µF tutumlu kondensator əlavə edirik ki, hər dəfə ATtiny-i proqramlayanda IDE-dən gələn Reset əmri UNO-dakı bootloaderi işə salmasın. Çünki əgər bu əmr yerinə yetirilsə IDE ArduinoISP skeçiylə əlaqəni itirəcək, bootloaderlə əlaqəyə keçəcək və proqramlamada xəta baş verəcək. Qısaca desək, çox qısa zaman davam edən 0V RESET impulsu Arduino UNO-yu Reset edə bilmir (kondensatorda toplanmış enerji  RESET xəttinin bu müddətdə 5V-da qalmasını təmin edir). Diqqət yetirin ki, elektrolitik kondensatorun işarələnmiş tərəfi GND xəttinə qoşulmalıdır.

breadboard-4

8bit mikrokontrollerlərin çoxu standart SPİ serial kommunikasiya pinləri vasitəsilə proqramlanır. Bunlar MİSO, MOSİ, SCK, və SS pinləridir, təbii ki, GND və VCC (+5V) da unutmayaq. ATtiny-mizi breadboard üzərinə keçirib, UNO-muzdan bu göstərilən pinləri ATtiny üzərindəki aşağıdakı breadboard sxemində göstərilən kimi əlaqələndirik.

  • Arduino Pin 13 (SCK)    -> ATtiny Pin 7 (SCK)
  • Arduino Pin 12 (MISO) -> ATtiny Pin 6 (MISO)
  • Arduino Pin 11 (MOSI) -> ATtiny Pin 5 (MOSI)
  • Arduino Pin 10 (SS)      -> ATtiny Pin 1 (RESET)
  • Arduino  (GND)             -> ATtiny Pin 4 (GND)
  • Arduino  (+5V)              -> ATtiny Pin 8 (VCC)

 

ATtiny85 breadboard_bb

Dövrənin elektrik sxemi isə:

ATtiny85_schem

Eyni dövrənin praktiki halını bənzər şəkildə breadboard üzərində yığıb, proqramlamağa keçə bilərik.

breadboard-5

İDE-mizdə Tools menyusunda parametrləri bu cür seçirik. Diqqət yetirin ki, qırmızı xana daxilindəki bütün seçimlər bu cür olmalıdır (COM portu çıxmaq şərtilə). Buna əmin olduqdan sonra ilk dəfə üçün ATtiny-yə bootloader yazmalıyıq. Bunun üçün sondakı sətrdən “Burn Bootloader” seçirik.

11

“Bootloader” yükləndikdən sonra sadə blink proqramı yazıb, ATtiny-i test edə bilərik. ATtiny-də pin sayı az olduğu üçün, azaldılmış pin adlandırılması aşağıdakı kimi olacaq. Pin X adı ilə yazılan pinləri Arduino İDE-də digər Arduinoları proqramladığımız kimi ünvanlayıb, proqramlaya bilərik.

ATtiny45-85Proqramda Pin 0-ı LED pini kimi seçib, həmin ayağa LED və 220 Omluq rezistor ardıcıl bağlayırıq.

13

Bu skeçi yüklədikdən sonra LED-imiz 0.5 san intervalla yanıb, sönməyə başlayacaq.

Ümumilikdə, ATtiny-də bütün Arduino funksionallığı olmasa da (məs. Serial.print()), bir çox baza əmrlər (aşağıda sadalanan) burda da işləyəcək:

Proqramlama zamanı ATtiny-dəki pin 0 MOSİ xəttinə bağlı olduğundan LED-imiz də bu pin üzərində olduğundan Arduino UNO-dan ATtiny-ə axan serial məlumatı LED-in sayrışmasından vizual görə bilərik. Bunun üçün gecikmə (delay()) qiymətini biraz daha azaldıb, proqramı yenidən yükləyirik və yükləmə anında LED-in necə sayrışdığını aşağıdakı videonun ilk hissəsində görə bilərik. Videonun ikinci hissəsindəki adapter dövrı ilə məqalənin davamında tanış ola bilərsiniz.

 


Əgər bu məqalənin ilk hissəsi sizi ATtiny-i daha tez-tez istifadə etməyə inandıra bildisə (çünki məni inandırıb) onda bu breadboard kabelləşməsi dərdindən birdəfəlik qurtulmaq və ATtiny-lərimizi daha cəld şəkildə proqramlamaq üçün Arduino UNO üçün adapter başlıq (shield) lövhəsi hazırlamaq qərarına gəldim. Bunun üçün mən 20 x 11 dəlikli prototipləşdirmə lövhəsi, erkək pinlər və ZİF (zero insertion force) socket işlədirəm, amma siz adi 8 pin DİP socket də işlədə bilərsiniz.

adapter-2

Yuxarıdakı breadboard dövrəsinin eynisini lövhə üzərində təkrar edib, aşağıdakı kimi qururuq.

ATtiny85_bbReal görünüşü isə:

adapter-8

Məndə olan lövhədə lehim çevrələri yalnız bir tərəfdə olduğu üçün altdan lehimləmə zamanı qismən narahat olsa da öhdəsindən gəlmək çetin deyil. Əgər sizdə ikitərəfli PCB lövhə varsa onda daha asan olar.

adapter-4

Başlığın altdan və digər tərəfdən görünüşü:

adapter-5
adapter-9

Artıq rahatlıqla bir neçə dəqiqə ərzində onlarla ATtiny proqramlaya bilərsiniz.

adapter-10

Ümidvaram məqalə nə vaxtsa köməyinizə çatar. Bu sahəyə maraqlı olan dost və tanışlarınızla paylaşmağı unutmayın. Hələlik.

İstinadlar:

  1. High-Low Tech
  2. ATtiny85 datasheet
  3. ATtinyXX seriyası pin diaqramı
PaylaşShare on FacebookTweet about this on TwitterShare on LinkedInShare on Google+Email this to someonePin on PinterestShare on RedditShare on TumblrDigg this

Comments

comments

Rəy bildir