Taula de continguts:

ID Arduino: creació de taules personalitzades: 10 passos
ID Arduino: creació de taules personalitzades: 10 passos

Vídeo: ID Arduino: creació de taules personalitzades: 10 passos

Vídeo: ID Arduino: creació de taules personalitzades: 10 passos
Vídeo: Marlin Firmware - VScode PlatformIO Install - Build Basics 2024, De novembre
Anonim
ID Arduino: creació de taulers personalitzats
ID Arduino: creació de taulers personalitzats
ID Arduino: creació de taulers personalitzats
ID Arduino: creació de taulers personalitzats
ID Arduino: creació de taulers personalitzats
ID Arduino: creació de taulers personalitzats

Durant els darrers sis mesos he dedicat molt de temps a portar diferents biblioteques a la placa Robo HAT MM1 desenvolupada per Robotics Masters. Això ha portat a descobrir moltes coses sobre aquestes biblioteques, com funcionen entre bastidors i, sobretot, què cal fer per afegir taulers nous en el futur.

Aquest és el primer d'una sèrie de redaccions que faré per ajudar altres persones que vulguin portar biblioteques als seus taulers. Moltes de les fonts d’informació poden ser vagues o difícils d’entendre per als forasters. Espero "desmitificar" i explicar com aconseguir un port amb èxit per a tothom.

Avui veurem la plataforma Arduino. Té més de 700.000 variants de taulers diferents a tot el món i és una de les plataformes electròniques més populars per a l'educació, la indústria i els fabricants.

Només he pogut trobar fonts d’informació molt limitades sobre com fer-ho després de moltes cerques a Google. Així que vaig pensar que escriuria sobre com ho vaig fer en detall.

Aqui venim!

Pas 1: Abans de començar

Abans de començar a portar una biblioteca de programari o firmware al tauler, heu de conèixer alguns punts clau sobre la tecnologia que utilitzeu i poder respondre a les preguntes següents.

  1. Quin processador utilitzeu?
  2. Quina arquitectura utilitza?
  3. Tinc accés al full de dades d'aquest microprocessador?
  4. Hi ha una placa similar al mercat que faci servir el mateix microprocessador?

Són molt importants. Incidirà en molts aspectes de com enfoqueu el procés de desenvolupament.

Les plaques Arduino solen utilitzar un nombre limitat de tipus de processador i arquitectures. El més comú és la gamma ATMEGA que utilitza l'arquitectura AVR (Arduino Uno). Hi ha noves generacions d'Arduinos cada cop més habituals mitjançant els processadors SAMD (ARM) i altres processadors més potents. Per tant, és important comprovar quin utilitzeu.

El full de dades d’un microprocessador és absolutament vital per garantir que la placa respongui com s’esperava en compilar el firmware. Sense ella, no podreu configurar les funcions de sortida de pin correctes ni configurar els ports sèrie.

Un cop tingueu tota la informació que necessiteu sobre el processador que utilitzeu, podeu començar a mirar el programari i modificar-lo perquè funcioni per al vostre tauler personalitzat.

Pas 2: Visió general

El més difícil de qualsevol projecte és trobar un bon punt de partida. Això no és diferent. Em va costar trobar bons tutorials amb prou detalls sobre com crear taules personalitzades per a Arduino. La majoria dels tutorials mostren com "afegir un tauler personalitzat", però no com "crear un tauler personalitzat". Aquí teniu un petit resum del que es tracta.

  1. Descarregueu les definicions de taulers existents i copieu-les
  2. Actualització de fitxers de definició (variant.h, varient.cpp)
  3. Crea una entrada al tauler (board.txt)
  4. Actualitza la versió del tauler (platform.txt)
  5. Preparació per a la instal·lació (json)
  6. Instal·lació de la placa a Arduino IDE

A continuació, s’explicarà detalladament cada pas. També hi haurà una àmplia discussió sobre com interactua cada fitxer entre si per ajudar a aclarir com funciona tot darrere de l’IDE Arduino.

Per a aquest tutorial, us mostraré com crear una placa personalitzada per als processadors SAMD. Més concretament, el SAMD21G18A, que és el microprocessador utilitzat a la placa Robo HAT MM1 que portava.

També suposo que ja teniu Arduino IDE 1.8 o posterior descarregat. Vaig utilitzar Arduino 1.8.9 en el moment d’escriure.

Pas 3: descàrrega de taulers existents

Descàrrega de taulers existents
Descàrrega de taulers existents
Descàrrega de taulers existents
Descàrrega de taulers existents
Descàrrega de taulers existents
Descàrrega de taulers existents

El primer pas és descarregar la versió més propera de la placa Arduino que coincideixi amb la vostra placa. Per a les plaques SAMD, aquest és l’Arduino Zero.

Des d’Arduino IDE 1.6, el mètode per descarregar noves plaques a l’entorn ha estat afegir fitxers JSON especials que proporcionen els desenvolupadors de programari i instal·lar les taules personalitzades mitjançant el “Gestor de taules”. Les versions anteriors d’Arduino IDE utilitzaven un mètode diferent del qual no parlarem avui. Crearem el nostre propi fitxer JSON més endavant en aquest tutorial, però, primer hem d’afegir la placa Arduino Zero mitjançant aquest mètode.

Afortunadament per a nosaltres, la placa que volem descarregar no necessita un fitxer JSON perquè el fitxer JSON està pre-agrupat amb Arduino IDE, de manera que només hem d’instal·lar la placa des de “Boards Manager”.

Per fer-ho, aneu a "Eines" i, a continuació, amplieu el menú "Tauler". A la part superior del menú "Tauler" hi haurà el "Gestor de taulers". Feu clic a aquesta opció de menú per mostrar el gestor de taulers.

(Veure imatges)

Quan s’obri el Gestor de plaques, examinarà tots els fitxers JSON que hagi emmagatzemat a l’IDE Arduino i després descarregarà la configuració del fitxer. Hauríeu de veure una llarga llista de plaques Arduino disponibles que podeu instal·lar.

(Veure imatges)

Només ens interessa la placa "Arduino SAMD Boards (32-bits ARM Cortex-M0 +)" per a aquest tutorial, però en aquest moment podeu desviar-vos i instal·lar la placa que necessiteu. Cerqueu i instal·leu la placa "Arduino SAMD Boards (32-bits ARM Cortex-M0 +)". Això es pot fer fent clic al text de la llista seguit del botó "Instal·la" a la part dreta que apareixerà després de fer clic al text. La instal·lació trigarà un parell de minuts.

Per obtenir més informació sobre la instal·lació de noves taules: Adafruit té un fantàstic tutorial aquí que explica com instal·lar les seves taules Feature M0.

Ara que s'han instal·lat els fitxers de la placa, podem copiar-los perquè es puguin modificar per al vostre tauler personalitzat.

Pas 4: cerca i còpia de fitxers de taulers

Cerca i còpia de fitxers de taulers
Cerca i còpia de fitxers de taulers
Cerca i còpia de fitxers de taulers
Cerca i còpia de fitxers de taulers
Cerca i còpia de fitxers de taulers
Cerca i còpia de fitxers de taulers

Per al Windows, es troben els fitxers del tauler (recordeu-vos de canviar el nom d'usuari pel vostre nom d'usuari):

C: / Usuaris / nom d'usuari / AppData / Local / Arduino15 / packages

En aquesta carpeta, heu d’aprofundir una mica per accedir als fitxers que heu de copiar per modificar. Per a aquest tutorial anirem a buscar els fitxers de la placa Arduino Zero que s’instal·laran a (recordeu-vos de canviar el nom d’usuari pel vostre nom d’usuari):

C: / Usuaris / nom d'usuari / AppData / Local / Arduino15 / packages / arduino / hardware / samd

Copieu la carpeta amb número de versió que es troba en aquest directori a una carpeta nova de la carpeta Documents o la carpeta que trieu. Als efectes d’aquest tutorial, els posaré en una nova carpeta anomenada ‘taulers personalitzats’ dins de Documents.

La carpeta conté diverses carpetes i directoris. Els que farem servir s’anoten a la taula de la captura de pantalla.

Pas 5: creació de la variant

Creació de la variant
Creació de la variant
Creació de la variant
Creació de la variant
Creació de la variant
Creació de la variant
Creació de la variant
Creació de la variant

Ara estem preparats per començar a crear una entrada de tauler personalitzada. Per a aquest tutorial, faré servir el Robo HAT MM1 com a exemple. Com s’ha esmentat anteriorment, es tracta d’una placa basada en SAMD que s’assembla més a la versió Arduino Zero.

Començarem entrant a la carpeta de variants i copiant la carpeta arduino_zero que hi ha allà. Canviarem el nom de la nova variant de tauler com "robohatmm1". Podeu trucar al vostre com vulgueu.

(Veure imatge)

Dins de la carpeta robohatmm1 hi haurà els dos pins que necessitem per començar a editar: variant.cpp i variant.h. Obriu-los tots dos.

Vaig trigar una mica a treballar, així que ho explicaré aquí per estalviar-vos una mica de temps. El fitxer variant.cpp conté una gran varietat de pins als quals es fa referència a variant.h. Totes les referències de pins de variant.h són una referència a la configuració de pins en una posició particular de la matriu variant.cpp.

(Vegeu Captura de pantalla amb dos fitxers)

Per tant, la majoria de les vostres modificacions es produiran en aquests dos fitxers, però heu d’assegurar-vos que si canvieu l’ordre dels pins a variants.cpp, heu de canviar les referències al fitxer de capçalera (variants.h). Per al Robo HAT MM1, només calia canviar alguns dels pins i funcions. Això es va fer en variants.h. He afegit alguns pins PWM nous, ja que el SAMD21 és capaç de gestionar 12 canals PWM. També he afegit alguns noms per a servidors, senyals (en lloc d’ADC / Digital) i mapes personalitzats a les funcions adequades, com ara SPI, UART i I2C.

L'important que cal tenir en compte és comprovar que les referències de matriu que utilitzeu per a les funcions descrites a variants.h coincideixen amb la del pin de varaints.cpp, que ara analitzarem.

Variants.cpp és un fitxer molt potent i important. Fa tot el treball dur establint els pins perquè coincideixi amb la configuració del maquinari. La forma més senzilla d’explicar-ho és amb un exemple i una explicació de cada part.

(Vegeu la taula de la captura de pantalla)

Exemple (extracte de variants.cpp)

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

Aquest és el primer pin de la matriu variants.cpp per al Robo HAT MM1. La taula del full de dades s'ha proporcionat com a imatge (taula gris).

(Veure imatges)

Aquest pin particular s'utilitza per a la funció Pin de dades I2C. Fent un cop d'ull a la taula, podem veure que aquest pin es pot utilitzar com a pin SDA I2C (bon començament!). El pin es diu "PA22", que significa abreviatura de PORTA al pin 22. De seguida podem establir el PORT i el número del pin per a aquest pin.

El següent que hem de fer és configurar el pin com a port de comunicació sèrie. El pin disposa de comunicació en sèrie disponible mitjançant la funció C (PIO_SERCOM) mitjançant SERCOM 3 i D mitjançant SERCOM5 (PIO_SERCOM_ALT). Als efectes del Robo HAT MM1, estem utilitzant SERCOM3 per a la comunicació I2C. Això és a la funció C; alias. PIO_SERCOM per variants.cpp.

Com que tenim previst utilitzar aquest pin només com a SDA I2C, no cal establir cap de les altres funcions. Tots es poden configurar com a opcions "No" o "No" de la taula anterior. Tanmateix, si volguéssim utilitzar les altres funcions, podríem passar pel full de dades i posar-les totes en els espais correctes. Tot està al full de dades.

La modificació dels fitxers de les variants pot trigar una mica. Aneu amb compte i feu sempre una triple comprovació.

Pas 6: creeu una definició de tauler

Creeu una definició de tauler
Creeu una definició de tauler

Un cop tingueu a punt els fitxers de variants, hauria de ser directe des d’aquí. La major part del treball consistirà a copiar i enganxar o modificar i actualitzar fitxers.

Començant per boards.txt.

(Veure imatge)

Voldreu copiar i enganxar una definició de tauler que ja hi és. Recomanaria l'Arduino Zero de nou.

Per simplificar, només canvieu el nom de la placa (primera línia), usb_product, usb_manufacturer i variant (robohat). Més endavant, podeu personalitzar els altres arguments per adaptar-los a les vostres necessitats, com ara un carregador d’arrencada personalitzat o diferents VID / PID USB per identificar la vostra placa.

La variant del tauler ha de coincidir amb el nom donat a la carpeta creada al començament. Per aquest tutorial l’he anomenat ‘robohatmm1’.

També es recomana canviar la primera part de cada línia perquè coincideixi amb el nom del tauler. A la captura de pantalla, s'ha canviat a "robo_hat_mm1". Heu de triar un nom per al tauler amb el mateix format.

Això és tot per a boards.txt tret que vulgueu fer més modificacions esmentades més endavant.

Pas 7: actualitzeu la versió del tauler

Actualitza la versió del tauler
Actualitza la versió del tauler

A platforms.txt, canvieu el nom pel nom del vostre tauler personalitzat. Canvieu també el número de versió. Recordeu a què vau establir això, el necessitarem més endavant.

Pas 8: Creeu un fitxer de paquet JSON

Crea un fitxer de paquet JSON
Crea un fitxer de paquet JSON
Crea un fitxer de paquet JSON
Crea un fitxer de paquet JSON

Per instal·lar la vostra placa a Arduino IDE, haureu de crear un fitxer JSON que importareu. El fitxer JSON indica a Arduino IDE on obtenir els fitxers per instal·lar la placa, quins paquets addicionals es necessiten i alguns altres bits de metadades.

És molt important que deseu aquest fitxer fora de la carpeta on acabem de treballar.

La majoria del fitxer es pot copiar i enganxar al vostre. Només haureu de canviar la secció "taulers" i les altres metadades a la part superior del fitxer. Vegeu la captura de pantalla per saber què s’ha d’actualitzar.

(Veure imatge)

  • Secció vermella: són metadades que els usuaris poden utilitzar per trobar ajuda. Té molt poca rellevància tècnica.
  • Secció blava: tots aquests són importants. Es mostren a l'IDE Arduino. Nom, arquitectura i versió es mostraran a tothom que intenti instal·lar el paquet. Aquí és on heu de posar el número de versió des de platforms.txt. La segona secció blava és la llista de taulers que s’inclouen al paquet. Podríeu tenir diverses taules.
  • Secció verda: aquesta secció necessita més explicacions.

(Veure taula en imatges)

Un cop hàgiu creat el fitxer zip, obteniu la suma de comprovació i la mida del fitxer zip, ara podreu carregar el fitxer zip a una ubicació. Haureu de posar aquest URL al camp "url". Si el nom o alguna de les dades anteriors és incorrecte, el tauler personalitzat no s'instal·larà.

Assegureu-vos que també pengeu el fitxer package_boardname_index.json a una ubicació pública a Internet. GitHub és una bona opció.

El fitxer de tauler personalitzat Robo HAT MM1 es pot trobar aquí.

Pas 9: el pas final: instal·leu el tauler personalitzat

El pas final: instal·leu la vostra taula personalitzada
El pas final: instal·leu la vostra taula personalitzada
El pas final: instal·leu la vostra taula personalitzada
El pas final: instal·leu la vostra taula personalitzada

Tot va bé, ara hauríeu de poder incloure el fitxer JSON a Arduino IDE i instal·lar el vostre tauler personalitzat.

Incloure el fitxer JSON és fàcil. A Arduino IDE, només cal que aneu a "Fitxer"> "Preferències" i copieu i enganxeu la ubicació (URL) del vostre package_boardname_index.json a la secció "URL addicionals del gestor de taulers" a la part inferior del menú Preferències.

(Veure imatge)

A continuació, premeu D'acord.

Executeu les instruccions de dalt per instal·lar noves plaques si ho heu oblidat. Recordeu que heu de buscar el tauler personalitzat aquesta vegada.

(Veure imatge)

Per obtenir més informació sobre la instal·lació de noves taules: Adafruit té un fantàstic tutorial aquí que explica com instal·lar les seves taules Feature M0.

Pas 10: Conclusió

Conclusió
Conclusió
Conclusió
Conclusió

Ha estat divertit crear taules Arduino personalitzades. Encara hi ha molt per experimentar en el futur (afegint ports sèrie addicionals), però ha estat una gran experiència d'aprenentatge.

Assegureu-vos de consultar també la campanya Crowd Supply. Acaba l'11 de juny de 2019.

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

Espero que això us hagi ajudat o us hagueu divertit llegint!

Gràcies!

Recomanat: