Mündəricat:

Arduino IDE: Xüsusi lövhələr yaratmaq: 10 addım
Arduino IDE: Xüsusi lövhələr yaratmaq: 10 addım

Video: Arduino IDE: Xüsusi lövhələr yaratmaq: 10 addım

Video: Arduino IDE: Xüsusi lövhələr yaratmaq: 10 addım
Video: Lesson 02 Arduino IDE Software | Robojax Arduino Step By Step Course 2024, Noyabr
Anonim
Arduino IDE: Xüsusi lövhələr yaratmaq
Arduino IDE: Xüsusi lövhələr yaratmaq
Arduino IDE: Xüsusi lövhələr yaratmaq
Arduino IDE: Xüsusi lövhələr yaratmaq
Arduino IDE: Xüsusi lövhələr yaratmaq
Arduino IDE: Xüsusi lövhələr yaratmaq

Son altı ay ərzində Robotics Masters tərəfindən hazırlanmış Robo HAT MM1 lövhəsinə müxtəlif kitabxanaları köçürmək üçün çox vaxt sərf etdim. Bu, bu kitabxanalar haqqında, pərdə arxasında necə işlədikləri və ən başlıcası - gələcəkdə yeni lövhələr əlavə etmək üçün nə etməli olduqları haqqında çox şey kəşf etməyə səbəb oldu.

Bu, lövhələri üçün kitabxana bağlamaq istəyən digərlərinə kömək etmək üçün edəcəyim bir sıra yazılardır. Məlumat mənbələrinin çoxu qeyri -müəyyən ola bilər və ya kənar adamlar tərəfindən başa düşmək çətin ola bilər. Hər kəs üçün uğurlu bir liman əldə etməyin yollarını izah etməyi və izah etməyi ümid edirəm.

Bu gün Arduino Platformasına baxacağıq. Dünyada 700.000 -dən çox fərqli lövhə variantına malikdir və təhsil, sənaye və istehsalçılar üçün ən populyar elektronika platformalarından biridir.

Bir çox Google Axtarışından sonra bunun necə ediləcəyi ilə bağlı çox məhdud məlumat mənbələri tapa bildim. Bunu necə etdiyimi ətraflı yazacağımı düşündüm.

İşdə!

Addım 1: Başlamazdan əvvəl

Bir proqram kitabxanası və ya proqram təminatını taxtanıza köçürməyə başlamazdan əvvəl, istifadə etdiyiniz texnologiya haqqında bir neçə əsas məqamı bilməli və aşağıdakı suallara cavab verə bilməlisiniz.

  1. Hansı prosessordan istifadə edirsiniz?
  2. Hansı memarlıqdan istifadə edir?
  3. Bu mikroprosessor üçün məlumat cədvəlinə girişim varmı?
  4. Bazarda eyni mikroprosessordan istifadə edən oxşar bir lövhə varmı?

Bunlar çox vacibdir. İnkişaf prosesinə necə yanaşdığınızın bir çox cəhətlərinə təsir edəcək.

Arduino lövhələri ümumiyyətlə məhdud sayda prosessor növlərindən və memarlıqlarından istifadə edir. Ən çox yayılmış, AVR arxitekturasından istifadə edən ATMEGA aralığıdır (Arduino Uno). SAMD prosessorlarından (ARM) və digər daha güclü prosessorlardan istifadə etməklə daha çox yaygınlaşan yeni Arduinos nəsilləri var. Buna görə hansını istifadə etdiyinizi yoxlamaq vacibdir.

Mikroprosessorun məlumat cədvəli, firmware tərtib edərkən lövhənin gözlənildiyi kimi cavab verməsini təmin etmək üçün tamamilə vacibdir. Onsuz, düzgün pin çıxış funksiyalarını təyin edə və ya seriyalı portları konfiqurasiya edə bilməyəcəksiniz.

İstifadə etdiyiniz prosessor haqqında lazım olan bütün məlumatları əldə etdikdən sonra, proqrama baxmağa və onu xüsusi lövhənizdə işləmək üçün dəyişdirməyə başlaya bilərsiniz.

Addım 2: Baxış

Hər hansı bir layihənin ən çətin hissəsi yaxşı bir başlanğıc nöqtəsi tapmaqdır. Bu fərqli deyil. Arduino üçün xüsusi lövhələrin necə yaradılacağına dair kifayət qədər detallı yaxşı dərsliklər tapmaqda çətinlik çəkdim. Əksər dərslər sizə 'xüsusi lövhə əlavə etməyi' göstərir, ancaq 'xüsusi lövhə yaratmağı' göstərmir. İşdə olanların qısa bir xülasəsi.

  1. Mövcud İdarə Heyətinin Təriflərini və Nüsxəsini Yükləyin
  2. Definition Files Güncəlləşdirilməsi (variant.h, varient.cpp)
  3. Board Girişini yaradın (board.txt)
  4. Board versiyasını yeniləyin (platform.txt)
  5. Quraşdırmaya Hazırlaşırıq (json)
  6. Arduino IDE -də quraşdırma lövhəsi

Hər bir addım aşağıda ətraflı izah ediləcəkdir. Arduino IDE arxasında hər şeyin necə işlədiyini aydınlaşdırmaq üçün hər bir faylın bir -biri ilə necə qarşılıqlı əlaqədə olacağı ilə bağlı geniş müzakirə aparılacaq.

Bu dərs üçün sizə SAMD prosessorları üçün xüsusi bir lövhənin necə yaradılacağını göstərəcəyəm. Daha dəqiq desək, daşıdığım Robo HAT MM1 lövhəsində istifadə olunan mikroprosessor olan SAMD21G18A.

Arduino IDE 1.8 və ya daha sonra yüklənmiş olduğunuzu da düşünürəm. Yazılarkən Arduino 1.8.9 istifadə etdim.

Addım 3: Mövcud lövhələri yükləyin

Mövcud lövhələr endirilir
Mövcud lövhələr endirilir
Mövcud lövhələr endirilir
Mövcud lövhələr endirilir
Mövcud lövhələr endirilir
Mövcud lövhələr endirilir

İlk addım, lövhənizlə uyğun olan ən yaxın variant Arduino lövhəsini yükləməkdir. SAMD lövhələri üçün bu Arduino Zero.

Arduino IDE 1.6 -dan bəri, ətraf mühitə yeni lövhələr yükləmək üsulu, proqram təminatçılarının təqdim etdiyi xüsusi JSON fayllarını əlavə etmək və sonra "Lövhələr Meneceri" vasitəsi ilə xüsusi lövhələri quraşdırmaqdır. Arduino IDE -nin əvvəlki versiyaları bu gün müzakirə etməyəcəyimiz fərqli bir üsuldan istifadə etdi. Daha sonra bu təlimatda öz JSON faylımızı yaradacağıq, lakin əvvəlcə bu metoddan istifadə edərək Arduino Zero lövhəsini əlavə etməliyik.

Şanslıyıq ki, yükləmək istədiyimiz lövhənin JSON faylına ehtiyacı yoxdur, çünki JSON faylı Arduino IDE ilə əvvəlcədən paketlənmişdir - ona görə də lövhəni “Boards Manager” dən quraşdırmalıyıq.

Bunu etmək üçün "Alətlər" ə gedin və "İdarə Heyəti" menyusunu genişləndirin. "Board" menyusunun yuxarısında "Board Board Manager" olacaq. Lövhələr Menecerini açmaq üçün bu menyu seçimini vurun.

(Şəkillərə baxın)

Lövhələr Meneceri açıldıqda, Arduino IDE -də saxladığı bütün JSON sənədlərinə baxacaq və sonra parametrləri fayldan endirəcəkdir. Quraşdıra biləcəyiniz mövcud Arduino lövhələrinin uzun bir siyahısını görməlisiniz.

(Şəkillərə baxın)

Bu dərs üçün yalnız "Arduino SAMD Kartları (32 bitlik ARM Cortex-M0+)" lövhəsi ilə maraqlanırıq, ancaq bu anda ehtiyacınız olan lövhəni kənara qoyub quraşdıra bilərsiniz. Zəhmət olmasa "Arduino SAMD Kartları (32 bitlik ARM Cortex-M0+)" lövhəsini axtarın və quraşdırın. Bu, siyahıdakı mətni tıklayaraq, mətni tıkladıqdan sonra görünəcək sağ tərəfdəki "Quraşdır" düyməsini basmaqla edilə bilər. Quraşdırılması bir neçə dəqiqə çəkəcək.

Yeni lövhələrin quraşdırılması haqqında daha ətraflı məlumat üçün: Adafruit -də Feature M0 lövhələrini necə quraşdıracaqlarını izah edən əla bir dərs var.

Lövhə faylları quraşdırıldıqdan sonra, onları xüsusi lövhəniz üçün dəyişdirmək üçün kopyalaya bilərik.

Addım 4: Board Fayllarını Tapın və Kopyalayın

Kart Fayllarını Tapmaq və Kopyalamaq
Kart Fayllarını Tapmaq və Kopyalamaq
Board Fayllarını Tapmaq və Kopyalamaq
Board Fayllarını Tapmaq və Kopyalamaq
Kart Fayllarını Tapmaq və Kopyalamaq
Kart Fayllarını Tapmaq və Kopyalamaq

Windows üçün Board Faylları yerləşir (istifadəçi adınızı istifadəçi adınıza dəyişdirməyi unutmayın):

C: / İstifadəçilər / istifadəçi adı / AppData / Local / Arduino15 / paketləri

Bu qovluqda, dəyişdirmək üçün kopyalamaq lazım olan fayllara çatmaq üçün bir az daha dərinə getməlisiniz. Bu dərs üçün gedəcəyik və quraşdırılacaq Arduino Zero board fayllarını alacağıq (istifadəçi adını istifadəçi adınıza dəyişdirməyi unutmayın):

C: / İstifadəçilər / istifadəçi adı / AppData / Local / Arduino15 / paketlər / arduino / hardware / samd

Bu qovluqda yerləşən versiya nömrəli qovluğu Sənədlər qovluğunuzdakı və ya seçdiyiniz qovluqdakı yeni qovluğa kopyalayın. Bu təlimatın məqsədləri üçün onları Sənədlər daxilində 'xüsusi lövhələr' adlı yeni bir qovluğa yerləşdirəcəyəm.

Qovluq bir çox qovluq və qovluqdan ibarətdir. İstifadə edəcəyimizlər ekran görüntüsündəki cədvəldə qeyd edilmişdir.

Addım 5: Variant yaratmaq

Variant yaratmaq
Variant yaratmaq
Variant yaratmaq
Variant yaratmaq
Variant yaratmaq
Variant yaratmaq
Variant yaratmaq
Variant yaratmaq

İndi xüsusi bir lövhə girişi yaratmağa hazırıq. Bu dərs üçün Robo HAT MM1 -dən nümunə olaraq istifadə edəcəyəm. Daha əvvəl qeyd edildiyi kimi, Arduino Zero quruluşuna ən yaxın olan SAMD əsaslı bir lövhədir.

Variantlar qovluğuna girərək oradakı arduino_zero qovluğunu kopyalayaraq başlayacağıq. Yeni taxta variantını 'robohatmm1' adlandıracağıq. İstədiyinizə zəng edə bilərsiniz.

(Şəkilə baxın)

Robohatmm1 qovluğunun içərisində redaktəyə başlamağımız lazım olan iki pin olacaq: variant.cpp və variant.h. İkisini də açın.

İşləmək mənim üçün bir az vaxt apardı, buna görə də vaxtınızı qurtarmaq üçün burada izah edəcəyəm. Variant.cpp faylı, variant.h ərzində istinad edilən çox böyük pinlər ehtiva edir. Variant.h -dəki bütün pin istinadları, variant.cpp massivindəki müəyyən bir mövqedəki pin konfiqurasiyasına istinaddır.

(İki fayllı ekran görüntüsünə baxın)

Beləliklə, düzəlişlərinizin əksəriyyəti hər iki faylda baş verəcək, ancaq əmin olmalısınız ki, variants.cpp -də sancaqlar sırasını dəyişdirsəniz - başlıq sənədindəki (variants.h) istinadları dəyişdirməlisiniz. Robo HAT MM1 üçün yalnız bəzi pinləri və funksiyaları dəyişdirməyim lazım idi. Bu variantlarda edildi.h. SAMD21 12 PWM kanalını idarə edə bildiyindən bəzi yeni PWM pinləri əlavə etdim. Ayrıca SPI, UART və I2C kimi düzgün funksiyalara Servos, Signals (ADC/Digital əvəzinə) və xüsusi xəritələşdirmə üçün bəzi adlar əlavə etdim.

Diqqət etməyiniz vacib olan şey, variants.h -də göstərilən funksiyalar üçün istifadə etdiyiniz sıra istinadlarının varaints.cpp -dəki pinlə eyni olub olmadığını yoxlamaqdır - indi baxacağıq.

Variants.cpp çox güclü və əhəmiyyətli bir sənəddir. Sancaqlar aparat parametrlərinə uyğun olaraq qurulması üçün bütün çətin işləri görür. Bunu izah etməyin ən asan yolu, hər hissənin bir nümunəsi və izahıdır.

(Ekran Görünüşündə Cədvələ baxın)

Misal (variants.cpp -dən çıxarış)

{PORTA, 22, PIO_SERCOM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE}, // SDA

Bu, Robo HAT MM1 üçün variants.cpp dizisindəki ilk pindir. Məlumat cədvəlindəki cədvəl bir görüntü olaraq təqdim edilmişdir (boz masa).

(Şəkillərə baxın)

Bu xüsusi pin I2C Məlumat Pin Fonksiyonu üçün istifadə olunur. Masaya nəzər saldıqda, bu pinin I2C SDA pin kimi istifadə edilə biləcəyini görə bilirik (yaxşı başlanğıc!). Pin 22 nömrəli PORTA üçün qısa olan "PA22" adlanır. Dərhal bu pin üçün PORT və pin nömrəsini təyin edə bilərik.

Etməli olduğumuz növbəti şey, pimi serial ünsiyyət portu olaraq təyin etməkdir. Pin, SERCOM 3 (D) və SERCOM5 (PIO_SERCOM_ALT) istifadə edərək D funksiyasından istifadə edərək C (PIO_SERCOM) funksiyası ilə mövcud olan serial ünsiyyətə malikdir. Robo HAT MM1 məqsədləri üçün I2C ünsiyyəti üçün SERCOM3 istifadə edirik. Bu C funksiyasındadır; aka Vario.cpp üçün PIO_SERCOM.

Bu pimi yalnız I2C SDA olaraq istifadə etməyi planlaşdırdığımız üçün digər funksiyalardan heç birini təyin etməyə ehtiyac yoxdur. Hamısı əvvəlki cədvəldən "Xeyr" və ya "Yox" olaraq təyin edilə bilər. Ancaq digər funksiyaları istifadə etmək istəsək - məlumat cədvəlinə keçib hamısını düzgün boşluqlara qoya bilərik. Hamısı məlumat cədvəlindədir.

Variant faylların dəyişdirilməsi bir az vaxt ala bilər. Ehtiyatlı olun və həmişə üç dəfə yoxlayın.

Addım 6: Bir lövhə tərifi yaradın

Bir İdarə heyəti tərifi yaradın
Bir İdarə heyəti tərifi yaradın

Variant fayllarınızı hazırladıqdan sonra buradan düz irəli getməlidir. İşlərin çoxu faylları kopyalamaq, yapışdırmaq və ya dəyişdirmək və yeniləmək olacaq.

Board.txt ilə başlayır.

(Şəkilə baxın)

Artıq mövcud olan bir lövhə tərifini kopyalayıb yapışdırmaq istəyəcəksiniz. Arduino Zero -nu bir daha tövsiyə edərdim.

Sadəlik üçün yalnız lövhənin adını (ilk sətir), usb_product, usb_manufacturer və variantı (robohat) dəyişdirin. Digər arqumentləri daha sonra ehtiyaclarınıza uyğun olaraq düzəldə bilərsiniz - məsələn, lövhənizi müəyyən etmək üçün xüsusi bir yükləyici və ya fərqli USB VID/PID.

Lövhə variantı başlanğıcda yaradılan qovluğa verilən adla uyğun olmalıdır. Bu dərs üçün buna 'robohatmm1' adını verdim.

Lövhə adınıza uyğun olaraq hər sətrin ilk hissəsini dəyişdirmək də tövsiyə olunur. Ekran görüntüsündə 'robo_hat_mm1' olaraq dəyişdirildi. Lövhəniz üçün eyni formatda bir ad seçməlisiniz.

Daha sonra yuxarıda göstərilən əlavə dəyişikliklər etmək istəməsəniz, hamısı board.txt üçündür.

Addım 7: Board versiyasını yeniləyin

Board versiyasını yeniləyin
Board versiyasını yeniləyin

Platforms.txt -də adı xüsusi lövhənizin adına dəyişdirin. Versiya nömrəsini də dəyişdirin. Bunu nə üçün təyin etdiyinizi xatırlayın, daha sonra ehtiyacımız olacaq.

Addım 8: JSON Paket Faylını yaradın

JSON Paket Faylını yaradın
JSON Paket Faylını yaradın
JSON Paket Faylını yaradın
JSON Paket Faylını yaradın

Lövhənizi Arduino IDE -yə quraşdırmaq üçün idxal edəcəyiniz bir JSON faylı yaratmalısınız. JSON faylı, Arduino IDE -yə lövhəni quraşdırmaq üçün faylları haradan əldə edəcəyinizi, əlavə paketlərə ehtiyacınız olduğunu və bir neçə digər metadatanı bildirir.

Bu faylı yeni çalışdığımız qovluğun xaricində saxlamağınız çox vacibdir.

Faylın çox hissəsi kopyalana və aranıza yapışdırıla bilər. Yalnız "lövhələr" bölməsini və faylın yuxarısındakı digər meta məlumatları dəyişdirməlisiniz. Yenilənməli olan şeylər üçün ekran görüntüsünə baxın.

(Şəkilə baxın)

  • Qırmızı Bölmə: Bu, istifadəçilərin kömək tapmaq üçün istifadə edə biləcəyi metadatadır. Texniki əlaqəsi çox azdır.
  • Mavi Bölmə: Bütün bunlar vacibdir. Arduino IDE -də göstərirlər. Adı, Memarlığı və Versiyası hamısı paketi qurmağa çalışan hər kəsə göstəriləcək. Buradan platforms.txt -dən versiya nömrəsini qoymalısınız. İkinci mavi bölmə, paketə daxil olan lövhələrin siyahısıdır. Birdən çox lövhəyə sahib ola bilərsiniz.
  • Yaşıl Bölmə: Bu hissənin əlavə şərhə ehtiyacı var.

(Şəkillərdəki Cədvələ baxın)

Zip faylını yaratdıqdan sonra, zip faylının cəmi və fayl ölçüsünü əldə etdikdən sonra, zip faylını bir yerə yükləyə bilərsiniz. Bu URL -i 'url' sahəsinə daxil etməlisiniz. Adı və ya yuxarıdakı detallardan hər hansı biri səhv olarsa, xüsusi lövhəniz quraşdırıla bilməz.

Package_boardname_index.json faylınızı da internetdə ümumi bir yerə yükləməyinizə əmin olun. GitHub yaxşı bir seçimdir.

Robo HAT MM1 xüsusi lövhə faylını burada tapa bilərsiniz.

Addım 9: Son addım - Xüsusi lövhənizi quraşdırın

Son addım - Xüsusi lövhənizi quraşdırın!
Son addım - Xüsusi lövhənizi quraşdırın!
Son addım - Xüsusi lövhənizi quraşdırın!
Son addım - Xüsusi lövhənizi quraşdırın!

Hər şey yaxşı gedir, indi JSON faylınızı Arduino IDE -yə daxil edə və xüsusi lövhənizi quraşdıra bilərsiniz.

JSON faylını daxil etmək asandır! Arduino IDE -də - "Fayl"> "Tercihlər" ə gedin və paket_boardname_index.json ünvanınızı (URL) kopyalayın və Tercihlər menyusunun altındakı "Əlavə Kartlar Meneceri URLləri" bölməsinə yapışdırın.

(Şəkilə baxın)

Sonra OK vurun.

Unutmusunuzsa yeni lövhələr quraşdırmaq üçün yuxarıdakı təlimatları yerinə yetirin. Bu dəfə xüsusi lövhənizi axtarmağı unutmayın!

(Şəkilə baxın)

Yeni lövhələrin quraşdırılması haqqında daha ətraflı məlumat üçün: Adafruit -də Feature M0 lövhələrini necə quraşdıracaqlarını izah edən əla bir dərs var.

Addım 10: Nəticə

Nəticə
Nəticə
Nəticə
Nəticə

Xüsusi Arduino lövhələri yaratmaq əyləncəli oldu. Gələcəkdə sınaqdan keçirəcəyim çox şey var (əlavə seriya limanları əlavə etməklə), amma böyük bir öyrənmə təcrübəsi oldu!

Crowd Supply kampaniyasına da baxdığınızdan əmin olun. 11 İyun 2019 tarixində bitir.

www.crowdsupply.com/robotics-masters/robo-…

Ümid edirəm bu sizə kömək etdi və ya birlikdə oxumaqdan zövq aldınız!

Təşəkkürlər!

Tövsiyə: