Cuprins:

Arduino IDE: Crearea plăcilor personalizate: 10 pași
Arduino IDE: Crearea plăcilor personalizate: 10 pași

Video: Arduino IDE: Crearea plăcilor personalizate: 10 pași

Video: Arduino IDE: Crearea plăcilor personalizate: 10 pași
Video: High Density 2022 2024, Noiembrie
Anonim
Arduino IDE: Crearea plăcilor personalizate
Arduino IDE: Crearea plăcilor personalizate
Arduino IDE: Crearea plăcilor personalizate
Arduino IDE: Crearea plăcilor personalizate
Arduino IDE: Crearea plăcilor personalizate
Arduino IDE: Crearea plăcilor personalizate

În ultimele șase luni am petrecut mult timp portând diferite biblioteci pe placa Robo HAT MM1 dezvoltată de Robotics Masters. Acest lucru a dus la descoperirea a multe despre aceste biblioteci, modul în care funcționează în culise și cel mai important - ce trebuie făcut pentru a adăuga noi plăci în viitor.

Aceasta este prima dintr-o serie de redactări pe care le voi face pentru a-i ajuta pe ceilalți care doresc să porteze biblioteci pentru panourile lor. Multe dintre sursele de informații pot fi vagi sau greu de înțeles pentru străini. Sper să „demitizez” și să explic cum se poate realiza un port de succes pentru toată lumea.

Astăzi, ne vom uita la platforma Arduino. Are peste 700.000 de variante diferite de plăci în întreaga lume și este una dintre cele mai populare platforme electronice pentru educație, industrie și producători.

Am putut găsi surse foarte limitate de informații despre cum să fac acest lucru numai după multe căutări Google. Așa că m-am gândit că voi scrie despre cum am făcut-o în detaliu.

Începem!

Pasul 1: Înainte de a începe

Înainte de a începe cu portarea unei biblioteci software sau firmware pe placa dvs., trebuie să cunoașteți câteva puncte cheie despre tehnologia pe care o utilizați și să puteți răspunde la întrebările de mai jos.

  1. Ce procesor folosești?
  2. Ce arhitectură folosește?
  3. Am acces la foaia de date pentru acest microprocesor?
  4. Există o placă similară pe piață care utilizează același microprocesor?

Acestea sunt foarte importante. Acesta va avea impact asupra multor aspecte ale modului în care abordați procesul de dezvoltare.

Plăcile Arduino folosesc în mod obișnuit un număr limitat de tipuri și arhitecturi de procesoare. Cea mai comună este gama ATMEGA care utilizează arhitectura AVR (Arduino Uno). Există generații mai noi de Arduino care devin din ce în ce mai frecvente folosind procesoarele SAMD (ARM) și alte procesoare mai puternice. Deci, este important să verificați pe care îl utilizați.

Fișa tehnică pentru un microprocesor este absolut vitală pentru a vă asigura că placa răspunde așa cum era de așteptat atunci când compilați firmware-ul. Fără aceasta, nu veți putea seta funcțiile corecte de ieșire pin sau configura porturile seriale.

Odată ce aveți toate informațiile de care aveți nevoie despre procesorul pe care îl utilizați, puteți începe să vă uitați la software și să îl modificați pentru a funcționa pentru placa dvs. personalizată.

Pasul 2: Prezentare generală

Cea mai grea parte a oricărui proiect este găsirea unui bun punct de plecare. Nu este diferit. M-am străduit să găsesc tutoriale bune, cu detalii suficiente despre cum să creez tablouri personalizate pentru Arduino. Majoritatea tutorialelor vă arată cum să „adăugați o placă personalizată”, dar nu cum să „creați o placă personalizată”. Iată un scurt rezumat al ceea ce este implicat.

  1. Descărcați definițiile consiliului existent și copiați
  2. Actualizarea fișierelor de definiție (variant.h, varient.cpp)
  3. Creați intrarea în forum (board.txt)
  4. Actualizați versiunea plăcii (platform.txt)
  5. Pregătirea pentru instalare (json)
  6. Instalarea plăcii în Arduino IDE

Fiecare pas va fi explicat în detaliu mai jos. De asemenea, va exista o discuție extinsă despre modul în care fiecare fișier interacționează între ele pentru a clarifica modul în care funcționează totul în spatele IDE Arduino.

Pentru acest tutorial, vă voi arăta cum să creați o placă personalizată pentru procesoarele SAMD. Mai precis, SAMD21G18A - care este microprocesorul utilizat pe placa Robo HAT MM1 pe care o portam.

De asemenea, presupun că aveți deja descărcat Arduino IDE 1.8 sau o versiune ulterioară. Am folosit Arduino 1.8.9 în momentul scrierii.

Pasul 3: Descărcarea plăcilor existente

Descărcarea plăcilor existente
Descărcarea plăcilor existente
Descărcarea plăcilor existente
Descărcarea plăcilor existente
Descărcarea plăcilor existente
Descărcarea plăcilor existente

Primul pas este să descărcați cea mai apropiată variantă de placa Arduino care se potrivește cu placa dvs. Pentru plăcile SAMD, acesta este Arduino Zero.

De la Arduino IDE 1.6, metoda de descărcare a plăcilor noi în mediu a fost prin adăugarea de fișiere JSON speciale pe care dezvoltatorii de software le furnizează și apoi instalarea plăcilor personalizate utilizând „Managerul de plăci”. Versiunile anterioare ale Arduino IDE au folosit o metodă diferită despre care nu vom discuta astăzi. Vom crea propriul nostru fișier JSON mai târziu în acest tutorial, cu toate acestea, trebuie să adăugăm mai întâi placa Arduino Zero folosind această metodă.

Din fericire pentru noi, placa pe care vrem să o descărcăm nu are nevoie de un fișier JSON, deoarece fișierul JSON este pre-grupat cu Arduino IDE - deci trebuie doar să instalăm placa din „Boards Manager”.

Pentru aceasta, accesați „Instrumente”, apoi extindeți meniul „Placă”. În partea de sus a meniului „Board” va fi „Boards Manager”. Faceți clic pe această opțiune de meniu pentru a afișa Managerul de panouri.

(Vezi imagini)

Când se deschide Managerul plăcilor, acesta va analiza toate fișierele JSON pe care le-a stocat în Arduino IDE și apoi va descărca setările din fișier. Ar trebui să vedeți o listă lungă de plăci Arduino disponibile pe care le puteți instala.

(Vezi imagini)

Suntem interesați doar de placa „Arduino SAMD Boards (32-bit ARM Cortex-M0 +)” pentru acest tutorial, dar ați putea devia și instala placa de care aveți nevoie în acest moment. Vă rugăm să căutați și să instalați placa „Arduino SAMD Boards (32-bit ARM Cortex-M0 +)”. Acest lucru se poate face făcând clic pe textul din listă urmat de butonul „Instalare” din partea dreaptă, care va apărea după ce faceți clic pe text. Instalarea va dura câteva minute.

Pentru mai multe detalii despre instalarea de noi plăci: Adafruit are aici un tutorial excelent care explică modul de instalare a plăcilor Feature M0.

Acum că fișierele de bord au fost instalate, le putem copia astfel încât să poată fi modificate pentru placa dvs. personalizată.

Pasul 4: Găsirea și copierea fișierelor de pe placă

Găsirea și copierea fișierelor de pe placă
Găsirea și copierea fișierelor de pe placă
Găsirea și copierea fișierelor de pe placă
Găsirea și copierea fișierelor de pe placă
Găsirea și copierea fișierelor de pe placă
Găsirea și copierea fișierelor de pe placă

Pentru Windows, fișierele de bord sunt localizate (nu uitați să schimbați numele de utilizator în numele dvs. de utilizator):

C: / Users / nume de utilizator / AppData / Local / Arduino15 / packages

În acest folder, trebuie să mergeți puțin mai adânc pentru a ajunge la fișierele pe care trebuie să le copiați pentru a le modifica. Pentru acest tutorial vom merge și vom primi fișierele de pe placa Arduino Zero care vor fi instalate în (nu uitați să schimbați numele de utilizator în numele dvs. de utilizator):

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

Copiați folderul numerotat de versiune situat în acest director într-un folder nou din folderul Documente sau folderul pe care îl alegeți. În scopul acestui tutorial, le voi pune într-un folder nou numit „placi personalizate” din Documente.

Dosarul conține mai multe foldere și directoare. Cele pe care le vom folosi sunt notate în tabelul din captura de ecran.

Pasul 5: Crearea variantei

Crearea variantei
Crearea variantei
Crearea variantei
Crearea variantei
Crearea variantei
Crearea variantei
Crearea variantei
Crearea variantei

Acum suntem gata să începem să creăm o intrare personalizată a forumului. Pentru acest tutorial, voi folosi Robo HAT MM1 ca exemplu. Așa cum am menționat anterior, este o placă bazată pe SAMD care se potrivește cel mai mult cu versiunea Arduino Zero.

Vom începe prin a intra în folderul variante și a copia folderul arduino_zero situat acolo. Vom redenumi noua variantă de bord „robohatmm1”. Îl poți numi pe oricine îți place.

(Vezi imaginea)

În folderul robohatmm1 vor fi cei doi pini de care avem nevoie pentru a începe editarea: variant.cpp și variant.h. Deschide-le pe amândouă.

Mi-a luat ceva timp să mă antrenez, așa că vă voi explica aici pentru a vă economisi ceva timp. Fișierul variant.cpp conține o gamă foarte mare de pini la care se face referire în variant.h. Toate referințele pinului din variant.h sunt o referință la configurația pinului la o anumită poziție din matricea variant.cpp.

(Vedeți Captură de ecran cu două fișiere)

Deci, majoritatea modificărilor dvs. vor avea loc în ambele fișiere, dar trebuie să vă asigurați că, dacă modificați ordinea pinilor din variants.cpp - trebuie să modificați referințele din fișierul antet (variants.h). Pentru Robo HAT MM1, am avut nevoie doar să schimb unele dintre pini și funcții. Acest lucru s-a făcut în variante.h. Am adăugat niște pini noi PWM, deoarece SAMD21 este capabil să gestioneze 12 canale PWM. Am adăugat, de asemenea, câteva nume pentru Servo, Semnale (în loc de ADC / Digital) și mapare personalizată la funcțiile corecte - cum ar fi SPI, UART și I2C.

Important este să verificați dacă referințele matrice pe care le utilizați pentru funcțiile subliniate în variants.h se potrivesc cu cea a pinului din varaints.cpp - la care vom analiza acum.

Variants.cpp este un fișier foarte puternic și important. Face toată munca grea de a seta pinii pentru a se potrivi cu setările hardware. Cel mai simplu mod de a explica acest lucru este cu un exemplu și o explicație a fiecărei părți.

(A se vedea tabelul din captura de ecran)

Exemplu (extras din variants.cpp)

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

Acesta este primul pin din matricea variants.cpp pentru Robo HAT MM1. Tabelul din foaia tehnică a fost furnizat ca o imagine (tabel gri).

(Vezi imagini)

Acest pin special este folosit pentru funcția I2C Data Pin. Aruncând o privire la masă, putem vedea că acest pin poate fi folosit ca pin I2C SDA (început bun!). Pinul este denumit „PA22”, care este abrevierea PORTA pe pinul 22. Imediat putem seta PORT și numărul pinului pentru acest pin.

Următorul lucru pe care trebuie să-l facem este să setăm pinul ca port de comunicație serial. Pinul are comunicații seriale disponibile prin funcția C (PIO_SERCOM) folosind SERCOM 3 și D folosind SERCOM5 (PIO_SERCOM_ALT). În scopul Robo HAT MM1, folosim SERCOM3 pentru comunicarea I2C. Aceasta este în funcția C; alias. PIO_SERCOM pentru variants.cpp.

Deoarece intenționăm să folosim acest pin doar ca I2C SDA, nu este necesar să setăm niciuna dintre celelalte funcții. Toate pot fi setate ca opțiuni „Nu” sau „Nu” din tabelul anterior. Cu toate acestea, dacă am vrea să folosim celelalte funcții - am putea trece peste foaia de date și le putem pune pe toate în spațiile corecte. Totul este în foaia tehnică.

Modificarea fișierelor variante poate dura ceva timp. Aveți grijă și verificați întotdeauna triplul.

Pasul 6: Creați o definiție a forumului

Creați o definiție a forumului
Creați o definiție a forumului

Odată ce aveți variantele de fișiere gata, ar trebui să fie direct de aici. Cea mai mare parte a lucrării va fi copierea și lipirea sau modificarea și actualizarea fișierelor.

Începând cu boards.txt.

(Vezi imaginea)

Veți dori să copiați și să lipiți o definiție a plăcii care există deja. Aș recomanda din nou Arduino Zero.

Pentru simplitate, schimbați doar numele plăcii (prima linie), usb_product, usb_manufacturer și varianta (robohat). Puteți personaliza celelalte argumente ulterior pentru a se potrivi nevoilor dvs. - cum ar fi un bootloader personalizat sau diferite VID / PID USB pentru identificarea plăcii dvs.

Varianta de bord trebuie să se potrivească cu numele dat folderului creat la început. Pentru acest tutorial l-am numit „robohatmm1”.

De asemenea, ar fi recomandat să schimbați prima parte a fiecărei linii pentru a se potrivi cu numele tabloului dvs. În captura de ecran a fost schimbat în „robo_hat_mm1”. Ar trebui să alegeți un nume pentru placa dvs. cu același format.

Asta este totul pentru boards.txt, cu excepția cazului în care doriți să faceți modificări ulterioare menționate mai sus mai târziu.

Pasul 7: Actualizați versiunea plăcii

Actualizați versiunea plăcii
Actualizați versiunea plăcii

În platforms.txt, schimbați numele cu numele plăcii dvs. personalizate. Schimbați și numărul versiunii. Amintiți-vă la ce ați setat acest lucru, vom avea nevoie de el mai târziu.

Pasul 8: Creați fișierul de pachet JSON

Creați fișier pachet JSON
Creați fișier pachet JSON
Creați fișier pachet JSON
Creați fișier pachet JSON

Pentru a vă instala placa în Arduino IDE, va trebui să creați un fișier JSON pe care îl veți importa. Fișierul JSON îi spune lui Arduino IDE unde să obțină fișierele pentru a instala placa, ce pachete suplimentare sunt necesare și câțiva alți biți de metadate.

Este foarte important să salvați acest fișier în afara folderului în care tocmai am lucrat.

Majoritatea fișierului poate fi copiat și lipit în cel dvs. Va trebui să schimbați doar secțiunea „panouri” și celelalte metadate din partea de sus a fișierului. Vedeți captura de ecran pentru ce ar trebui actualizat.

(Vezi imaginea)

  • Secțiunea roșie: sunt metadate pe care utilizatorii le pot folosi pentru a găsi ajutor. Are foarte puțină relevanță tehnică.
  • Secțiunea albastră: toate acestea sunt importante. Acestea apar în IDE-ul Arduino. Numele, Arhitectura și Versiunea vor fi afișate tuturor celor care încearcă să instaleze pachetul. Aici trebuie să puneți numărul versiunii din platforms.txt. A doua secțiune albastră este lista plăcilor care sunt incluse în pachet. Ai putea avea mai multe placi.
  • Secțiunea verde: Această secțiune necesită explicații suplimentare.

(Vezi tabelul din imagini)

Odată ce ați creat fișierul zip, ați obținut suma de verificare și dimensiunea fișierului zip, acum puteți încărca fișierul zip într-o locație. Va trebui să introduceți adresa URL respectivă în câmpul „URL”. Dacă numele sau oricare dintre detaliile de mai sus sunt incorecte, placa dvs. personalizată nu va instala.

Asigurați-vă că încărcați și fișierul package_boardname_index.json într-o locație publică de pe internet. GitHub este o opțiune bună.

Fișierul de bord personalizat Robo HAT MM1 poate fi găsit aici.

Pasul 9: Pasul final - Instalați-vă placa personalizată

Pasul final - Instalați-vă placa personalizată!
Pasul final - Instalați-vă placa personalizată!
Pasul final - Instalați-vă placa personalizată!
Pasul final - Instalați-vă placa personalizată!

Totul merge bine, ar trebui să puteți include fișierul JSON în Arduino IDE și să instalați placa personalizată.

Includerea fișierului JSON este ușor! În Arduino IDE - mergeți doar la „Fișier”> „Preferințe” și copiați și lipiți locația (URL) a package_boardname_index.json în secțiunea „Adrese URL suplimentare ale managerului de plăci” din partea de jos a meniului Preferințe.

(Vezi imaginea)

Apoi apăsați OK.

Executați instrucțiunile de mai sus pentru instalarea plăcilor noi, dacă ați uitat. Nu uitați să vă căutați tabloul personalizat de data aceasta!

(Vezi imaginea)

Pentru mai multe detalii despre instalarea plăcilor noi: Adafruit are aici un tutorial excelent care explică modul de instalare a plăcilor Feature M0.

Pasul 10: Concluzie

Concluzie
Concluzie
Concluzie
Concluzie

A fost distractiv să creăm plăci Arduino personalizate. Mai sunt multe lucruri pe care să le experimentez în viitor (adăugând porturi seriale suplimentare), dar a fost o experiență de învățare extraordinară!

Asigurați-vă că ați vizitat și campania Crowd Supply. Se încheie pe 11 iunie 2019.

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

Sper că acest lucru te-a ajutat sau te-ai distrat citind!

Mulțumiri!

Recomandat: