Мазмуну:

Arduino IDE: Ыңгайлаштырылган такталарды түзүү: 10 кадам
Arduino IDE: Ыңгайлаштырылган такталарды түзүү: 10 кадам

Video: Arduino IDE: Ыңгайлаштырылган такталарды түзүү: 10 кадам

Video: Arduino IDE: Ыңгайлаштырылган такталарды түзүү: 10 кадам
Video: Control 32 Servo over Wi-Fi using ESP32 and PCA9685 via desktop or mobile phone V5 2024, Июль
Anonim
Arduino IDE: Ыңгайлаштырылган такталарды түзүү
Arduino IDE: Ыңгайлаштырылган такталарды түзүү
Arduino IDE: Ыңгайлаштырылган такталарды түзүү
Arduino IDE: Ыңгайлаштырылган такталарды түзүү
Arduino IDE: Ыңгайлаштырылган такталарды түзүү
Arduino IDE: Ыңгайлаштырылган такталарды түзүү

Акыркы алты айдын ичинде мен Robotics Masters тарабынан иштелип чыккан Robo HAT MM1 тактасына ар кандай китепканаларды ташуу үчүн көп убакыт короттум. Бул китепканалар жөнүндө көп нерселерди, көшөгө артында кантип иштээрин жана эң негизгиси - келечекте жаңы такталарды кошуу үчүн эмне кылыш керектигин ачып берди.

Бул китепканаларды тактайларга портко салууну каалаган башкаларга жардам берүү үчүн жасай турган жазуулардын сериясындагы биринчи. Маалымат булактарынын көбү сырттагылар үчүн түшүнүксүз же кыйын болушу мүмкүн. Мен "демистизациялоону" жана баарына ийгиликтүү портко кантип жетүү керектигин түшүндүрүүнү үмүттөнөм.

Бүгүн биз Arduino платформасын карайбыз. Бул дүйнө жүзү боюнча 700 000ден ашуун тактай варианттарына ээ жана билим берүү, өнөр жай жана өндүрүүчүлөр үчүн эң популярдуу электроника платформаларынын бири.

Мен муну кантип кылуу керектиги жөнүндө өтө чектелген маалымат булактарын көптөгөн Google Издөөлөрүнөн кийин гана таба алдым. Ошентип, мен муну кантип кылганымды майда -чүйдөсүнө чейин жазам деп ойлодум.

Мына!

1 -кадам: Баштоодон мурун

Программалык камсыздоо китепканасын же программалык камсыздоону тактаңызга жүктөөнү баштоодон мурун, сиз колдонгон технология жөнүндө бир нече негизги пункттарды билишиңиз жана төмөндөгү суроолорго жооп бере алышыңыз керек.

  1. Кандай процессорду колдоносуз?
  2. Ал кандай архитектураны колдонот?
  3. Бул микропроцессордун маалымат барагына кирүү мүмкүнчүлүгүм барбы?
  4. Ошол эле микропроцессорду колдонгон окшош такта барбы?

Булар абдан маанилүү. Бул өнүгүү процессине кандайча мамиле кылганыңыздын көптөгөн аспектилерине таасирин тийгизет.

Arduino такталары адатта процессорлордун жана архитектуранын чектелген санын колдонушат. Эң кеңири тараганы AVR архитектурасын колдонгон ATMEGA диапазону (Arduino Uno). SAMD процессорлорун (ARM) жана башка күчтүү процессорлорду колдонуу менен Arduinosдун жаңы муундары кеңири таралган. Андыктан кайсынысын колдонуп жатканыңызды текшерүү маанилүү.

Микропроцессордун маалыматтык баракчасы, сиз микрофонду түзгөндө такта күтүлгөндөй жооп бериши үчүн абдан маанилүү. Ансыз, сиз туура пин чыгаруу функцияларын орното албайсыз же сериялык портторду конфигурациялай албайсыз.

Сиз колдонгон процессор жөнүндө керектүү бардык маалыматка ээ болгондон кийин, программалык камсыздоону карап, аны өзүңүздүн тактаңыз үчүн иштей баштасаңыз болот.

2 -кадам: Обзор

Ар бир долбоордун эң оор бөлүгү - жакшы башталышын табуу. Бул башкача эмес. Мен Arduino үчүн ыңгайлаштырылган такталарды түзүү боюнча жетиштүү деталдары бар жакшы окуу куралдарын табуу үчүн күрөштүм. Көпчүлүк окуу куралдары сизге кантип "ыңгайлаштырылган тактаны кошууну" көрсөтөт, бирок кантип "ыңгайлаштырылган тактаны түзүүнү" көрсөтпөйт. Бул жерде тартылган нерселердин кыскача мазмуну.

  1. Учурдагы Башкармалыктын аныктамаларын жана көчүрмөсүн жүктөп алыңыз
  2. Аныктоо файлдарын жаңыртуу (variant.h, varient.cpp)
  3. Board жазуусун түзүү (board.txt)
  4. Тактасынын версиясын жаңыртуу (platform.txt)
  5. Орнотууга даярдануу (json)
  6. Arduino IDEде орнотуу тактасы

Ар бир кадам төмөндө деталдуу түрдө түшүндүрүлөт. Ар бир файл Arduino IDEнин артында кандай иштээрин түшүнүүгө жардам берүү үчүн бири -бири менен кандайча аракеттенери жөнүндө кеңири талкуу болот.

Бул окуу куралы үчүн, мен сизге SAMD процессорлору үчүн ыңгайлаштырылган тактаны кантип түзүүнү көрсөтөм. Тагыраак айтканда, SAMD21G18A - бул мен ташып жүргөн Robo HAT MM1 тактасында колдонулган микропроцессор.

Ошондой эле сизде Arduino IDE 1.8 же кийинчерээк жүктөлүп алынган деп ойлойм. Мен жазуу учурунда Arduino 1.8.9 колдондум.

3 -кадам: Учурдагы такталарды жүктөө

Учурдагы такталарды жүктөө
Учурдагы такталарды жүктөө
Учурдагы такталарды жүктөө
Учурдагы такталарды жүктөө
Учурдагы такталарды жүктөө
Учурдагы такталарды жүктөө

Биринчи кадам - тактаңызга дал келген Arduino тактасынын эң жакын вариантын жүктөп алуу. SAMD такталары үчүн бул Arduino Zero.

Arduino IDE 1.6дан бери, айлана -чөйрөгө жаңы такталарды жүктөө ыкмасы, программалык камсыздоону иштеп чыгуучулар берген атайын JSON файлдарын кошуу жана андан кийин "Такта менеджеринин" жардамы менен атайын такталарды орнотуу. Arduino IDEнин мурунку версиялары биз талкуулабаган башка ыкманы колдонгон. Кийинчерээк бул үйрөткүчтө биз өзүбүздүн JSON файлды түзөбүз, бирок биз биринчи кезекте ушул ыкманы колдонуу менен Arduino Zero тактасын кошушубуз керек.

Биз үчүн бактыга жараша, биз түшүргүбүз келген тактага JSON файлынын кереги жок, анткени JSON файлы Arduino IDE менен алдын ала топтолгон - андыктан биз тактаны "Boards Managerден" орнотушубуз керек.

Бул үчүн, "Куралдар" бөлүмүнө өтүңүз, андан кийин "Такта" менюну кеңейтиңиз. "Такта" менюсунун жогору жагында "Такта менеджери" болот. Такта менеджерин алып келүү үчүн бул меню параметрин чыкылдатыңыз.

(Сүрөттөрдү караңыз)

Такта менеджери ачылганда, ал Arduino IDEде сакталган бардык JSON файлдарын карап чыгат жана андан кийин орнотууларды файлдан жүктөйт. Сиз орното турган жеткиликтүү Arduino такталарынын узун тизмесин көрүшүңүз керек.

(Сүрөттөрдү караңыз)

Бизди бул окуу куралы үчүн "Arduino SAMD такталары (32 бит ARM Cortex-M0+)" тактасы гана кызыктырат, бирок бул учурда керектүү тактаны четке кагып, орнотсоңуз болот. Сураныч, "Arduino SAMD такталары (32 бит ARM Cortex-M0+)" тактасын издеп, орнотуңуз. Муну тизмеден текстти чыкылдатып, оң жагында "Орнотуу" баскычын басуу менен жасаса болот, ал текстти баскандан кийин пайда болот. Орнотуу үчүн бир -эки мүнөт талап кылынат.

Көбүрөөк маалымат алуу үчүн жаңы такталарды орнотуу: Adafruitте бул жерде Feature M0 такталарын кантип орнотууну түшүндүргөн сонун окуу куралы бар.

Такта файлдары орнотулган соң, биз аларды сиздин жеке тактаңызга өзгөртүү үчүн көчүрө алабыз.

4 -кадам: Такта файлдарын табуу жана көчүрүү

Board Files табуу жана көчүрүү
Board Files табуу жана көчүрүү
Board Files табуу жана көчүрүү
Board Files табуу жана көчүрүү
Board Files табуу жана көчүрүү
Board Files табуу жана көчүрүү

Windows үчүн Board Files жайгашкан (колдонуучунун атын колдонуучунун аты менен алмаштырууну унутпаңыз):

C: / Users / username / AppData / Local / Arduino15 / packages

Бул папкада, сиз өзгөртүү үчүн көчүрүү керек болгон файлдарга жетүү үчүн бир аз тереңирээк барышыңыз керек. Бул үйрөткүч үчүн биз барып Arduino Zero тактасынын файлдарын алабыз (колдонуучунун атын колдонуучу атыңызга өзгөртүүнү унутпаңыз):

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

Бул каталогдо жайгашкан версия номерлүү папканы Документтер папкаңыздагы же сиз тандаган папкадагы жаңы папкага көчүрүңүз. Бул окуу куралынын максаттары үчүн, мен аларды Документтердин ичиндеги "ыңгайлаштырылган такталар" деп аталган жаңы папкага салам.

Папка бир нече папкаларды жана каталогдорду камтыйт. Биз колдонгондор скриншоттогу таблицада белгиленген.

5 -кадам: Вариантты түзүү

Variant түзүү
Variant түзүү
Variant түзүү
Variant түзүү
Variant түзүү
Variant түзүү
Variant түзүү
Variant түзүү

Биз азыр колдонуучунун тактайын жазууну баштоого даярбыз. Бул үйрөткүч үчүн мен Robo HAT MM1ди мисал катары колдоном. Жогоруда айтылгандай, бул Arduino Zero түзүмүнө эң окшош SAMD негизиндеги такта.

Биз варианттар папкасына кирип, ошол жерде жайгашкан arduino_zero папкасын көчүрүү менен баштайбыз. Биз тактанын жаңы вариантынын атын "robohatmm1" деп коёбуз. Сиз каалаган нерсеңизге чала аласыз.

(Сүрөттү караңыз)

Robohatmm1 папкасынын ичинде биз түзөтүүнү баштообуз керек болгон эки казык болот: variant.cpp жана variant.h. Экөөнү тең ачкыла.

Бул мага машыгуу үчүн бир аз убакытты талап кылды, андыктан сизге бул жерде түшүндүрүп берем, бир аз убактыңызды үнөмдөңүз. Variant.cpp файлында vari.h бою шилтеме кылынган төөнөгүчтөрдүн абдан чоң массиви камтылган. Variant.h ичиндеги бардык пин шилтемелери variant.cpp массивиндеги белгилүү бир позициядагы пин конфигурациясына шилтеме.

(Эки файл менен скриншотту караңыз)

Ошентип, сиздин түзөтүүлөрүңүздүн көбү бул файлдардын экөөндө тең болот, бирок эгер сиз variants.cpp'теги казыктардын тартибин өзгөртсөңүз - башкы файлдагы (variants.h) шилтемелерди өзгөртүшүңүз керек. Robo HAT MM1 үчүн мен кээ бир казыктарды жана функцияларды өзгөртүүгө туура келди. Бул варианттарда жасалды.h. Мен жаңы PWM төөнөгүчтөрүн коштум, анткени SAMD21 12 PWM каналын башкара алат. Мен ошондой эле Servos, Signals (ADC/Digital ордуна) жана SPI, UART жана I2C сыяктуу керектүү функцияларга салттарды кошуу үчүн кээ бир аттарды коштум.

Белгилей кетчү маанилүү нерсе, variants.h ичинде көрсөтүлгөн функциялар үчүн колдонгон массивдин шилтемелери varaints.cppтеги пинге дал келерин эки жолу текшерүү - биз азыр карайбыз.

Variants.cpp абдан күчтүү жана маанилүү файл. Бул аппараттык орнотууларга дал келген казыктарды орнотуу боюнча бардык оор жумуштарды аткарат. Муну түшүндүрүүнүн эң оңой жолу - бул мисал жана ар бир бөлүктүн түшүндүрмөсү.

(Скриншоттогу Таблицаны караңыз)

Мисал (variants.cpp дан үзүндү)

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

Бул Robo HAT MM1 үчүн variants.cpp массивиндеги биринчи пин. Маалыматтар барагындагы таблица сүрөт катары берилген (боз үстөл).

(Сүрөттөрдү караңыз)

Бул өзгөчө пин I2C Data Pin Function үчүн колдонулат. Таблицаны карап, биз бул пин I2C SDA пини катары колдонууга жарамдуу экенин көрө алабыз (жакшы башталыш!). Pin "PA22" деп аталат, ал 22 -пиндеги PORTA үчүн кыска. Ошол замат биз бул пин үчүн ПОРТту жана пин номерин коё алабыз.

Кийинки нерсе, биз пинди сериялык байланыш порту катары орнотуубуз керек. Пиндин C (PIO_SERCOM) функциясы аркылуу SERCOM 3 жана D менен SERCOM5 (PIO_SERCOM_ALT) аркылуу сериялык байланышы бар. Robo HAT MM1дин максаттары үчүн, I2C байланышы үчүн SERCOM3 колдонобуз. Бул C функциясында; ака Variant.cpp үчүн PIO_SERCOM.

Биз бул пинди I2C SDA катары гана колдонууну пландап жаткандыктан, башка функцияларды коюунун кажети жок. Алардын баары мурунку таблицадан "Жок" же "Жок" параметрлери катары коюлушу мүмкүн. Бирок, эгерде биз башка функцияларды колдонууну кааласак - маалымат баракчасынан өтүп, алардын бардыгын туура боштуктарга коё алмакпыз. Мунун баары маалымат барагында.

Variant файлдарын өзгөртүү бир аз убакытты алышы мүмкүн. Этият болуңуз жана ар дайым үч жолу текшериңиз.

6 -кадам: Башкармалыктын аныктамасын түзүңүз

Башкармалыктын аныктамасын түзүү
Башкармалыктын аныктамасын түзүү

Варианттуу файлдарыңыз даяр болгондон кийин, бул жерден түз алдыга жылышы керек. Көбүнчө файлдарды көчүрүү жана чаптоо же өзгөртүү жана жаңыртуу болот.

Board.txt менен башталат.

(Сүрөттү караңыз)

Сиз мурунтан эле бар болгон тактанын аныктамасын көчүрүп, чаптоону каалайсыз. Мен дагы Arduino Zero сунуштайм.

Жөнөкөйлүк үчүн, тактанын атын (биринчи сап), usb_product, usb_manufacturer жана вариантын (robohat) гана өзгөртүңүз. Кийинчерээк башка аргументтерди керектөөлөрүңүзгө ылайыкташтырсаңыз болот - мисалы, колдонуучу жүктөгүч же тактаңызды аныктоо үчүн башка USB VID/PID.

Такта варианты башында түзүлгөн папкага берилген атка дал келиши керек. Бул окуу куралы үчүн мен аны "robohatmm1" деп атадым.

Ошондой эле ар бир саптын биринчи бөлүгүн тактаңыздын атына дал келтирүү үчүн өзгөртүү сунушталат. Скриншотто ал "robo_hat_mm1" болуп өзгөртүлгөн. Сиз тактайыңыз үчүн ошол эле форматтагы ат тандашыңыз керек.

Мунун баары board.txt үчүн, кийинчерээк жогоруда айтылган кошумча өзгөртүүлөрдү жасоону каалабасаңыз.

7 -кадам: тактанын версиясын жаңыртуу

Board Version жаңыртуу
Board Version жаңыртуу

Platforms.txt аталышын тактаңыздын атына өзгөртүңүз. Ошондой эле версиянын номерин өзгөртүү. Муну эмнеге койгонуңузду унутпаңыз, кийинчерээк бизге керек болот.

8 -кадам: JSON пакет файлын түзүңүз

JSON пакет файлын түзүңүз
JSON пакет файлын түзүңүз
JSON пакет файлын түзүңүз
JSON пакет файлын түзүңүз

Тактаңызды Arduino IDEге орнотуу үчүн, сиз импорттой турган JSON файлын түзүшүңүз керек. JSON файлы Arduino IDEге тактай орнотуу үчүн файлдарды кайдан алууну, кандай кошумча пакеттер керектигин жана метадайындардын башка бир нече биттерин айтат.

Бул файлды биз жаңы иштеп жаткан папкадан тышкары жерде сактоо абдан маанилүү.

Файлдын көбүн өзүңүзгө көчүрүп, чаптап койсоңуз болот. Файлдын жогору жагындагы "такталар" бөлүмүн жана башка метадайындарды гана өзгөртүү керек. Эмне жаңыртылышы керектигин скриншоттон караңыз.

(Сүрөттү караңыз)

  • Кызыл бөлүм: Бул колдонуучулар жардам издөө үчүн колдоно турган метадайындар. Бул абдан аз техникалык мааниге ээ.
  • Көк бөлүм: Мунун баары маанилүү. Алар Arduino IDEде көрсөтүлөт. Аты, Архитектура жана Версия бардыгы пакетти орнотууга аракет кылып жаткан баарына көрсөтүлөт. Бул жерде platforms.txt версиясынын номерин коюш керек. Экинчи көк бөлүм - бул пакетке кирген такталардын тизмеси. Сизде бир нече такталар болушу мүмкүн.
  • Жашыл бөлүм: Бул бөлүм кошумча түшүндүрмөгө муктаж.

(Сүрөттөрдөгү Таблицаны караңыз)

Zip файлын түзүп, zip файлынын текшерүү суммасын жана файлдын өлчөмүн алгандан кийин, сиз азыр zip файлын бир жерге жүктөй аласыз. Сиз бул URL'ди 'url' талаасына коюшуңуз керек. Эгерде аталыш же жогоруда көрсөтүлгөн маалыматтардын бири туура эмес болсо, сиздин ыңгайлаштырылган тактаңыз орнотулбай калат.

Мындан тышкары, package_boardname_index.json файлыңызды интернеттеги жалпыга ачык жерге жүктөөнү унутпаңыз. GitHub - жакшы вариант.

Robo HAT MM1 салт тактасынын файлын бул жерден тапса болот.

9 -кадам: Акыркы кадам - Өзгөчөлөнгөн тактаңызды орнотуңуз

Акыркы кадам - Өзүңүздүн тактаңызды орнотуңуз!
Акыркы кадам - Өзүңүздүн тактаңызды орнотуңуз!
Акыркы кадам - Өзүңүздүн тактаңызды орнотуңуз!
Акыркы кадам - Өзүңүздүн тактаңызды орнотуңуз!

Баары жакшы, эми JSON файлыңызды Arduino IDEге кошуп, ыңгайлаштырылган тактаңызды орнотушуңуз керек.

JSON файлын кошуу оңой! Arduino IDEде - жөн гана "Файл"> "Тандоолорго" өтүп, pack_boardname_index.json дарегинин жайгашкан жерин (URL) Көчүрүү жана Preferences менюсунун ылдый жагындагы "Кошумча такталар менеджеринин URL'дери" бөлүмүнө чаптоо.

(Сүрөттү караңыз)

Андан кийин OK бас.

Эгер унутуп калсаңыз, жаңы такталарды орнотуу үчүн жогорудагы көрсөтмөлөрдү аткарыңыз. Бул жолу жеке тактаңызды издөөнү унутпаңыз!

(Сүрөттү караңыз)

Жаңы такталарды орнотуу жөнүндө көбүрөөк маалымат алуу үчүн: Adafruitте бул жерде M0 такталарын кантип орнотууну түшүндүргөн сонун окуу куралы бар.

10 -кадам: Жыйынтык

Жыйынтык
Жыйынтык
Жыйынтык
Жыйынтык

Бул ыңгайлаштырылган Arduino такталарын түзүү кызыктуу болду. Келечекте мен үчүн дагы көп нерселер бар (кошумча сериялык портторду кошуу), бирок бул чоң үйрөнүү тажрыйбасы болду!

Crowd Supply кампаниясын да текшерүүнү унутпаңыз. Ал 2019 -жылдын 11 -июнунда аяктайт.

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

Бул сизге жардам берди деп үмүттөнөм же окууңуз кызыктуу болду!

Рахмат!

Сунушталууда: