Di mana saya dapat menemukan repositori pusat dari semua perpustakaan Arduino yang tersedia?

11

Saat ini; ketika saya memulai proyek Arduino baru dengan beberapa perangkat keras baru, hal pertama yang saya lakukan adalah mencari perpustakaan pihak ketiga yang membawa dukungan Arduino untuk perangkat keras ini.

Tempat pertama yang saya lihat adalah:

Secara umum saya tidak menemukan pustaka pendukung atau beberapa pustaka yang berbeda (sangat jarang menemukan hanya satu) di lokasi yang berbeda dengan berbagai tingkat dokumentasi, berbagai tingkat pengujian ...

Setelah saya menemukan perpustakaan yang saya butuhkan (kadang-kadang saya perlu mencoba beberapa), saya mengunduhnya ke folder perpustakaan Arduino saya, saya menggunakannya dan saya melupakannya.

Saya menemukan proses ini rumit:

  • pencarian manual dengan berbagai opsi yang mungkin, tidak selalu didokumentasikan dengan baik
  • unduh manual dan instal ke perpustakaan Arduino
  • tidak ada kontrol versi dalam proses (semua versi perpustakaan memiliki nama yang sama dan dengan demikian tidak dapat hidup berdampingan di folder perpustakaan Arduino).

Saya berharap ada repositori pusat dengan semua perpustakaan yang tersedia untuk Arduino, dengan:

  • deskripsi (perangkat keras yang didukung, papan yang didukung)
  • Kode sumber
  • dokumentasi
  • versi

Dan sebuah alat (Arduino IDE atau eksternal) untuk mengakses repositori ini pada waktu pembangunan proyek.

Sejenis pakar untuk Arduino sebenarnya.

Saya telah melihat beberapa diskusi pernah terjadi di forum Arduino, tetapi tampaknya mereka tidak mengarah ke mana pun:

Apakah ada opsi lain, yang membuatnya menjadi sesuatu yang dapat digunakan (dari komunitas atau individu, mengapa tidak)?

jfpoilpret
sumber
Ini akan mirip dengan PyPi pypi.python.org/pypi dan virtualenv dalam Python, jika ada yang membutuhkan analog dalam bahasa lain.
Cybergibbons
Sumber bagus lainnya adalah PJRC pjrc.com/teensy/td_libs.html
Cybergibbons
Sesuatu mengatakan kepada saya bahwa tag perpustakaan wiki akan menjadi tempat yang baik untuk membuat database seperti itu. ~ 35.000 karakter harus menyediakan ruang yang cukup untuk mengembangkan daftar yang sangat komprehensif.
asheeshr
@ AsheeshR kenapa tidak? Tetapi pertama-tama, deskripsi yang jelas tentang apa yang diperlukan (dan apa yang opsional) untuk setiap entri perpustakaan harus didefinisikan, sehingga 3template3 ini dapat diikuti untuk setiap entri yang ditambahkan.
jfpoilpret
@ jfpoilpret Thats topik untuk diskusi Arduino Meta .
asheeshr

Jawaban:

4

Anda baru saja menggambarkan masalah yang sedang saya coba selesaikan oleh perusahaan tempat saya bekerja. Kami baru-baru ini meluncurkan produk yang disebut biicode . Tampaknya persis apa yang Anda cari.

biicode adalah repositori pusat online untuk kode dan dan alat klien yang memiliki:

  • Mudah digunakan oleh pemula, dapat dikonfigurasi untuk pengguna yang lebih mahir
  • Resolusi dependensi, secara transitif, seperti yang dilakukan pakar, tetapi tanpa file konfigurasi: membaca dependensi langsung dari kode sumber.
  • Repositori pusat, siapa pun dapat mengunggah pustaka mereka. Mereka dapat dieksplorasi, dinavigasi dan ditemukan di web
  • Kontrol versi: memeriksa kompatibilitas versi dan memungkinkan pembaruan dependensi yang aman
  • Anda dapat menggunakannya dengan editor teks apa pun (memiliki dukungan gerhana opsional)
  • Ia mengelola pengaturan dan kompilasi proyek, mem-flash firmware yang dihasilkan ke papan tulis
  • Ini memiliki monitor serial yang bagus sebagai nilai tambah

Anda dapat melihat demo cepat di sini dan membaca lebih banyak di dokumentasi .

sampai sekarang
sumber
Dijawab tahun 2014, apakah 2018 masih dalam produksi?
parohy
Tidak, sekarang conan.io dari jfrog dan tidak tahu apakah itu mendukung
arduino
4

Sejak pertanyaan ini pertama kali ditanyakan, sekarang ada Manajer Perpustakaan Arduino, yang dibangun ke dalam IDE Arduino. Di sana Anda dapat mencari dan menginstal perpustakaan.

Ada informasi tentang cara kerja pengelola perpustakaan di sini: https://github.com/arduino/Arduino/wiki/Library-Manager-FAQ

Namun tidak ada situs web resmi yang mencantumkan perpustakaan, jadi saya baru-baru ini membuat situs tidak resmi ini, berdasarkan data yang sama di Manajer Perpustakaan Arduino:

http://www.arduinolibraries.info/

njh
sumber
3

The Arduino Playground LibraryList dan daftar pustaka standar tampak halaman resmi untuk itu.

The Guy with The Hat
sumber
Ya tetapi mereka hanya campuran dokumen pendek dengan tautan ke perpustakaan, dan tampaknya mengikuti pemeliharaan "upaya terbaik", mengarah ke sesuatu yang tampak berantakan jika kita ingin menggunakannya dari beberapa jenis manajer paket.
jfpoilpret
2

Jika Anda ingin membuat registri sendiri, Anda mungkin ingin melihat npm , manajer paket Node.js , yang merupakan open-source dan ruang lingkup yang sangat mirip dengan yang ingin Anda jelaskan. Npm keduanya:

  1. registri pusat dengan metadata tentang setiap perpustakaan:
    • nama, deskripsi, kata kunci, beranda, penulis, kontributor
    • nomor versi, pada prinsipnya sesuai dengan versi semantik
    • URL repositori sumber (svn, git, github, gitlab, bitbucket ...)
    • informasi kompatibilitas (dalam hal ini tentang versi Node)
    • lisensi
    • ketergantungan
  2. alat baris perintah untuk:
    • mencari registri
    • mengunduh dan menginstal paket, secara rekursif mengikuti dependensi mereka
    • menerbitkan dan memperbarui paket Anda sendiri di registri.

Lihat misalnya halaman perpustakaan populer , dan file JSON yang menyimpan metadata-nya.

Edgar Bonet
sumber
1

Tidak ada. Sayangnya, Anda harus mencari secara manual untuk setiap perpustakaan yang Anda minati.

Jika Anda tertarik untuk membuat repositori sentral seperti itu, walaupun itu akan luar biasa, ini bukan forum yang tepat untuk melakukannya.

Connor Wolf
sumber
Lalu apa yang akan Anda sarankan jika kita membuat repositori seperti itu?
jfpoilpret
Uh .... mulai? Apa yang Anda sarankan? Ini pada dasarnya sebuah situs web. Mungkin menambahkan hal manajer paket ke editor teks Arduino jika Anda benar-benar ke dalamnya? Masalah utama, seperti biasa, adalah membuat orang benar-benar menggunakannya .
Connor Wolf
1
Terus terang, bahkan jika Anda menambahkan manajer paket fancypants ke editor teks arduino, saya tidak tahu jenis adopsi apa yang akan Anda dapatkan, karena editor arduino mengerikan , dan orang-orang cenderung berhenti menggunakannya dalam waktu yang cukup singkat. . Dengan demikian, Anda hampir memerlukan manajer paket terpisah, jadi saya hampir mengatakan situs web dasar dengan indeks perpustakaan, uraian singkat, dan tautan ke tempat mereka sebenarnya diinangi adalah pilihan terbaik.
Connor Wolf
Itu ide saya juga, tujuannya bukan untuk meng-host perpustakaan tetapi tetap menyimpan referensi untuk mereka, bersama dengan metadata yang berguna. Mengenai Arduino IDE, saya setuju, saya tidak terlalu sering menggunakannya, tetapi alat eksternal harus mudah diintegrasikan dengannya nanti.
jfpoilpret
@ jfpoilpret - Masalah dengan alat eksternal, seperti halnya dengan manajer paket, resolusi dependensi dan manajemen persyaratan versi. Orang arduino tampaknya tidak terlalu peduli dengan mempertahankan kompatibilitas ke belakang, dan banyak perpustakaan membutuhkan "arduino verson {blah}". Saya benar-benar berpikir hanya daftar referensi adalah taruhan terbaik. Hal-hal yang lebih kompleks dapat terjadi kemudian.
Connor Wolf
0

Arduino IDE dan pustaka terkait dimasukkan sebagai perangkat lunak yang dapat diinstal di sebagian besar repositori OS. Sayangnya versi dalam repositori ini biasanya beberapa bulan atau bahkan bertahun-tahun kedaluwarsa. Tampaknya masalah sebenarnya adalah meminta manajer repositori OS untuk memasukkan rilis baru saat tersedia.

Masalah ini diperparah ketika versi OS Anda belum diperbarui ke rilis terbaru, karena ini memaksa Anda untuk menggunakan repositori perangkat lunak yang sudah usang.

Meskipun bukan jawaban yang sempurna, Anda mungkin harus memastikan bahwa Anda menggunakan rilis terbaru OS Anda, dan kemudian mendorong manajer repositori untuk OS tersebut untuk memasukkan versi terbaru Arduino IDE.

Alternatifnya adalah pergi ke beranda Arduino.org dan ikuti instruksi untuk mengunduh dan menginstal IDE terbaru dan pustaka terkait. Ini mungkin dalam bentuk file .tar.gz sehingga Anda perlu tahu cara unzip, menghapus, dan membangun perangkat lunak yang diperlukan.

arvid
sumber
0

Saya pikir, keinginan Anda tidak akan terwujud. Saya berharap untuk itu, karena hanya memiliki satu tempat untuk semua perpustakaan Arduino, tanpa perpustakaan diizinkan tidak ada di sana dan semua perpustakaan itu akan dipaksa untuk berdiri semua standar komersial kualitas, pengujian dan dokumentasi (+ kualitas kode, efektivitas dan keterbacaan) akan berarti, bahwa hanya profesional dan tim yang memenuhi syarat yang sama yang akan diizinkan untuk menerbitkan beberapa perpustakaan Arduino dan semuanya akan diatur oleh satu entitas tunggal, yang akan memberlakukan penghapusan duplikat atau perpustakaan yang serupa secara fungsional. Dan entitas seperti itu akan menjadi soner atau lambat menjadi jahat.

Saya suka Arduino karena bebas dan itu juga berarti, bahwa saya bebas menulis perpustakaan untuk mendukung beberapa fitur (yang ingin saya gunakan) dari beberapa perangkat keras (yang saya miliki, berencana untuk membeli atau ingin membuat sendiri - bahkan sangat eksperimental dan mungkin tidak stabil, tetapi menyenangkan bagi saya).

Dengan Big Central Authority Anda menjadi efektif, saya hanya akan memilih platform gratis lain, daripada dituntut untuk hasil yang kurang sempurna dan bersertifikat komersial dari hobi saya bermain dengan elektronik dan dipaksa untuk bekerja untuk mereka, BUKAN tujuan saya di waktu senggang MY.

Dan jika Big Central Athority Anda tidak akan memaksa saya melakukan kerja paksa gratis untuk mereka, lalu apa yang akan Anda lakukan tentang perpustakaan saya yang memungkinkan satu penggunaan khusus dari beberapa perangkat keras umum, dan tentang saya membagikannya kepada siapa pun yang menginginkannya, bahkan jika itu tidak selesaikan semua fungsi HW sepenuhnya dalam masalah proffesional dan didokumentasikan hanya sebanyak saya akan merasa nyaman untuk menghabiskan waktu luang saya sendiri dengan dokumentasi. Dan bagaimana jika akan muncul perpustakaan lain untuk HW yang sama, yang akan memungkinkan bagian lain dari fungsionalitas atau akan menggunakan API lain dan pendekatan lain untuk keseluruhan yang bermasalah?

Yaitu saya membeli beberapa modul multi-7-segmen dan ada "perpustakaan resmi" untuk itu dari pabrikannya. Saya membuat perpustakaan lain untuk modul yang sama. Apa sekarang? Haruskah perpustakaan saya berada di Repositori Pusat sebagai "satu-satunya perpustakaan untuk HW ini" atau haruskah ada "perpustakaan resmi dari pabrikan"? Perhatikan, jika ada keduanya, maka itu akan merusak titik pustaka "satu dan hanya satu" yang Anda minta. Jika Anda tidak mengizinkan pabrikan, maka "satu-satunya" akan kehilangan banyak fitur, seperti buffer terintegrasi untuk angka, antarmuka objek sederhana, contoh sederhana, cara menggunakannya dan akan ada ketergantungan pada satu timer dan generik tertentu. API non-objek, hanya fungsional, yang akan mengharuskan pengguna untuk memecah bilangan bulat menjadi satu digit - tidak terdengar terlalu bagus. Jika Anda melarang perpustakaan saya, maka pengguna akan memiliki di atas, tetapi layarnya akan menyegarkan hanya 10x per detik dengan berkedip dan meninggalkan hantu dari digit lain di semua tempat, sementara sepenuhnya menggunakan prosesor dan dokumentasi akan terutama dalam bahasa Cina. Dan pengguna akan kehilangan kecepatan refresh 100x per detik dengan hampir tidak ada penggunaan prosesor, angka bersih dan karakter (mungkin juga ditentukan pengguna). - Juga tidak bagus.

Dalam keadaan chaos saat ini (mungkin Anda atau orang lain) dapat menggunakan perpustakaan, yang lebih sesuai untuk kebutuhannya (baik itu kesederhanaan dan dukungan integer asli, atau bersihkan penyegaran cepat dan penggunaan CPU rendah) atau kombinasikan keduanya, membuat ketiga dengan refresh cepat DAN manipulasi integer sederhana DAN charset yang ditentukan pengguna, DENGAN API objek yang bagus dan dokumentasi yang kaya. Hanya perlu satu orang dengan waktu dan dedikasi yang membuatnya mudah untuk pemula dan beberapa keterampilan bahasa Inggris dan pengetahuan dasar objek dan bagaimana "perpustakaan Arduino resmi" dikemas, sehingga IDE dapat dengan mudah mengimpornya. (Dan orang seperti itu harus melakukannya dan berkontribusi ke pembuat paket perpustakaan Arduino).

Saya tidak akan melakukannya - karena kebutuhan saya adalah API fungsional yang jauh lebih baik dan lebih sederhana untuk digunakan, mengambil lebih sedikit byte dari memori dan lebih sedikit siklus CPU dan saya tidak memiliki keinginan untuk meningkatkan perpustakaan dengan cara yang tidak akan saya gunakan. Juga saya tidak menggunakan Arduino IDE, saya menggunakan Makefile sederhana untuk membangun dan mengunggah program, jadi saya dapat dengan mudah menggunakan editor teks yang baik (vim dalam kasus saya) dan tidak harus bertarung dengan parodi IDE-Notepad-parodi.

Di bawah Big Central Authority enforsing model Anda, saya tidak akan peduli tentang menggunakan Arduino sama sekali dan Anda akan terjebak dengan versi Cina, jika ada sama sekali (karena tidak akan membuatnya di sana karena kurangnya dokumentasi bahasa Inggris yang baik dan format paket yang tepat juga) .

gilhad
sumber
0

http://downloads.arduino.cc/libraries/library_index.json menyediakan daftar semua perpustakaan yang tersedia di Arduino Library Manager.

Saya menggunakan file ini untuk membuat https://github.com/scls19fr/arduino_libraries_search Ini adalah skrip Python Pandas untuk mencari perpustakaan Arduino yang cocok dengan beberapa kata kunci dan untuk menghasilkan file Excel

Anda juga dapat menemukan perpustakaan Arduino menggunakan:

scls
sumber