Gdzie mogę znaleźć centralne repozytorium wszystkich dostępnych bibliotek Arduino?

11

W tej chwili; kiedy zaczynam nowy projekt Arduino z nowym sprzętem, pierwszą rzeczą, którą robię, jest poszukiwanie bibliotek innych firm, które zapewniają obsługę Arduino dla tego sprzętu.

Pierwsze miejsca, które szukam to:

Zasadniczo nie znajduję żadnej biblioteki pomocniczej lub kilku różnych bibliotek (dość rzadko znajduję tylko jedną) w różnych lokalizacjach o różnych poziomach dokumentacji, różnych poziomach testowania ...

Gdy już znajdę potrzebną bibliotekę (czasem muszę spróbować kilku), pobieram ją do folderu bibliotek Arduino, używam jej i zapominam.

Uważam ten proces za kłopotliwy:

  • wyszukiwanie ręczne z różnymi możliwymi opcjami, nie zawsze dobrze udokumentowane
  • ręczne pobieranie i instalacja w bibliotekach Arduino
  • brak kontroli wersji w tym procesie (wszystkie wersje biblioteki mają tę samą nazwę i dlatego nie mogą współistnieć w folderze biblioteki Arduino).

Chciałbym, żeby istniało centralne repozytorium ze wszystkimi dostępnymi bibliotekami dla arduino, z:

  • opis (obsługiwany sprzęt, obsługiwane płyty)
  • kod źródłowy
  • dokumentacja
  • wersje

Oraz narzędzie (Arduino IDE lub zewnętrzne), aby uzyskać dostęp do tego repozytorium podczas kompilacji projektu.

To rodzaj raju dla Arduino.

Widziałem kiedyś kilka dyskusji na forum Arduino, ale wygląda na to, że doprowadziły do ​​nikąd:

Czy istnieją inne opcje, które sprawiają, że jest to użyteczne (od społeczności lub osób, dlaczego nie)?

jfpoilpret
źródło
Byłoby to podobne do PyPi pypi.python.org/pypi i virtualenv w Pythonie, jeśli ktoś potrzebuje analogu w innym języku.
Cybergibbons
Innym dobrym źródłem jest PJRC pjrc.com/teensy/td_libs.html
Cybergibbons
Coś mi mówi, że wiki tag biblioteki byłoby dobrym miejscem do stworzenia takiej bazy danych. ~ 35 000 znaków powinno zapewnić wystarczająco dużo miejsca na opracowanie bardzo obszernej listy.
asheeshr
@AsheeshR dlaczego nie? Ale najpierw należy zdefiniować jasny opis tego, co jest wymagane (i co jest opcjonalne) dla każdego wpisu biblioteki, aby można było śledzić ten 3template3 dla każdego dodanego wpisu.
jfpoilpret
@jfpoilpret To temat dyskusji na temat Arduino Meta .
asheeshr

Odpowiedzi:

4

Właśnie opisałeś problemy, które firma, nad którą pracuję, próbuje rozwiązać. Niedawno wprowadziliśmy na rynek produkt o nazwie biicode . Wydaje się dokładnie tym, czego szukasz.

biicode to zarówno centralne repozytorium online kodu, jak i narzędzie klienckie, które oferuje:

  • Łatwy w użyciu dla początkujących, konfigurowalny dla bardziej zaawansowanych użytkowników
  • Rozwiązywanie zależności, tranzytowo, jak robi maven, ale bez plików konfiguracyjnych: odczytuje zależności bezpośrednio z kodu źródłowego.
  • Centralne repozytorium, każdy może przesłać swoje biblioteki. Można je eksplorować, nawigować i odkrywać w sieci
  • Kontrola wersji: sprawdza zgodność wersji i umożliwia bezpieczne aktualizacje zależności
  • Możesz go używać z dowolnym edytorem tekstu (ma opcjonalną obsługę zaćmień)
  • Zarządza konfiguracją projektu i kompilacjami, flashuje wygenerowane oprogramowanie na płycie
  • Ma ładny monitor szeregowy jako plus

Można zobaczyć krótki demo tutaj i czytaj dalej w dokumentacji .

hithwen
źródło
Odpowiedział 2014, jego 2018 wciąż w produkcji?
parohy
Nie, jest teraz conan.io z jfrog i nie wiem, czy obsługuje już
arduino
4

Od czasu, gdy pytanie zostało zadane po raz pierwszy, istnieje teraz Arduino Library Manager, wbudowany w Arduino IDE. Tam możesz wyszukiwać i instalować biblioteki.

Informacje na temat działania menedżera bibliotek znajdują się tutaj: https://github.com/arduino/Arduino/wiki/Library-Manager-FAQ

Nie ma jednak oficjalnej strony internetowej z listą bibliotek, więc niedawno stworzyłem tę nieoficjalną stronę, opartą na tych samych danych w Menedżerze Bibliotek Arduino:

http://www.arduinolibraries.info/

njh
źródło
3

Arduino Playground LibraryList a średnia lista biblioteka wydaje się być oficjalne strony za to.

Facet z kapeluszem
źródło
Tak, ale są one tylko mieszanką krótkiej dokumentacji z linkami do bibliotek i wydają się być zgodne z zasadą „dołożenia wszelkich starań”, co prowadzi do czegoś, co wygląda jak bałagan, jeśli chcielibyśmy użyć go z jakiegoś menedżera pakietów.
jfpoilpret
2

Jeśli chcesz sam stworzyć taki rejestr, możesz rzucić okiem na npm , menedżera pakietów Node.js , który jest open source i ma bardzo podobny zakres, który chcesz opisać. Npm to oba:

  1. centralny rejestr zawierający metadane dotyczące każdej biblioteki:
    • imię i nazwisko, opis, słowa kluczowe, strona główna, autor, autorzy
    • numer wersji, zasadniczo zgodny z wersją semantyczną
    • Adres URL repozytorium źródłowego (svn, git, github, gitlab, bitbucket ...)
    • informacje o kompatybilności (w tym przypadku chodzi o wersje Węzła)
    • licencja
    • zależności
  2. narzędzie wiersza polecenia do:
    • przeszukiwanie rejestru
    • pobieranie i instalowanie pakietów, rekurencyjnie śledząc ich zależności
    • publikowanie i aktualizowanie własnych pakietów w rejestrze.

Zobacz na przykład stronę popularnej biblioteki i plik JSON zawierający jego metadane.

Edgar Bonet
źródło
1

Nie ma żadnego. Niestety będziesz musiał ręcznie wyszukać każdą bibliotekę, którą jesteś zainteresowany.

Jeśli jesteś zainteresowany utworzeniem takiego centralnego repozytorium, choć byłoby to niesamowite, nie jest to odpowiednie forum, na którym można to zrobić.

Connor Wolf
źródło
Co więc poradziłbyś, gdybyśmy utworzyli takie repozytorium?
jfpoilpret
Uh .... zacząć? Co masz na myśli doradzać? To w zasadzie strona internetowa. Może dodaj menedżera pakietów do edytora tekstu arduino, jeśli naprawdę go lubisz? Głównym problemem, jak zawsze, będzie zachęcenie ludzi do korzystania z niego.
Connor Wolf
1
Szczerze mówiąc, nawet jeśli dodasz fantazyjnego menedżera pakietów do edytora tekstu arduino, nie wiem, jaki rodzaj adopcji otrzymasz, ponieważ edytor arduino jest okropny , a ludzie przestają go używać w dość krótkim czasie . Jako taki, prawie potrzebujesz osobnego menedżera pakietów, więc prawie powiedziałbym, że podstawowa strona internetowa z indeksem bibliotek, krótką notką i linkami do miejsca, w którym faktycznie są hostowane, jest najlepszym rozwiązaniem.
Connor Wolf,
To był również mój pomysł, celem nie byłoby hostowanie bibliotek, ale raczej utrzymywanie do nich odniesień wraz z przydatnymi metadanymi. Jeśli chodzi o Arduino IDE, zgadzam się, nie używam go zbyt często, ale narzędzie zewnętrzne powinno być łatwe do zintegrowania z nim później.
jfpoilpret
@jfpoilpret - Problem z zewnętrznym narzędziem polega, podobnie jak w przypadku menedżerów pakietów, na rozwiązywaniu zależności i zarządzaniu wymaganiami dotyczącymi wersji. Ludzie arduino nie wydają się zbytnio niepokoić utrzymywaniem wstecznej kompatybilności, a wiele bibliotek wymaga „arduino verson {blah}”. Naprawdę uważam, że tylko lista referencji jest najlepszym wyborem. Wszelkie bardziej złożone rzeczy mogą przyjść później.
Connor Wolf
0

Arduino IDE i powiązane biblioteki są dołączone jako oprogramowanie do zainstalowania w większości repozytoriów systemów operacyjnych. Niestety wersje w tych repozytoriach są zwykle nieaktualne o kilka miesięcy lub nawet lat. Wydaje się, że prawdziwym problemem jest przekonanie menedżerów repozytoriów systemów operacyjnych do włączenia nowych wydań w miarę ich udostępniania.

Ten problem jest spotęgowany, gdy wersja systemu operacyjnego nie została zaktualizowana do najnowszej wersji, ponieważ zmusza to do korzystania z przestarzałego repozytorium oprogramowania.

Chociaż nie jest to idealna odpowiedź, prawdopodobnie powinieneś upewnić się, że korzystasz z najnowszej wersji swojego systemu operacyjnego, a następnie zachęcić menedżerów repozytoriów dla tego systemu do włączenia najnowszej wersji Arduino IDE.

Alternatywą byłoby przejście do strony głównej Arduino.org i postępowanie zgodnie z instrukcjami, aby pobrać i zainstalować najnowsze IDE i powiązane biblioteki. Prawdopodobnie będzie to plik .tar.gz, więc musisz wiedzieć, jak rozpakować, rozpakować i zbudować niezbędne oprogramowanie.

arvid
źródło
0

Myślę, że twoje życzenie się nie spełni. Mam na to nadzieję, ponieważ posiadanie tylko jednego miejsca dla wszystkich bibliotek Arduino, bez bibliotek nie byłoby dozwolone, a wszystkie te biblioteki byłyby zmuszone do przestrzegania wszystkich komercyjnych standardów jakości, testowania i dokumentacji (+ jakość kodu, skuteczność i czytelność) oznacza, że ​​tylko profesjonaliści i podobne wykwalifikowane zespoły będą mogły publikować niektóre biblioteki Arduino, a wszystko to będzie zarządzane przez jeden podmiot, który wymusi usunięcie funkcjonalnie zduplikowanych lub podobnych bibliotek. I taki byt sonerował, a później stał się zły.

Lubię Arduino za to, że jestem wolny, a to oznacza również, że mogę pisać bibliotekę obsługującą niektóre funkcje (z których chcę korzystać) niektórych urządzeń (które mam, planuję kupić lub chcę zrobić sam - nawet bardzo eksperymentalne i może niestabilne, ale dla mnie zabawne).

Gdyby wasz Big Central Authority był skuteczny, wybrałbym inną darmową platformę, zamiast tego zostałem pozwany za mniej niż doskonały i certyfikowany komercyjnie wynik mojego hobby z elektroniką i zmuszony do pracy dla ich, a NIE moich celów w MOIM wolnym czasie.

A jeśli twój Big Central Athority nie zmusiłby mnie do przymusowej pracy dla nich, to co zrobiłbyś z moją biblioteką umożliwiającą jedno specjalne użycie jakiegoś wspólnego sprzętu i o tym, że udostępniam go każdemu, kto tego chce, nawet jeśli nie w pełni rozwiązuję całą funkcjonalność HW w profesjonalnej materii i udokumentuję tylko tyle, że będę mógł swobodnie spędzać wolny czas z dokumentacją. A co, jeśli powstałaby inna biblioteka dla tego samego sprzętu, która umożliwiłaby inną część funkcjonalności lub użyłaby innego API i innego podejścia do całej problematyki?

Mianowicie kupiłem moduł 7-segmentowy multi i była od niego „oficjalna biblioteka” od producenta. Zrobiłem inną bibliotekę dla tego samego modułu. Co teraz? Czy moja biblioteka powinna znajdować się w centralnym repozytorium jako „jedyna biblioteka dla tego sprzętu”, czy powinna być „oficjalna od producenta”? Zauważ, że gdyby były oba, zniszczyłbyś żądany „jeden i tylko jeden” punkt biblioteki. Jeśli odrzucisz producenta, to „jedynemu” brakowałoby wielu funkcji, takich jak zintegrowany bufor liczb, prosty interfejs obiektowy, prosty przykład, jak go używać, i istniałaby silna zależność od jednego określonego zegara i ogólnego nie-obiektowy, po prostu funkcjonalny interfejs API, który wymagałby od użytkownika podzielenia liczb całkowitych na pojedyncze cyfry - nie brzmi to zbyt dobrze. Jeśli nie wyłączysz mojej biblioteki, użytkownik będzie miał powyższe, ale jego wyświetlacz odświeży tylko 10x na sekundę z miganiem i pozostawianiem duchów innych cyfr w dowolnym miejscu, przy pełnym wykorzystaniu procesora, a dokumentacja będzie głównie w języku chińskim. A użytkownik przegapiłby częstotliwość odświeżania 100x na sekundę prawie bez użycia procesora, ładne czyste cyfry ORAZ znaki (potencjalnie również zdefiniowane przez użytkownika). - Też nie dobrze.

W obecnym stanie chaosu użytkownik (może ty lub ktokolwiek inny) może korzystać z biblioteki, która jest lepiej dostosowana do jego potrzeb (czy to prostota i natywna obsługa liczb całkowitych, czy to czyste szybkie odświeżanie i niskie zużycie procesora) lub połączyć oba te elementy razem, trzecie miejsce dzięki szybkiemu odświeżaniu ORAZ prostej manipulacji liczbami całkowitymi ORAZ zdefiniowanemu przez użytkownika zestawowi znaków, z ładnym API obiektu i bogatą dokumentacją. Potrzebuje tylko jednej osoby, która ma trochę czasu i poświęcenia, aby ułatwić początkującym, a niektóre umiejętności angielskiego i podstawową znajomość przedmiotów oraz sposób pakowania „oficjalnych bibliotek Arduino”, aby IDE mogło je łatwo zaimportować. (I taka osoba powinna to zrobić i wnieść do programu do tworzenia bibliotek Arduino).

Nie zrobiłbym tego - dla moich potrzeb funkcjonalny interfejs API jest o wiele lepszy i prostszy w użyciu, pobiera mniej bajtów z pamięci i mniej cykli procesora i nie mam potrzeby ulepszania biblioteki w sposób, którego nie używałbym. Nie używam również Arduino IDE, używam prostego Makefile do budowania i przesyłania programów, dzięki czemu mogę łatwo używać dobrego edytora tekstu (w moim przypadku vim) i nie muszę walczyć z parodią IDE-Notepad.

Pod Wielkim Urzędem Centralnym wzmacniającym twój model w ogóle nie dbam o używanie Arduino, a ty w ogóle utkniesz z chińską wersją (ponieważ nie byłoby jej tam z powodu braku dobrej angielskiej dokumentacji i odpowiedniego formatu pakietu) .

Gilhad
źródło
0

http://downloads.arduino.cc/libraries/library_index.json zawiera listę wszystkich bibliotek dostępnych w Arduino Library Manager.

Użyłem tego pliku, aby utworzyć https://github.com/scls19fr/arduino_libraries_search Jest to skrypt Python Pandas do wyszukiwania bibliotek Arduino pasujących do niektórych słów kluczowych i do wyświetlania w pliku Excel

Możesz również znaleźć biblioteki Arduino, używając:

scls
źródło