Съдържание:

Arduino IDE: Създаване на персонализирани табла: 10 стъпки
Arduino IDE: Създаване на персонализирани табла: 10 стъпки

Видео: Arduino IDE: Създаване на персонализирани табла: 10 стъпки

Видео: Arduino IDE: Създаване на персонализирани табла: 10 стъпки
Видео: Learn Arduino in 30 Minutes: Examples and projects 2024, Юли
Anonim
Arduino IDE: Създаване на персонализирани табла
Arduino IDE: Създаване на персонализирани табла
Arduino IDE: Създаване на персонализирани табла
Arduino IDE: Създаване на персонализирани табла
Arduino IDE: Създаване на персонализирани табла
Arduino IDE: Създаване на персонализирани табла

През последните шест месеца прекарах много време в пренасянето на различни библиотеки към дъската Robo HAT MM1, разработена от Robotics Masters. Това доведе до откриването на много неща за тези библиотеки, как те работят зад кулисите и най -важното - какво да направите, за да добавите нови дъски в бъдеще.

Това е първото от поредицата писания, които ще направя, за да помогна на други, които желаят да пренасят библиотеки за своите дъски. Много от източниците на информация могат да бъдат неясни или трудни за разбиране от външни лица. Надявам се да „демистифицирам“и да обясня как да постигна успешно пристанище за всички.

Днес ще разгледаме платформата Arduino. Той има над 700 000 различни варианта на платки по целия свят и е една от най -популярните електронни платформи за образование, индустрия и производители.

Успях да намеря много ограничени източници на информация как да направя това след много търсения в Google. Затова реших да напиша подробно как съм го направил.

Ето ни!

Стъпка 1: Преди да започнете

Преди да започнете да пренасяте софтуерна библиотека или фърмуер на дъската си, трябва да знаете няколко ключови точки за технологията, която използвате, и да можете да отговорите на въпросите по -долу.

  1. Какъв процесор използвате?
  2. Каква архитектура използва?
  3. Имам ли достъп до листа с данни за този микропроцесор?
  4. Има ли подобна платка на пазара, която използва същия микропроцесор?

Те са много важни. Това ще повлияе на много аспекти от начина, по който подхождате към процеса на разработка.

Платките Arduino обикновено използват ограничен брой типове процесори и архитектури. Най -често срещаната е гамата ATMEGA, използваща AVR архитектурата (Arduino Uno). Има по -нови поколения Arduinos, които стават все по -често използвани процесори SAMD (ARM) и други по -мощни процесори. Затова е важно да проверите кой от тях използвате.

Информационният лист за микропроцесор е абсолютно жизненоважен, за да се гарантира, че платката реагира според очакванията, когато компилирате фърмуера. Без него няма да можете да настроите правилните изходни функции на щифтове или да конфигурирате серийни портове.

След като имате цялата необходима информация за процесора, който използвате, можете да започнете да разглеждате софтуера и да го променяте, за да работи за вашата персонализирана платка.

Стъпка 2: Общ преглед

Най -трудната част от всеки проект е намирането на добра отправна точка. Това не е по -различно. Мъчих се да намеря добри уроци с достатъчно подробности за това как да създам персонализирани дъски за Arduino. Повечето уроци ви показват как да „добавите персонализирана дъска“, но не и как да „създадете персонализирана дъска“. Ето кратко резюме на това, което става въпрос.

  1. Изтеглете съществуващите дефиниции на борда и копирайте
  2. Актуализиране на дефиниционни файлове (variant.h, varient.cpp)
  3. Създаване на запис на борда (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 файлове, които разработчиците на софтуер предоставят, и след това инсталиране на персонализирани платки с помощта на „Boards Manager“. Предишните версии на Arduino IDE използваха различен метод, който няма да обсъждаме днес. По -късно в този урок ще създаваме наш собствен JSON файл, но първо трябва да добавим дъската Arduino Zero, използвайки този метод.

За наш късмет, платката, която искаме да изтеглим, не се нуждае от JSON файл, тъй като JSON файлът е предварително свързан с Arduino IDE - затова просто трябва да инсталираме дъската от „Boards Manager“.

За да направите това, отидете на „Инструменти“, след което разгънете менюто „Табло“. В горната част на менюто „Табло“ще бъде „Управител на табла“. Щракнете върху тази опция от менюто, за да изведете мениджъра на дъските.

(Вижте изображенията)

Когато Boards Manager се отвори, той ще разгледа всички JSON файлове, които е съхранил в IDE на Arduino и след това ще изтегли настройките от файла. Трябва да видите дълъг списък от налични платки Arduino, които можете да инсталирате.

(Вижте изображенията)

Интересуваме се само от дъската „Arduino SAMD (32-битови ARM Cortex-M0+)“за този урок, но на този етап можете да се отклоните и да инсталирате необходимата платка. Моля, потърсете и инсталирайте платката „Arduino SAMD платки (32-битов ARM Cortex-M0+)“. Това може да стане, като щракнете върху текста от списъка, последван от бутона „Инсталиране“от дясната страна, който ще се появи, след като щракнете върху текста. Инсталирането ще отнеме няколко минути.

За повече подробности за инсталиране на нови дъски: Adafruit имат страхотен урок тук, който обяснява как да инсталирате техните Feature M0 дъски.

След като файловете на борда са инсталирани, можем да ги копираме, така че да могат да бъдат модифицирани за вашата персонализирана дъска.

Стъпка 4: Намиране и копиране на файлове на дъската

Намиране и копиране на файлове на дъската
Намиране и копиране на файлове на дъската
Намиране и копиране на файлове на дъската
Намиране и копиране на файлове на дъската
Намиране и копиране на файлове на дъската
Намиране и копиране на файлове на дъската

За Windows файловете на борда се намират в (не забравяйте да промените потребителското име на вашето потребителско име):

C: / Потребители / потребителско име / AppData / Local / Arduino15 / пакети

В тази папка трябва да отидете малко по -дълбоко, за да стигнете до файловете, които трябва да копирате, за да промените. За този урок ще отидем и ще получим файловете на дъската на Arduino Zero, които ще бъдат инсталирани на (не забравяйте да промените потребителското име на вашето потребителско име):

C: / Потребители / потребителско име / AppData / Local / Arduino15 / пакети / arduino / hardware / samd

Копирайте папката с номерирана версия, намираща се в тази директория, в нова папка във вашата папка Документи или папка по ваш избор. За целите на този урок ще ги поставя в нова папка, наречена „персонализирани дъски“в Documents.

Папката съдържа редица папки и директории. Тези, които ще използваме, са отбелязани в таблицата на екрана.

Стъпка 5: Създаване на вариант

Създаване на вариант
Създаване на вариант
Създаване на вариант
Създаване на вариант
Създаване на вариант
Създаване на вариант
Създаване на вариант
Създаване на вариант

Вече сме готови да започнем да създаваме персонализиран запис на дъската. За този урок ще използвам Robo HAT MM1 като пример. Както бе споменато по -рано, това е платка, базирана на SAMD, която е най -близо до компилацията на Arduino Zero.

Ще започнем, като отидем в папката с варианти и копираме папката arduino_zero, която се намира там. Ще преименуваме новия вариант на дъската „robohatmm1“. Можеш да се обадиш на твоя както искаш.

(Вижте изображението)

Вътре в папката robohatmm1 ще има двата пина, които трябва да започнем да редактираме: variant.cpp и variant.h. Отворете и двете.

Това ми отне известно време, за да работя, така че ще го обясня тук, за да ви спестя малко време. Файлът variant.cpp съдържа много голям масив от пинове, към който се позовава в variant.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

Това е първият щифт в масива variants.cpp за Robo HAT MM1. Таблицата от листа с данни е предоставена като изображение (сива таблица).

(Вижте изображенията)

Този конкретен щифт се използва за I2C Data Pin функция. Разглеждайки таблицата, можем да видим, че този щифт може да се използва като I2C SDA щифт (добър старт!). Щифтът е кръстен „PA22“, което е съкращение от PORTA на пин 22. Веднага можем да зададем PORT и номера на пина за този щифт.

Следващото нещо, което трябва да направим, е да зададем щифта като сериен комуникационен порт. Пинът има серийна комуникация, достъпна чрез функция C (PIO_SERCOM), използвайки SERCOM 3 и D, използвайки SERCOM5 (PIO_SERCOM_ALT). За целите на Robo HAT MM1, ние използваме SERCOM3 за I2C комуникация. Това е на функция C; известен още като PIO_SERCOM за варианти.cpp.

Тъй като планираме да използваме този щифт само като I2C SDA, няма нужда да задавате някоя от другите функции. Всички те могат да бъдат зададени като опции „Не“или „Не“от предишната таблица. Ако обаче искаме да използваме другите функции - бихме могли да преминем през листа с данни и да ги поставим всички в правилните пространства. Всичко е в листа с данни.

Промяната на файловете с варианти може да отнеме известно време. Бъдете внимателни и проверявайте винаги тройно.

Стъпка 6: Създайте дефиниция на борда

Създайте определение на борда
Създайте определение на борда

След като сте подготвили вашите вариантни файлове, това трябва да е направо оттук. По -голямата част от работата ще бъде копиране и поставяне или промяна и актуализиране на файлове.

Започвайки с board.txt.

(Вижте изображението)

Ще искате да копирате и поставите определение на дъска, което вече е там. Бих препоръчал отново Arduino Zero.

За опростяване, променете само името на дъската (първи ред), usb_product, usb_manufacturer и вариант (robohat). Можете да персонализирате другите аргументи по -късно, за да отговарят на вашите нужди - като например персонализиран буутлоудър или различни USB VID/PID за идентифициране на вашата платка.

Вариантът на дъската трябва да съвпада с името, дадено на папката, създадена в началото. За този урок го нарекох „robohatmm1“.

Също така би било препоръчително да промените първата част на всеки ред, така че да съответства на името на дъската ви. На екранната снимка той е променен на „robo_hat_mm1“. Трябва да изберете име за вашата дъска със същия формат.

Това е всичко за board.txt, освен ако не искате да направите допълнителни модификации, споменати по -горе по -късно.

Стъпка 7: Актуализиране на версията на борда

Актуализирайте версията на борда
Актуализирайте версията на борда

В Platform.txt променете името на името на вашата персонализирана дъска. Променете и номера на версията. Запомнете на какво сте настроили това, ще ни трябва по -късно.

Стъпка 8: Създайте файл с пакети JSON

Създайте JSON пакет файл
Създайте JSON пакет файл
Създайте JSON пакет файл
Създайте JSON пакет файл

За да инсталирате дъската си в Arduino IDE, ще трябва да създадете JSON файл, който да импортирате. JSON файлът казва на Arduino IDE къде да вземе файловете за инсталиране на платката, какви допълнителни пакети са необходими и няколко други бита метаданни.

Много е важно да запишете този файл извън папката, в която току -що работихме.

По -голямата част от файла може да бъде копиран и поставен във вашия. Ще трябва само да промените секцията „дъски“и другите метаданни в горната част на файла. Вижте екранна снимка за това, което трябва да се актуализира.

(Вижте изображението)

  • Червен раздел: Това са метаданни, които потребителите могат да използват за намиране на помощ. Той има много малко техническо значение.
  • Синя секция: Всичко това е важно. Те се показват в IDE на Arduino. Името, архитектурата и версията ще бъдат показани на всеки, който се опитва да инсталира пакета. Тук трябва да поставите номера на версията от platform.txt. Вторият син раздел е списъкът на дъските, които са включени в пакета. Можете да имате няколко дъски.
  • Зелен раздел: Този раздел се нуждае от допълнително обяснение.

(Вижте таблицата в изображенията)

След като сте създали zip файла, сте получили контролната сума на zip файла и размера на файла, сега можете да качите zip файла на място. Ще трябва да поставите този URL адрес в полето „url“. Ако името или някоя от горните подробности са неправилни, вашата персонализирана дъска няма да успее да се инсталира.

Не забравяйте също да качите файла package_boardname_index.json на публично място в интернет. GitHub е добър вариант.

Файлът за персонализирана дъска на Robo HAT MM1 може да бъде намерен тук.

Стъпка 9: Последната стъпка - Инсталирайте своя персонализиран съвет

Последната стъпка - Инсталирайте своя персонализиран съвет!
Последната стъпка - Инсталирайте своя персонализиран съвет!
Последната стъпка - Инсталирайте своя персонализиран съвет!
Последната стъпка - Инсталирайте своя персонализиран съвет!

Всичко върви добре, сега трябва да можете да включите вашия JSON файл в Arduino IDE и да инсталирате вашата персонализирана платка.

Включването на JSON файла е лесно! В Arduino IDE - просто отидете на „Файл“> „Предпочитания“и копирайте и поставете местоположението (URL) на вашия package_boardname_index.json в раздела „Допълнителни URL адреси на мениджърите на табла“в долната част на менюто Предпочитания.

(Вижте изображението)

След това натиснете OK.

Изпълнете инструкциите отгоре за инсталиране на нови платки, ако сте забравили. Не забравяйте да потърсите своя персонализирана дъска този път!

(Вижте изображението)

За повече подробности за инсталиране на нови дъски: Adafruit имат страхотен урок тук, който обяснява как да инсталирате техните Feature M0 дъски.

Стъпка 10: Заключение

Заключение
Заключение
Заключение
Заключение

Това беше забавно при създаването на персонализирани дъски Arduino. Все още има много неща, с които да експериментирам в бъдеще (добавяне на допълнителни серийни портове), но това беше страхотно обучение!

Не забравяйте да разгледате и кампанията Crowd Supply. Той приключва на 11 юни 2019 г.

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

Надявам се, че това ви е помогнало или сте се забавлявали да четете заедно!

Благодаря!

Препоръчано: