İçindekiler:

Arduino IDE: Özel Panolar Oluşturma: 10 Adım
Arduino IDE: Özel Panolar Oluşturma: 10 Adım

Video: Arduino IDE: Özel Panolar Oluşturma: 10 Adım

Video: Arduino IDE: Özel Panolar Oluşturma: 10 Adım
Video: Arduino Nedir? Nasıl Kurulur ve Neler Yapılabilir? #1 2024, Temmuz
Anonim
Arduino IDE: Özel Panolar Oluşturma
Arduino IDE: Özel Panolar Oluşturma
Arduino IDE: Özel Panolar Oluşturma
Arduino IDE: Özel Panolar Oluşturma
Arduino IDE: Özel Panolar Oluşturma
Arduino IDE: Özel Panolar Oluşturma

Son altı ayda, Robotics Masters tarafından geliştirilen Robo HAT MM1 panosuna farklı kitaplıkları taşımak için çok zaman harcadım. Bu, bu kütüphaneler, perde arkasında nasıl çalıştıkları ve en önemlisi - gelecekte yeni panolar eklemek için ne yapılması gerektiği hakkında çok şey keşfetmeye yol açtı.

Bu, panoları için kütüphaneleri taşımak isteyenlere yardım etmek için yapacağım bir dizi yazımın ilki. Bilgi kaynaklarının çoğu belirsiz veya dışarıdan birinin anlaması zor olabilir. Herkes için başarılı bir limana nasıl ulaşılacağını 'gizlemeyi' ve açıklamayı umuyorum.

Bugün Arduino Platformuna bakacağız. Dünya çapında 700.000'den fazla farklı kart çeşidine sahiptir ve eğitim, endüstri ve üreticiler için en popüler elektronik platformlarından biridir.

Birçok Google Aramasından sonra bunun nasıl yapılacağına dair çok sınırlı bilgi kaynağı bulabildim. O yüzden nasıl yaptığımı detaylı bir şekilde yazayım dedim.

İşte başlıyoruz!

1. Adım: Başlamadan Önce

Bir yazılım kitaplığını veya donanım yazılımını panonuza taşımaya başlamadan önce, kullandığınız teknoloji hakkında birkaç önemli noktayı bilmeli ve aşağıdaki soruları yanıtlayabilmelisiniz.

  1. Hangi işlemciyi kullanıyorsun?
  2. Hangi mimariyi kullanıyor?
  3. Bu mikroişlemcinin veri sayfasına erişimim var mı?
  4. Piyasada aynı mikroişlemciyi kullanan benzer bir anakart var mı?

Bunlar çok önemli. Geliştirme sürecine nasıl yaklaştığınızın birçok yönünü etkileyecektir.

Arduino kartları genellikle sınırlı sayıda işlemci türü ve mimarisi kullanır. En yaygın olanı AVR mimarisini (Arduino Uno) kullanan ATMEGA serisidir. SAMD işlemcileri (ARM) ve diğer daha güçlü işlemcileri kullanarak daha yaygın hale gelen yeni nesil Arduino'lar var. Bu yüzden hangisini kullandığınızı kontrol etmek önemlidir.

Bir mikroişlemcinin veri sayfası, bellenimi derlerken kartın beklendiği gibi yanıt vermesini sağlamak için kesinlikle hayati önem taşır. Onsuz, doğru pin çıkış fonksiyonlarını ayarlayamaz veya seri portları yapılandıramazsınız.

Kullanmakta olduğunuz işlemci hakkında ihtiyacınız olan tüm bilgilere sahip olduğunuzda, yazılıma bakmaya başlayabilir ve özel kartınız için çalışacak şekilde değiştirebilirsiniz.

2. Adım: Genel Bakış

Herhangi bir projenin en zor kısmı iyi bir başlangıç noktası bulmaktır. Bu farklı değil. Arduino için özel panoların nasıl oluşturulacağına dair yeterli ayrıntıya sahip iyi öğreticiler bulmakta zorlandım. Çoğu öğretici size nasıl 'özel bir pano ekleyeceğinizi' gösterir, ancak nasıl 'özel bir pano oluşturacağınızı' göstermez. İşte nelerin dahil olduğunun kısa bir özeti.

  1. Mevcut Pano Tanımlarını İndirin ve Kopyalayın
  2. Tanım Dosyalarını Güncelleme (variant.h, varient.cpp)
  3. Pano Girişi Oluştur (board.txt)
  4. Pano Sürümünü Güncelle (platform.txt)
  5. Yüklemeye Hazırlanıyor (json)
  6. Arduino IDE'de Board Kurulumu

Her adım aşağıda ayrıntılı olarak açıklanacaktır. Arduino IDE'nin arkasında her şeyin nasıl çalıştığını netleştirmeye yardımcı olmak için her dosyanın birbiriyle nasıl etkileşime girdiğine dair kapsamlı bir tartışma da olacak.

Bu eğitimde size SAMD işlemciler için özel bir anakartın nasıl oluşturulacağını göstereceğim. Daha spesifik olarak, taşıdığım Robo HAT MM1 kartında kullanılan mikroişlemci olan SAMD21G18A.

Ayrıca Arduino IDE 1.8 veya sonraki sürümünün zaten indirildiğini varsayıyorum. Yazarken Arduino 1.8.9 kullandım.

3. Adım: Mevcut Panoları İndirme

Mevcut Panoları İndirme
Mevcut Panoları İndirme
Mevcut Panoları İndirme
Mevcut Panoları İndirme
Mevcut Panoları İndirme
Mevcut Panoları İndirme

İlk adım, kartınıza uyan en yakın varyant Arduino kartını indirmektir. SAMD kartları için bu Arduino Zero'dur.

Arduino IDE 1.6'dan bu yana, yeni panoları ortama indirme yöntemi, yazılım geliştiricilerin sağladığı özel JSON dosyalarını eklemek ve ardından özel panoları “Boards Manager” kullanarak kurmaktır. Arduino IDE'nin önceki sürümleri, bugün tartışmayacağımız farklı bir yöntem kullandı. Bu öğreticide daha sonra kendi JSON dosyamızı oluşturacağız, ancak önce bu yöntemi kullanarak Arduino Zero kartını eklememiz gerekiyor.

Şansımıza, indirmek istediğimiz panonun bir JSON dosyasına ihtiyacı yok çünkü JSON dosyası Arduino IDE ile önceden paketlenmiş durumda - bu yüzden panoyu “Boards Manager”dan kurmamız yeterli.

Bunu yapmak için “Araçlar” a gidin ve ardından “Pano” menüsünü genişletin. “Kurul” menüsünün en üstünde “Kurullar Yöneticisi” olacaktır. Boards Manager'ı getirmek için bu menü seçeneğine tıklayın.

(Resimlere Bakın)

Boards Manager açıldığında Arduino IDE'de sakladığı tüm JSON dosyalarına bakacak ve ardından dosyadan ayarları indirecektir. Yükleyebileceğiniz mevcut Arduino kartlarının uzun bir listesini görmelisiniz.

(Resimlere Bakın)

Bu eğitim için yalnızca “Arduino SAMD Boards (32-bits ARM Cortex-M0+)” kartıyla ilgileniyoruz, ancak bu noktada ihtiyacınız olan kartı saptırabilir ve kurabilirsiniz. Lütfen “Arduino SAMD Boards (32-bit ARM Cortex-M0+)” kartını arayın ve kurun. Bu, listedeki metne ve ardından sağ taraftaki metne tıkladıktan sonra görünecek olan “Yükle” düğmesine tıklayarak yapılabilir. Kurulumu birkaç dakika sürecektir.

Yeni panoların kurulumuyla ilgili daha fazla ayrıntı için: Adafruit, Feature M0 panolarının nasıl kurulacağını açıklayan harika bir öğreticiye sahiptir.

Artık pano dosyaları yüklendiğine göre, bunları özel panonuz için değiştirilebilmeleri için kopyalayabiliriz.

Adım 4: Pano Dosyalarını Bulma ve Kopyalama

Pano Dosyalarını Bulma ve Kopyalama
Pano Dosyalarını Bulma ve Kopyalama
Pano Dosyalarını Bulma ve Kopyalama
Pano Dosyalarını Bulma ve Kopyalama
Pano Dosyalarını Bulma ve Kopyalama
Pano Dosyalarını Bulma ve Kopyalama

Windows için Pano Dosyaları şurada bulunur (kullanıcı adını kullanıcı adınızla değiştirmeyi unutmayın):

C:\Kullanıcılar\kullanıcı adı\AppData\Local\Arduino15\paketler

Bu klasörde, değiştirmek için kopyalamanız gereken dosyalara ulaşmak için biraz daha derine inmeniz gerekiyor. Bu eğitim için, kurulacak olan Arduino Zero board dosyalarını alacağız (kullanıcı adınızı kullanıcı adınızla değiştirmeyi unutmayın):

C:\Kullanıcılar\kullanıcı adı\AppData\Local\Arduino15\packages\arduino\donanım\samd

Bu dizinde bulunan sürüm numaralı klasörü, Belgeler klasörünüzdeki veya seçtiğiniz klasördeki yeni bir klasöre kopyalayın. Bu eğitimin amaçları doğrultusunda, bunları Documents içinde 'özel panolar' adlı yeni bir klasöre koyacağım.

Klasör bir dizi klasör ve dizin içerir. Kullanacaklarımız ekran görüntüsündeki tabloda belirtilmiştir.

Adım 5: Varyant Oluşturma

Varyant Oluşturma
Varyant Oluşturma
Varyant Oluşturma
Varyant Oluşturma
Varyant Oluşturma
Varyant Oluşturma
Varyant Oluşturma
Varyant Oluşturma

Artık özel bir pano girişi oluşturmaya başlamaya hazırız. Bu eğitim için örnek olarak Robo HAT MM1'i kullanacağım. Daha önce belirtildiği gibi, Arduino Zero yapısına en yakın olan SAMD tabanlı bir karttır.

Varyans klasörüne girip orada bulunan arduino_zero klasörünü kopyalayarak başlayacağız. Yeni tahta varyantını 'robohatmm1' olarak yeniden adlandıracağız. Sizinkini istediğiniz gibi arayabilirsiniz.

(Resme bakın)

robohatmm1 klasörünün içinde düzenlemeye başlamamız gereken iki pin olacak: varyant.cpp ve varyant.h. İkisini de açın.

Bu benim çalışmam biraz zaman aldı, bu yüzden size biraz zaman kazandırmak için burada açıklayacağım. varyant.cpp dosyası, varyant.h'de referans verilen çok geniş bir pin dizisi içerir. varyant.h içindeki tüm pin referansları, varyant.cpp dizisindeki belirli bir konumdaki pin konfigürasyonuna referanstır.

(Bkz. İki Dosyalı Ekran Görüntüsü)

Bu nedenle, düzenlemelerinizin çoğu bu iki dosyada da olacak, ancak varyants.cpp'deki pinlerin sırasını değiştirirseniz, başlık dosyasındaki (variants.h) referansları değiştirmeniz gerektiğinden emin olmanız gerekir. Robo HAT MM1 için sadece bazı pinleri ve fonksiyonları değiştirmem gerekiyordu. Bu, varyantlarda yapıldı.h. SAMD21 12 PWM kanalını işleyebildiği için bazı yeni PWM pinleri ekledim. Ayrıca Servolar, Sinyaller (ADC/Dijital yerine) ve doğru işlevlere özel eşleme için bazı adlar ekledim - SPI, UART ve I2C gibi.

Unutulmaması gereken önemli şey, varyants.h'de belirtilen işlevler için kullandığınız dizi referanslarının varaints.cpp'deki piminkiyle eşleşip eşleşmediğini iki kez kontrol etmektir - buna şimdi bakacağız.

Variants.cpp çok güçlü ve önemli bir dosyadır. Pinleri donanım ayarlarına uyacak şekilde ayarlamanın tüm zor işini yapar. Bunu açıklamanın en kolay yolu, her parçanın bir örneği ve açıklamasıdır.

(Ekran Görüntüsünde Tabloya Bakınız)

Örnek (varyans.cpp'den alıntı)

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

Bu, Robo HAT MM1 için varyants.cpp dizisindeki ilk pimdir. Veri sayfasındaki tablo bir resim olarak sağlanmıştır (gri tablo).

(Resimlere Bakın)

Bu özel pin, I2C Veri Pin Fonksiyonu için kullanılır. Tabloya baktığımızda bu pinin I2C SDA pini olarak kullanılabildiğini görebiliyoruz (iyi bir başlangıç!). Pin 22'deki PORTA'nın kısaltması olan “PA22” olarak adlandırılmıştır. Bu pin için PORT ve pin numarasını hemen ayarlayabiliriz.

Bundan sonra yapmamız gereken pini seri haberleşme portu olarak ayarlamak. Pin, SERCOM 3 (PIO_SERCOM_ALT) kullanılarak SERCOM 3 ve D kullanılarak fonksiyon C (PIO_SERCOM) üzerinden seri iletişime sahiptir. Robo HAT MM1'in amaçları doğrultusunda I2C iletişimi için SERCOM3 kullanıyoruz. Bu, C İşlevindedir; diğer adıyla. Varyantlar.cpp için PIO_SERCOM.

Bu pini sadece I2C SDA olarak kullanmayı planladığımız için diğer fonksiyonların hiçbirini ayarlamaya gerek yoktur. Hepsi bir önceki tablodan “Hayır” veya “Değil” seçenekleri olarak ayarlanabilir. Bununla birlikte, diğer işlevleri kullanmak isteseydik - veri sayfasını gözden geçirebilir ve hepsini doğru alanlara koyabiliriz. Hepsi veri sayfasında var.

Varyant dosyalarının değiştirilmesi biraz zaman alabilir. Dikkatli olun ve her zaman üç kez kontrol edin.

6. Adım: Bir Pano Tanımı Oluşturun

Bir Pano Tanımı Oluşturun
Bir Pano Tanımı Oluşturun

Varyant dosyalarınızı hazır hale getirdikten sonra, buradan itibaren doğrudan olmalıdır. İşin çoğu, dosyaları kopyalayıp yapıştırmak veya değiştirmek ve güncellemek olacaktır.

boards.txt ile başlayarak.

(Resme bakın)

Zaten orada olan bir pano tanımını kopyalayıp yapıştırmak isteyeceksiniz. Arduino Zero'yu tekrar tavsiye ederim.

Kolaylık sağlamak için yalnızca pano adını (ilk satır), usb_product, usb_manufacturer ve varyantı (robohat) değiştirin. Diğer argümanları daha sonra ihtiyaçlarınıza göre özelleştirebilirsiniz - örneğin özel bir önyükleyici veya kartınızı tanımlamak için farklı USB VID/PID'ler gibi.

Pano varyantı, başlangıçta oluşturulan klasöre verilen adla eşleşmelidir. Bu eğitim için ona 'robohatmm1' adını verdim.

Ayrıca her satırın ilk bölümünü pano adınızla eşleşecek şekilde değiştirmeniz önerilir. Ekran görüntüsünde 'robo_hat_mm1' olarak değiştirilmiştir. Panonuz için aynı formatta bir isim seçmelisiniz.

Yukarıda bahsedilen değişiklikleri daha sonra yapmak istemiyorsanız, bu tamamen boards.txt içindir.

7. Adım: Anakart Sürümünü Güncelleyin

Pano Sürümünü Güncelle
Pano Sürümünü Güncelle

Platformlar.txt dosyasında, adı özel panonuzun adıyla değiştirin. Ayrıca sürüm numarasını da değiştirin. Bunu neye ayarladığını hatırla, daha sonra ihtiyacımız olacak.

Adım 8: JSON Paket Dosyası Oluşturun

JSON Paket Dosyası Oluştur
JSON Paket Dosyası Oluştur
JSON Paket Dosyası Oluştur
JSON Paket Dosyası Oluştur

Kartınızı Arduino IDE'ye kurmak için içe aktaracağınız bir JSON dosyası oluşturmanız gerekecektir. JSON dosyası, Arduino IDE'ye panoyu kurmak için dosyaların nereden alınacağını, hangi ekstra paketlerin gerekli olduğunu ve diğer birkaç meta veri bitini söyler.

Bu dosyayı az önce çalıştığımız klasörün dışına kaydetmeniz çok önemlidir.

Dosyanın çoğu kopyalanabilir ve dosyanıza yapıştırılabilir. Yalnızca "panolar" bölümünü ve dosyanın üstündeki diğer meta verileri değiştirmeniz gerekecektir. Güncellenmesi gerekenler için ekran görüntüsüne bakın.

(Resme bakın)

  • Kırmızı Bölüm: Bu, kullanıcıların yardım bulmak için kullanabileceği meta verilerdir. Çok az teknik önemi vardır.
  • Mavi Bölüm: Bunların hepsi önemlidir. Arduino IDE'de gösterirler. Paketi yüklemeye çalışan herkese Ad, Mimari ve Sürüm gösterilecektir. Burası, platformlar.txt'den sürüm numarasını girmeniz gereken yerdir. İkinci mavi bölüm, pakete dahil olan panoların listesidir. Birden fazla panonuz olabilir.
  • Yeşil Bölüm: Bu bölümün daha fazla açıklamaya ihtiyacı var.

(Görsellerdeki Tabloya Bakınız)

Zip dosyasını oluşturduktan, zip dosyası sağlama toplamını ve dosya boyutunu aldıktan sonra, artık zip dosyasını bir konuma yükleyebilirsiniz. Bu URL'yi 'url' alanına koymanız gerekecek. Ad veya yukarıdaki ayrıntılardan herhangi biri yanlışsa, özel panonuz yüklenemeyecektir.

Ayrıca package_boardname_index.json dosyanızı internette herkese açık bir konuma yüklediğinizden emin olun. GitHub iyi bir seçenektir.

Robo HAT MM1 özel pano dosyası burada bulunabilir.

9. Adım: Son Adım - Özel Panonuzu Kurun

Son Adım - Özel Kartınızı Kurun!
Son Adım - Özel Kartınızı Kurun!
Son Adım - Özel Kartınızı Kurun!
Son Adım - Özel Kartınızı Kurun!

Her şey yolunda gidiyor, artık JSON dosyanızı Arduino IDE'ye ekleyebilmeli ve özel kartınızı kurabilmelisiniz.

JSON dosyasını dahil etmek kolaydır! Arduino IDE'de - "Dosya" > "Tercihler"e gidin ve package_boardname_index.json dosyanızın konumunu (URL) kopyalayıp Tercihler menüsünün altındaki "Ek Pano Yöneticisi URL'leri" bölümüne yapıştırın.

(Resme bakın)

Ardından Tamam'a basın.

Unuttuysanız, yeni panoları kurmak için yukarıdaki talimatları uygulayın. Bu sefer özel panonuzu aramayı unutmayın!

(Resme bakın)

Yeni panoların kurulumuyla ilgili daha fazla ayrıntı için: Adafruit, Feature M0 panolarının nasıl kurulacağını açıklayan harika bir öğreticiye sahiptir.

Adım 10: Sonuç

Çözüm
Çözüm
Çözüm
Çözüm

Bu, özel Arduino panoları oluşturmak eğlenceliydi. Gelecekte deneyebileceğim çok şey var (ek seri bağlantı noktaları ekleyerek), ancak bu harika bir öğrenme deneyimi oldu!

Crowd Supply kampanyasını da kontrol ettiğinizden emin olun. 11 Haziran 2019'da sona eriyor.

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

Umarım bu size yardımcı olmuştur veya okurken eğlenmişsinizdir!

Teşekkürler!

Önerilen: