Mevcut tüm Arduino kütüphanelerinin merkezi deposunu nerede bulabilirim?


12

Şu anda; yeni bir donanım ile yeni bir Arduino projesine başladığımda yaptığım ilk şey, bu donanım için Arduino desteği sağlayan 3. taraf kütüphaneleri aramak.

İlk gördüğüm yerler:

Genel olarak, farklı düzeylerde dokümantasyon, farklı test seviyeleri ile farklı konumlarda destek kütüphanesi veya birkaç farklı kütüphane (sadece bir tane bulmak oldukça nadir) buluyorum ...

İhtiyacım olan kütüphaneyi bulduğumda (bazen birkaçını denemem gerekiyor), onu Arduino kütüphaneler klasörüne indiriyorum, kullanıyorum ve unutuyorum.

Bu işlemi hantal buldum:

  • her zaman iyi belgelenmemiş farklı olası seçeneklerle manuel arama
  • Arduino kütüphanelerine manuel indirme ve yükleme
  • işlemde sürüm kontrolü yok (kitaplığın tüm sürümleri aynı ada sahiptir ve bu nedenle Arduino kitaplığı klasöründe bir arada bulunamaz).

Keşke arduino için mevcut tüm kütüphaneleri içeren merkezi bir depo olsaydı:

  • açıklama (desteklenen donanım, desteklenen kartlar)
  • kaynak kodu
  • belgeleme
  • versiyonları

Ve proje oluşturma zamanında bu depoya erişmek için bir araç (Arduino IDE veya harici).

Aslında Arduino için bir çeşit maven .

Bir zamanlar Arduino forumunda birkaç tartışma gerçekleştiğini gördüm, ancak hiçbir yere götürmedikleri anlaşılıyor:

Kullanılabilir bir şey haline getiren başka seçenekler var mı (topluluktan veya bireylerden, neden olmasın)?


Bu , başka bir dilde bir analoga ihtiyaç duyuyorsa , Python'daki PyPi pypi.python.org/pypi ve virtualenv ile benzerdir .
Cybergibbons

Başka bir iyi kaynak PJRC pjrc.com/teensy/td_libs.html
Cybergibbons

Bir şey bana kütüphane etiketi wiki'nin böyle bir veritabanı oluşturmak için iyi bir yer olacağını söylüyor. ~ 35.000 karakter çok kapsamlı bir liste oluşturmak için yeterli alan sağlamalıdır.
asheeshr

@AsheeshR neden olmasın? Ancak önce, her kütüphane girişi için neyin gerekli (ve neyin isteğe bağlı) olduğunun açık bir açıklaması tanımlanacaktır, böylece eklenen her giriş için bu 3 şablon3 takip edilebilir.
jfpoilpret

@jfpoilpret Arduino Meta tartışması için bir konu .
asheeshr

Yanıtlar:


5

Bu soru ilk sorulduğundan beri Arduino IDE'de yerleşik Arduino Kütüphane Yöneticisi var. Burada kitaplıkları arayabilir ve yükleyebilirsiniz.

Kütüphane yöneticisinin burada nasıl çalıştığı hakkında bilgi var: https://github.com/arduino/Arduino/wiki/Library-Manager-FAQ

Ancak kütüphaneleri listeleyen resmi bir web sitesi yok, bu yüzden son zamanlarda bu resmi olmayan siteyi Arduino Kütüphane Yöneticisi'nde aynı verilere dayanarak oluşturdum:

http://www.arduinolibraries.info/


4

Az önce çalıştığım şirketin çözmeye çalıştığı sorunları anlattınız. Geçenlerde adında bir ürün launced ettik biicode . Tam olarak aradığınız şey gibi görünüyor.

biicode hem kod için çevrimiçi bir merkezi depo hem de aşağıdakileri içeren bir istemci aracıdır:

  • Yeni başlayanlar tarafından kullanımı kolay, daha ileri düzey kullanıcılar için yapılandırılabilir
  • Bağımlılıkların çözümü, maven gibi geçişli olarak, ancak yapılandırma dosyaları olmadan: bağımlılıkları doğrudan kaynak kodundan okur.
  • Merkezi depo, herkes kütüphanelerini yükleyebilir. Web'de araştırılabilir, gezilebilir ve keşfedilebilir
  • Sürüm kontrolü: sürüm uyumluluğunu kontrol eder ve bağımlılıkların güvenli bir şekilde güncellenmesine izin verir
  • Herhangi bir metin düzenleyicisiyle kullanabilirsiniz (isteğe bağlı tutulma desteğine sahiptir)
  • Proje kurulumunu ve derlemelerini yönetir, üretilen ürün yazılımını panoya yanıp söner
  • Artı olarak güzel bir seri monitörü var

Hızlı bir demo burada görebilir ve dokümantasyonda daha fazla bilgi bulabilirsiniz .


2014, 2018 hala üretimde cevap verdi?
parohy

Hayır, artık jfrog'dan conan.io ve artık arduino'yu destekleyip desteklemediğini bilmiyorum
hithwen


2

Eğer böyle bir kayıt defteri kendini oluşturmak istiyorsanız, bir göz atmak isteyebilirsiniz NPM , paket yöneticisini node.js açık kaynak ve açıkladığınız istediğiniz kapsamında çok benzer. Npm her ikisi de:

  1. her kütüphane hakkında meta veri içeren merkezi bir kayıt defteri:
    • ad, açıklama, anahtar kelimeler, ana sayfa, yazar, katkıda bulunanlar
    • sürüm numarası, ilke olarak semantik sürümlemeye uygun
    • Kaynak havuzun URL'si (svn, git, github, gitlab, bitbucket ...)
    • uyumluluk bilgileri (bu durumda Düğümün sürümleriyle ilgilidir)
    • lisans
    • bağımlılıklar
  2. için bir komut satırı aracı:
    • kayıt defterini aramak
    • paketleri indirme ve yükleme, bağımlılıklarını yinelemeli olarak izleme
    • kendi paketlerinizi kayıt defterinde yayınlamak ve güncellemek.

Örneğin bir sayfasına bakınız popüler kütüphaneye ve JSON dosyasını meta verilerini tutan.


1

Hiç yok. Ne yazık ki, ilgilendiğiniz her kütüphaneyi manuel olarak aramanız gerekecektir.

Böyle bir merkezi depo oluşturmakla ilgileniyorsanız, harika olsa da, bunu yapmak için doğru forum değildir.


O zaman böyle bir depo oluştursaydık ne önerirsiniz?
jfpoilpret

Ah ... başlasın mı? Ne demek istedin? Temelde bir web sitesi. Arduino metin editörüne gerçekten bir paket yöneticisi eklediyseniz, gerçekten içine girdiyseniz? Asıl mesele, her zaman olduğu gibi, insanların onu gerçekten kullanmasını sağlamak olacaktır.
Connor Wolf

1
Açıkçası, arduino metin editörüne bir süslü paket yöneticisi ekleseniz bile, ne tür bir evlat edineceğinizi bilmiyorum, çünkü arduino editörü korkunçtur ve insanlar bunu oldukça kısa sırada kullanmayı bırakma eğilimindedir . Bu nedenle, neredeyse ayrı bir paket yöneticisine ihtiyacınız olacak, bu yüzden neredeyse sadece kütüphane indeksi, kısa bir bulanıklık ve gerçekte barındırıldıkları yerlere bağlantılar içeren temel bir web sitesinin en iyi bahis olduğunu söyleyebilirim .
Connor Wolf

Benim fikrim de buydu, amaç kütüphaneleri barındırmak değil, yararlı meta verilerle birlikte referansları tutmaktı. Arduino IDE ile ilgili olarak, katılıyorum, çok sık kullanmıyorum, ancak daha sonra harici bir aracın onunla entegre edilmesi kolay olmalı.
jfpoilpret

@jfpoilpret - Harici bir araçla ilgili sorun, paket yöneticilerinde olduğu gibi, bağımlılık çözümlemesi ve sürüm gereksinimi yönetimidir. Arduino halkı geriye dönük uyumluluğu koruyarak fazla rahatsız görünmüyor ve birçok kütüphane "arduino verson {blah}" gerektiriyor. Gerçekten sadece bir referans listesi en iyi bahis olduğunu düşünüyorum. Daha karmaşık şeyler daha sonra gelebilir.
Connor Wolf

0

Arduino IDE ve ilgili kütüphaneler, çoğu işletim sistemi deposunda yüklenebilir yazılım olarak bulunur. Ne yazık ki bu depolardaki sürümler genellikle birkaç ay hatta yıllardır güncel değil. Bu asıl sorun, işletim sistemi veri havuzu yöneticilerinin kullanılabilir olduklarında yeni sürümleri dahil etmelerini sağlamak gibi görünüyor.

Bu sorun, işletim sistemi sürümünüz en son sürüme güncellenmediğinde daha da karmaşıklaşır, çünkü bu sizi güncel olmayan bir yazılım deposu kullanmaya zorlar.

Mükemmel bir yanıt olmasa da, muhtemelen işletim sisteminizin en son sürümünü kullandığınızdan emin olmalısınız ve daha sonra bu işletim sisteminin depo yöneticilerini Arduino IDE'nin en son sürümünü kullanmaya teşvik etmelisiniz.

Bir alternatif, Arduino.org ana sayfasına gitmek ve en son IDE'yi ve ilgili kütüphaneleri indirmek ve yüklemek için talimatları takip etmek olacaktır. Bu muhtemelen bir .tar.gz dosyası biçiminde olacaktır, bu nedenle gerekli yazılımı nasıl açacağınızı, açacağınızı ve nasıl oluşturacağınızı bilmeniz gerekir.


0

Bence, dileğin gerçekleşmeyecek. Bunu umuyorum, çünkü tüm Arduino kütüphanecileri için tek bir yere sahip olmak, hiçbir kütüphaneye izin verilmiyordu ve tüm bu kütüphaneler kalite, test ve dokümantasyonun tüm ticari standartlarına (+ kod kalitesi, etkililik ve okunabilirlik) dayanmak zorunda kalacaktı yani, sadece profesyonellerin ve benzer niteliklere sahip ekiplerin bazı Arduino kütüphanelerini yayınlamasına izin verilecek ve hepsi tek bir varlık tarafından yönetilecek ve bu da işlevsel olarak yinelenen veya benzer kütüphanelerin kaldırılmasını zorunlu kılacaktır. Ve böyle bir varlık soner veya daha sonra kötülük olurdu.

Arduino'yu özgür olduğu için seviyorum ve bu da, bazı donanımların (kullanmak istediğim) bazı özelliklerini (sahip olduğum, satın almayı veya kendim yapmayı planladığımı - desteklemek için kütüphane yazmakta özgür olduğum anlamına geliyor. deneysel ve belki dengesiz, ama benim için eğlenceli).

Büyük Merkezi Otoritenizin etkili olmasıyla, sadece başka bir ücretsiz platform seçerim, daha sonra hobimin elektronikle oynamasının mükemmel ve ticari olarak sertifikalı sonucundan daha az dava açılır ve serbest zamanlarımdaki hedeflerim için DEĞİLDİR.

Ve Büyük Merkezi Yetkinliğiniz beni onlar için zorla ücretsiz emek çalışmasına zorlamıyorsa, kütüphanem hakkında bazı ortak donanımların özel bir kullanımını sağlayan ve yapmasa bile onu istemeyen kimseyle paylaşma konusunda ne yapardınız? tüm HW işlevselliğini profesyonel bir şekilde tamamen çözer ve sadece boş zamanlarımı dokümantasyonla harcayacağım kadar belgelendiririm. Ve aynı HW için işlevselliğin başka bir bölümünü etkinleştirecek veya tüm sorunluya başka bir API ve başka bir yaklaşım kullanacak başka bir kütüphane ortaya çıkarsa ne olur?

Yani ben çok 7 segmentli bir modül aldım ve onun üreticisi için "resmi kütüphane" vardı. Aynı modül için başka bir kütüphane yaptım. Şimdi ne var? Kütüphanem Merkez Depo'da "bu HW için tek kütüphane" olarak mı olmalı yoksa "üreticiden resmi kütüphane" mi olmalı? Her ikisi de olsaydı, talep edilen "bir ve tek" kitaplık noktanızı kıracağından emin olun. Üreticiye izin vermiyorsanız, o zaman "tek", sayılar için entegre tampon, basit nesne arayüzü, basit örnek, nasıl kullanılacağı ve belirli bir zamanlayıcıya ve jenerike bağımlılık olacaktır. kullanıcının bir şekilde tek basamaklı tam sayıları kırmasını gerektiren nesne olmayan, sadece işlevsel API - çok iyi görünmüyor. Kütüphaneme izin vermezseniz, kullanıcı yukarıdakilere sahip olurdu, ancak ekranı saniyede sadece 10x yenileyecek ve diğer basamakların hayaletlerini her yerde bırakacak, işlemciyi tamamen kullanacak ve dokümantasyon esas olarak çince olacaktır. Ve kullanıcı neredeyse hiç işlemci, güzel temiz rakamlar VE karakterler (potansiyel olarak kullanıcı tanımlı) kullanımı ile saniyede 100x yenileme oranını kaçırır. - İyi de değil.

Mevcut kaos durumunda (belki siz veya başka herhangi biri) kütüphaneyi kendi ihtiyaçlarına daha uygun (basitlik ve yerel tamsayı desteği veya hızlı yenileme ve düşük CPU kullanımı olsun) kullanabilir veya her ikisini birlikte kullanabilir, hızlı yenileme VE basit tamsayı manipülasyonu VE kullanıcı tanımlı karakter seti, üçüncü güzel nesne API ve zengin belgeler ile üçüncü yapma. Sadece biraz zaman ve özveri ile bir kişi gerekir yeni başlayanlar ve bazı İngilizce becerileri ve nesnelerin temel bilgi ve "resmi Arduino kütüphaneleri" paketlenmiş nasıl kolaylaştırır, böylece IDE kolayca ithal edebilirsiniz. (Ve bu kişi bunu yapmalı ve Arduino kütüphane paketleyicisine katkıda bulunmalıdır).

Bunu yapmazdım - ihtiyaçlarım için işlevsel API çok daha iyi ve kullanımı daha basit, bellekten daha az bayt ve daha az CPU döngüsü ve kullanamayacağım şekilde kütüphaneyi geliştirme isteğim yok. Ayrıca Arduino IDE kullanmıyorum, programları oluşturmak ve yüklemek için basit Makefile kullanıyorum, bu yüzden kolayca iyi metin editörü (benim durumumda vim) kullanabilir ve IDE-Notepad-parodi ile savaşmamalıyım.

Büyük Merkezi Otorite altında modelinizi uygulayan Arduino'yu hiç kullanmayı umursamıyorum ve eğer varsa, Çince versiyona sıkışmış olacaksınız (iyi İngilizce dokümantasyon ve uygun paket formatının olmaması nedeniyle orada kalmayacağı için) .


0

http://downloads.arduino.cc/libraries/library_index.json , Arduino Kütüphane Yöneticisinde bulunan tüm kütüphanelerin bir listesini sunar.

Bu dosyayı https://github.com/scls19fr/arduino_libraries_search oluşturmak için kullandım Bazı anahtar kelimelerle eşleşen Arduino kitaplıklarını aramak ve Excel dosyasına göndermek için bir Python Pandas betiği

Arduino kütüphanelerini aşağıdakileri kullanarak da bulabilirsiniz:

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.