Talaan ng mga Nilalaman:

Arduino IDE: Lumilikha ng Mga Pasadyang Lupon: 10 Hakbang
Arduino IDE: Lumilikha ng Mga Pasadyang Lupon: 10 Hakbang

Video: Arduino IDE: Lumilikha ng Mga Pasadyang Lupon: 10 Hakbang

Video: Arduino IDE: Lumilikha ng Mga Pasadyang Lupon: 10 Hakbang
Video: Marlin Firmware 2.0.x Explained 2024, Hulyo
Anonim
Arduino IDE: Lumilikha ng Mga Pasadyang Lupon
Arduino IDE: Lumilikha ng Mga Pasadyang Lupon
Arduino IDE: Lumilikha ng Mga Pasadyang Lupon
Arduino IDE: Lumilikha ng Mga Pasadyang Lupon
Arduino IDE: Lumilikha ng Mga Pasadyang Lupon
Arduino IDE: Lumilikha ng Mga Pasadyang Lupon

Sa nakaraang anim na buwan ay gumugol ako ng maraming oras sa pag-port ng iba't ibang mga aklatan sa Robo HAT MM1 board na binuo ng Robotics Masters. Ito ay humantong sa pagtuklas ng maraming tungkol sa mga aklatan na ito, kung paano sila gumagana sa likod ng mga eksena at pinakamahalaga - kung ano ang gagawin upang magdagdag ng mga bagong board sa hinaharap.

Ito ang una sa isang serye ng mga pagsulat na gagawin ko upang matulungan ang iba na nais na mag-port ng mga aklatan para sa kanilang mga board. Marami sa mga mapagkukunan ng impormasyon ay maaaring malabo o mahirap maunawaan ng mga tagalabas. Inaasahan kong 'demystify' at ipaliwanag kung paano makamit ang isang matagumpay na port para sa lahat.

Ngayon, titingnan namin ang Arduino Platform. Mayroon itong higit sa 700, 000 iba't ibang mga variant ng board sa buong mundo at isa sa pinakatanyag na mga electronics platform para sa edukasyon, industriya at mga gumagawa.

Mahahanap ko lang ang napaka-limitadong mapagkukunan ng impormasyon sa kung paano ito gawin pagkatapos ng maraming Google Searches. Kaya naisip kong magsusulat tungkol sa kung paano ko ito ginawa nang detalyado.

Dito na tayo!

Hakbang 1: Bago ka Magsimula

Bago ka magsimula sa pag-port ng isang software library o firmware sa iyong board, dapat mong malaman ang ilang mga pangunahing punto tungkol sa teknolohiyang iyong ginagamit at masagot ang mga katanungan sa ibaba.

  1. Anong processor ang ginagamit mo?
  2. Anong arkitektura ang ginagamit nito?
  3. Mayroon ba akong access sa datasheet para sa microprocessor na ito?
  4. Mayroon bang isang katulad na board sa merkado na gumagamit ng parehong microprocessor?

Napakahalaga ng mga ito. Makakaapekto ito sa maraming aspeto ng kung paano mo lalapit sa proseso ng pag-unlad.

Ang mga board ng Arduino ay karaniwang gumagamit ng isang limitadong bilang ng mga uri at arkitektura ng processor. Ang pinakakaraniwang pagiging saklaw ng ATMEGA gamit ang arkitekturang AVR (Arduino Uno). Mayroong mga mas bagong henerasyon ng Arduinos na nagiging mas karaniwan gamit ang mga processor ng SAMD (ARM) at iba pang mga mas malakas na processor. Kaya mahalagang suriin kung alin ang ginagamit mo.

Ang datasheet para sa isang microprocessor ay ganap na mahalaga upang matiyak na ang board ay tumutugon tulad ng inaasahan kapag pinagsama-sama mo ang firmware. Kung wala ito, hindi mo maitatakda ang tamang mga pagpapaandar ng output ng pin o mai-configure ang mga serial port.

Kapag mayroon ka ng lahat ng impormasyong kailangan mo tungkol sa ginagamit mong processor, maaari mong simulang tingnan ang software at baguhin ito upang gumana para sa iyong pasadyang board.

Hakbang 2: Pangkalahatang-ideya

Ang pinakamahirap na bahagi ng anumang proyekto ay ang paghahanap ng isang mahusay na panimulang punto. Hindi ito naiiba. Pinilit kong makahanap ng magagandang mga tutorial na may sapat na detalye sa kung paano lumikha ng mga pasadyang board para sa Arduino. Ipinapakita sa iyo ng karamihan sa mga tutorial kung paano 'magdagdag ng isang pasadyang board' ngunit hindi kung paano 'lumikha ng isang pasadyang board'. Narito ang isang maikling buod ng kung ano ang kasangkot.

  1. Mag-download ng Mga Umiiral na Kahulugan ng Lupon at Kopyahin
  2. Pag-update ng Mga File sa Kahulugan (variant.h, varient.cpp)
  3. Lumikha ng Board Entry (board.txt)
  4. I-update ang Bersyon ng Board (platform.txt)
  5. Paghahanda para sa Pag-install (json)
  6. Pag-install ng Lupon sa Arduino IDE

Ang bawat hakbang ay ipapaliwanag nang detalyado sa ibaba. Magkakaroon din ng malawak na talakayan sa kung paano nakikipag-ugnay ang bawat file sa bawat isa upang matulungan linawin kung paano gumagana ang lahat sa likod ng Arduino IDE.

Para sa tutorial na ito, ipapakita ko sa iyo kung paano lumikha ng isang pasadyang board para sa mga processor ng SAMD. Mas partikular, ang SAMD21G18A - na kung saan ay ang microprocessor na ginamit sa Robo HAT MM1 board na kung saan ako ay porting.

Ipinapalagay ko rin na mayroon ka nang Arduino IDE 1.8 o mas bago na-download. Ginamit ko ang Arduino 1.8.9 sa oras ng pagsulat.

Hakbang 3: Pag-download ng Mga Umiiral na Board

Pagda-download ng Mga Umiiral na Lupon
Pagda-download ng Mga Umiiral na Lupon
Pagda-download ng Mga Umiiral na Lupon
Pagda-download ng Mga Umiiral na Lupon
Pagda-download ng Mga Umiiral na Lupon
Pagda-download ng Mga Umiiral na Lupon

Ang unang hakbang ay upang i-download ang pinakamalapit na variant na Arduino board na tumutugma sa iyong board. Para sa mga board ng SAMD, ito ang Arduino Zero.

Mula noong Arduino IDE 1.6, ang pamamaraan para sa pag-download ng mga bagong board sa kapaligiran ay sa pamamagitan ng pagdaragdag ng mga espesyal na JSON file na ibinibigay ng mga developer ng software at pagkatapos ay i-install ang mga pasadyang board gamit ang "Boards Manager". Ang mga nakaraang bersyon ng Arduino IDE ay gumamit ng ibang pamamaraan na hindi namin tatalakayin ngayon. Lilikha kami ng aming sariling JSON file sa susunod na tutorial na ito, gayunpaman, kailangan naming idagdag ang Arduino Zero board gamit ang pamamaraang ito muna.

Masuwerte para sa amin, ang board na nais naming i-download ay hindi nangangailangan ng isang JSON file dahil ang JSON file ay paunang na-bundle ng Arduino IDE - kaya kailangan lang naming i-install ang board mula sa "Boards Manager".

Upang magawa ito, pumunta sa "Mga Tool" pagkatapos ay palawakin ang menu na "Lupon". Sa tuktok ng menu na "Board" ay ang "Boards Manager". Mag-click sa pagpipiliang menu na ito upang ilabas ang Boards Manager.

(Tingnan ang Mga Larawan)

Kapag binuksan ang Boards Manager, titingnan nito ang lahat ng mga file na JSON na naimbak nito sa Arduino IDE at pagkatapos ay i-download ang mga setting mula sa file. Dapat mong makita ang isang mahabang listahan ng mga magagamit na Arduino board na maaari mong mai-install.

(Tingnan ang Mga Larawan)

Interesado lamang kami sa board na "Arduino SAMD Boards (32-bits ARM Cortex-M0 +)" na board para sa tutorial na ito, ngunit maaari mong lumihis at mai-install ang board na kailangan mo sa puntong ito. Mangyaring hanapin at i-install ang board na "Arduino SAMD Boards (32-bits ARM Cortex-M0 +)" board. Magagawa ito sa pamamagitan ng pag-click sa teksto mula sa listahan na sinusundan ng pindutang "I-install" sa kanang bahagi na lilitaw pagkatapos mong mag-click sa teksto. Aabutin ng ilang minuto upang mai-install.

Para sa higit pang mga detalye sa pag-install ng mga bagong board: Ang Adafruit ay may mahusay na tutorial dito na nagpapaliwanag kung paano i-install ang kanilang mga Tampok na board ng M0.

Ngayong na-install na ang mga file ng board, makakaya naming kopyahin ang mga ito upang mabago ang mga ito para sa iyong pasadyang board.

Hakbang 4: Paghahanap at Pagkopya ng Mga File ng Lupon

Paghanap at Pagkopya ng Mga File ng Lupon
Paghanap at Pagkopya ng Mga File ng Lupon
Paghanap at Pagkopya ng Mga File ng Lupon
Paghanap at Pagkopya ng Mga File ng Lupon
Paghanap at Pagkopya ng Mga File ng Lupon
Paghanap at Pagkopya ng Mga File ng Lupon

Para sa Windows ang mga Board File ay matatagpuan sa (tandaan na baguhin ang username sa iyong username):

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

Sa folder na ito, kailangan mong pumunta nang medyo mas malalim upang makapunta sa mga file na kailangan mong kopyahin upang mabago. Para sa tutorial na ito, pupunta kami at kukuha ng mga file ng board ng Arduino Zero na mai-install sa (tandaan na baguhin ang username sa iyong username):

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

Kopyahin ang folder na may bilang na bersyon na matatagpuan sa direktoryong ito sa isang bagong folder sa iyong folder ng Mga Dokumento o folder na iyong pinili. Para sa mga hangarin ng tutorial na ito, ilalagay ko sila sa isang bagong folder na pinangalanang 'pasadyang mga board' sa loob ng Mga Dokumento.

Naglalaman ang folder ng isang bilang ng mga folder at direktoryo. Ang mga gagamitin namin ay nabanggit sa talahanayan sa screenshot.

Hakbang 5: Lumilikha ng Variant

Lumilikha ng Variant
Lumilikha ng Variant
Lumilikha ng Variant
Lumilikha ng Variant
Lumilikha ng Variant
Lumilikha ng Variant
Lumilikha ng Variant
Lumilikha ng Variant

Handa na kami ngayon upang simulang lumikha ng isang pasadyang pagpasok ng board. Para sa tutorial na ito, gagamitin ko ang Robo HAT MM1 bilang halimbawa. Tulad ng naunang nabanggit, ito ay isang board na nakabatay sa SAMD na pinakamalapit na naitugma sa pagbuo ng Arduino Zero.

Magsisimula kami sa pamamagitan ng pagpunta sa mga variant folder at pagkopya ng arduino_zero folder na matatagpuan doon. Papalitan naming pangalan ang bagong variant ng board na 'robohatmm1'. Maaari kang tumawag sa iyo kahit anong gusto mo.

(Tingnan ang Larawan)

Sa loob ng robohatmm1 folder ay ang dalawang mga pin na kailangan namin upang simulan ang pag-edit: variant.cpp at variant.h. Buksan ang pareho sa kanila.

Tumagal ito sa akin upang mag-ehersisyo, kaya't ipapaliwanag ko ito dito upang makatipid sa iyo ng kaunting oras. Naglalaman ang file ng variant.cpp ng napakalaking hanay ng mga pin na isinangguni sa buong variant.h. Ang lahat ng mga sanggunian na pin sa variant.h ay isang sanggunian sa pagsasaayos ng pin sa isang partikular na posisyon sa variant.cpp array.

(Tingnan ang Screenshot na may Dalawang Mga File)

Kaya, ang karamihan sa iyong mga pag-edit ay magaganap sa pareho ng mga file na ito ngunit kailangan mong tiyakin na kung binago mo ang pagkakasunud-sunod ng mga pin sa variants.cpp - dapat mong baguhin ang mga sanggunian sa header file (variants.h). Para sa Robo HAT MM1, kailangan ko lamang palitan ang ilan sa mga pin at pag-andar. Ginawa ito sa iba-iba.h. Nagdagdag ako ng ilang mga bagong PWM na pin dahil ang SAMD21 ay magagawang hawakan ang 12 PWM channel. Nagdagdag din ako ng ilang mga pangalan para sa Servos, Signals (sa halip na ADC / Digital) at pasadyang pagmamapa sa mga tamang pag-andar - tulad ng SPI, UART at I2C.

Ang mahalagang bagay na dapat tandaan ay i-double check na ang mga sanggunian sa array na ginagamit mo para sa mga pagpapaandar na nakabalangkas sa mga variant.h tugma sa pin sa varaints.cpp - kung saan titingnan natin ngayon.

Ang Variants.cpp ay isang napakalakas at mahalagang file. Ginagawa nito ang lahat ng pagsusumikap sa pagtatakda ng mga pin upang tumugma sa mga setting ng hardware. Ang pinakamadaling paraan upang ipaliwanag ito ay sa isang halimbawa at paliwanag ng bawat bahagi.

(Tingnan ang Talahanayan Sa Screenshot)

Halimbawa (kunin mula sa mga variant.cpp)

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

Ito ang unang pin sa variant.cpp array para sa Robo HAT MM1. Ang talahanayan mula sa datasheet ay ibinigay bilang isang imahe (grey table).

(Tingnan ang Mga Larawan)

Ang partikular na pin na ito ay ginagamit para sa I2C Data Pin Function. Tumingin sa talahanayan, nakikita namin na ang pin na ito ay maaaring magamit bilang isang I2C SDA pin (magandang pagsisimula!). Ang pin ay pinangalanang "PA22" na kung saan ay maikli para sa PORTA sa pin 22. Kaagad maaari naming itakda ang PORT at numero ng pin para sa pin na ito.

Ang susunod na kailangan nating gawin ay itakda ang pin bilang isang serial port ng komunikasyon. Ang pin ay may serial na komunikasyon na magagamit sa pamamagitan ng pagpapaandar C (PIO_SERCOM) gamit ang SERCOM 3 at D gamit ang SERCOM5 (PIO_SERCOM_ALT). Para sa mga layunin ng Robo HAT MM1, gumagamit kami ng SERCOM3 para sa komunikasyon ng I2C. Ito ay nasa Function C; aka. PIO_SERCOM para sa variants.cpp.

Dahil balak naming gamitin lamang ang pin na ito bilang isang I2C SDA, hindi na kailangang itakda ang alinman sa iba pang mga pagpapaandar. Maaari silang lahat itakda bilang mga pagpipilian na "Hindi" o "Hindi" mula sa nakaraang mesa. Gayunpaman, kung nais naming gamitin ang iba pang mga pag-andar - maaari naming daanan ang datasheet at ilagay ang lahat sa tamang mga puwang. Nasa datasheet ang lahat.

Ang pagbabago sa mga variant file ay maaaring magtagal. Mag-ingat at laging triple check.

Hakbang 6: Lumikha ng isang Kahulugan ng Lupon

Lumikha ng isang Kahulugan ng Lupon
Lumikha ng isang Kahulugan ng Lupon

Kapag handa mo na ang iyong mga variant file, dapat itong diretso mula dito. Karamihan sa gawain ay ang pagkopya at pag-paste o pagbabago at pag-a-update ng mga file.

Nagsisimula sa boards.txt.

(Tingnan ang Larawan)

Gusto mong kopyahin at i-paste ang isang kahulugan ng board na nandiyan na. Inirerekumenda kong muli ang Arduino Zero.

Para sa pagiging simple, baguhin lamang ang pangalan ng board (unang linya), usb_product, usb_manufaktururer, at variant (robohat). Maaari mong ipasadya ang ibang mga argumento sa paglaon upang umangkop sa iyong mga pangangailangan - tulad ng isang pasadyang bootloader o iba't ibang mga USB VID / PID para sa pagkilala sa iyong board.

Ang variant ng board ay dapat tumugma sa pangalan na ibinigay sa folder na nilikha sa simula. Para sa tutorial na ito tinawag ko itong 'robohatmm1'.

Inirerekumenda rin na baguhin ang unang bahagi ng bawat linya upang tumugma sa iyong pangalan ng board. Sa screenshot binago ito sa 'robo_hat_mm1'. Dapat kang pumili ng isang pangalan para sa iyong board na may parehong format.

Iyon lang ang para sa boards.txt maliban kung nais mong gumawa ng karagdagang mga pagbabago na nabanggit sa itaas mamaya.

Hakbang 7: I-update ang Bersyon ng Lupon

I-update ang Bersyon ng Lupon
I-update ang Bersyon ng Lupon

Sa platforms.txt baguhin ang pangalan sa pangalan ng iyong pasadyang board. Baguhin din ang numero ng bersyon. Alalahanin kung ano ang itinakda mo dito, kakailanganin namin ito sa paglaon.

Hakbang 8: Lumikha ng JSON Package File

Lumikha ng JSON Package File
Lumikha ng JSON Package File
Lumikha ng JSON Package File
Lumikha ng JSON Package File

Upang mai-install ang iyong board sa Arduino IDE, kakailanganin mong lumikha ng isang JSON file na mai-import mo. Sinasabi ng file na JSON sa Arduino IDE kung saan kukuha ng mga file upang mai-install ang board, kung anong mga karagdagang pakete ang kinakailangan at ilang iba pang mga piraso ng metadata.

Napakahalaga na mai-save mo ang file na ito sa labas ng folder na ngayon pa lamang tayo nagtatrabaho.

Karamihan sa file ay maaaring makopya at mai-paste sa iyong isa. Kakailanganin mo lamang baguhin ang seksyong "board" at ang iba pang metadata sa tuktok ng file. Tingnan ang screenshot para sa dapat i-update.

(Tingnan ang Larawan)

  • Pulang Seksyon: Ito ang metadata na maaaring magamit ng mga gumagamit para sa paghahanap ng tulong. Napakaliit nito ng teknikal na kaugnayan.
  • Blue Seksyon: Lahat ng ito ay mahalaga. Ipinapakita nila sa Arduino IDE. Ipapakita ang pangalan, Arkitektura at Bersyon sa sinumang sumusubok na mai-install ang package. Dito mo kailangang ilagay ang numero ng bersyon mula sa platforms.txt. Ang pangalawang asul na seksyon ay ang listahan ng mga board na kasama sa package. Maaari kang magkaroon ng maraming mga board.
  • Green Seksyon: Ang seksyon na ito ay nangangailangan ng karagdagang paliwanag.

(Tingnan ang Talahanayan sa Mga Larawan)

Sa sandaling nalikha mo ang zip file, nakuha ang zip file checkum at laki ng file, nagagawa mo na ngayong i-upload ang zip file sa isang lokasyon. Kakailanganin mong ilagay ang URL na iyon sa patlang na 'url'. Kung ang pangalan o anuman sa mga detalyeng nasa itaas ay hindi tama, mabibigong mai-install ang iyong pasadyang board.

Siguraduhing i-upload din ang iyong package_boardname_index.json file sa isang pampublikong lokasyon sa internet. Ang GitHub ay isang mahusay na pagpipilian.

Ang Robo HAT MM1 pasadyang file ng board ay matatagpuan dito.

Hakbang 9: Ang Huling Hakbang - I-install ang Iyong Pasadyang Lupon

Ang Huling Hakbang - I-install ang Iyong Pasadyang Lupon!
Ang Huling Hakbang - I-install ang Iyong Pasadyang Lupon!
Ang Huling Hakbang - I-install ang Iyong Pasadyang Lupon!
Ang Huling Hakbang - I-install ang Iyong Pasadyang Lupon!

Magagaling ang lahat, dapat mo na ngayong maisama ang iyong JSON file sa Arduino IDE at mai-install ang iyong pasadyang board.

Ang pagsasama ng file na JSON ay madali! Sa Arduino IDE - pumunta lamang sa "File"> "Mga Kagustuhan" at kopyahin at i-paste ang lokasyon (URL) ng iyong package_boardname_index.json sa seksyong "Karagdagang Mga Tagapamahala ng Mga Boards Manager" sa ilalim ng menu ng Mga Kagustuhan.

(Tingnan ang Larawan)

Pagkatapos ay pindutin ang OK.

Patakbuhin ang mga tagubilin mula sa itaas para sa pag-install ng mga bagong board kung nakalimutan mo. Tandaan na hanapin ang iyong pasadyang board sa oras na ito!

(Tingnan ang Larawan)

Para sa higit pang mga detalye sa pag-install ng mga bagong board: Ang Adafruit ay may mahusay na tutorial dito na nagpapaliwanag kung paano i-install ang kanilang mga Tampok na board ng M0.

Hakbang 10: Konklusyon

Konklusyon
Konklusyon
Konklusyon
Konklusyon

Masaya itong lumilikha ng pasadyang mga board ng Arduino. Marami pa para mag-eksperimento ako sa hinaharap (pagdaragdag ng mga karagdagang serial port) ngunit naging mahusay na karanasan sa pag-aaral!

Tiyaking suriin din ang kampanya ng Crowd Supply. Nagtatapos ito sa Hunyo 11 2019.

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

Inaasahan kong nakatulong ito sa iyo o masaya ka sa pagbabasa!

Salamat!

Inirerekumendang: