Mundarija:

Arduino IDE: maxsus taxtalarni yaratish: 10 qadam
Arduino IDE: maxsus taxtalarni yaratish: 10 qadam

Video: Arduino IDE: maxsus taxtalarni yaratish: 10 qadam

Video: Arduino IDE: maxsus taxtalarni yaratish: 10 qadam
Video: SKR 1.4 - Основы с новой прошивкой Marlin 2.0.9.1 2024, Iyul
Anonim
Arduino IDE: maxsus taxtalar yaratish
Arduino IDE: maxsus taxtalar yaratish
Arduino IDE: maxsus taxtalar yaratish
Arduino IDE: maxsus taxtalar yaratish
Arduino IDE: maxsus taxtalar yaratish
Arduino IDE: maxsus taxtalar yaratish

O'tgan olti oy mobaynida men ko'p vaqtimni Robotics Masters tomonidan ishlab chiqilgan Robo HAT MM1 platasiga turli kutubxonalarni ko'chirishga sarfladim. Bu kutubxonalar haqida ko'p narsalarni kashf etishga olib keldi, ular parda ortida qanday ishlashini va eng muhimi - kelajakda yangi taxtalarni qo'shish uchun nima qilish kerakligini.

Bu men kutubxonalarni o'z taxtalari uchun joylashtirishni xohlaydigan boshqalarga yordam berish uchun qilmoqchi bo'lgan bir qator yozishmalar. Ko'p ma'lumot manbalari noaniq bo'lishi mumkin yoki ularni begonalar tushunishi qiyin. Umid qilamanki, "demystify" va hamma uchun muvaffaqiyatli portga qanday erishish mumkinligini tushuntiraman.

Bugun biz Arduino platformasini ko'rib chiqamiz. U butun dunyo bo'ylab 700000 dan ortiq turli xil taxta variantlariga ega va ta'lim, sanoat va ishlab chiqaruvchilar uchun eng mashhur elektronika platformalaridan biridir.

Buni qanday qilish kerakligi haqida juda cheklangan ma'lumot manbalarini ko'pgina Google qidiruvlaridan so'ng topa oldim. Men buni qanday qilganimni batafsil yozaman deb o'yladim.

Qani boshladik!

1 -qadam: boshlashdan oldin

Dastur kutubxonasini yoki dasturiy ta'minotni taxtangizga joylashtirishni boshlashdan oldin, siz foydalanayotgan texnologiya haqida bir nechta muhim fikrlarni bilishingiz va quyidagi savollarga javob bera olishingiz kerak.

  1. Qaysi protsessordan foydalanasiz?
  2. U qanday arxitekturadan foydalanadi?
  3. Ushbu mikroprotsessor uchun ma'lumotlar jadvaliga kira olamanmi?
  4. Bozorda xuddi shunday mikroprotsessordan foydalanadigan shunga o'xshash taxta bormi?

Bular juda muhim. Bu rivojlanish jarayoniga qanday yondashishingizning ko'p jihatlariga ta'sir qiladi.

Arduino platalari odatda cheklangan miqdordagi protsessor turlari va arxitekturasidan foydalanadi. Eng keng tarqalgani AVR arxitekturasidan foydalanadigan ATMEGA diapazoni (Arduino Uno). SAMD protsessorlari (ARM) va boshqa kuchli protsessorlar yordamida Arduinosning yangi avlodlari keng tarqalgan. Shuning uchun qaysi birini ishlatayotganingizni tekshirish juda muhimdir.

Mikroprosessor uchun ma'lumotlar jadvali, dasturiy ta'minotni kompilyatsiya qilishda, taxtaning kutilganidek javob berishini ta'minlash uchun juda muhimdir. Bu holda, siz to'g'ri chiqish chiqish funktsiyalarini o'rnatolmaysiz yoki ketma -ket portlarni sozlay olmaysiz.

Siz foydalanadigan protsessor haqida barcha kerakli ma'lumotlarga ega bo'lgandan so'ng, siz dasturiy ta'minotni ko'rib chiqishni boshlashingiz va uni maxsus taxtada ishlash uchun o'zgartirishingiz mumkin.

2 -qadam: umumiy nuqtai

Har qanday loyihaning eng qiyin qismi - yaxshi boshlanish nuqtasini topish. Bu boshqacha emas. Men Arduino uchun maxsus taxtalarni yaratish bo'yicha etarlicha tafsilotlarga ega yaxshi darsliklar topishga qiynaldim. Ko'pgina darsliklar sizga "maxsus taxtani qo'shish" ni ko'rsatadi, lekin qanday qilib "maxsus taxtani yaratish" ni ko'rsatmaydi. Bu erda nima bog'liqligi haqida qisqacha ma'lumot.

  1. Mavjud kengash ta'riflarini yuklab oling va nusxasini oling
  2. Ta'rif fayllarini yangilash (variant.h, varient.cpp)
  3. Kengash yozuvini yaratish (board.txt)
  4. Kengash versiyasini yangilang (platform.txt)
  5. O'rnatishga tayyorgarlik (json)
  6. Arduino IDE -ga o'rnatish taxtasi

Har bir qadam quyida batafsil tushuntiriladi. Shuningdek, Arduino IDE orqasida hamma narsa qanday ishlashini aniqlash uchun har bir fayl bir -biri bilan qanday aloqada bo'lishi haqida keng muhokama qilinadi.

Bu darslik uchun men sizga SAMD protsessorlari uchun maxsus taxtani qanday yaratishni ko'rsataman. Aniqrog'i, SAMD21G18A - bu men tashiyotgan Robo HAT MM1 taxtasida ishlatiladigan mikroprotsessor.

Menimcha, sizda allaqachon Arduino IDE 1.8 yoki undan keyingi versiyasi yuklangan. Men yozish paytida Arduino 1.8.9 dan foydalanganman.

3 -qadam: Mavjud taxtalarni yuklab olish

Mavjud taxtalarni yuklab olish
Mavjud taxtalarni yuklab olish
Mavjud taxtalarni yuklab olish
Mavjud taxtalarni yuklab olish
Mavjud taxtalarni yuklab olish
Mavjud taxtalarni yuklab olish

Birinchi qadam, sizning taxtangizga mos keladigan eng yaqin Arduino kartasini yuklab olish. SAMD kartalari uchun bu Arduino Zero.

Arduino IDE 1.6 -dan boshlab, atrof -muhitga yangi taxtalarni yuklash usuli - bu dasturiy ta'minot ishlab chiqaruvchilari taqdim etadigan maxsus JSON fayllarini qo'shish va keyin "Boards Manager" yordamida maxsus taxtalarni o'rnatish. Arduino IDE -ning oldingi versiyalarida biz muhokama qilmaydigan boshqa usul ishlatilgan. Biz bu darslikda keyinroq o'z JSON faylimizni yaratamiz, lekin avval shu usuldan foydalanib Arduino Zero taxtasini qo'shishimiz kerak.

Biz omadli bo'ldikki, biz yuklamoqchi bo'lgan taxtaga JSON fayli kerak emas, chunki JSON fayli Arduino IDE bilan oldindan yig'ilgan - shuning uchun biz taxtani "Boards Manager" dan o'rnatishimiz kerak.

Buning uchun "Asboblar" bo'limiga o'ting va "Kengash" menyusini kengaytiring. "Kengash" menyusining yuqori qismida "Kengash menejeri" bo'ladi. Kengash menejerini ochish uchun ushbu menyu variantini bosing.

(Rasmlarga qarang)

Kengash menejeri ochilganda, u Arduino IDE -da saqlangan barcha JSON fayllarini ko'rib chiqadi va keyin sozlamalarni fayldan yuklab oladi. Siz o'rnatishingiz mumkin bo'lgan Arduino taxtalarining uzun ro'yxatini ko'rishingiz kerak.

(Rasmlarga qarang)

Bizni faqat ushbu qo'llanma uchun "Arduino SAMD kartalari (32 bitli ARM Cortex-M0+)" taxtasi qiziqtiradi, lekin siz shu vaqtda kerakli taxtani chetga surib o'rnatishingiz mumkin. Iltimos, "Arduino SAMD kartalari (32 bitli ARM Cortex-M0+)" kartasini qidiring va o'rnating. Buni ro'yxatdagi matnni bosish va o'ng tomonda "O'rnatish" tugmachasini bosish orqali amalga oshirish mumkin. O'rnatish uchun bir necha daqiqa kerak bo'ladi.

Qo'shimcha ma'lumot olish uchun yangi taxtalarni o'rnatish: Adafruit -da bu erda M10 xususiyatlarini qanday o'rnatishni tushuntirib beradigan ajoyib qo'llanma bor.

Endi taxta fayllari o'rnatildi, biz ularni nusxalashimiz mumkin, shunda ular sizning shaxsiy taxtangiz uchun o'zgartirilishi mumkin.

4 -qadam: Kengash fayllarini topish va nusxalash

Kengash fayllarini topish va nusxalash
Kengash fayllarini topish va nusxalash
Kengash fayllarini topish va nusxalash
Kengash fayllarini topish va nusxalash
Kengash fayllarini topish va nusxalash
Kengash fayllarini topish va nusxalash

Windows uchun taxta fayllari joylashgan (foydalanuvchi nomini foydalanuvchi nomiga o'zgartirishni unutmang):

C: / Foydalanuvchilar / foydalanuvchi nomi / AppData / Local / Arduino15 / paketlar

Ushbu papkada o'zgartirish uchun nusxa ko'chirish kerak bo'lgan fayllarga o'tish uchun biroz chuqurroq borish kerak. Ushbu qo'llanma uchun biz boramiz va o'rnatiladigan Arduino Zero taxta fayllarini olamiz (foydalanuvchi nomini foydalanuvchi nomingizga o'zgartirishni unutmang):

C: / Users / username / AppData / Local / Arduino15 / packages / arduino / hardware / samd

Ushbu katalogda joylashgan versiya raqamli papkani Hujjatlar papkasidagi yangi papkaga yoki siz tanlagan papkaga nusxalash. Ushbu o'quv qo'llanma uchun men ularni Hujjatlar ichidagi "maxsus taxtalar" deb nomlangan yangi papkaga joylashtiraman.

Jildda bir qancha papkalar va kataloglar mavjud. Biz ishlatadigan narsalar skrinshotdagi jadvalda ko'rsatilgan.

5 -qadam: Variant yaratish

Variant yaratish
Variant yaratish
Variant yaratish
Variant yaratish
Variant yaratish
Variant yaratish
Variant yaratish
Variant yaratish

Endi biz maxsus taxta yozuvini yaratishga tayyormiz. Ushbu qo'llanmada men Robo HAT MM1 ni misol sifatida ishlataman. Yuqorida aytib o'tilganidek, bu Arduino Zero tuzilishiga eng yaqin bo'lgan SAMD asosidagi taxta.

Biz variantlar papkasiga kirib, u erda joylashgan arduino_zero papkasini nusxalashdan boshlaymiz. Biz taxtaning yangi variantini "robohatmm1" deb o'zgartiramiz. Siz xohlagan narsaga qo'ng'iroq qilishingiz mumkin.

(Rasmga qarang)

Robohatmm1 papkasida biz tahrirlashni boshlashimiz kerak bo'lgan ikkita pin bo'ladi: variant.cpp va variant.h. Ikkalasini ham oching.

Bu men uchun biroz vaqt talab qildi, shuning uchun men sizga vaqtni tejash uchun shu erda tushuntirib beraman. Variant.cpp fayli juda ko'p sonli pinlarni o'z ichiga oladi. Variant.h -dagi barcha pinli havolalar, variant.cpp qatorining ma'lum bir pozitsiyasidagi pin konfiguratsiyasiga havola.

(Ikki faylli skrinshotga qarang)

Shunday qilib, sizning ko'p tahrirlaringiz ushbu fayllarning ikkalasida ham bo'ladi, lekin agar siz variants.cpp -dagi pinlar tartibini o'zgartirsangiz, sarlavha faylidagi (variants.h) havolalarni o'zgartirishingizga ishonch hosil qilishingiz kerak. Robo HAT MM1 uchun men faqat ba'zi pinlar va funktsiyalarni o'zgartirishim kerak edi. Bu variantlarda amalga oshirilgan.h. Men yangi PWM pinlarini qo'shdim, chunki SAMD21 12 PWM kanalini boshqarishga qodir. Men, shuningdek, SPV, UART va I2C kabi to'g'ri funktsiyalarga servo, signal (ADC/raqamli o'rniga) va maxsus xaritalash uchun ba'zi nomlarni qo'shdim.

Shuni ta'kidlash kerakki, variants.h -da ko'rsatilgan funktsiyalar uchun foydalaniladigan qator mos yozuvlar varaints.cpp -dagi pin bilan mos kelishini ikki marta tekshirish - biz hozir ko'rib chiqamiz.

Variants.cpp juda kuchli va muhim fayl. Pimlarni apparat parametrlariga mos ravishda o'rnatish bo'yicha barcha mashaqqatli ishlarni bajaradi. Buni tushuntirishning eng oson yo'li - har bir qismga misol va tushuntirish.

(Skrinshotdagi jadvalga qarang)

Misol (variants.cpp dan ko'chirma)

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

Bu Robo HAT MM1 uchun variants.cpp qatoridagi birinchi pin. Ma'lumotlar jadvalidagi jadval tasvir sifatida berilgan (kulrang jadval).

(Rasmlarga qarang)

Ushbu maxsus pin I2C ma'lumotlar pin funktsiyasi uchun ishlatiladi. Jadvalga nazar tashlasak, biz bu pinni I2C SDA pin sifatida ishlatish mumkinligini ko'rishimiz mumkin (yaxshi boshlanish!). PIN -kod "PA22" deb nomlangan, bu 22 -pinli PORTA uchun qisqacha. Biz darhol bu pin uchun PORT va pin raqamini o'rnatishimiz mumkin.

Biz qilishimiz kerak bo'lgan keyingi narsa - pinni ketma -ket aloqa porti sifatida o'rnatish. PIN -kod SERCOM 3 va D orqali SERCOM5 (PIO_SERCOM_ALT) yordamida C (PIO_SERCOM) funktsiyasi orqali ketma -ket aloqaga ega. Robo HAT MM1 maqsadlarida biz I2C aloqasi uchun SERCOM3 dan foydalanamiz. Bu C funktsiyasida; aka Variants.cpp uchun PIO_SERCOM.

Biz bu pinni faqat I2C SDA sifatida ishlatishni rejalashtirganimiz uchun, boshqa funktsiyalarni o'rnatishga hojat yo'q. Ularning barchasini oldingi jadvaldagi "Yo'q" yoki "Yo'q" variantlari sifatida belgilash mumkin. Ammo, agar biz boshqa funktsiyalarni ishlatmoqchi bo'lsak - biz ma'lumotlar jadvalini ko'rib chiqib, hammasini to'g'ri bo'shliqlarga joylashtirishimiz mumkin edi. Bularning barchasi ma'lumotlar jadvalida.

Variant fayllarini o'zgartirish biroz vaqt talab qilishi mumkin. Ehtiyot bo'ling va har doim uch marta tekshiring.

6 -qadam: Kengash ta'rifini yarating

Kengash ta'rifini yarating
Kengash ta'rifini yarating

Variant fayllaringiz tayyor bo'lgach, u bu erdan to'g'ridan -to'g'ri oldinga siljishi kerak. Ishlarning aksariyati fayllarni nusxalash, joylashtirish yoki o'zgartirish va yangilash bo'ladi.

Board.txt bilan boshlanadi.

(Rasmga qarang)

Siz allaqachon mavjud bo'lgan taxtaning ta'rifini nusxalash va joylashtirishni xohlaysiz. Men yana Arduino Zero ni tavsiya qilaman.

Oddiylik uchun faqat taxtaning nomini o'zgartiring (birinchi qator), usb_product, usb_manufacturer va variant (robohat). Boshqa argumentlarni keyinchalik ehtiyojlaringizga moslashtirishingiz mumkin - masalan, yuklash moslamasi yoki kartani aniqlash uchun turli xil USB VID/PID.

Kengash varianti boshida yaratilgan papkaga berilgan nomga mos kelishi kerak. Ushbu darslik uchun men uni "robohatmm1" deb nomladim.

Shuningdek, har bir satrning birinchi qismini taxtangiz nomiga mos ravishda o'zgartirish tavsiya etiladi. Skrinshotda u "robo_hat_mm1" ga o'zgartirildi. Siz bir xil formatdagi taxtaga nom tanlashingiz kerak.

Agar siz yuqorida aytib o'tilgan qo'shimcha o'zgartirishlarni xohlamasangiz, bu taxtalar.txt uchun.

7 -qadam: Kengash versiyasini yangilang

Kengash versiyasini yangilang
Kengash versiyasini yangilang

Platforms.txt -da nomni maxsus taxtangiz nomiga o'zgartiring. Shuningdek, versiya raqamini o'zgartiring. Buni nimaga o'rnatganingizni eslang, keyinroq bizga kerak bo'ladi.

8 -qadam: JSON paketli faylini yarating

JSON paket faylini yarating
JSON paket faylini yarating
JSON paket faylini yarating
JSON paket faylini yarating

Kengashni Arduino IDE -ga o'rnatish uchun siz import qiladigan JSON faylini yaratishingiz kerak bo'ladi. JSON fayli Arduino IDE -ga taxtani o'rnatish uchun fayllarni qaerdan olish kerakligi, qo'shimcha paketlar va boshqa bir qancha metadatalar kerakligini aytadi.

Bu faylni biz hozir ishlayotgan papkadan tashqarida saqlashingiz juda muhim.

Faylning ko'p qismini nusxalash va joylashtirish mumkin. Siz faqat "taxtalar" bo'limini va faylning yuqori qismidagi boshqa metadatani o'zgartirishingiz kerak bo'ladi. Nimani yangilash kerakligini skrinshotga qarang.

(Rasmga qarang)

  • Qizil bo'lim: Bu foydalanuvchilar yordam topishda foydalanishi mumkin bo'lgan metadata. Bu juda kam texnik ahamiyatga ega.
  • Moviy bo'lim: Bularning barchasi muhim. Ular Arduino IDE -da ko'rsatiladi. Ism, arxitektura va versiya paketni o'rnatmoqchi bo'lgan har bir kishiga ko'rsatiladi. Bu erda platforma.txt dan versiya raqamini qo'yish kerak. Ikkinchi ko'k bo'lim - bu paketga kiritilgan taxtalar ro'yxati. Sizda bir nechta taxtalar bo'lishi mumkin.
  • Yashil bo'lim: Bu bo'lim qo'shimcha tushuntirishga muhtoj.

(Rasmlar jadvaliga qarang)

Zip faylini yaratganingizdan so'ng, zip faylining nazorat summasini va fayl hajmini bilib olsangiz, endi siz zip faylini manzilga yuklay olasiz. Siz URL manzilini "url" maydoniga kiritishingiz kerak bo'ladi. Agar nom yoki yuqoridagi tafsilotlar noto'g'ri bo'lsa, sizning shaxsiy taxtangiz o'rnatilmaydi.

Paket_boardname_index.json faylini Internetdagi ochiq joyga yuklaganingizga ishonch hosil qiling. GitHub yaxshi variant.

Robo HAT MM1 maxsus taxtali faylini bu erda topishingiz mumkin.

9 -qadam: Oxirgi qadam - shaxsiy taxtangizni o'rnating

Oxirgi qadam - shaxsiy taxtangizni o'rnating!
Oxirgi qadam - shaxsiy taxtangizni o'rnating!
Oxirgi qadam - shaxsiy taxtangizni o'rnating!
Oxirgi qadam - shaxsiy taxtangizni o'rnating!

Hammasi yaxshi, endi siz JSON faylingizni Arduino IDE -ga qo'shishingiz va maxsus taxtangizni o'rnatishingiz kerak.

JSON faylini qo'shish oson! Arduino IDE -da - "Fayl"> "Tanlovlar" bo'limiga o'ting va paket_boardname_index.json manzilingizni (URL) nusxa ko'chiring va Preferences menyusining pastki qismidagi "Qo'shimcha taxtalar menejeri URL -lari" bo'limiga joylashtiring.

(Rasmga qarang)

Keyin OK ni bosing.

Agar siz unutgan bo'lsangiz, yangi taxtalarni o'rnatish uchun yuqoridagi ko'rsatmalarni bajaring. Bu safar maxsus taxtani qidirishni unutmang!

(Rasmga qarang)

Qo'shimcha ma'lumot olish uchun yangi taxtalarni o'rnatish: Adafruit -da bu erda M10 xususiyatlarini qanday o'rnatishni tushuntirib beradigan ajoyib qo'llanma bor.

10 -qadam: Xulosa

Xulosa
Xulosa
Xulosa
Xulosa

Maxsus Arduino taxtalarini yaratish qiziqarli bo'ldi. Kelajakda menda tajriba qilish uchun hali ko'p narsa bor (qo'shimcha ketma -ket portlarni qo'shish), lekin bu katta o'rganish tajribasi bo'ldi!

"Olomon ta'minoti" kampaniyasini ham albatta tekshiring. U 2019 yil 11 -iyunda tugaydi.

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

Umid qilamanki, bu sizga yordam berdi yoki siz birga o'qishdan zavq oldingiz!

Rahmat!

Tavsiya: